aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/evendanan/pushingpixels
diff options
context:
space:
mode:
authorMenny Even Danan <menny@evendanan.net>2015-02-21 19:20:42 +0000
committerMenny Even Danan <menny@evendanan.net>2015-02-21 19:20:42 +0000
commit414ab10d1f22d5172247416c846ecba66a7a75f7 (patch)
treebc03116ee1b0b1b190cc4732a88849e70e987202 /src/main/java/net/evendanan/pushingpixels
parent418e51c9a29b94f2faed82a0ac8c54008009cfdd (diff)
downloadAnySoftKeyboard-414ab10d1f22d5172247416c846ecba66a7a75f7.tar.gz
AnySoftKeyboard-414ab10d1f22d5172247416c846ecba66a7a75f7.tar.bz2
correctly setting the root fragment
Diffstat (limited to 'src/main/java/net/evendanan/pushingpixels')
-rw-r--r--src/main/java/net/evendanan/pushingpixels/FragmentChauffeurActivity.java51
1 files changed, 31 insertions, 20 deletions
diff --git a/src/main/java/net/evendanan/pushingpixels/FragmentChauffeurActivity.java b/src/main/java/net/evendanan/pushingpixels/FragmentChauffeurActivity.java
index 175f61495..046e71808 100644
--- a/src/main/java/net/evendanan/pushingpixels/FragmentChauffeurActivity.java
+++ b/src/main/java/net/evendanan/pushingpixels/FragmentChauffeurActivity.java
@@ -60,29 +60,38 @@ public abstract class FragmentChauffeurActivity extends ActionBarActivity {
if (savedInstanceState == null) {
//setting up the root of the UI.
setRootFragment(createRootFragmentInstance());
- //now, checking if there is a request to add a fragment on-top of this one.
- Bundle activityArgs = getIntent().getExtras();
- if (activityArgs != null && activityArgs.containsKey(KEY_FRAGMENT_CLASS_TO_ADD)) {
- Class<? extends Fragment> fragmentClass = (Class<? extends Fragment>) activityArgs.get(KEY_FRAGMENT_CLASS_TO_ADD);
- //not sure that this is a best-practice, but I still need to remove this from the activity's args
- activityArgs.remove(KEY_FRAGMENT_CLASS_TO_ADD);
- try {
- Fragment fragment = fragmentClass.newInstance();
- if (activityArgs.containsKey(KEY_FRAGMENT_ARGS_TO_ADD)) {
- fragment.setArguments(activityArgs.getBundle(KEY_FRAGMENT_ARGS_TO_ADD));
- activityArgs.remove(KEY_FRAGMENT_CLASS_TO_ADD);
- }
- addFragmentToUi(fragment, FragmentUiContext.RootFragment);
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- }
}
}
- protected abstract int getFragmentRootUiElementId();
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ handleFragmentIntentValues();
+ }
+
+ private void handleFragmentIntentValues() {
+ Bundle activityArgs = getIntent().getExtras();
+ if (activityArgs != null && activityArgs.containsKey(KEY_FRAGMENT_CLASS_TO_ADD)) {
+ Class<? extends Fragment> fragmentClass = (Class<? extends Fragment>) activityArgs.get(KEY_FRAGMENT_CLASS_TO_ADD);
+ //not sure that this is a best-practice, but I still need to remove this from the activity's args
+ activityArgs.remove(KEY_FRAGMENT_CLASS_TO_ADD);
+ try {
+ Fragment fragment = fragmentClass.newInstance();
+ if (activityArgs.containsKey(KEY_FRAGMENT_ARGS_TO_ADD)) {
+ fragment.setArguments(activityArgs.getBundle(KEY_FRAGMENT_ARGS_TO_ADD));
+ activityArgs.remove(KEY_FRAGMENT_CLASS_TO_ADD);
+ }
+ addFragmentToUi(fragment, FragmentUiContext.RootFragment);
+ } catch (InstantiationException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ protected abstract int getFragmentRootUiElementId();
protected abstract Fragment createRootFragmentInstance();
@@ -192,6 +201,8 @@ public abstract class FragmentChauffeurActivity extends ActionBarActivity {
protected void onStart() {
super.onStart();
mIsActivityShown = true;
+ //now, checking if there is a request to add a fragment on-top of this one.
+ handleFragmentIntentValues();
}
@Override