]> hydra-www.ietfng.org Git - acmetensortoys-watchviz/commitdiff
ProgPrefFrag now refresh UI on pref changes
authorNathaniel Wesley Filardo <nwf@cs.jhu.edu>
Sat, 17 Sep 2016 19:46:11 +0000 (15:46 -0400)
committerNathaniel Wesley Filardo <nwf@cs.jhu.edu>
Sat, 17 Sep 2016 19:46:11 +0000 (15:46 -0400)
This is quite generic but also terrible

vizlib/src/main/java/com/acmetensortoys/watchviz/vizlib/util/ProgrammablePreferenceFragment.java

index 567b6b9897666d57261428069313ec6788d304d0..bdf5e7724df0a7a7e8c976a1da9b9b25ec8c8d73 100644 (file)
@@ -1,10 +1,14 @@
 package com.acmetensortoys.watchviz.vizlib.util;
 
+import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.preference.PreferenceFragment;
 import android.util.Log;
+import android.widget.BaseAdapter;
 
-public class ProgrammablePreferenceFragment extends PreferenceFragment {
+public class ProgrammablePreferenceFragment extends PreferenceFragment
+    implements SharedPreferences.OnSharedPreferenceChangeListener
+{
     private final static String ARG_RES_IX = "res";
     private final static String ARG_PREF_IX = "pref";
 
@@ -21,7 +25,16 @@ public class ProgrammablePreferenceFragment extends PreferenceFragment {
     public void onCreate(Bundle sis) {
         super.onCreate(sis);
         getPreferenceManager().setSharedPreferencesName(getArguments().getString(ARG_PREF_IX));
+        getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
         Log.d("PPF", "sp=" + getPreferenceManager().getSharedPreferences().toString());
         addPreferencesFromResource(getArguments().getInt(ARG_RES_IX));
     }
+
+    @Override
+    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+        Log.d("PPF", "OSPCL sp="+getPreferenceManager().getSharedPreferences().toString());
+        // XXX Phenomenal
+        setPreferenceScreen(null);
+        addPreferencesFromResource(getArguments().getInt(ARG_RES_IX));
+    }
 }