67 lines
2.5 KiB
Java
67 lines
2.5 KiB
Java
package net.typeblog.shelter.ui;
|
|
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.net.Uri;
|
|
import android.os.Bundle;
|
|
|
|
import androidx.preference.CheckBoxPreference;
|
|
import androidx.preference.Preference;
|
|
import androidx.preference.PreferenceFragmentCompat;
|
|
|
|
import net.typeblog.shelter.R;
|
|
import net.typeblog.shelter.util.SettingsManager;
|
|
|
|
public class SettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
|
private static final String SETTINGS_VERSION = "settings_version";
|
|
private static final String SETTINGS_SOURCE_CODE = "settings_source_code";
|
|
private static final String SETTINGS_BUG_REPORT = "settings_bug_report";
|
|
private static final String SETTINGS_CROSS_PROFILE_FILE_CHOOSER = "settings_cross_profile_file_chooser";
|
|
|
|
private SettingsManager mManager = SettingsManager.getInstance();
|
|
|
|
private CheckBoxPreference mPrefCrossProfileFileChooser = null;
|
|
|
|
@Override
|
|
public void onCreatePreferences(Bundle bundle, String s) {
|
|
addPreferencesFromResource(R.xml.preferences_settings);
|
|
|
|
// Set the displayed version
|
|
try {
|
|
findPreference(SETTINGS_VERSION).setSummary(
|
|
getContext().getPackageManager().getPackageInfo(
|
|
getContext().getPackageName(), 0).versionName);
|
|
} catch (PackageManager.NameNotFoundException e) {
|
|
// WTF?
|
|
}
|
|
|
|
// Open source code url on click
|
|
findPreference(SETTINGS_SOURCE_CODE)
|
|
.setOnPreferenceClickListener(this::openSummaryUrl);
|
|
findPreference(SETTINGS_BUG_REPORT)
|
|
.setOnPreferenceClickListener(this::openSummaryUrl);
|
|
|
|
// === Interactions ===
|
|
mPrefCrossProfileFileChooser = (CheckBoxPreference) findPreference(SETTINGS_CROSS_PROFILE_FILE_CHOOSER);
|
|
mPrefCrossProfileFileChooser.setChecked(mManager.getCrossProfileFileChooserEnabled());
|
|
mPrefCrossProfileFileChooser.setOnPreferenceChangeListener(this);
|
|
}
|
|
|
|
private boolean openSummaryUrl(Preference pref) {
|
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
|
intent.setData(Uri.parse(pref.getSummary().toString()));
|
|
startActivity(intent);
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object newState) {
|
|
if (preference == mPrefCrossProfileFileChooser) {
|
|
mManager.setCrossProfileFileChooserEnabled((boolean) newState);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
}
|