aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv
diff options
context:
space:
mode:
authorJaekyun Seok <jaekyun@google.com>2014-05-22 09:04:25 +0900
committerJaekyun Seok <jaekyun@google.com>2014-05-22 10:51:54 +0900
commit2ee6716186c264fe56dcce5855ec5949ba307610 (patch)
tree4a30c699d0c2b83fce5e5a9a2b02f0c65885d048 /src/com/android/tv
parent2291294f6cec6929f333e36acffbc12277109da9 (diff)
downloadTV-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.java3
-rw-r--r--src/com/android/tv/receiver/PackageIntentsReceiver.java4
-rw-r--r--src/com/android/tv/ui/MainMenuView.java28
-rw-r--r--src/com/android/tv/util/Utils.java7
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());