· 6 years ago · Nov 14, 2019, 06:10 AM
1
2
3public class SettingsActivity extends AppCompatActivity {
4
5 SharedPreferences sharedPreferences;
6 SharedPreferences.OnSharedPreferenceChangeListener preferenceChangeListener;
7 @Override
8 protected void onCreate(@Nullable Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.activity_settings);
11
12 sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
13
14 SettingViewModel viewModel = ViewModelProviders.of(this).get(SettingViewModel.class);
15 TreeSet<String> def = new TreeSet<>();
16
17 def.add("null")
18
19 preferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
20 @Override
21 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
22 Log.v("Shared Main Activity ", "Changed");
23 if(key.equals("duration"))
24 Log.v("Duration Changed",
25 "Need to Featch from Api" );
26 else {
27 Set<String> newPref = sharedPreferences.getStringSet("key", def);
28 for(String s: newPref)
29 Log.v("New Settings : ", " " + s);
30 String[] changedOwner = newPref.toArray(new String[newPref.size()]);
31 Log.v("Settings Activity", "About to call settingsCHanged");
32 viewModel.settingChanged(changedOwner);
33 }
34 }
35 };
36 }
37
38 @Override
39 protected void onResume() {
40 super.onResume();
41 sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangeListener);
42 }
43
44 @Override
45 protected void onPause() {
46 super.onPause();
47 sharedPreferences.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener);
48 }
49}