diff options
-rw-r--r-- | api/current.xml | 33 | ||||
-rw-r--r-- | core/java/android/app/ActionBar.java | 18 | ||||
-rw-r--r-- | core/java/com/android/internal/app/ActionBarImpl.java | 18 | ||||
-rw-r--r-- | core/java/com/android/internal/widget/ActionBarContextView.java | 8 |
4 files changed, 77 insertions, 0 deletions
diff --git a/api/current.xml b/api/current.xml index 9486ca6..2837747 100644 --- a/api/current.xml +++ b/api/current.xml @@ -19890,6 +19890,17 @@ visibility="public" > </method> +<method name="getCustomView" + return="android.view.View" + abstract="true" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> <method name="getMenu" return="android.view.Menu" abstract="true" @@ -19901,6 +19912,28 @@ visibility="public" > </method> +<method name="getSubtitle" + return="java.lang.CharSequence" + abstract="true" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getTitle" + return="java.lang.CharSequence" + abstract="true" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> <method name="invalidate" return="void" abstract="true" diff --git a/core/java/android/app/ActionBar.java b/core/java/android/app/ActionBar.java index d0b3ac4..3cd2b9e 100644 --- a/core/java/android/app/ActionBar.java +++ b/core/java/android/app/ActionBar.java @@ -368,6 +368,24 @@ public abstract class ActionBar { * @return The context mode's menu. */ public abstract Menu getMenu(); + + /** + * Returns the current title of this context mode. + * @return Title text + */ + public abstract CharSequence getTitle(); + + /** + * Returns the current subtitle of this context mode. + * @return Subtitle text + */ + public abstract CharSequence getSubtitle(); + + /** + * Returns the current custom view for this context mode. + * @return The current custom view + */ + public abstract View getCustomView(); } /** diff --git a/core/java/com/android/internal/app/ActionBarImpl.java b/core/java/com/android/internal/app/ActionBarImpl.java index c6be7c2..f37021b 100644 --- a/core/java/com/android/internal/app/ActionBarImpl.java +++ b/core/java/com/android/internal/app/ActionBarImpl.java @@ -34,6 +34,7 @@ import android.widget.LinearLayout; import android.widget.SpinnerAdapter; import android.widget.ViewAnimator; +import java.lang.ref.WeakReference; import java.util.ArrayList; /** @@ -338,6 +339,7 @@ public class ActionBarImpl extends ActionBar { public class ContextMode extends ActionBar.ContextMode { private ContextModeCallback mCallback; private ActionMenu mMenu; + private WeakReference<View> mCustomView; public ContextMode(ContextModeCallback callback) { mCallback = callback; @@ -375,6 +377,7 @@ public class ActionBarImpl extends ActionBar { @Override public void setCustomView(View view) { mUpperContextView.setCustomView(view); + mCustomView = new WeakReference<View>(view); } @Override @@ -386,7 +389,22 @@ public class ActionBarImpl extends ActionBar { public void setTitle(CharSequence title) { mUpperContextView.setTitle(title); } + + @Override + public CharSequence getTitle() { + return mUpperContextView.getTitle(); + } + + @Override + public CharSequence getSubtitle() { + return mUpperContextView.getSubtitle(); + } + @Override + public View getCustomView() { + return mCustomView != null ? mCustomView.get() : null; + } + public void dispatchOnContextItemClicked(MenuItem item) { ActionMenuItem actionItem = (ActionMenuItem) item; if (!actionItem.invoke()) { diff --git a/core/java/com/android/internal/widget/ActionBarContextView.java b/core/java/com/android/internal/widget/ActionBarContextView.java index 0f895f0..b57b7a8 100644 --- a/core/java/com/android/internal/widget/ActionBarContextView.java +++ b/core/java/com/android/internal/widget/ActionBarContextView.java @@ -105,6 +105,14 @@ public class ActionBarContextView extends ViewGroup { initTitle(); } + public CharSequence getTitle() { + return mTitle; + } + + public CharSequence getSubtitle() { + return mSubtitle; + } + private void initTitle() { if (mTitleLayout == null) { LayoutInflater inflater = LayoutInflater.from(getContext()); |