mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-12-25 01:55:50 +01:00
Refactor preferences screen
This commit is contained in:
parent
64887a5adf
commit
b59ba76803
@ -1,250 +0,0 @@
|
||||
/* Copyright (C) 2015-2024 Andreas Shimokawa, Carsten Pfeiffer, Christian
|
||||
Fischer, Daniele Gobbetti, José Rebelo, Lem Dulfo, Petr Vaněk, Taavi Eomäe
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.activities;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Bundle;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.text.InputType;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.core.app.NavUtils;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceManager;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.AndroidUtils;
|
||||
|
||||
/**
|
||||
* A settings activity with support for preferences directly displaying their value.
|
||||
* If you combine such preferences with a custom OnPreferenceChangeListener, you have
|
||||
* to set that listener in #onCreate, *not* in #onPostCreate, otherwise the value will
|
||||
* not be displayed.
|
||||
*
|
||||
* @deprecated use AbstractSettingsActivityV2
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract class AbstractSettingsActivity extends AppCompatPreferenceActivity implements GBActivity {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(AbstractSettingsActivity.class);
|
||||
|
||||
private boolean isLanguageInvalid = false;
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
switch (action) {
|
||||
case GBApplication.ACTION_LANGUAGE_CHANGE:
|
||||
setLanguage(GBApplication.getLanguage(), true);
|
||||
break;
|
||||
case GBApplication.ACTION_QUIT:
|
||||
finish();
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* A preference value change listener that updates the preference's summary
|
||||
* to reflect its new value.
|
||||
*/
|
||||
private static class SimpleSetSummaryOnChangeListener implements Preference.OnPreferenceChangeListener {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||
if (preference instanceof EditTextPreference) {
|
||||
if ((((EditTextPreference) preference).getEditText().getKeyListener().getInputType() & InputType.TYPE_CLASS_NUMBER) != 0) {
|
||||
if ("".equals(String.valueOf(value))) {
|
||||
// reject empty numeric input
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
updateSummary(preference, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void updateSummary(Preference preference, Object value) {
|
||||
String stringValue = String.valueOf(value);
|
||||
|
||||
if (preference instanceof ListPreference) {
|
||||
// For list preferences, look up the correct display value in
|
||||
// the preference's 'entries' list.
|
||||
ListPreference listPreference = (ListPreference) preference;
|
||||
int index = listPreference.findIndexOfValue(stringValue);
|
||||
|
||||
// Set the summary to reflect the new value.
|
||||
preference.setSummary(
|
||||
index >= 0
|
||||
? listPreference.getEntries()[index]
|
||||
: null);
|
||||
|
||||
} else {
|
||||
// For all other preferences, set the summary to the value's
|
||||
// simple string representation.
|
||||
preference.setSummary(stringValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class ExtraSetSummaryOnChangeListener extends SimpleSetSummaryOnChangeListener {
|
||||
private final Preference.OnPreferenceChangeListener prefChangeListener;
|
||||
|
||||
public ExtraSetSummaryOnChangeListener(Preference.OnPreferenceChangeListener prefChangeListener) {
|
||||
this.prefChangeListener = prefChangeListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||
boolean result = prefChangeListener.onPreferenceChange(preference, value);
|
||||
if (result) {
|
||||
return super.onPreferenceChange(preference, value);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static final SimpleSetSummaryOnChangeListener sBindPreferenceSummaryToValueListener = new SimpleSetSummaryOnChangeListener();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
AbstractGBActivity.init(this);
|
||||
|
||||
IntentFilter filterLocal = new IntentFilter();
|
||||
filterLocal.addAction(GBApplication.ACTION_QUIT);
|
||||
filterLocal.addAction(GBApplication.ACTION_LANGUAGE_CHANGE);
|
||||
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, filterLocal);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
|
||||
for (String prefKey : getPreferenceKeysWithSummary()) {
|
||||
final Preference pref = findPreference(prefKey);
|
||||
if (pref != null) {
|
||||
bindPreferenceSummaryToValue(pref);
|
||||
} else {
|
||||
LOG.error("Unknown preference key: " + prefKey + ", unable to display value.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (isLanguageInvalid) {
|
||||
isLanguageInvalid = false;
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclasses should reimplement this to return the keys of those
|
||||
* preferences which should print its values as a summary below the
|
||||
* preference name.
|
||||
*/
|
||||
protected String[] getPreferenceKeysWithSummary() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Binds a preference's summary to its value. More specifically, when the
|
||||
* preference's value is changed, its summary (line of text below the
|
||||
* preference title) is updated to reflect the value. The summary is also
|
||||
* immediately updated upon calling this method. The exact display format is
|
||||
* dependent on the type of preference.
|
||||
*
|
||||
* @see #sBindPreferenceSummaryToValueListener
|
||||
*/
|
||||
private static void bindPreferenceSummaryToValue(Preference preference) {
|
||||
// Set the listener to watch for value changes.
|
||||
SimpleSetSummaryOnChangeListener listener;
|
||||
Preference.OnPreferenceChangeListener existingListener = preference.getOnPreferenceChangeListener();
|
||||
if (existingListener != null) {
|
||||
listener = new ExtraSetSummaryOnChangeListener(existingListener);
|
||||
} else {
|
||||
listener = sBindPreferenceSummaryToValueListener;
|
||||
}
|
||||
preference.setOnPreferenceChangeListener(listener);
|
||||
|
||||
// Trigger the listener immediately with the preference's current value.
|
||||
try {
|
||||
listener.updateSummary(preference,
|
||||
PreferenceManager
|
||||
.getDefaultSharedPreferences(preference.getContext())
|
||||
.getString(preference.getKey(), ""));
|
||||
} catch (ClassCastException cce) {
|
||||
//the preference is not a string, use the provided summary
|
||||
//TODO: it shows true/false instead of the xml summary
|
||||
listener.updateSummary(preference, preference.getSummary());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(final MenuItem item) {
|
||||
final int itemId = item.getItemId();
|
||||
if (itemId == android.R.id.home) {
|
||||
NavUtils.navigateUpFromSameTask(this);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public void setLanguage(Locale language, boolean invalidateLanguage) {
|
||||
if (invalidateLanguage) {
|
||||
isLanguageInvalid = true;
|
||||
}
|
||||
AndroidUtils.setLanguage(this, language);
|
||||
}
|
||||
|
||||
protected void addPreferenceHandlerFor(final String preferenceKey) {
|
||||
Preference pref = findPreference(preferenceKey);
|
||||
if (pref != null) {
|
||||
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
GBApplication.deviceService().onSendConfiguration(preferenceKey);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
LOG.warn("Could not find preference " + preferenceKey);
|
||||
}
|
||||
}
|
||||
}
|
@ -412,10 +412,6 @@ public class ControlCenterv2 extends AppCompatActivity
|
||||
final Intent dbIntent = new Intent(this, DataManagementActivity.class);
|
||||
startActivity(dbIntent);
|
||||
return false;
|
||||
} else if (itemId == R.id.action_notification_management) {
|
||||
final Intent blIntent = new Intent(this, NotificationManagementActivity.class);
|
||||
startActivity(blIntent);
|
||||
return false;
|
||||
} else if (itemId == R.id.device_action_discover) {
|
||||
launchDiscoveryActivity();
|
||||
return false;
|
||||
|
@ -22,7 +22,6 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
@ -36,7 +35,6 @@ import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
|
||||
public class NotificationManagementActivity extends AbstractSettingsActivityV2 {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(NotificationManagementActivity.class);
|
||||
private static final int RINGTONE_REQUEST_CODE = 4712;
|
||||
private static final String DEFAULT_RINGTONE_URI = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE).toString();
|
||||
|
||||
@ -51,6 +49,8 @@ public class NotificationManagementActivity extends AbstractSettingsActivityV2 {
|
||||
}
|
||||
|
||||
public static class NotificationPreferencesFragment extends AbstractPreferenceFragment {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(NotificationPreferencesFragment.class);
|
||||
|
||||
static final String FRAGMENT_TAG = "NOTIFICATION_PREFERENCES_FRAGMENT";
|
||||
|
||||
@Override
|
||||
|
@ -381,6 +381,15 @@ public class SettingsActivity extends AbstractSettingsActivityV2 {
|
||||
});
|
||||
}
|
||||
|
||||
pref = findPreference("pref_category_notifications");
|
||||
if (pref != null) {
|
||||
pref.setOnPreferenceClickListener(preference -> {
|
||||
Intent enableIntent = new Intent(requireContext(), NotificationManagementActivity.class);
|
||||
startActivity(enableIntent);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
final Preference theme = findPreference("pref_key_theme");
|
||||
final Preference amoled_black = findPreference("pref_key_theme_amoled_black");
|
||||
|
||||
@ -558,7 +567,7 @@ public class SettingsActivity extends AbstractSettingsActivityV2 {
|
||||
private void setLocationPreferences(Location location) {
|
||||
String latitude = String.format(Locale.US, "%.6g", location.getLatitude());
|
||||
String longitude = String.format(Locale.US, "%.6g", location.getLongitude());
|
||||
LOG.info("got location. Lat: " + latitude + " Lng: " + longitude);
|
||||
LOG.info("got location. Lat: {} Lng: {}", latitude, longitude);
|
||||
GB.toast(requireContext(), getString(R.string.toast_aqurired_networklocation), 2000, 0);
|
||||
GBApplication.getPrefs().getPreferences()
|
||||
.edit()
|
||||
|
@ -20,16 +20,25 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import com.mobeta.android.dslv.DragSortListPreference;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.AboutUserPreferencesActivity;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractPreferenceFragment;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractSettingsActivityV2;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.preferences.DevicePrefs;
|
||||
|
||||
public class ChartsPreferencesActivity extends AbstractSettingsActivityV2 {
|
||||
private GBDevice device;
|
||||
|
||||
@Override
|
||||
protected String fragmentTag() {
|
||||
return ChartsPreferencesFragment.FRAGMENT_TAG;
|
||||
@ -37,16 +46,63 @@ public class ChartsPreferencesActivity extends AbstractSettingsActivityV2 {
|
||||
|
||||
@Override
|
||||
protected PreferenceFragmentCompat newFragment() {
|
||||
return new ChartsPreferencesFragment();
|
||||
return ChartsPreferencesFragment.newInstance(device);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
device = getIntent().getParcelableExtra(GBDevice.EXTRA_DEVICE);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
public static class ChartsPreferencesFragment extends AbstractPreferenceFragment {
|
||||
static final String FRAGMENT_TAG = "CHARTS_PREFERENCES_FRAGMENT";
|
||||
|
||||
private GBDevice device;
|
||||
|
||||
static ChartsPreferencesFragment newInstance(final GBDevice device) {
|
||||
final ChartsPreferencesFragment fragment = new ChartsPreferencesFragment();
|
||||
fragment.setDevice(device);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
private void setDevice(final GBDevice device) {
|
||||
final Bundle args = getArguments() != null ? getArguments() : new Bundle();
|
||||
args.putParcelable("device", device);
|
||||
setArguments(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
|
||||
final Bundle arguments = getArguments();
|
||||
if (arguments != null) {
|
||||
this.device = arguments.getParcelable(GBDevice.EXTRA_DEVICE);
|
||||
}
|
||||
|
||||
setPreferencesFromResource(R.xml.charts_preferences, rootKey);
|
||||
|
||||
// If a device was provided, show the charts tabs preference, since that's the only one
|
||||
// that is device-specific for now. We also sync changes to the device-specific preference.
|
||||
//final DragSortListPreference prefChartsTabs = findPreference(DeviceSettingsPreferenceConst.PREFS_DEVICE_CHARTS_TABS);
|
||||
//if (prefChartsTabs != null) {
|
||||
// if (device != null) {
|
||||
// final DevicePrefs devicePrefs = GBApplication.getDevicePrefs(device.getAddress());
|
||||
// final String myTabs = devicePrefs.getString(DeviceSettingsPreferenceConst.PREFS_DEVICE_CHARTS_TABS, null);
|
||||
// if (myTabs != null) {
|
||||
// prefChartsTabs.setValue(myTabs);
|
||||
// }
|
||||
// prefChartsTabs.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
// devicePrefs.getPreferences().edit()
|
||||
// .putString(DeviceSettingsPreferenceConst.PREFS_DEVICE_CHARTS_TABS, String.valueOf(newValue))
|
||||
// .apply();
|
||||
// return true;
|
||||
// });
|
||||
// } else {
|
||||
// prefChartsTabs.setVisible(false);
|
||||
// }
|
||||
//}
|
||||
|
||||
setInputTypeFor(GBPrefs.CHART_MAX_HEART_RATE, InputType.TYPE_CLASS_NUMBER);
|
||||
setInputTypeFor(GBPrefs.CHART_MIN_HEART_RATE, InputType.TYPE_CLASS_NUMBER);
|
||||
setInputTypeFor("chart_sleep_lines_limit", InputType.TYPE_CLASS_NUMBER);
|
||||
@ -57,11 +113,18 @@ public class ChartsPreferencesActivity extends AbstractSettingsActivityV2 {
|
||||
|
||||
final Preference aboutUserPref = findPreference("pref_category_activity_personal");
|
||||
if (aboutUserPref != null) {
|
||||
aboutUserPref.setOnPreferenceClickListener(preference -> {
|
||||
final Intent enableIntent = new Intent(getActivity(), AboutUserPreferencesActivity.class);
|
||||
startActivity(enableIntent);
|
||||
return true;
|
||||
});
|
||||
if (device != null) {
|
||||
aboutUserPref.setOnPreferenceClickListener(preference -> {
|
||||
final Intent enableIntent = new Intent(getActivity(), AboutUserPreferencesActivity.class);
|
||||
startActivity(enableIntent);
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
final Preference aboutUserHeader = findPreference("pref_category_activity_personal_title");
|
||||
if (aboutUserHeader != null) {
|
||||
aboutUserHeader.setVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
12
app/src/main/res/drawable/ic_navigation.xml
Normal file
12
app/src/main/res/drawable/ic_navigation.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="#7E7E7E"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2L4.5,20.29l0.71,0.71L12,18l6.79,3 0.71,-0.71z" />
|
||||
|
||||
</vector>
|
12
app/src/main/res/drawable/ic_paint.xml
Normal file
12
app/src/main/res/drawable/ic_paint.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="#7E7E7E"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M18,4V3c0,-0.55 -0.45,-1 -1,-1H5c-0.55,0 -1,0.45 -1,1v4c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1V6h1v4H9v11c0,0.55 0.45,1 1,1h2c0.55,0 1,-0.45 1,-1v-9h8V4h-3z" />
|
||||
|
||||
</vector>
|
12
app/src/main/res/drawable/ic_report.xml
Normal file
12
app/src/main/res/drawable/ic_report.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="#7E7E7E"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M15.73,3L8.27,3L3,8.27v7.46L8.27,21h7.46L21,15.73L21,8.27L15.73,3zM12,17.3c-0.72,0 -1.3,-0.58 -1.3,-1.3 0,-0.72 0.58,-1.3 1.3,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3zM13,13h-2L11,7h2v6z" />
|
||||
|
||||
</vector>
|
@ -13,9 +13,6 @@
|
||||
<item android:id="@+id/action_data_management"
|
||||
android:title="@string/action_db_management"
|
||||
android:icon="@drawable/ic_pageview" />
|
||||
<item android:id="@+id/action_notification_management"
|
||||
android:title="@string/title_activity_notification_management"
|
||||
android:icon="@drawable/ic_notifications" />
|
||||
<item android:id="@+id/device_action_discover"
|
||||
android:title="@string/action_discover"
|
||||
android:iconTint="#7E7E7E"
|
||||
|
@ -217,10 +217,22 @@
|
||||
<string name="pref_title_mb_intents">Broadcast Media Button Intents Directly</string>
|
||||
<string name="pref_summary_mb_intents">Enable if device media control is not working for certain applications</string>
|
||||
<string name="pref_title_audio_player">Preferred Audioplayer</string>
|
||||
<string name="pref_title_nagivation_apps">Navigation apps</string>
|
||||
<string name="pref_header_external_integrations">External Integrations</string>
|
||||
<string name="pref_header_automations">Automations</string>
|
||||
<string name="pref_description_general">Startup, language, region, location</string>
|
||||
<string name="pref_description_about_you">Date of birth, gender, height, weight, goals</string>
|
||||
<string name="pref_description_notifications">App notifications, whitelist/blacklist</string>
|
||||
<string name="pref_description_user_interface">Theme, main screen</string>
|
||||
<string name="pref_description_dashboard">Widgets, devices to include</string>
|
||||
<string name="pref_description_automations">Auto export, auto fetch</string>
|
||||
<string name="pref_description_developer_options">Logs, Intent API</string>
|
||||
<string name="pref_description_deprecated_functionalities">Settings that will be removed in a future version</string>
|
||||
<string name="pref_default">Default</string>
|
||||
<string name="pref_header_datetime">Date and Time</string>
|
||||
<string name="pref_title_datetime_syctimeonconnect">Sync time</string>
|
||||
<string name="pref_summary_datetime_syctimeonconnect">Sync time to Gadgetbridge device(s) when connecting, when time or time zone changes on Android device, and periodically</string>
|
||||
<string name="pref_header_main_screen">Main screen</string>
|
||||
<string name="pref_title_theme">Theme</string>
|
||||
<string name="pref_theme_light">Light</string>
|
||||
<string name="pref_theme_dark">Dark</string>
|
||||
@ -232,6 +244,7 @@
|
||||
<string name="pref_summary_minimize_priority_off">The icon in the status bar and the notification in the lockscreen are shown</string>
|
||||
<string name="pref_summary_minimize_priority_on">The icon in the status bar and the notification in the lockscreen are hidden</string>
|
||||
<string name="pref_header_notifications">Notifications</string>
|
||||
<string name="pref_title_user_interface">User interface</string>
|
||||
<string name="pref_title_notifications_repetitions">Repetitions</string>
|
||||
<string name="pref_title_notifications_call">Phone Calls</string>
|
||||
<string name="pref_title_notification_delay_calls">Call notification delay</string>
|
||||
|
@ -1,6 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<!-- this only shows up when a device is set
|
||||
<com.mobeta.android.dslv.DragSortListPreference
|
||||
android:icon="@drawable/ic_tabs"
|
||||
android:defaultValue="@array/pref_charts_tabs_items_default"
|
||||
android:dialogTitle="@string/prefs_charts_tabs"
|
||||
android:entries="@array/pref_charts_tabs_items"
|
||||
android:entryValues="@array/pref_charts_tabs_values"
|
||||
android:key="charts_tabs"
|
||||
android:persistent="false"
|
||||
android:summary="@string/prefs_charts_tabs_summary"
|
||||
android:title="@string/prefs_charts_tabs" />-->
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_charts"
|
||||
android:title="@string/activity_prefs_charts"
|
||||
|
@ -2,83 +2,44 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:iconSpaceReserved="false">
|
||||
<PreferenceCategory
|
||||
android:key="pref_key_general"
|
||||
android:title="@string/pref_header_general"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_settings"
|
||||
android:key="pref_screen_general"
|
||||
android:summary="@string/pref_description_general"
|
||||
android:title="@string/pref_header_general">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="general_autostartonboot"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:title="@string/pref_title_general_autostartonboot"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="show_changelog"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_show_changelog_summary"
|
||||
android:title="@string/pref_show_changelog"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="general_autoconnectonbluetooth"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:title="@string/pref_title_general_autoconnectonbluetooth"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="general_reconnectonlytoconnected"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:title="@string/pref_title_general_reconnectonlytoconnected"
|
||||
android:summary="@string/pref_summary_general_reconnectonlytoconnected"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="display_add_device_fab"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summaryOff="@string/pref_display_add_device_fab_off"
|
||||
android:summaryOn="@string/pref_display_add_device_fab_on"
|
||||
android:title="@string/pref_display_add_device_fab"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="display_bottom_navigation_bar"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summaryOff="@string/pref_summary_bottom_navigation_bar_off"
|
||||
android:summaryOn="@string/pref_summary_bottom_navigation_bar_on"
|
||||
android:title="@string/pref_title_bottom_navigation_bar"
|
||||
android:title="@string/pref_title_general_reconnectonlytoconnected"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<Preference
|
||||
android:key="pref_category_dashboard"
|
||||
android:title="@string/bottom_nav_dashboard"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<Preference
|
||||
android:key="pref_category_sleepasandroid"
|
||||
android:title="@string/sleepasandroid_settings"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="pref_screen_theme"
|
||||
android:title="@string/pref_title_theme"
|
||||
app:iconSpaceReserved="false">
|
||||
<ListPreference
|
||||
android:defaultValue="@string/pref_theme_value_light"
|
||||
android:entries="@array/pref_theme_options"
|
||||
android:entryValues="@array/pref_theme_values"
|
||||
android:key="pref_key_theme"
|
||||
android:summary="%s"
|
||||
android:title="@string/pref_title_theme"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="pref_key_theme_amoled_black"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:title="@string/pref_theme_black_background"
|
||||
app:iconSpaceReserved="false" />
|
||||
<Preference
|
||||
android:enabled="false"
|
||||
android:selectable="false"
|
||||
android:singleLineTitle="false"
|
||||
android:title="@string/pref_theme_dynamic_colors_explanation"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceScreen>
|
||||
|
||||
<PreferenceScreen
|
||||
<PreferenceCategory
|
||||
android:key="language_category"
|
||||
android:title="@string/language_and_region_prefs"
|
||||
app:iconSpaceReserved="false">
|
||||
@ -125,90 +86,199 @@
|
||||
android:title="@string/pref_rtl_max_line_length"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceScreen>
|
||||
</PreferenceScreen>
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="pref_screen_weather"
|
||||
android:summary="@string/pref_title_weather_summary"
|
||||
android:title="@string/pref_title_weather"
|
||||
<PreferenceCategory
|
||||
android:key="pref_key_datetime"
|
||||
android:title="@string/pref_header_datetime"
|
||||
app:iconSpaceReserved="false">
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="datetime_synconconnect"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_summary_datetime_syctimeonconnect"
|
||||
android:title="@string/pref_title_datetime_syctimeonconnect"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_location"
|
||||
app:iconSpaceReserved="false">
|
||||
<Preference
|
||||
android:key="location_aquire"
|
||||
android:title="@string/pref_title_location_aquire"
|
||||
app:iconSpaceReserved="false" />
|
||||
<EditTextPreference
|
||||
android:inputType="text"
|
||||
android:key="weather_city"
|
||||
android:title="@string/pref_title_weather_location"
|
||||
android:defaultValue="0"
|
||||
android:inputType="numberDecimal|numberSigned"
|
||||
android:key="location_latitude"
|
||||
android:maxLength="7"
|
||||
android:title="@string/pref_title_location_latitude"
|
||||
app:iconSpaceReserved="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceScreen>
|
||||
|
||||
</PreferenceCategory>
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:inputType="numberDecimal|numberSigned"
|
||||
android:key="location_longitude"
|
||||
android:maxLength="7"
|
||||
android:title="@string/pref_title_location_longitude"
|
||||
app:iconSpaceReserved="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:dependency="location_aquire"
|
||||
android:key="use_updated_location_if_available"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_summary_location_keep_uptodate"
|
||||
android:title="@string/pref_title_location_keep_uptodate"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_person"
|
||||
android:key="pref_category_activity_personal"
|
||||
android:summary="@string/pref_description_about_you"
|
||||
android:title="@string/activity_prefs_about_you"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_notifications"
|
||||
android:key="pref_category_notifications"
|
||||
android:summary="@string/pref_description_notifications"
|
||||
android:title="@string/pref_header_notifications"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_paint"
|
||||
android:key="pref_screen_user_interface"
|
||||
android:summary="@string/pref_description_user_interface"
|
||||
android:title="@string/pref_title_user_interface">
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_theme_dynamic_colors_explanation"
|
||||
android:title="@string/pref_theme_dynamic_colors_explanation"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="@string/pref_theme_value_light"
|
||||
android:entries="@array/pref_theme_options"
|
||||
android:entryValues="@array/pref_theme_values"
|
||||
android:key="pref_key_theme"
|
||||
android:summary="%s"
|
||||
android:title="@string/pref_title_theme"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="pref_key_theme_amoled_black"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:title="@string/pref_theme_black_background"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_screen_theme"
|
||||
android:title="@string/pref_header_main_screen"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="display_add_device_fab"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summaryOff="@string/pref_display_add_device_fab_off"
|
||||
android:summaryOn="@string/pref_display_add_device_fab_on"
|
||||
android:title="@string/pref_display_add_device_fab"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="display_bottom_navigation_bar"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summaryOff="@string/pref_summary_bottom_navigation_bar_off"
|
||||
android:summaryOn="@string/pref_summary_bottom_navigation_bar_on"
|
||||
android:title="@string/pref_title_bottom_navigation_bar"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_dashboard"
|
||||
android:key="pref_category_dashboard"
|
||||
android:summary="@string/pref_description_dashboard"
|
||||
android:title="@string/bottom_nav_dashboard"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_show_chart"
|
||||
android:key="pref_charts"
|
||||
android:title="@string/activity_prefs_charts"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_key_datetime"
|
||||
android:title="@string/pref_header_datetime"
|
||||
app:iconSpaceReserved="false">
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="datetime_synconconnect"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_summary_datetime_syctimeonconnect"
|
||||
android:title="@string/pref_title_datetime_syctimeonconnect"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_location"
|
||||
app:iconSpaceReserved="false">
|
||||
<Preference
|
||||
android:key="location_aquire"
|
||||
android:title="@string/pref_title_location_aquire"
|
||||
app:iconSpaceReserved="false" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:inputType="numberDecimal|numberSigned"
|
||||
android:key="location_latitude"
|
||||
android:maxLength="7"
|
||||
android:title="@string/pref_title_location_latitude"
|
||||
app:iconSpaceReserved="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:inputType="numberDecimal|numberSigned"
|
||||
android:key="location_longitude"
|
||||
android:maxLength="7"
|
||||
android:title="@string/pref_title_location_longitude"
|
||||
app:iconSpaceReserved="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:dependency="location_aquire"
|
||||
android:key="use_updated_location_if_available"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_summary_location_keep_uptodate"
|
||||
android:title="@string/pref_title_location_keep_uptodate"
|
||||
app:iconSpaceReserved="false" />
|
||||
<Preference
|
||||
android:key="pref_key_opentracks_packagename"
|
||||
android:summary="@string/pref_summary_opentracks_packagename"
|
||||
android:title="@string/pref_title_opentracks_packagename"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_navigation"
|
||||
app:iconSpaceReserved="false">
|
||||
<PreferenceScreen
|
||||
android:key="navigation_settings"
|
||||
android:title="@string/pref_title_navigation_prefs"
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_auto_awesome"
|
||||
android:key="pref_screen_automations"
|
||||
android:summary="@string/pref_description_automations"
|
||||
android:title="@string/pref_header_automations">
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_auto_export"
|
||||
app:iconSpaceReserved="false">
|
||||
<Preference
|
||||
android:key="auto_export_location"
|
||||
android:summary="%s"
|
||||
android:title="@string/pref_title_auto_export_location"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="auto_export_enabled"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:title="@string/pref_title_auto_export_enabled"
|
||||
app:iconSpaceReserved="false" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="3"
|
||||
android:dependency="auto_export_enabled"
|
||||
android:inputType="number"
|
||||
android:key="auto_export_interval"
|
||||
android:maxLength="3"
|
||||
android:summary="@string/pref_summary_auto_export_interval"
|
||||
android:title="@string/pref_title_auto_export_interval"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_auto_fetch"
|
||||
app:iconSpaceReserved="false">
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="auto_fetch_enabled"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_auto_fetch_summary"
|
||||
android:title="@string/pref_auto_fetch"
|
||||
app:iconSpaceReserved="false" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:dependency="auto_fetch_enabled"
|
||||
android:inputType="number"
|
||||
android:key="auto_fetch_interval_limit"
|
||||
android:maxLength="3"
|
||||
android:summary="@string/pref_auto_fetch_limit_fetches_summary"
|
||||
android:title="@string/pref_auto_fetch_limit_fetches"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_extension"
|
||||
android:key="pref_screen_external_integrations"
|
||||
android:title="@string/pref_header_external_integrations">
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_navigation"
|
||||
android:key="navigation_settings"
|
||||
android:summary="@string/pref_title_navigation_forward"
|
||||
android:title="@string/pref_title_nagivation_apps"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="navigation_forward"
|
||||
@ -249,58 +319,45 @@
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_auto_export"
|
||||
app:iconSpaceReserved="false">
|
||||
<Preference
|
||||
android:key="auto_export_location"
|
||||
android:summary="%s"
|
||||
android:title="@string/pref_title_auto_export_location"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="auto_export_enabled"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:title="@string/pref_title_auto_export_enabled"
|
||||
app:iconSpaceReserved="false" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="3"
|
||||
android:dependency="auto_export_enabled"
|
||||
android:inputType="number"
|
||||
android:key="auto_export_interval"
|
||||
android:maxLength="3"
|
||||
android:summary="@string/pref_summary_auto_export_interval"
|
||||
android:title="@string/pref_title_auto_export_interval"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
android:icon="@drawable/ic_navigation"
|
||||
android:key="pref_key_opentracks_packagename"
|
||||
android:summary="@string/pref_summary_opentracks_packagename"
|
||||
android:title="@string/pref_title_opentracks_packagename" />
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_auto_fetch"
|
||||
app:iconSpaceReserved="false">
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="auto_fetch_enabled"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_auto_fetch_summary"
|
||||
android:title="@string/pref_auto_fetch"
|
||||
app:iconSpaceReserved="false" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:dependency="auto_fetch_enabled"
|
||||
android:inputType="number"
|
||||
android:key="auto_fetch_interval_limit"
|
||||
android:maxLength="3"
|
||||
android:summary="@string/pref_auto_fetch_limit_fetches_summary"
|
||||
android:title="@string/pref_auto_fetch_limit_fetches"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
<Preference
|
||||
android:icon="@drawable/ic_activity_sleep"
|
||||
android:key="pref_category_sleepasandroid"
|
||||
android:title="@string/sleepasandroid_settings" />
|
||||
|
||||
<PreferenceCategory
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_wb_sunny"
|
||||
android:key="pref_screen_weather"
|
||||
android:summary="@string/pref_title_weather_summary"
|
||||
android:title="@string/pref_title_weather">
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="text"
|
||||
android:key="weather_city"
|
||||
android:title="@string/pref_title_weather_location"
|
||||
app:iconSpaceReserved="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceScreen>
|
||||
</PreferenceScreen>
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_bluetooth_searching"
|
||||
android:key="pref_discovery_pairing"
|
||||
android:title="@string/activity_prefs_discovery_pairing"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_developer_mode"
|
||||
android:key="pref_key_development"
|
||||
android:title="@string/pref_header_development"
|
||||
app:iconSpaceReserved="false">
|
||||
android:summary="@string/pref_description_developer_options"
|
||||
android:title="@string/pref_header_development">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="log_to_file"
|
||||
@ -314,13 +371,6 @@
|
||||
android:summary="@string/pref_check_permission_status_summary"
|
||||
android:title="@string/pref_check_permission_status"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="show_changelog"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/pref_show_changelog_summary"
|
||||
android:title="@string/pref_show_changelog"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="cache_weather"
|
||||
@ -328,19 +378,9 @@
|
||||
android:summary="@string/pref_cache_weather_summary"
|
||||
android:title="@string/pref_cache_weather"
|
||||
app:iconSpaceReserved="false" />
|
||||
<Preference
|
||||
android:key="pref_discovery_pairing"
|
||||
android:title="@string/activity_prefs_discovery_pairing"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="pref_screen_intent_api"
|
||||
android:title="@string/pref_header_intent_api"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_key_intent_api"
|
||||
android:key="pref_screen_intent_api"
|
||||
android:title="@string/pref_header_intent_api"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
@ -388,9 +428,10 @@
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_report"
|
||||
android:key="pref_screen_deprecated_functionalities"
|
||||
android:summary="@string/pref_description_deprecated_functionalities"
|
||||
android:title="@string/pref_header_deprecated_functionalities"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user