aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/ui/sidepanel/CustomizeChannelListFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/ui/sidepanel/CustomizeChannelListFragment.java')
-rw-r--r--src/com/android/tv/ui/sidepanel/CustomizeChannelListFragment.java116
1 files changed, 65 insertions, 51 deletions
diff --git a/src/com/android/tv/ui/sidepanel/CustomizeChannelListFragment.java b/src/com/android/tv/ui/sidepanel/CustomizeChannelListFragment.java
index 9cc54ed2..297e69d9 100644
--- a/src/com/android/tv/ui/sidepanel/CustomizeChannelListFragment.java
+++ b/src/com/android/tv/ui/sidepanel/CustomizeChannelListFragment.java
@@ -16,6 +16,8 @@
package com.android.tv.ui.sidepanel;
+import android.content.Context;
+import android.content.SharedPreferences;
import android.media.tv.TvContract.Channels;
import android.os.Bundle;
import android.support.v17.leanback.widget.VerticalGridView;
@@ -27,6 +29,7 @@ import android.widget.TextView;
import com.android.tv.MainActivity;
import com.android.tv.R;
+import com.android.tv.common.SharedPreferencesUtils;
import com.android.tv.data.Channel;
import com.android.tv.data.ChannelNumber;
import com.android.tv.ui.OnRepeatedKeyInterceptListener;
@@ -36,39 +39,38 @@ import com.android.tv.util.Utils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
-import java.util.List;
import java.util.Iterator;
+import java.util.List;
public class CustomizeChannelListFragment extends SideFragment {
private static final int GROUP_BY_SOURCE = 0;
private static final int GROUP_BY_HD_SD = 1;
private static final String TRACKER_LABEL = "customize channel list";
- private final List<Channel> mChannels = new ArrayList<>();
- private final long mInitialChannelId;
+ private static final String PREF_KEY_GROUP_SETTINGS = "pref_key_group_settigns";
+ private final List<Channel> mChannels = new ArrayList<>();
+ private long mInitialChannelId = Channel.INVALID_ID;
private long mLastFocusedChannelId = Channel.INVALID_ID;
- private int mGroupingType = GROUP_BY_SOURCE;
+ private static Integer sGroupingType;
private TvInputManagerHelper mInputManager;
private Channel.DefaultComparator mChannelComparator;
private boolean mGroupByFragmentRunning;
private final List<Item> mItems = new ArrayList<>();
- public CustomizeChannelListFragment() {
- this(Channel.INVALID_ID);
- }
-
- public CustomizeChannelListFragment(long initialChannelId) {
- mInitialChannelId = initialChannelId;
- }
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mInputManager = getMainActivity().getTvInputManagerHelper();
+ mInitialChannelId = getMainActivity().getCurrentChannelId();
mChannelComparator = new Channel.DefaultComparator(getActivity(), mInputManager);
+ if (sGroupingType == null) {
+ SharedPreferences sharedPreferences = getContext().getSharedPreferences(
+ SharedPreferencesUtils.SHARED_PREF_UI_SETTINGS, Context.MODE_PRIVATE);
+ sGroupingType = sharedPreferences.getInt(PREF_KEY_GROUP_SETTINGS, GROUP_BY_SOURCE);
+ }
}
@Override
@@ -128,13 +130,16 @@ public class CustomizeChannelListFragment extends SideFragment {
@Override
public void onDestroyView() {
getChannelDataManager().applyUpdatedValuesToDb();
- if (!mGroupByFragmentRunning) {
- getMainActivity().endShrunkenTvView();
- }
super.onDestroyView();
}
@Override
+ public void onDestroy() {
+ super.onDestroy();
+ getMainActivity().endShrunkenTvView();
+ }
+
+ @Override
protected String getTitle() {
return getString(R.string.side_panel_title_edit_channels_for_an_input);
}
@@ -149,7 +154,7 @@ public class CustomizeChannelListFragment extends SideFragment {
mItems.clear();
mChannels.clear();
mChannels.addAll(getChannelDataManager().getChannelList());
- if (mGroupingType == GROUP_BY_SOURCE) {
+ if (sGroupingType == GROUP_BY_SOURCE) {
addItemForGroupBySource(mItems);
} else {
// GROUP_BY_HD_SD
@@ -321,6 +326,49 @@ public class CustomizeChannelListFragment extends SideFragment {
}
}
+ public static class GroupByFragment extends SideFragment {
+ @Override
+ protected String getTitle() {
+ return getString(R.string.side_panel_title_group_by);
+ }
+ @Override
+ public String getTrackerLabel() {
+ return GroupBySubMenu.TRACKER_LABEL;
+ }
+
+ @Override
+ protected List<Item> getItemList() {
+ List<Item> items = new ArrayList<>();
+ items.add(new RadioButtonItem(
+ getString(R.string.edit_channels_group_by_sources)) {
+ @Override
+ protected void onSelected() {
+ super.onSelected();
+ setGroupingType(GROUP_BY_SOURCE);
+ closeFragment();
+ }
+ });
+ items.add(new RadioButtonItem(
+ getString(R.string.edit_channels_group_by_hd_sd)) {
+ @Override
+ protected void onSelected() {
+ super.onSelected();
+ setGroupingType(GROUP_BY_HD_SD);
+ closeFragment();
+ }
+ });
+ ((RadioButtonItem) items.get(sGroupingType)).setChecked(true);
+ return items;
+ }
+
+ private void setGroupingType(int groupingType) {
+ sGroupingType = groupingType;
+ SharedPreferences sharedPreferences = getContext().getSharedPreferences(
+ SharedPreferencesUtils.SHARED_PREF_UI_SETTINGS, Context.MODE_PRIVATE);
+ sharedPreferences.edit().putInt(PREF_KEY_GROUP_SETTINGS, groupingType).apply();
+ }
+ }
+
private class GroupBySubMenu extends SubMenuItem {
private static final String TRACKER_LABEL = "Group by";
public GroupBySubMenu(String description) {
@@ -330,41 +378,7 @@ public class CustomizeChannelListFragment extends SideFragment {
@Override
protected SideFragment getFragment() {
- return new SideFragment() {
- @Override
- protected String getTitle() {
- return getString(R.string.side_panel_title_group_by);
- }
- @Override
- public String getTrackerLabel() {
- return GroupBySubMenu.TRACKER_LABEL;
- }
-
- @Override
- protected List<Item> getItemList() {
- List<Item> items = new ArrayList<>();
- items.add(new RadioButtonItem(
- getString(R.string.edit_channels_group_by_sources)) {
- @Override
- protected void onSelected() {
- super.onSelected();
- mGroupingType = GROUP_BY_SOURCE;
- closeFragment();
- }
- });
- items.add(new RadioButtonItem(
- getString(R.string.edit_channels_group_by_hd_sd)) {
- @Override
- protected void onSelected() {
- super.onSelected();
- mGroupingType = GROUP_BY_HD_SD;
- closeFragment();
- }
- });
- ((RadioButtonItem) items.get(mGroupingType)).setChecked(true);
- return items;
- }
- };
+ return new GroupByFragment();
}
@Override