From: Nathaniel Wesley Filardo Date: Sat, 17 Sep 2016 19:46:11 +0000 (-0400) Subject: ProgPrefFrag now refresh UI on pref changes X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=33b9796aa1c09051bf9a6f050a1ce55bb6fcba63;p=acmetensortoys-watchviz ProgPrefFrag now refresh UI on pref changes This is quite generic but also terrible --- diff --git a/vizlib/src/main/java/com/acmetensortoys/watchviz/vizlib/util/ProgrammablePreferenceFragment.java b/vizlib/src/main/java/com/acmetensortoys/watchviz/vizlib/util/ProgrammablePreferenceFragment.java index 567b6b9..bdf5e77 100644 --- a/vizlib/src/main/java/com/acmetensortoys/watchviz/vizlib/util/ProgrammablePreferenceFragment.java +++ b/vizlib/src/main/java/com/acmetensortoys/watchviz/vizlib/util/ProgrammablePreferenceFragment.java @@ -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)); + } }