/
SettingsFragment.java
68 lines (57 loc) · 2.81 KB
/
SettingsFragment.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.codingbuffalo.aerialdream;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import androidx.preference.PreferenceFragment;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import java.util.List;
public class SettingsFragment extends PreferenceFragment implements Preference.OnPreferenceClickListener, SharedPreferences.OnSharedPreferenceChangeListener {
public static final String SETTINGS = "android.settings.SETTINGS";
public static final String SCREENSAVER_SETTINGS = "android.settings.DREAM_SETTINGS";
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.settings, rootKey);
findPreference("system_options").setOnPreferenceClickListener(this);
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
updateSummaries();
}
@Override
public boolean onPreferenceClick(Preference preference) {
// Check if the daydream intent is available - some devices (e.g. NVidia Shield) do not support it
Intent intent = new Intent(SCREENSAVER_SETTINGS);
if (!intentAvailable(intent)) {
// Try opening the daydream settings activity directly: https://gist.github.com/reines/bc798a2cb539f51877bb279125092104
intent = new Intent(Intent.ACTION_MAIN).setClassName("com.android.tv.settings", "com.android.tv.settings.device.display.daydream.DaydreamActivity");
if (!intentAvailable(intent)) {
// If all else fails, open the normal settings screen
intent = new Intent(SETTINGS);
}
}
startActivity(intent);
return true;
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
updateSummaries();
}
private void updateSummaries() {
ListPreference pref = (ListPreference) findPreference("source_apple_2015");
pref.setSummary(pref.getEntry());
pref = (ListPreference) findPreference("source_apple_2017");
pref.setSummary(pref.getEntry());
pref = (ListPreference) findPreference("source_apple_2018");
pref.setSummary(pref.getEntry());
pref = (ListPreference) findPreference("source_apple_2019");
pref.setSummary(pref.getEntry());
// pref = (ListPreference) findPreference("cache_size");
// pref.setSummary(pref.getEntry());
}
private boolean intentAvailable(Intent intent) {
PackageManager manager = getActivity().getPackageManager();
List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);
return !infos.isEmpty();
}
}