1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-24 17:23:03 +02:00

calculate trend line like The Hacker's Diet, see issue #436

This commit is contained in:
oliexdev
2020-07-05 19:34:21 +02:00
parent b891b8bef5
commit 373aa32ee8
33 changed files with 73 additions and 124 deletions

View File

@@ -25,7 +25,6 @@ import android.preference.PreferenceManager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.AxisBase;
@@ -623,12 +622,9 @@ public class ChartMeasurementView extends LineChart {
}
}
addTrendLine(lineDataSets);
addGoalLine(lineDataSets);
if (isInGraphKey) {
addRegressionLine(lineDataSets);
}
LineData data = new LineData(lineDataSets);
setData(data);
@@ -648,6 +644,7 @@ public class ChartMeasurementView extends LineChart {
measurementLine.setColor(measurementView.getColor());
measurementLine.setValueTextColor(ColorUtil.getTintColor(getContext()));
measurementLine.setCircleColor(measurementView.getColor());
measurementLine.setCircleHoleColor(measurementView.getColor());
measurementLine.setAxisDependency(measurementView.getSettings().isOnRightAxis() ? YAxis.AxisDependency.RIGHT : YAxis.AxisDependency.LEFT);
measurementLine.setHighlightEnabled(true);
measurementLine.setDrawHighlightIndicators(true);
@@ -656,6 +653,10 @@ public class ChartMeasurementView extends LineChart {
measurementLine.setHighLightColor(Color.RED);
measurementLine.setDrawCircles(prefs.getBoolean("pointsEnable", true));
measurementLine.setDrawValues(prefs.getBoolean("labelsEnable", true));
if (prefs.getBoolean("trendLine", true)) {
// show only data point if trend line is enabled
measurementLine.enableDashedLine(0, 1, 0);
}
measurementLine.setValueFormatter(new ValueFormatter() {
@Override
public String getPointLabel(Entry entry) {
@@ -712,51 +713,60 @@ public class ChartMeasurementView extends LineChart {
}
}
private void addRegressionLine(List<ILineDataSet> lineDataSets) {
if (prefs.getBoolean("regressionLine", false)) {
int regressLineOrder = 1;
private void addTrendLine(List<ILineDataSet> lineDataSets) {
if (!prefs.getBoolean("trendLine", true)) {
return;
}
try {
regressLineOrder = Integer.parseInt(prefs.getString("regressionLineOrder", "1"));
} catch (NumberFormatException e) {
Toast.makeText(getContext(), getContext().getString(R.string.error_value_required) + ":" + e.getMessage(), Toast.LENGTH_LONG).show();
prefs.edit().putString("regressionLineOrder", "1").apply();
List<ILineDataSet> trendlineDataSets = new ArrayList<>();
for (ILineDataSet dataSet : lineDataSets) {
// we need at least two data points
if (dataSet.getEntryCount() < 2) {
continue;
}
List<ILineDataSet> regressionLineDataSets = new ArrayList<>();
PolynomialFitter polyFitter = new PolynomialFitter(1);
for (ILineDataSet dataSet : lineDataSets) {
PolynomialFitter polyFitter = new PolynomialFitter(Math.min(regressLineOrder, 100));
List<Entry> valuesTrendLine = new Stack<>();
valuesTrendLine.add(dataSet.getEntryForIndex(0));
polyFitter.addPoint((double) valuesTrendLine.get(0).getX(), (double) valuesTrendLine.get(0).getY());
for (int i=0; i<dataSet.getEntryCount(); i++) {
Entry entry = dataSet.getEntryForIndex(i);
polyFitter.addPoint((double) entry.getX(), (double) entry.getY());
}
for (int i = 1; i < dataSet.getEntryCount(); i++) {
Entry entry = dataSet.getEntryForIndex(i);
Entry trendPreviousEntry = valuesTrendLine.get(i - 1);
float trendYValue = (trendPreviousEntry.getY() + 0.1f * (entry.getY() - trendPreviousEntry.getY()));
polyFitter.addPoint((double) entry.getX(), (double) trendYValue);
valuesTrendLine.add(new Entry(entry.getX(), trendYValue));
/*Timber.d("ENTRY X " + entry.getX() + " Y " + entry.getY());
Timber.d("PREVIOUS X " + trendPreviousEntry.getX() + " Y " + trendPreviousEntry.getY());
Timber.d("TREND X " + entry.getX() + " Y " + trendYValue);*/
}
if (isInGraphKey) {
PolynomialFitter.Polynomial polynomial = polyFitter.getBestFit();
List<Entry> valuesLinearRegression = new Stack<>();
for (int i = minXValue; i < maxXValue + minXValue + 1; i++) {
int x_last = (int) dataSet.getEntryForIndex(dataSet.getEntryCount() - 1).getX();
for (int i = x_last; i < maxXValue + minXValue + 1; i++) {
double y_value = polynomial.getY(i);
valuesLinearRegression.add(new Entry((float) i, (float) y_value));
valuesTrendLine.add(new Entry((float) i, (float) y_value));
}
LineDataSet linearRegressionLine = new LineDataSet(valuesLinearRegression, dataSet.getLabel() + "-" + getContext().getString(R.string.label_regression_line));
linearRegressionLine.setLineWidth(1.5f);
linearRegressionLine.setColor(dataSet.getColor());
linearRegressionLine.setAxisDependency(dataSet.getAxisDependency());
linearRegressionLine.setDrawValues(false);
linearRegressionLine.setDrawCircles(false);
linearRegressionLine.setHighlightEnabled(false);
linearRegressionLine.enableDashedLine(10, 30, 0);
regressionLineDataSets.add(linearRegressionLine);
}
for (ILineDataSet dataSet : regressionLineDataSets) {
lineDataSets.add(dataSet);
}
LineDataSet trendLine = new LineDataSet(valuesTrendLine, dataSet.getLabel() + "-" + getContext().getString(R.string.label_trend_line));
trendLine.setLineWidth(1.5f);
trendLine.setColor(dataSet.getColor());
trendLine.setAxisDependency(dataSet.getAxisDependency());
trendLine.setDrawValues(false);
trendLine.setDrawCircles(false);
trendLine.setHighlightEnabled(false);
//trendLine.enableDashedLine(10, 30, 0);
trendlineDataSets.add(trendLine);
}
for (ILineDataSet dataSet : trendlineDataSets) {
lineDataSets.add(dataSet);
}
}
}

View File

@@ -25,8 +25,6 @@ import com.health.openscale.R;
public class GraphPreferences extends PreferenceFragmentCompat {
private static final String PREFERENCE_KEY_REGRESSION_LINE_ORDER = "regressionLineOrder";
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.graph_preferences, rootKey);

View File

@@ -111,46 +111,49 @@
android:id="@+id/showMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
app:fabSize="mini"
app:srcCompat="@drawable/ic_show"
android:layout_below="@id/deleteMenu"
app:layout_anchor="@id/editMenu"
android:clickable="true"
android:visibility="gone"
app:layout_anchorGravity="top"
android:layout_gravity="top|end"
app:pressedTranslationZ="12dp" />
android:clickable="true"
android:scaleType="centerInside"
android:tint="@color/widgetTextColor"
android:visibility="gone"
app:fabSize="mini"
app:layout_anchor="@id/editMenu"
app:layout_anchorGravity="top"
app:pressedTranslationZ="12dp"
app:srcCompat="@drawable/ic_show" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/editMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fabSize="mini"
android:scaleType="centerInside"
app:srcCompat="@drawable/ic_editable"
android:layout_above="@id/deleteMenu"
app:backgroundTint="#99CC00"
android:clickable="true"
android:scaleType="centerInside"
android:tint="@color/widgetTextColor"
android:visibility="gone"
app:backgroundTint="#99CC00"
app:fabSize="mini"
app:layout_anchor="@id/chartView"
app:layout_anchorGravity="right|center_vertical"
app:pressedTranslationZ="12dp"/>
app:pressedTranslationZ="12dp"
app:srcCompat="@drawable/ic_editable" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/deleteMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fabSize="mini"
android:scaleType="centerInside"
android:layout_gravity="bottom|end"
android:clickable="true"
android:scaleType="centerInside"
android:tint="@color/widgetTextColor"
android:visibility="gone"
app:srcCompat="@drawable/ic_delete"
app:backgroundTint="#FF4444"
app:fabSize="mini"
app:layout_anchor="@id/editMenu"
app:layout_anchorGravity="bottom"
android:layout_gravity="bottom|end"
app:pressedTranslationZ="12dp"/>
app:pressedTranslationZ="12dp"
app:srcCompat="@drawable/ic_delete" />
<ProgressBar
android:id="@+id/progressBar"

View File

@@ -136,8 +136,6 @@
<string name="label_not_found">غير موجود</string>
<string name="label_ignoreOutOfRange">تجاهل خارج نطاق البيانات</string>
<string name="label_initial_weight">الوزن البدائي</string>
<string name="label_regression_line">خط الوزن الانحداري</string>
<string name="label_regression_line_degree">خط انحداري متعدد الحدود</string>
<string name="label_goal_line">خط الهدف</string>
<string name="label_help">مساعدة</string>
<string name="label_feedback_message_enjoying">استمتعت ب openScale؟</string>

View File

@@ -119,8 +119,6 @@
<string name="label_not_found">no s\'ha trobat</string>
<string name="label_ignoreOutOfRange">Ignora les dades fora del rang</string>
<string name="label_initial_weight">Pes inicial</string>
<string name="label_regression_line">Línia de regressió</string>
<string name="label_regression_line_degree">Grau del polinomi de regressió</string>
<string name="label_goal_line">Línia de l\'objectiu</string>
<string name="error_max_scale_users">S\'ha assolit el nombre màxim d\'usuaris simultanis de la bàscula</string>
<string name="info_step_on_scale_for_reference">Pugeu a la bàscula amb els peus nus per a obtenir les mesures de referència</string>

View File

@@ -189,8 +189,6 @@
<string name="label_enable_legend">Legenda grafu</string>
<string name="label_enable_yaxis">Osa Y</string>
<string name="label_enable_labels">Popisek dat</string>
<string name="label_regression_line">Regresivní křivka</string>
<string name="label_regression_line_degree">Stupeň polynomické regrese</string>
<string name="label_goal_line">Cílová čára</string>
<string name="info_step_on_scale_for_reference">Stoupněte na váhu naboso pro referenční měření</string>
<string name="info_step_on_scale">Stoupněte na váhu naboso</string>

View File

@@ -119,8 +119,6 @@
<string name="label_not_found">blev ikke fundet</string>
<string name="label_ignoreOutOfRange">Ignorér data udenfor interval</string>
<string name="label_initial_weight">Startvægt</string>
<string name="label_regression_line">Vægt tilbagegang</string>
<string name="label_regression_line_degree">Grad af tilbagegang</string>
<string name="label_goal_line">Mållinje</string>
<string name="error_max_scale_users">Det maksimale antal brugere er nået</string>
<string name="info_step_on_scale_for_reference">Træd op på vægten med bare fødder for at foretagen en referencemåling</string>

View File

@@ -110,8 +110,6 @@
<string name="error_initial_weight_required">Anfangsgewicht ist erforderlich</string>
<string name="label_bt_device_no_support">Gerät wird nicht unterstützt</string>
<string name="label_goal_line">Ziellinie</string>
<string name="label_regression_line">Regressionsgerade</string>
<string name="label_regression_line_degree">Polynomischer Regressions-Grad</string>
<string name="label_bluetooth_searching">Suche nach Ihrer Bluetooth Waagen</string>
<string name="label_bone">Knochenmasse</string>
<string name="label_bmr">Grundumsatz (BMR)</string>

View File

@@ -129,8 +129,6 @@
<string name="label_not_found">δεν βρέθηκε</string>
<string name="label_ignoreOutOfRange">Αγνόησε δεδομένα εκτός εύρους</string>
<string name="label_initial_weight">Αρχικό βάρος</string>
<string name="label_regression_line">Γραμμή παλινδρόμησης</string>
<string name="label_regression_line_degree">Πολυώνυμος βαθμός οπισθοδρόμησης</string>
<string name="label_goal_line">Γραμμή στόχου</string>
<string name="label_help">Βοήθεια</string>
<string name="label_feedback_message_enjoying">Απολαμβάνετε το ανοιχτόςΖυγός;</string>

View File

@@ -119,8 +119,6 @@
<string name="label_not_found">no encontrado</string>
<string name="label_ignoreOutOfRange">Ignorar datos fuera de límites</string>
<string name="label_initial_weight">Peso inicial</string>
<string name="label_regression_line">Línea de regresión</string>
<string name="label_regression_line_degree">Grado de polinomio de regresión</string>
<string name="label_goal_line">Línea del objetivo</string>
<string name="error_max_scale_users">Máximo número de usuarios concurrentes alcanzado</string>
<string name="info_step_on_scale_for_reference">Párese con los pies descalzos en la báscula para tomar medidas de referencia</string>

View File

@@ -157,8 +157,6 @@
<string name="label_export_dir">Dossier pour l\'exportation</string>
<string name="label_not_found">Non trouvé</string>
<string name="label_ignoreOutOfRange">Ignorer les valeurs hors de plage valide</string>
<string name="label_regression_line">Ligne de régression</string>
<string name="label_regression_line_degree">Degré du polynôme pour la ligne</string>
<string name="label_goal_line">Ligne pour l\'objectif</string>
<string name="label_feedback_message_enjoying">Êtes-vous satisfait d\'openScale ?</string>
<string name="label_feedback_message_rate_app">Laisser une évaluation sur Google Play ou GitHub ?</string>

View File

@@ -126,8 +126,6 @@
<string name="label_not_found">non atopado</string>
<string name="label_ignoreOutOfRange">Ignorar datos fóra de rango</string>
<string name="label_initial_weight">Peso inicial</string>
<string name="label_regression_line">Liña de tendencia de peso</string>
<string name="label_regression_line_degree">Grao do polinomio de regresión (tendencia)</string>
<string name="label_goal_line">Liña do obxectivo</string>
<string name="label_help">Axuda</string>
<string name="label_feedback_message_enjoying">Gústache openScale?</string>

View File

@@ -131,8 +131,6 @@
<string name="label_not_found">nije pronađeno</string>
<string name="label_ignoreOutOfRange">Zanemari podatke izvan granica</string>
<string name="label_initial_weight">Početna težina</string>
<string name="label_regression_line">Linija regresije</string>
<string name="label_regression_line_degree">Polinom regresije</string>
<string name="label_goal_line">Ciljana linija</string>
<string name="label_help">Pomoć</string>
<string name="label_feedback_message_enjoying">Sviđa ti se openScale\?</string>

View File

@@ -125,8 +125,6 @@
<string name="info_on_date">be</string>
<string name="label_ignoreOutOfRange">Tartományon kívüli adat elhagyása</string>
<string name="label_initial_weight">Kezdő súly</string>
<string name="label_regression_line">Regressziós egyenes</string>
<string name="label_regression_line_degree">Polinom regresszió foka</string>
<string name="label_goal_line">Cél vonal</string>
<string name="label_help">Segítség</string>
<string name="label_feedback_message_enjoying">Élvezi az openScale-t\?</string>

View File

@@ -129,8 +129,6 @@
<string name="label_not_found">non trovato</string>
<string name="label_ignoreOutOfRange">Ignorare i dati fuori intervallo</string>
<string name="label_initial_weight">Peso iniziale</string>
<string name="label_regression_line">Retta di regressione</string>
<string name="label_regression_line_degree">Grado di regressione polinomiale</string>
<string name="label_goal_line">Linea obiettivo</string>
<string name="label_help">Aiuto</string>
<string name="label_feedback_message_enjoying">Ti piace openScale?</string>

View File

@@ -131,8 +131,6 @@
<string name="label_not_found">לא נמצא</string>
<string name="label_ignoreOutOfRange">התעלמות מנתונים מחוץ לטווח</string>
<string name="label_initial_weight">משקל ראשוני</string>
<string name="label_regression_line">קו נסיגתי</string>
<string name="label_regression_line_degree">רמה פולינומית של נסיגה</string>
<string name="label_goal_line">קו יעד</string>
<string name="label_help">עזרה</string>
<string name="label_feedback_message_enjoying">השימוש ב־openScale מטיב עמך\?</string>

View File

@@ -168,8 +168,6 @@
<string name="label_category_measurement_database">測定データベース</string>
<string name="label_export_dir">エクスポートディレクトリー</string>
<string name="label_not_found">見つかりません</string>
<string name="label_regression_line">回帰線</string>
<string name="label_regression_line_degree">回帰多項式次数</string>
<string name="label_goal_line">目標線</string>
<string name="error_max_scale_users">最大同時測定のユーザー数に達しました</string>
<string name="info_step_on_scale">裸足で体重計に載ってください</string>

View File

@@ -128,8 +128,6 @@
<string name="label_not_found">발견되지 않음</string>
<string name="label_ignoreOutOfRange">범위를 벗어난 데이터 무시</string>
<string name="label_initial_weight">초기 무게</string>
<string name="label_regression_line">회귀 무게 선</string>
<string name="label_regression_line_degree">회귀 다항식 차수</string>
<string name="label_goal_line">목표선</string>
<string name="label_help">도움말</string>
<string name="label_feedback_message_enjoying">openScale을 잘 사용하고 계신가요\?</string>

View File

@@ -130,8 +130,6 @@
<string name="label_not_found">ikke funnet</string>
<string name="label_ignoreOutOfRange">Ignorer data utenfor rekkevidde</string>
<string name="label_initial_weight">Startvekt</string>
<string name="label_regression_line">Regresjonslinje</string>
<string name="label_regression_line_degree">Regresjonspolynom-grunntall</string>
<string name="label_goal_line">Mållinje</string>
<string name="label_help">Hjelp</string>
<string name="label_feedback_message_enjoying">Setter du pris på openScale?</string>

View File

@@ -130,8 +130,6 @@
<string name="label_not_found">niet gevonden</string>
<string name="label_ignoreOutOfRange">Gegevens buiten bereik negeren</string>
<string name="label_initial_weight">Startgewicht</string>
<string name="label_regression_line">Regressiegewichtslijn</string>
<string name="label_regression_line_degree">Regressiepolynoomgraad</string>
<string name="label_goal_line">Doellijn</string>
<string name="label_help">Hulp</string>
<string name="label_feedback_message_enjoying">Gebruik je openScale graag\?</string>

View File

@@ -130,8 +130,6 @@
<string name="label_not_found">nie znaleziono</string>
<string name="label_ignoreOutOfRange">Ignoruj dane spoza zakresu</string>
<string name="label_initial_weight">Waga początkowa</string>
<string name="label_regression_line">Krzywa aproksymacji</string>
<string name="label_regression_line_degree">Stopień wielomianu aproksymacji</string>
<string name="label_goal_line">Linia celu</string>
<string name="label_help">Pomoc</string>
<string name="label_feedback_message_enjoying">Podoba Ci się openScale?</string>

View File

@@ -83,8 +83,6 @@
<string name="label_no">Não</string>
<string name="label_ok">OK</string>
<string name="label_not_found">não encontrado</string>
<string name="label_regression_line">Linha de tendência de peso</string>
<string name="label_regression_line_degree">Grau de regressão polinomial (tendência)</string>
<string name="label_reminder">Lembrete</string>
<string name="label_reminder_notify_text">Título da notificação</string>
<string name="label_reminder_time">Hora</string>

View File

@@ -140,8 +140,6 @@
<string name="label_not_found">negăsit</string>
<string name="label_ignoreOutOfRange">Ignorare a valorilor invalide</string>
<string name="label_initial_weight">Greutate inițială</string>
<string name="label_regression_line">Linie de regresie</string>
<string name="label_regression_line_degree">Gradul polinomului</string>
<string name="label_goal_line">Linie pentru obiectiv</string>
<string name="label_help">Ajutor</string>

View File

@@ -172,8 +172,6 @@
<string name="label_enable_labels">Метка данных</string>
<string name="default_value_reminder_notify_text">Пора взвеситься</string>
<string name="info_on_date">в день</string>
<string name="label_regression_line">График снижения веса</string>
<string name="label_regression_line_degree">Степень полиномиальной регрессии</string>
<string name="label_feedback_message_rate_app">Поставить оценку на Google Play или GitHub\?</string>
<string name="trisa_scale_not_paired">Эти весы не были подключены!
\n

View File

@@ -113,8 +113,6 @@
<string name="label_not_found">nenájdený</string>
<string name="label_ignoreOutOfRange">Ignorovať údaje mimo rozsah</string>
<string name="label_initial_weight">Počiatočná hmotnosť</string>
<string name="label_regression_line">Vývoj úbytku</string>
<string name="label_regression_line_degree">Stupeň polynomiálnej regresie</string>
<string name="label_goal_line">Cieľová línia</string>
<string name="error_max_scale_users">Dosiahli ste maximálny počet používateľov</string>
<string name="info_step_on_scale_for_reference">Prosím, postavte sa na váhu pre referenčné meranie</string>

View File

@@ -152,8 +152,6 @@
<string name="label_not_found">nič ni bilo najdeno</string>
<string name="label_ignoreOutOfRange">Ignoriraj vrednosti zunaj meje</string>
<string name="label_initial_weight">Začetna teža</string>
<string name="label_regression_line">Regresijska krivulja teže</string>
<string name="label_regression_line_degree">Regresija polinomske stopnje</string>
<string name="label_goal_line">Ciljna krivulja</string>
<string name="label_help">Pomoč</string>

View File

@@ -119,8 +119,6 @@
<string name="label_not_found">hittades inte</string>
<string name="label_ignoreOutOfRange">Ignorera data utanför intervall</string>
<string name="label_initial_weight">Startvikt</string>
<string name="label_regression_line">Regressionslinje</string>
<string name="label_regression_line_degree">Regressions-polynom-gradtal</string>
<string name="label_goal_line">Mållinje</string>
<string name="error_max_scale_users">Max antal samtidiga våganvändare nått</string>
<string name="info_step_on_scale_for_reference">Kliv upp barfota på vågen för referensmätningar</string>

View File

@@ -119,8 +119,6 @@
<string name="label_not_found">Bulunamadı</string>
<string name="label_ignoreOutOfRange">Aralığın dışındaki verileri yoksay</string>
<string name="label_initial_weight">Başlangıç ağırlığı</string>
<string name="label_regression_line">ırlık çizgisinde gerileme</string>
<string name="label_regression_line_degree">polinom derecesinde gerileme</string>
<string name="label_goal_line">Hedef çizgisi</string>
<string name="error_max_scale_users">Ençok eşzamanlı tartı kullanıcı sayısına ulaştı</string>
<string name="info_step_on_scale_for_reference">Referans ölçümleri için lütfen tartıya çıplak ayakla çıkın</string>

View File

@@ -135,8 +135,6 @@
<string name="label_not_found">не знайдено</string>
<string name="label_ignoreOutOfRange">Ігнорувати дані за межами діапазону</string>
<string name="label_initial_weight">Початкова вага</string>
<string name="label_regression_line">Графік зниження</string>
<string name="label_regression_line_degree">Ступінь поліномінальної регресії</string>
<string name="label_goal_line">Лінія мети</string>
<string name="label_help">Допомога</string>
<string name="label_feedback_message_enjoying">До вподоби openScale\?</string>

View File

@@ -149,8 +149,6 @@
<string name="label_not_found">không tìm thấy</string>
<string name="label_ignoreOutOfRange">Bỏ qua dữ liệu ngoài phạm vi</string>
<string name="label_initial_weight">Trọng lượng ban đầu</string>
<string name="label_regression_line">Đường trọng lượng hồi quy</string>
<string name="label_regression_line_degree">Mức độ hồi quy đa thức</string>
<string name="label_goal_line">Đường thẳng mục tiêu</string>
<string name="label_help">Trợ giúp</string>

View File

@@ -128,8 +128,6 @@
<string name="label_not_found">尋找不到</string>
<string name="label_ignoreOutOfRange">忽略超出範圍的資料</string>
<string name="label_initial_weight">初始體重</string>
<string name="label_regression_line">體重回歸線</string>
<string name="label_regression_line_degree">回歸線曲度</string>
<string name="label_goal_line">目標線</string>
<string name="label_help">協助</string>
<string name="label_feedback_message_enjoying">openScale 使用愉快嗎?</string>

View File

@@ -149,8 +149,7 @@
<string name="label_not_found">not found</string>
<string name="label_ignoreOutOfRange">Ignore out of range data</string>
<string name="label_initial_weight">Initial weight</string>
<string name="label_regression_line">Regression line</string>
<string name="label_regression_line_degree">Regression polynomial degree</string>
<string name="label_trend_line">Trend line</string>
<string name="label_goal_line">Goal line</string>
<string name="label_help">Help</string>
<string name="label_feedback_message_enjoying">Enjoying openScale?</string>

View File

@@ -25,14 +25,9 @@
android:summaryOn="@string/info_is_visible"
android:title="@string/label_goal_line" />
<CheckBoxPreference
android:defaultValue="false"
android:key="regressionLine"
android:defaultValue="true"
android:key="trendLine"
android:summaryOff="@string/info_is_not_visible"
android:summaryOn="@string/info_is_visible"
android:title="@string/label_regression_line" />
<EditTextPreference
android:defaultValue="1"
android:dependency="regressionLine"
android:key="regressionLineOrder"
android:title="@string/label_regression_line_degree" />
android:title="@string/label_trend_line" />
</PreferenceScreen>