AndroidAPS/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java

130 lines
6.3 KiB
Java
Raw Normal View History

package info.nightscout.androidaps;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.MultiSelectListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup;
import android.preference.PreferenceManager;
2017-01-26 12:07:25 +01:00
import info.nightscout.androidaps.events.EventPreferenceChange;
2016-07-06 22:50:25 +02:00
import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.DanaR.BluetoothDevicePreference;
2016-08-05 23:54:03 +02:00
import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin;
2016-12-03 17:42:08 +01:00
import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin;
2017-02-17 13:18:36 +01:00
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin;
import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin;
2017-02-14 15:41:30 +01:00
import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpPlugin;
2016-07-06 22:50:25 +02:00
import info.nightscout.utils.LocaleHelper;
public class PreferencesActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
MyPreferenceFragment myPreferenceFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myPreferenceFragment = new MyPreferenceFragment();
getFragmentManager().beginTransaction().replace(android.R.id.content, myPreferenceFragment).commit();
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
MainApp.bus().post(new EventPreferenceChange());
2016-07-06 22:50:25 +02:00
if (key.equals("language")) {
String lang = sharedPreferences.getString("language", "en");
2016-07-06 22:50:25 +02:00
LocaleHelper.setLocale(getApplicationContext(), lang);
recreate();
2016-11-07 01:02:08 +01:00
MainApp.bus().post(new EventRefreshGui(true));
2016-07-06 22:50:25 +02:00
}
2017-01-21 23:48:05 +01:00
if (key.equals("short_tabtitles")) {
MainApp.bus().post(new EventRefreshGui(true));
}
updatePrefSummary(myPreferenceFragment.getPreference(key));
2017-02-09 10:41:02 +01:00
}
private static void updatePrefSummary(Preference pref) {
if (pref instanceof ListPreference || pref instanceof BluetoothDevicePreference) {
ListPreference listPref = (ListPreference) pref;
pref.setSummary(listPref.getEntry());
}
if (pref instanceof EditTextPreference) {
EditTextPreference editTextPref = (EditTextPreference) pref;
2017-02-14 19:16:34 +01:00
if (pref.getKey().contains("password")) {
pref.setSummary("******");
} else if (editTextPref.getText() != null && !editTextPref.getText().equals("")) {
((EditTextPreference) pref).setDialogMessage(editTextPref.getDialogMessage());
pref.setSummary(editTextPref.getText());
}
}
if (pref instanceof MultiSelectListPreference) {
EditTextPreference editTextPref = (EditTextPreference) pref;
pref.setSummary(editTextPref.getText());
}
}
private static void initSummary(Preference p) {
if (p instanceof PreferenceGroup) {
PreferenceGroup pGrp = (PreferenceGroup) p;
for (int i = 0; i < pGrp.getPreferenceCount(); i++) {
initSummary(pGrp.getPreference(i));
}
} else {
updatePrefSummary(p);
}
}
public static class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
2017-02-14 19:16:34 +01:00
addPreferencesFromResource(R.xml.pref_password);
2016-10-20 23:50:31 +02:00
addPreferencesFromResource(R.xml.pref_quickwizard);
2016-07-06 22:50:25 +02:00
addPreferencesFromResource(R.xml.pref_language);
2016-07-14 23:29:21 +02:00
if (Config.CAREPORTALENABLED)
addPreferencesFromResource(R.xml.pref_careportal);
addPreferencesFromResource(R.xml.pref_treatments);
2016-06-26 11:43:26 +02:00
if (Config.APS)
addPreferencesFromResource(R.xml.pref_closedmode);
2017-01-03 21:01:01 +01:00
if (Config.OPENAPSENABLED)
addPreferencesFromResource(R.xml.pref_openapsma);
2017-02-08 20:36:30 +01:00
if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS))
addPreferencesFromResource(R.xml.pref_openapsama);
2017-01-28 23:45:14 +01:00
addPreferencesFromResource(R.xml.pref_profile);
if (Config.DANAR) {
2016-08-05 23:54:03 +02:00
DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
2016-12-03 17:42:08 +01:00
DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
if (danaRPlugin.isEnabled(PluginBase.PUMP) || danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) {
addPreferencesFromResource(R.xml.pref_danar);
}
if (danaRPlugin.isEnabled(PluginBase.PROFILE) || danaRKoreanPlugin.isEnabled(PluginBase.PROFILE)) {
addPreferencesFromResource(R.xml.pref_danarprofile);
}
}
2017-02-14 15:41:30 +01:00
VirtualPumpPlugin virtualPumpPlugin = (VirtualPumpPlugin) MainApp.getSpecificPlugin(VirtualPumpPlugin.class);
if (virtualPumpPlugin != null && virtualPumpPlugin.isEnabled(PluginBase.PUMP)) {
addPreferencesFromResource(R.xml.pref_virtualpump);
}
2017-02-17 13:18:36 +01:00
NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
if (nsClientInternalPlugin != null && nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) {
addPreferencesFromResource(R.xml.pref_nsclientinternal);
}
2016-07-14 23:29:21 +02:00
if (Config.SMSCOMMUNICATORENABLED)
addPreferencesFromResource(R.xml.pref_smscommunicator);
2016-11-11 16:18:10 +01:00
addPreferencesFromResource(R.xml.pref_others);
2017-01-24 10:28:42 +01:00
addPreferencesFromResource(R.xml.pref_advanced);
initSummary(getPreferenceScreen());
}
public Preference getPreference (String key) {
return findPreference(key);
}
}
2016-11-07 01:02:08 +01:00
}