From 33b9796aa1c09051bf9a6f050a1ce55bb6fcba63 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Sat, 17 Sep 2016 15:46:11 -0400 Subject: [PATCH] ProgPrefFrag now refresh UI on pref changes This is quite generic but also terrible --- .../util/ProgrammablePreferenceFragment.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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)); + } } -- 2.50.1