diff options
| author | Menny Even Danan <menny@evendanan.net> | 2015-02-21 19:20:42 +0000 |
|---|---|---|
| committer | Menny Even Danan <menny@evendanan.net> | 2015-02-21 19:20:42 +0000 |
| commit | 414ab10d1f22d5172247416c846ecba66a7a75f7 (patch) | |
| tree | bc03116ee1b0b1b190cc4732a88849e70e987202 /src/main/java/net/evendanan/pushingpixels | |
| parent | 418e51c9a29b94f2faed82a0ac8c54008009cfdd (diff) | |
| download | AnySoftKeyboard-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.java | 51 |
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 |
