diff options
| author | Adam Powell <adamp@google.com> | 2012-04-09 10:52:26 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-09 10:52:26 -0700 |
| commit | 081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4 (patch) | |
| tree | 096e2755d6afa766f5fb802905977aab6d0a6313 /core/java | |
| parent | 4b3c5232109422c5c9bee044c01721536ceab488 (diff) | |
| parent | 04d5811500874d44010df2b4ce37a0b21095168f (diff) | |
| download | frameworks_base-081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4.zip frameworks_base-081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4.tar.gz frameworks_base-081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4.tar.bz2 | |
Merge "Tweaks to Activity up navigation"
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/Activity.java | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 3e123ba..7207e29 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -2522,7 +2522,19 @@ public class Activity extends ContextThemeWrapper if (onOptionsItemSelected(item)) { return true; } - return mFragments.dispatchOptionsItemSelected(item); + if (mFragments.dispatchOptionsItemSelected(item)) { + return true; + } + if (item.getItemId() == android.R.id.home && mActionBar != null && + (mActionBar.getDisplayOptions() & ActionBar.DISPLAY_HOME_AS_UP) != 0) { + if (mParent == null) { + onNavigateUp(); + } else { + mParent.onNavigateUpFromChild(this); + } + return true; + } + return false; case Window.FEATURE_CONTEXT_MENU: EventLog.writeEvent(50000, 1, item.getTitleCondensed()); @@ -2654,15 +2666,6 @@ public class Activity extends ContextThemeWrapper if (mParent != null) { return mParent.onOptionsItemSelected(item); } - if (item.getItemId() == android.R.id.home && mActionBar != null && - (mActionBar.getDisplayOptions() & ActionBar.DISPLAY_HOME_AS_UP) != 0) { - if (mParent == null) { - onNavigateUp(); - } else { - mParent.onNavigateUpFromChild(this); - } - return true; - } return false; } @@ -4865,11 +4868,19 @@ public class Activity extends ContextThemeWrapper * Obtain an {@link Intent} that will launch an explicit target activity specified by * this activity's logical parent. The logical parent is named in the application's manifest * by the {@link android.R.attr#parentActivityName parentActivityName} attribute. + * Activity subclasses may override this method to modify the Intent returned by + * super.getParentActivityIntent() or to implement a different mechanism of retrieving + * the parent intent entirely. * - * @return a new Intent targeting the defined parent of this activity + * @return a new Intent targeting the defined parent of this activity or null if + * there is no valid parent. */ public Intent getParentActivityIntent() { - return new Intent().setClassName(this, mActivityInfo.parentActivityName); + final String parentName = mActivityInfo.parentActivityName; + if (TextUtils.isEmpty(parentName)) { + return null; + } + return new Intent().setClassName(this, parentName); } // ------------------ Internal API ------------------ |
