parent
28618e822e
commit
989ce126f1
2 changed files with 41 additions and 7 deletions
|
@ -204,8 +204,36 @@ public class MainActivity extends AppCompatActivity implements HistoryListener {
|
||||||
} else super.onBackPressed();
|
} else super.onBackPressed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implement the following diagram behavior for the up button:
|
||||||
|
* <pre>
|
||||||
|
* +---------------+
|
||||||
|
* | Main Screen +----+
|
||||||
|
* +-------+-------+ |
|
||||||
|
* | |
|
||||||
|
* ▲ Up | Search Button
|
||||||
|
* | |
|
||||||
|
* +----+-----+ |
|
||||||
|
* +------------+ Search |◄-----+
|
||||||
|
* | +----+-----+
|
||||||
|
* | Open |
|
||||||
|
* | something ▲ Up
|
||||||
|
* | |
|
||||||
|
* | +------------+-------------+
|
||||||
|
* | | |
|
||||||
|
* | | Video <-> Channel |
|
||||||
|
* +---►| Channel <-> Playlist |
|
||||||
|
* | Video <-> .... |
|
||||||
|
* | |
|
||||||
|
* +--------------------------+
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
private void onHomeButtonPressed() {
|
private void onHomeButtonPressed() {
|
||||||
NavigationHelper.gotoMainFragment(getSupportFragmentManager());
|
// If search fragment wasn't found in the backstack...
|
||||||
|
if (!NavigationHelper.tryGotoSearchFragment(getSupportFragmentManager())) {
|
||||||
|
// ...go to the main fragment
|
||||||
|
NavigationHelper.gotoMainFragment(getSupportFragmentManager());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -239,11 +267,6 @@ public class MainActivity extends AppCompatActivity implements HistoryListener {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
|
||||||
return super.onPrepareOptionsMenu(menu);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
if (DEBUG) Log.d(TAG, "onOptionsItemSelected() called with: item = [" + item + "]");
|
if (DEBUG) Log.d(TAG, "onOptionsItemSelected() called with: item = [" + item + "]");
|
||||||
|
|
|
@ -51,6 +51,7 @@ import java.util.ArrayList;
|
||||||
@SuppressWarnings({"unused", "WeakerAccess"})
|
@SuppressWarnings({"unused", "WeakerAccess"})
|
||||||
public class NavigationHelper {
|
public class NavigationHelper {
|
||||||
public static final String MAIN_FRAGMENT_TAG = "main_fragment_tag";
|
public static final String MAIN_FRAGMENT_TAG = "main_fragment_tag";
|
||||||
|
public static final String SEARCH_FRAGMENT_TAG = "search_fragment_tag";
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////////////
|
||||||
// Players
|
// Players
|
||||||
|
@ -244,11 +245,21 @@ public class NavigationHelper {
|
||||||
.commit();
|
.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean tryGotoSearchFragment(FragmentManager fragmentManager) {
|
||||||
|
if (MainActivity.DEBUG) {
|
||||||
|
for (int i = 0; i < fragmentManager.getBackStackEntryCount(); i++) {
|
||||||
|
Log.d("NavigationHelper", "tryGoToSearchFragment() [" + i + "] = [" + fragmentManager.getBackStackEntryAt(i) + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fragmentManager.popBackStackImmediate(SEARCH_FRAGMENT_TAG, 0);
|
||||||
|
}
|
||||||
|
|
||||||
public static void openSearchFragment(FragmentManager fragmentManager, int serviceId, String query) {
|
public static void openSearchFragment(FragmentManager fragmentManager, int serviceId, String query) {
|
||||||
fragmentManager.beginTransaction()
|
fragmentManager.beginTransaction()
|
||||||
.setCustomAnimations(R.animator.custom_fade_in, R.animator.custom_fade_out, R.animator.custom_fade_in, R.animator.custom_fade_out)
|
.setCustomAnimations(R.animator.custom_fade_in, R.animator.custom_fade_out, R.animator.custom_fade_in, R.animator.custom_fade_out)
|
||||||
.replace(R.id.fragment_holder, SearchFragment.getInstance(serviceId, query))
|
.replace(R.id.fragment_holder, SearchFragment.getInstance(serviceId, query))
|
||||||
.addToBackStack(null)
|
.addToBackStack(SEARCH_FRAGMENT_TAG)
|
||||||
.commit();
|
.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue