diff options
author | Jaekyun Seok <jaekyun@google.com> | 2014-05-22 09:04:25 +0900 |
---|---|---|
committer | Jaekyun Seok <jaekyun@google.com> | 2014-05-22 10:51:54 +0900 |
commit | 2ee6716186c264fe56dcce5855ec5949ba307610 (patch) | |
tree | 4a30c699d0c2b83fce5e5a9a2b02f0c65885d048 /src/com/android/tv | |
parent | 2291294f6cec6929f333e36acffbc12277109da9 (diff) | |
download | TV-2ee6716186c264fe56dcce5855ec5949ba307610.tar.gz |
Update the bottom menu when a tv input name is edited
Bug: 15144214
Change-Id: I116fb66fe83e2488a1895539672e7414384bfd37
Diffstat (limited to 'src/com/android/tv')
-rw-r--r-- | src/com/android/tv/dialog/EditInputDialogFragment.java | 3 | ||||
-rw-r--r-- | src/com/android/tv/receiver/PackageIntentsReceiver.java | 4 | ||||
-rw-r--r-- | src/com/android/tv/ui/MainMenuView.java | 28 | ||||
-rw-r--r-- | src/com/android/tv/util/Utils.java | 7 |
4 files changed, 35 insertions, 7 deletions
diff --git a/src/com/android/tv/dialog/EditInputDialogFragment.java b/src/com/android/tv/dialog/EditInputDialogFragment.java index b1d92ade..c04de016 100644 --- a/src/com/android/tv/dialog/EditInputDialogFragment.java +++ b/src/com/android/tv/dialog/EditInputDialogFragment.java @@ -62,8 +62,7 @@ public class EditInputDialogFragment extends DialogFragment implements OnItemSel @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mPreferences = getActivity().getSharedPreferences(TvSettings.PREFS_FILE, - Context.MODE_PRIVATE); + mPreferences = Utils.getSharedPreferencesOfDisplayNameForInput(getActivity()); mAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, new ArrayList<String>()); diff --git a/src/com/android/tv/receiver/PackageIntentsReceiver.java b/src/com/android/tv/receiver/PackageIntentsReceiver.java index 43f54a47..4aab2bf9 100644 --- a/src/com/android/tv/receiver/PackageIntentsReceiver.java +++ b/src/com/android/tv/receiver/PackageIntentsReceiver.java @@ -25,6 +25,7 @@ import android.tv.TvInputInfo; import android.tv.TvInputManager; import com.android.tv.util.TvSettings; +import com.android.tv.util.Utils; import java.util.HashSet; import java.util.List; @@ -40,8 +41,7 @@ public class PackageIntentsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (mPreferences == null) { - mPreferences = context.getSharedPreferences(TvSettings.PREFS_FILE, - Context.MODE_PRIVATE); + mPreferences = Utils.getSharedPreferencesOfDisplayNameForInput(context); } if (mTvInputManager == null) { mTvInputManager = (TvInputManager) context.getSystemService(Context.TV_INPUT_SERVICE); diff --git a/src/com/android/tv/ui/MainMenuView.java b/src/com/android/tv/ui/MainMenuView.java index b12ac72e..202c8696 100644 --- a/src/com/android/tv/ui/MainMenuView.java +++ b/src/com/android/tv/ui/MainMenuView.java @@ -17,6 +17,7 @@ package com.android.tv.ui; import android.content.Context; +import android.content.SharedPreferences; import android.os.Handler; import android.support.v17.leanback.widget.VerticalGridView; import android.support.v7.widget.RecyclerView; @@ -31,6 +32,7 @@ import com.android.tv.TvActivity; import com.android.tv.data.Channel; import com.android.tv.data.ChannelMap; import com.android.tv.dialog.PrivacySettingDialogFragment; +import com.android.tv.util.Utils; import java.util.ArrayList; @@ -51,6 +53,15 @@ public class MainMenuView extends VerticalGridView implements View.OnClickListen private final ArrayList<ItemListView.ItemListAdapter> mAllAdapterList = new ArrayList<ItemListView.ItemListAdapter>(); + private SharedPreferences.OnSharedPreferenceChangeListener mPrefChangeListener = + new SharedPreferences.OnSharedPreferenceChangeListener() { + public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { + if (mChannelMap != null) { + updateAdapters(); + } + } + }; + public MainMenuView(Context context) { this(context, null, 0); } @@ -80,17 +91,32 @@ public class MainMenuView extends VerticalGridView implements View.OnClickListen setItemViewCacheSize(mAllAdapterList.size()); } + @Override + protected void onAttachedToWindow() { + Utils.getSharedPreferencesOfDisplayNameForInput(getContext()) + .registerOnSharedPreferenceChangeListener(mPrefChangeListener); + } + + @Override + protected void onDetachedFromWindow() { + Utils.getSharedPreferencesOfDisplayNameForInput(getContext()) + .unregisterOnSharedPreferenceChangeListener(mPrefChangeListener); + } + public void setTvActivity(TvActivity activity) { mTvActivity = activity; } public void setChannelMap(ChannelMap channelMap) { mChannelMap = channelMap; + updateAdapters(); + } + private void updateAdapters() { ArrayList<ItemListView.ItemListAdapter> availableAdapterList = new ArrayList<ItemListView.ItemListAdapter>(); for (ItemListView.ItemListAdapter adapter : mAllAdapterList) { - adapter.update(channelMap); + adapter.update(mChannelMap); if (adapter.getItemCount() > 0) { availableAdapterList.add(adapter); } diff --git a/src/com/android/tv/util/Utils.java b/src/com/android/tv/util/Utils.java index a14e1c25..4bf254e3 100644 --- a/src/com/android/tv/util/Utils.java +++ b/src/com/android/tv/util/Utils.java @@ -179,9 +179,12 @@ public class Utils { } } + public static SharedPreferences getSharedPreferencesOfDisplayNameForInput(Context context) { + return context.getSharedPreferences(TvSettings.PREFS_FILE, Context.MODE_PRIVATE); + } + public static String getDisplayNameForInput(Context context, TvInputInfo info) { - SharedPreferences preferences = context.getSharedPreferences(TvSettings.PREFS_FILE, - Context.MODE_PRIVATE); + SharedPreferences preferences = getSharedPreferencesOfDisplayNameForInput(context); PackageManager pm = context.getPackageManager(); return preferences.getString(TvSettings.PREF_DISPLAY_INPUT_NAME + info.getId(), info.loadLabel(pm).toString()); |