Fix PVR section back navigation

This commit is contained in:
Synced Synapse 2018-03-09 20:05:41 +00:00 committed by Martijn Brekhof
parent 2206b90592
commit 94ed40a823
2 changed files with 15 additions and 7 deletions

View File

@ -40,6 +40,7 @@ public class PVRActivity extends BaseMediaActivity
public static final String CHANNELGROUPID = "channelgroupid"; public static final String CHANNELGROUPID = "channelgroupid";
public static final String CHANNELGROUPTITLE = "channelgrouptitle"; public static final String CHANNELGROUPTITLE = "channelgrouptitle";
public static final String SINGLECHANNELGROUPTITLE = "singlechannelgrouptitle";
private static final String LISTFRAGMENTTAG = "listfragmenttag"; private static final String LISTFRAGMENTTAG = "listfragmenttag";
@ -49,6 +50,8 @@ public class PVRActivity extends BaseMediaActivity
private int selectedChannelGroupId = -1; private int selectedChannelGroupId = -1;
private String selectedChannelGroupTitle = null; private String selectedChannelGroupTitle = null;
private boolean singleChannelGroup = false;
@Override @Override
protected String getActionBarTitle() { protected String getActionBarTitle() {
if ( selectedChannelTitle != null ) { if ( selectedChannelTitle != null ) {
@ -72,6 +75,8 @@ public class PVRActivity extends BaseMediaActivity
selectedChannelGroupId = savedInstanceState.getInt(CHANNELGROUPID, -1); selectedChannelGroupId = savedInstanceState.getInt(CHANNELGROUPID, -1);
selectedChannelGroupTitle = savedInstanceState.getString(CHANNELGROUPTITLE, null); selectedChannelGroupTitle = savedInstanceState.getString(CHANNELGROUPTITLE, null);
singleChannelGroup = savedInstanceState.getBoolean(SINGLECHANNELGROUPTITLE, false);
} }
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
} }
@ -84,6 +89,8 @@ public class PVRActivity extends BaseMediaActivity
outState.putInt(CHANNELGROUPID, selectedChannelGroupId); outState.putInt(CHANNELGROUPID, selectedChannelGroupId);
outState.putString(CHANNELGROUPTITLE, selectedChannelGroupTitle); outState.putString(CHANNELGROUPTITLE, selectedChannelGroupTitle);
outState.putBoolean(SINGLECHANNELGROUPTITLE, singleChannelGroup);
} }
@Override @Override
@ -94,7 +101,7 @@ public class PVRActivity extends BaseMediaActivity
if (selectedChannelId != -1) { if (selectedChannelId != -1) {
selectedChannelId = -1; selectedChannelId = -1;
selectedChannelTitle = null; selectedChannelTitle = null;
updateActionBar(getActionBarTitle(), true); updateActionBar(getActionBarTitle(), !singleChannelGroup);
getSupportFragmentManager().popBackStack(); getSupportFragmentManager().popBackStack();
return true; return true;
} else if (selectedChannelGroupId != -1) { } else if (selectedChannelGroupId != -1) {
@ -123,7 +130,7 @@ public class PVRActivity extends BaseMediaActivity
if (selectedChannelId != -1) { if (selectedChannelId != -1) {
selectedChannelId = -1; selectedChannelId = -1;
selectedChannelTitle = null; selectedChannelTitle = null;
updateActionBar(getActionBarTitle(), true); updateActionBar(getActionBarTitle(), !singleChannelGroup);
} else { } else {
if (selectedChannelGroupId != -1) { if (selectedChannelGroupId != -1) {
selectedChannelGroupId = -1; selectedChannelGroupId = -1;
@ -146,9 +153,10 @@ public class PVRActivity extends BaseMediaActivity
* @param channelTitle Title * @param channelTitle Title
*/ */
@TargetApi(21) @TargetApi(21)
public void onChannelGuideSelected(int channelId, String channelTitle) { public void onChannelGuideSelected(int channelId, String channelTitle, boolean singleChannelGroup) {
selectedChannelId = channelId; this.selectedChannelId = channelId;
selectedChannelTitle = channelTitle; this.selectedChannelTitle = channelTitle;
this.singleChannelGroup = singleChannelGroup;
// Replace list fragment // Replace list fragment
PVRChannelEPGListFragment pvrEPGFragment = PVRChannelEPGListFragment.newInstance(channelId); PVRChannelEPGListFragment pvrEPGFragment = PVRChannelEPGListFragment.newInstance(channelId);

View File

@ -61,7 +61,7 @@ public class PVRChannelsListFragment extends Fragment
public static final String SINGLECHANNELGROUP = "singlechannelgroup"; public static final String SINGLECHANNELGROUP = "singlechannelgroup";
public interface OnPVRChannelSelectedListener { public interface OnPVRChannelSelectedListener {
void onChannelGuideSelected(int channelId, String channelTitle); void onChannelGuideSelected(int channelId, String channelTitle, boolean singleChannelGroup);
void onChannelGroupSelected(int channelGroupId, String channelGroupTitle); void onChannelGroupSelected(int channelGroupId, String channelGroupTitle);
} }
@ -435,7 +435,7 @@ public class PVRChannelsListFragment extends Fragment
}, callbackHandler); }, callbackHandler);
return true; return true;
case R.id.action_epg_item: case R.id.action_epg_item:
listenerActivity.onChannelGuideSelected(channelId, channelName); listenerActivity.onChannelGuideSelected(channelId, channelName, singleChannelGroup);
return true; return true;
} }
return false; return false;