Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54c7d7e6 authored by Adam Powell's avatar Adam Powell
Browse files

Allow the action bar title to take on the role of "up" in the absence

of a standard "home" icon.

Change-Id: Ie1a9adca674500a29da36956455667bbb55a616f
parent ec08cacd
Loading
Loading
Loading
Loading
+26 −10
Original line number Diff line number Diff line
@@ -96,6 +96,8 @@ public class ActionBarView extends AbsActionBarView {
    private LinearLayout mTitleLayout;
    private TextView mTitleView;
    private TextView mSubtitleView;
    private View mTitleUpView;

    private Spinner mSpinner;
    private LinearLayout mListNavLayout;
    private ScrollingTabContainerView mTabScrollView;
@@ -152,6 +154,16 @@ public class ActionBarView extends AbsActionBarView {
        }
    };

    private final OnClickListener mUpClickListener = new OnClickListener() {
        public void onClick(View v) {
            Context context = getContext();
            if (context instanceof Activity) {
                Activity activity = (Activity) context;
                activity.onMenuItemSelected(Window.FEATURE_OPTIONS_PANEL, mLogoNavItem);
            }
        }
    };

    public ActionBarView(Context context, AttributeSet attrs) {
        super(context, attrs);

@@ -230,15 +242,7 @@ public class ActionBarView extends AbsActionBarView {
        a.recycle();
        
        mLogoNavItem = new ActionMenuItem(context, 0, android.R.id.home, 0, 0, mTitle);
        mHomeLayout.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Context context = getContext();
                if (context instanceof Activity) {
                    Activity activity = (Activity) context;
                    activity.onMenuItemSelected(Window.FEATURE_OPTIONS_PANEL, mLogoNavItem);
                }
            }
        });
        mHomeLayout.setOnClickListener(mUpClickListener);
        mHomeLayout.setClickable(true);
        mHomeLayout.setFocusable(true);
    }
@@ -438,7 +442,8 @@ public class ActionBarView extends AbsActionBarView {
        }

        if ((flagsChanged & DISPLAY_RELAYOUT_MASK) != 0) {
            final int vis = (options & ActionBar.DISPLAY_SHOW_HOME) != 0 ? VISIBLE : GONE;
            final boolean showHome = (options & ActionBar.DISPLAY_SHOW_HOME) != 0;
            final int vis = showHome ? VISIBLE : GONE;
            mHomeLayout.setVisibility(vis);

            if ((flagsChanged & ActionBar.DISPLAY_HOME_AS_UP) != 0) {
@@ -458,6 +463,14 @@ public class ActionBarView extends AbsActionBarView {
                }
            }

            if ((flagsChanged &
                    (ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME)) != 0) {
                final boolean homeAsUp = (options & ActionBar.DISPLAY_HOME_AS_UP) != 0;
                final boolean titleUp = homeAsUp && !showHome;
                mTitleUpView.setVisibility(titleUp ? VISIBLE : GONE);
                mTitleLayout.setEnabled(titleUp);
            }

            if ((flagsChanged & ActionBar.DISPLAY_SHOW_CUSTOM) != 0 && mCustomNavView != null) {
                if ((options & ActionBar.DISPLAY_SHOW_CUSTOM) != 0) {
                    addView(mCustomNavView);
@@ -641,6 +654,9 @@ public class ActionBarView extends AbsActionBarView {
        mTitleLayout = (LinearLayout) inflater.inflate(R.layout.action_bar_title_item, null);
        mTitleView = (TextView) mTitleLayout.findViewById(R.id.action_bar_title);
        mSubtitleView = (TextView) mTitleLayout.findViewById(R.id.action_bar_subtitle);
        mTitleUpView = (View) mTitleLayout.findViewById(R.id.up);

        mTitleLayout.setOnClickListener(mUpClickListener);

        if (mTitleStyleRes != 0) {
            mTitleView.setTextAppearance(mContext, mTitleStyleRes);
+28 −13
Original line number Diff line number Diff line
@@ -17,8 +17,22 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:paddingRight="32dip" >
              android:orientation="horizontal"
              android:paddingRight="16dip"
              android:background="?android:attr/selectableItemBackground"
              android:enabled="false">

    <ImageView android:id="@android:id/up"
               android:src="?android:attr/homeAsUpIndicator"
               android:layout_gravity="center_vertical|left"
               android:visibility="gone"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content" />

    <LinearLayout android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center_vertical|left"
                  android:orientation="vertical">
        <TextView android:id="@+id/action_bar_title"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
@@ -31,3 +45,4 @@
                  android:ellipsize="end"
                  android:visibility="gone" />
    </LinearLayout>
</LinearLayout>