From 94ed40a823782b9f84f86188bb99fd872b3d529e Mon Sep 17 00:00:00 2001 From: Synced Synapse Date: Fri, 9 Mar 2018 20:05:41 +0000 Subject: [PATCH] Fix PVR section back navigation --- .../kore/ui/sections/video/PVRActivity.java | 18 +++++++++++++----- .../video/PVRChannelsListFragment.java | 4 ++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRActivity.java b/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRActivity.java index 2211e82..9daea6e 100644 --- a/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRActivity.java +++ b/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRActivity.java @@ -40,6 +40,7 @@ public class PVRActivity extends BaseMediaActivity public static final String CHANNELGROUPID = "channelgroupid"; public static final String CHANNELGROUPTITLE = "channelgrouptitle"; + public static final String SINGLECHANNELGROUPTITLE = "singlechannelgrouptitle"; private static final String LISTFRAGMENTTAG = "listfragmenttag"; @@ -49,6 +50,8 @@ public class PVRActivity extends BaseMediaActivity private int selectedChannelGroupId = -1; private String selectedChannelGroupTitle = null; + private boolean singleChannelGroup = false; + @Override protected String getActionBarTitle() { if ( selectedChannelTitle != null ) { @@ -72,6 +75,8 @@ public class PVRActivity extends BaseMediaActivity selectedChannelGroupId = savedInstanceState.getInt(CHANNELGROUPID, -1); selectedChannelGroupTitle = savedInstanceState.getString(CHANNELGROUPTITLE, null); + + singleChannelGroup = savedInstanceState.getBoolean(SINGLECHANNELGROUPTITLE, false); } super.onCreate(savedInstanceState); } @@ -84,6 +89,8 @@ public class PVRActivity extends BaseMediaActivity outState.putInt(CHANNELGROUPID, selectedChannelGroupId); outState.putString(CHANNELGROUPTITLE, selectedChannelGroupTitle); + + outState.putBoolean(SINGLECHANNELGROUPTITLE, singleChannelGroup); } @Override @@ -94,7 +101,7 @@ public class PVRActivity extends BaseMediaActivity if (selectedChannelId != -1) { selectedChannelId = -1; selectedChannelTitle = null; - updateActionBar(getActionBarTitle(), true); + updateActionBar(getActionBarTitle(), !singleChannelGroup); getSupportFragmentManager().popBackStack(); return true; } else if (selectedChannelGroupId != -1) { @@ -123,7 +130,7 @@ public class PVRActivity extends BaseMediaActivity if (selectedChannelId != -1) { selectedChannelId = -1; selectedChannelTitle = null; - updateActionBar(getActionBarTitle(), true); + updateActionBar(getActionBarTitle(), !singleChannelGroup); } else { if (selectedChannelGroupId != -1) { selectedChannelGroupId = -1; @@ -146,9 +153,10 @@ public class PVRActivity extends BaseMediaActivity * @param channelTitle Title */ @TargetApi(21) - public void onChannelGuideSelected(int channelId, String channelTitle) { - selectedChannelId = channelId; - selectedChannelTitle = channelTitle; + public void onChannelGuideSelected(int channelId, String channelTitle, boolean singleChannelGroup) { + this.selectedChannelId = channelId; + this.selectedChannelTitle = channelTitle; + this.singleChannelGroup = singleChannelGroup; // Replace list fragment PVRChannelEPGListFragment pvrEPGFragment = PVRChannelEPGListFragment.newInstance(channelId); diff --git a/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRChannelsListFragment.java b/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRChannelsListFragment.java index 68bf989..7454426 100644 --- a/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRChannelsListFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/sections/video/PVRChannelsListFragment.java @@ -61,7 +61,7 @@ public class PVRChannelsListFragment extends Fragment public static final String SINGLECHANNELGROUP = "singlechannelgroup"; public interface OnPVRChannelSelectedListener { - void onChannelGuideSelected(int channelId, String channelTitle); + void onChannelGuideSelected(int channelId, String channelTitle, boolean singleChannelGroup); void onChannelGroupSelected(int channelGroupId, String channelGroupTitle); } @@ -435,7 +435,7 @@ public class PVRChannelsListFragment extends Fragment }, callbackHandler); return true; case R.id.action_epg_item: - listenerActivity.onChannelGuideSelected(channelId, channelName); + listenerActivity.onChannelGuideSelected(channelId, channelName, singleChannelGroup); return true; } return false;