mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-15 14:39:26 +01:00
167 lines
6.8 KiB
Java
167 lines
6.8 KiB
Java
package nodomain.freeyourgadget.gadgetbridge.activities;
|
|
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.ResolveInfo;
|
|
import android.os.Bundle;
|
|
import android.preference.ListPreference;
|
|
import android.preference.Preference;
|
|
import android.support.v4.content.LocalBroadcastManager;
|
|
import android.widget.Toast;
|
|
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
|
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
|
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandPreferencesActivity;
|
|
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
|
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
|
|
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_GENDER;
|
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_HEIGHT_CM;
|
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_SLEEP_DURATION;
|
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_WEIGHT_KG;
|
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_YEAR_OF_BIRTH;
|
|
|
|
public class SettingsActivity extends AbstractSettingsActivity {
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
addPreferencesFromResource(R.xml.preferences);
|
|
}
|
|
|
|
@Override
|
|
protected void onPostCreate(Bundle savedInstanceState) {
|
|
super.onPostCreate(savedInstanceState);
|
|
|
|
Preference pref = findPreference("notifications_generic");
|
|
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
Intent enableIntent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
|
|
startActivity(enableIntent);
|
|
return true;
|
|
}
|
|
});
|
|
pref = findPreference("pref_key_miband");
|
|
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
Intent enableIntent = new Intent(SettingsActivity.this, MiBandPreferencesActivity.class);
|
|
startActivity(enableIntent);
|
|
return true;
|
|
}
|
|
});
|
|
|
|
pref = findPreference("pref_key_blacklist");
|
|
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
Intent enableIntent = new Intent(SettingsActivity.this, AppBlacklistActivity.class);
|
|
startActivity(enableIntent);
|
|
return true;
|
|
}
|
|
});
|
|
|
|
pref = findPreference("pebble_emu_addr");
|
|
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
|
Intent refreshIntent = new Intent(ControlCenter.ACTION_REFRESH_DEVICELIST);
|
|
LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(refreshIntent);
|
|
preference.setSummary(newVal.toString());
|
|
return true;
|
|
}
|
|
|
|
});
|
|
|
|
pref = findPreference("pebble_emu_port");
|
|
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
|
Intent refreshIntent = new Intent(ControlCenter.ACTION_REFRESH_DEVICELIST);
|
|
LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(refreshIntent);
|
|
preference.setSummary(newVal.toString());
|
|
return true;
|
|
}
|
|
|
|
});
|
|
|
|
pref = findPreference("log_to_file");
|
|
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
|
boolean doEnable = Boolean.TRUE.equals(newVal);
|
|
try {
|
|
if (doEnable) {
|
|
FileUtils.getExternalFilesDir(); // ensures that it is created
|
|
}
|
|
GBApplication.setupLogging(doEnable);
|
|
} catch (IOException ex) {
|
|
GB.toast(getApplicationContext(),
|
|
getString(R.string.error_creating_directory_for_logfiles, ex.getLocalizedMessage()),
|
|
Toast.LENGTH_LONG,
|
|
GB.ERROR,
|
|
ex);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
});
|
|
|
|
// Get all receivers of Media Buttons
|
|
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
|
|
|
|
PackageManager pm = getPackageManager();
|
|
List<ResolveInfo> mediaReceivers = pm.queryBroadcastReceivers(mediaButtonIntent,
|
|
PackageManager.GET_INTENT_FILTERS | PackageManager.GET_RESOLVED_FILTER);
|
|
|
|
|
|
CharSequence[] newEntries = new CharSequence[mediaReceivers.size() + 1];
|
|
CharSequence[] newValues = new CharSequence[mediaReceivers.size() + 1];
|
|
newEntries[0] = getString(R.string.pref_default);
|
|
newValues[0] = "default";
|
|
|
|
int i = 1;
|
|
for (ResolveInfo resolveInfo : mediaReceivers) {
|
|
newEntries[i] = resolveInfo.activityInfo.loadLabel(pm);
|
|
newValues[i] = resolveInfo.activityInfo.packageName;
|
|
i++;
|
|
}
|
|
|
|
final ListPreference audioPlayer = (ListPreference) findPreference("audio_player");
|
|
audioPlayer.setEntries(newEntries);
|
|
audioPlayer.setEntryValues(newValues);
|
|
audioPlayer.setDefaultValue(newValues[0]);
|
|
}
|
|
|
|
@Override
|
|
protected String[] getPreferenceKeysWithSummary() {
|
|
return new String[]{
|
|
"pebble_emu_addr",
|
|
"pebble_emu_port",
|
|
"pebble_reconnect_attempts",
|
|
"canned_reply_suffix",
|
|
"canned_reply_1",
|
|
"canned_reply_2",
|
|
"canned_reply_3",
|
|
"canned_reply_4",
|
|
"canned_reply_5",
|
|
"canned_reply_6",
|
|
"canned_reply_7",
|
|
"canned_reply_8",
|
|
"canned_reply_9",
|
|
"canned_reply_10",
|
|
"canned_reply_11",
|
|
"canned_reply_12",
|
|
"canned_reply_13",
|
|
"canned_reply_14",
|
|
"canned_reply_15",
|
|
"canned_reply_16",
|
|
PREF_USER_YEAR_OF_BIRTH,
|
|
PREF_USER_HEIGHT_CM,
|
|
PREF_USER_WEIGHT_KG,
|
|
PREF_USER_SLEEP_DURATION,
|
|
};
|
|
}
|
|
|
|
}
|