mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-29 19:20:36 +02:00
Move setting of measurement order to preferences
This commit is contained in:
@@ -59,7 +59,6 @@ import com.health.openscale.gui.fragments.OverviewFragment;
|
|||||||
import com.health.openscale.gui.fragments.StatisticsFragment;
|
import com.health.openscale.gui.fragments.StatisticsFragment;
|
||||||
import com.health.openscale.gui.fragments.TableFragment;
|
import com.health.openscale.gui.fragments.TableFragment;
|
||||||
import com.health.openscale.gui.utils.PermissionHelper;
|
import com.health.openscale.gui.utils.PermissionHelper;
|
||||||
import com.health.openscale.gui.views.MeasurementView;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
@@ -204,7 +203,7 @@ public class MainActivity extends AppCompatActivity
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
if (settingsActivityRunning || key == MeasurementView.PREF_MEASUREMENT_ORDER) {
|
if (settingsActivityRunning) {
|
||||||
recreate();
|
recreate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -20,18 +20,15 @@ import android.content.Context;
|
|||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.Point;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.v4.graphics.drawable.DrawableCompat;
|
import android.support.v4.graphics.drawable.DrawableCompat;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.view.DragEvent;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.MotionEvent;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
@@ -130,16 +127,6 @@ public class DataEntryActivity extends AppCompatActivity {
|
|||||||
: MeasurementView.MeasurementViewMode.VIEW;
|
: MeasurementView.MeasurementViewMode.VIEW;
|
||||||
for (MeasurementView measurement : dataEntryMeasurements) {
|
for (MeasurementView measurement : dataEntryMeasurements) {
|
||||||
measurement.setEditMode(mode);
|
measurement.setEditMode(mode);
|
||||||
|
|
||||||
// Date and time can not be reordered (as they can be both first and last)
|
|
||||||
if (measurement instanceof DateMeasurementView || measurement instanceof TimeMeasurementView) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
onLongClickListener longClickListener = new onLongClickListener();
|
|
||||||
measurement.setOnTouchListener(longClickListener);
|
|
||||||
measurement.setOnLongClickListener(longClickListener);
|
|
||||||
measurement.setOnDragListener(new onDragListener());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateOnView();
|
updateOnView();
|
||||||
@@ -469,97 +456,4 @@ public class DataEntryActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class onLongClickListener implements View.OnTouchListener, View.OnLongClickListener {
|
|
||||||
float x = 0;
|
|
||||||
float y = 0;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onTouch(View view, MotionEvent event) {
|
|
||||||
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
|
||||||
// Save x and y so that the drag shadow can have the touch point set to where
|
|
||||||
// the user did the touch (and not in the center of the view).
|
|
||||||
x = event.getX();
|
|
||||||
y = event.getY();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onLongClick(View view) {
|
|
||||||
return view.startDrag(null, new dragShadowBuilder(view), view, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private class dragShadowBuilder extends View.DragShadowBuilder {
|
|
||||||
public dragShadowBuilder(View view) {
|
|
||||||
super(view);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onProvideShadowMetrics(Point outShadowSize, Point outShadowTouchPoint) {
|
|
||||||
super.onProvideShadowMetrics(outShadowSize, outShadowTouchPoint);
|
|
||||||
outShadowTouchPoint.set(Math.round(x), Math.round(y));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class onDragListener implements View.OnDragListener {
|
|
||||||
Drawable background = null;
|
|
||||||
// background may be set to null, thus the extra boolean
|
|
||||||
boolean hasBackground = false;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onDrag(View view, DragEvent event) {
|
|
||||||
switch (event.getAction()) {
|
|
||||||
case DragEvent.ACTION_DRAG_STARTED:
|
|
||||||
if (view == event.getLocalState() && !hasBackground) {
|
|
||||||
background = view.getBackground();
|
|
||||||
hasBackground = true;
|
|
||||||
view.setBackgroundColor(Color.GRAY);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DragEvent.ACTION_DRAG_LOCATION:
|
|
||||||
// Ignore
|
|
||||||
break;
|
|
||||||
case DragEvent.ACTION_DRAG_ENTERED:
|
|
||||||
if (view != event.getLocalState()) {
|
|
||||||
background = view.getBackground();
|
|
||||||
hasBackground = true;
|
|
||||||
view.setBackgroundColor(Color.LTGRAY);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DragEvent.ACTION_DRAG_EXITED:
|
|
||||||
if (view != event.getLocalState() && hasBackground) {
|
|
||||||
view.setBackground(background);
|
|
||||||
background = null;
|
|
||||||
hasBackground = false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DragEvent.ACTION_DROP:
|
|
||||||
MeasurementView draggedView = (MeasurementView) event.getLocalState();
|
|
||||||
TableLayout table = (TableLayout) draggedView.getParent();
|
|
||||||
final int draggedIndex = table.indexOfChild(draggedView);
|
|
||||||
final int targetIndex = table.indexOfChild(view);
|
|
||||||
if (draggedIndex != targetIndex) {
|
|
||||||
// A view that is moved down is placed after the target view,
|
|
||||||
// and a view that is moved up is placed before the target view.
|
|
||||||
table.removeView(draggedView);
|
|
||||||
table.addView(draggedView, targetIndex);
|
|
||||||
dataEntryMeasurements.remove(draggedView);
|
|
||||||
dataEntryMeasurements.add(targetIndex, draggedView);
|
|
||||||
MeasurementView.saveMeasurementViewsOrder(getApplicationContext(), dataEntryMeasurements);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DragEvent.ACTION_DRAG_ENDED:
|
|
||||||
if (hasBackground) {
|
|
||||||
// Restore background
|
|
||||||
view.setBackground(background);
|
|
||||||
background = null;
|
|
||||||
hasBackground = false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -16,17 +16,27 @@
|
|||||||
package com.health.openscale.gui.preferences;
|
package com.health.openscale.gui.preferences;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.Point;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.EditTextPreference;
|
import android.preference.EditTextPreference;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.MultiSelectListPreference;
|
import android.preference.MultiSelectListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
|
import android.preference.PreferenceCategory;
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
import android.preference.PreferenceGroup;
|
import android.preference.PreferenceGroup;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
import android.preference.PreferenceScreen;
|
||||||
import android.preference.SwitchPreference;
|
import android.preference.SwitchPreference;
|
||||||
|
import android.view.DragEvent;
|
||||||
|
import android.view.MotionEvent;
|
||||||
|
import android.view.View;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.health.openscale.R;
|
import com.health.openscale.R;
|
||||||
@@ -34,6 +44,7 @@ import com.health.openscale.core.OpenScale;
|
|||||||
import com.health.openscale.core.bodymetric.EstimatedFatMetric;
|
import com.health.openscale.core.bodymetric.EstimatedFatMetric;
|
||||||
import com.health.openscale.core.bodymetric.EstimatedLBWMetric;
|
import com.health.openscale.core.bodymetric.EstimatedLBWMetric;
|
||||||
import com.health.openscale.core.bodymetric.EstimatedWaterMetric;
|
import com.health.openscale.core.bodymetric.EstimatedWaterMetric;
|
||||||
|
import com.health.openscale.gui.views.MeasurementView;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -56,6 +67,9 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
|||||||
|
|
||||||
private Preference deleteAll;
|
private Preference deleteAll;
|
||||||
|
|
||||||
|
private PreferenceScreen measurementOrderScreen;
|
||||||
|
private PreferenceCategory measurementOrderCategory;
|
||||||
|
|
||||||
private CheckBoxPreference fatEnable;
|
private CheckBoxPreference fatEnable;
|
||||||
private SwitchPreference fatPercentageEnable;
|
private SwitchPreference fatPercentageEnable;
|
||||||
private CheckBoxPreference waterEnable;
|
private CheckBoxPreference waterEnable;
|
||||||
@@ -79,6 +93,30 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
|||||||
deleteAll = (Preference) findPreference(PREFERENCE_KEY_DELETE_ALL);
|
deleteAll = (Preference) findPreference(PREFERENCE_KEY_DELETE_ALL);
|
||||||
deleteAll.setOnPreferenceClickListener(new onClickListenerDeleteAll());
|
deleteAll.setOnPreferenceClickListener(new onClickListenerDeleteAll());
|
||||||
|
|
||||||
|
final Context context = getActivity().getApplicationContext();
|
||||||
|
measurementOrderScreen = (PreferenceScreen) findPreference(MeasurementView.PREF_MEASUREMENT_ORDER);
|
||||||
|
|
||||||
|
measurementOrderCategory = new PreferenceCategory(context);
|
||||||
|
measurementOrderCategory.setTitle(R.string.label_press_hold_reorder);
|
||||||
|
measurementOrderCategory.setOrderingAsAdded(true);
|
||||||
|
|
||||||
|
Preference resetOrder = new Preference(context);
|
||||||
|
resetOrder.setTitle(R.string.label_set_default_order);
|
||||||
|
resetOrder.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(context).edit()
|
||||||
|
.remove(MeasurementView.PREF_MEASUREMENT_ORDER).commit();
|
||||||
|
measurementOrderCategory.removeAll();
|
||||||
|
updateMeasurementOrderScreen(context, measurementOrderCategory);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
measurementOrderScreen.addPreference(resetOrder);
|
||||||
|
measurementOrderScreen.addPreference(measurementOrderCategory);
|
||||||
|
|
||||||
|
updateMeasurementOrderScreen(context, measurementOrderCategory);
|
||||||
|
|
||||||
estimateWaterEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_ESTIMATE_WATER);
|
estimateWaterEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_ESTIMATE_WATER);
|
||||||
estimateWaterFormula = (ListPreference) findPreference(PREFERENCE_KEY_ESTIMATE_WATER_FORMULA);
|
estimateWaterFormula = (ListPreference) findPreference(PREFERENCE_KEY_ESTIMATE_WATER_FORMULA);
|
||||||
estimateLBWEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_ESTIMATE_LBW);
|
estimateLBWEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_ESTIMATE_LBW);
|
||||||
@@ -100,6 +138,17 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
|||||||
initSummary(getPreferenceScreen());
|
initSummary(getPreferenceScreen());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateMeasurementOrderScreen(Context context, PreferenceCategory category) {
|
||||||
|
List<MeasurementView> measurementViews = MeasurementView.getMeasurementList(
|
||||||
|
context, MeasurementView.DateTimeOrder.NONE);
|
||||||
|
for (MeasurementView measurement : measurementViews) {
|
||||||
|
Preference preference = new MeasurementOrderPreference(context, category, measurement);
|
||||||
|
preference.setShouldDisableView(true);
|
||||||
|
preference.setEnabled(measurement.isVisible());
|
||||||
|
category.addPreference(preference);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void updateWaterListPreferences() {
|
public void updateWaterListPreferences() {
|
||||||
ArrayList<String> listEntries = new ArrayList();
|
ArrayList<String> listEntries = new ArrayList();
|
||||||
ArrayList<String> listEntryValues = new ArrayList();
|
ArrayList<String> listEntryValues = new ArrayList();
|
||||||
@@ -167,6 +216,10 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
|||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
updatePrefSummary(findPreference(key));
|
updatePrefSummary(findPreference(key));
|
||||||
|
if (!key.equals(MeasurementView.PREF_MEASUREMENT_ORDER)) {
|
||||||
|
measurementOrderCategory.removeAll();
|
||||||
|
updateMeasurementOrderScreen(getContext(), measurementOrderCategory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePrefSummary(Preference p) {
|
private void updatePrefSummary(Preference p) {
|
||||||
@@ -266,4 +319,154 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class MeasurementOrderPreference extends Preference {
|
||||||
|
PreferenceGroup parentGroup;
|
||||||
|
MeasurementView measurement;
|
||||||
|
View boundView;
|
||||||
|
|
||||||
|
MeasurementOrderPreference(Context context, PreferenceGroup parent, MeasurementView measurementView) {
|
||||||
|
super(context);
|
||||||
|
parentGroup = parent;
|
||||||
|
measurement = measurementView;
|
||||||
|
setIcon(measurement.getIcon());
|
||||||
|
setTitle(measurement.getNameText());
|
||||||
|
}
|
||||||
|
|
||||||
|
public PreferenceGroup getParent() {
|
||||||
|
return parentGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onBindView(View view) {
|
||||||
|
super.onBindView(view);
|
||||||
|
boundView = view;
|
||||||
|
|
||||||
|
onTouchClickListener touchClickListener = new onTouchClickListener(this);
|
||||||
|
view.setOnTouchListener(touchClickListener);
|
||||||
|
view.setOnLongClickListener(touchClickListener);
|
||||||
|
view.setOnDragListener(new onDragListener());
|
||||||
|
}
|
||||||
|
|
||||||
|
private class onTouchClickListener implements View.OnTouchListener, View.OnLongClickListener {
|
||||||
|
MeasurementOrderPreference preference;
|
||||||
|
int x = 0;
|
||||||
|
int y = 0;
|
||||||
|
|
||||||
|
onTouchClickListener(MeasurementOrderPreference pref) {
|
||||||
|
preference = pref;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View view, MotionEvent event) {
|
||||||
|
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
||||||
|
x = Math.round(event.getX());
|
||||||
|
y = Math.round(event.getY());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onLongClick(View view) {
|
||||||
|
return view.startDrag(null, new dragShadowBuilder(view), preference, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class dragShadowBuilder extends View.DragShadowBuilder {
|
||||||
|
public dragShadowBuilder(View view) {
|
||||||
|
super(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProvideShadowMetrics(Point outShadowSize, Point outShadowTouchPoint) {
|
||||||
|
super.onProvideShadowMetrics(outShadowSize, outShadowTouchPoint);
|
||||||
|
outShadowTouchPoint.set(x, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class onDragListener implements View.OnDragListener {
|
||||||
|
Drawable background = null;
|
||||||
|
// background may be set to null, thus the extra boolean
|
||||||
|
boolean hasBackground = false;
|
||||||
|
|
||||||
|
private MeasurementOrderPreference castLocalState(DragEvent event) {
|
||||||
|
return (MeasurementOrderPreference) event.getLocalState();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isDraggedView(View view, DragEvent event) {
|
||||||
|
return castLocalState(event).boundView == view;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setTemporaryBackgroundColor(View view, int color) {
|
||||||
|
if (!hasBackground) {
|
||||||
|
background = view.getBackground();
|
||||||
|
hasBackground = true;
|
||||||
|
view.setBackgroundColor(color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void restoreBackground(View view) {
|
||||||
|
if (hasBackground) {
|
||||||
|
view.setBackground(background);
|
||||||
|
background = null;
|
||||||
|
hasBackground = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onDrag(View view, DragEvent event) {
|
||||||
|
switch (event.getAction()) {
|
||||||
|
case DragEvent.ACTION_DRAG_STARTED:
|
||||||
|
if (isDraggedView(view, event)) {
|
||||||
|
setTemporaryBackgroundColor(view, Color.GRAY);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DragEvent.ACTION_DRAG_ENTERED:
|
||||||
|
if (!isDraggedView(view, event)) {
|
||||||
|
setTemporaryBackgroundColor(view, Color.LTGRAY);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DragEvent.ACTION_DRAG_EXITED:
|
||||||
|
if (!isDraggedView(view, event)) {
|
||||||
|
restoreBackground(view);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DragEvent.ACTION_DROP:
|
||||||
|
MeasurementOrderPreference draggedPref = castLocalState(event);
|
||||||
|
PreferenceGroup group = draggedPref.getParent();
|
||||||
|
|
||||||
|
ArrayList<MeasurementOrderPreference> preferences = new ArrayList<>();
|
||||||
|
for (int i = 0; i < group.getPreferenceCount(); ++i) {
|
||||||
|
MeasurementOrderPreference pref = (MeasurementOrderPreference) group.getPreference(i);
|
||||||
|
// Add all preferences except the dragged one
|
||||||
|
if (pref != draggedPref) {
|
||||||
|
preferences.add(pref);
|
||||||
|
}
|
||||||
|
// When we find the view that is the drop target use add(index, ...).
|
||||||
|
// This will add the dragged preference before the drop if dragged upwards,
|
||||||
|
// and after if dragged downwards.
|
||||||
|
if (pref.boundView == view) {
|
||||||
|
preferences.add(i, draggedPref);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<MeasurementView> measurementViews = new ArrayList<>();
|
||||||
|
// Re-add all preferences in the new order
|
||||||
|
group.removeAll();
|
||||||
|
for (MeasurementOrderPreference p : preferences) {
|
||||||
|
p.setOrder(DEFAULT_ORDER);
|
||||||
|
group.addPreference(p);
|
||||||
|
measurementViews.add(p.measurement);
|
||||||
|
}
|
||||||
|
MeasurementView.saveMeasurementViewsOrder(getContext(), measurementViews);
|
||||||
|
break;
|
||||||
|
case DragEvent.ACTION_DRAG_ENDED:
|
||||||
|
restoreBackground(view);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -222,5 +222,8 @@
|
|||||||
<string name="permission_bluetooth_info">openScale requires permission to access the coarse location to search for Bluetooth devices</string>
|
<string name="permission_bluetooth_info">openScale requires permission to access the coarse location to search for Bluetooth devices</string>
|
||||||
<string name="permission_bluetooth_info_title">Information</string>
|
<string name="permission_bluetooth_info_title">Information</string>
|
||||||
<string name="label_next">Next</string>
|
<string name="label_next">Next</string>
|
||||||
|
<string name="label_measurement_order">Measurement order</string>
|
||||||
|
<string name="label_press_hold_reorder">Press and hold to reorder</string>
|
||||||
|
<string name="label_set_default_order">Set default order</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<PreferenceCategory android:title="@string/label_category_display">
|
<PreferenceCategory android:title="@string/label_category_display">
|
||||||
|
<PreferenceScreen android:title="@string/label_measurement_order" android:key="measurementOrder" />
|
||||||
<CheckBoxPreference android:title="@string/label_fat" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="fatEnable" android:defaultValue="true"/>
|
<CheckBoxPreference android:title="@string/label_fat" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="fatEnable" android:defaultValue="true"/>
|
||||||
<SwitchPreference android:title="@string/label_fat_percentage" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key ="fatPercentageEnable" android:defaultValue="true"/>
|
<SwitchPreference android:title="@string/label_fat_percentage" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key ="fatPercentageEnable" android:defaultValue="true"/>
|
||||||
<CheckBoxPreference android:title="@string/label_water" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="waterEnable" android:defaultValue="true"/>
|
<CheckBoxPreference android:title="@string/label_water" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="waterEnable" android:defaultValue="true"/>
|
||||||
|
Reference in New Issue
Block a user