Search in sources :

Example 1 with ActionBarContainer

use of com.android.internal.widget.ActionBarContainer in project android_frameworks_base by ParanoidAndroid.

the class PhoneWindow method installDecor.

private void installDecor() {
    if (mDecor == null) {
        mDecor = generateDecor();
        mDecor.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
        mDecor.setIsRootNamespace(true);
        if (!mInvalidatePanelMenuPosted && mInvalidatePanelMenuFeatures != 0) {
            mDecor.postOnAnimation(mInvalidatePanelMenuRunnable);
        }
    }
    if (mContentParent == null) {
        mContentParent = generateLayout(mDecor);
        // Set up decor part of UI to ignore fitsSystemWindows if appropriate.
        mDecor.makeOptionalFitsSystemWindows();
        mTitleView = (TextView) findViewById(com.android.internal.R.id.title);
        if (mTitleView != null) {
            mTitleView.setLayoutDirection(mDecor.getLayoutDirection());
            if ((getLocalFeatures() & (1 << FEATURE_NO_TITLE)) != 0) {
                View titleContainer = findViewById(com.android.internal.R.id.title_container);
                if (titleContainer != null) {
                    titleContainer.setVisibility(View.GONE);
                } else {
                    mTitleView.setVisibility(View.GONE);
                }
                if (mContentParent instanceof FrameLayout) {
                    ((FrameLayout) mContentParent).setForeground(null);
                }
            } else {
                mTitleView.setText(mTitle);
            }
        } else {
            mActionBar = (ActionBarView) findViewById(com.android.internal.R.id.action_bar);
            if (mActionBar != null) {
                mActionBar.setWindowCallback(getCallback());
                if (mActionBar.getTitle() == null) {
                    mActionBar.setWindowTitle(mTitle);
                }
                final int localFeatures = getLocalFeatures();
                if ((localFeatures & (1 << FEATURE_PROGRESS)) != 0) {
                    mActionBar.initProgress();
                }
                if ((localFeatures & (1 << FEATURE_INDETERMINATE_PROGRESS)) != 0) {
                    mActionBar.initIndeterminateProgress();
                }
                boolean splitActionBar = false;
                final boolean splitWhenNarrow = (mUiOptions & ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW) != 0;
                if (splitWhenNarrow) {
                    splitActionBar = getContext().getResources().getBoolean(com.android.internal.R.bool.split_action_bar_is_narrow);
                } else {
                    splitActionBar = getWindowStyle().getBoolean(com.android.internal.R.styleable.Window_windowSplitActionBar, false);
                }
                final ActionBarContainer splitView = (ActionBarContainer) findViewById(com.android.internal.R.id.split_action_bar);
                if (splitView != null) {
                    mActionBar.setSplitView(splitView);
                    mActionBar.setSplitActionBar(splitActionBar);
                    mActionBar.setSplitWhenNarrow(splitWhenNarrow);
                    final ActionBarContextView cab = (ActionBarContextView) findViewById(com.android.internal.R.id.action_context_bar);
                    cab.setSplitView(splitView);
                    cab.setSplitActionBar(splitActionBar);
                    cab.setSplitWhenNarrow(splitWhenNarrow);
                } else if (splitActionBar) {
                    Log.e(TAG, "Requested split action bar with " + "incompatible window decor! Ignoring request.");
                }
                // Post the panel invalidate for later; avoid application onCreateOptionsMenu
                // being called in the middle of onCreate or similar.
                mDecor.post(new Runnable() {

                    public void run() {
                        // Invalidate if the panel menu hasn't been created before this.
                        PanelFeatureState st = getPanelState(FEATURE_OPTIONS_PANEL, false);
                        if (!isDestroyed() && (st == null || st.menu == null)) {
                            invalidatePanelMenu(FEATURE_ACTION_BAR);
                        }
                    }
                });
            }
        }
    }
}
Also used : ActionBarContainer(com.android.internal.widget.ActionBarContainer) FrameLayout(android.widget.FrameLayout) ActionBarContextView(com.android.internal.widget.ActionBarContextView) MenuView(com.android.internal.view.menu.MenuView) ImageView(android.widget.ImageView) View(android.view.View) ActionBarView(com.android.internal.widget.ActionBarView) TextView(android.widget.TextView) ActionBarContextView(com.android.internal.widget.ActionBarContextView)

Aggregations

View (android.view.View)1 FrameLayout (android.widget.FrameLayout)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 MenuView (com.android.internal.view.menu.MenuView)1 ActionBarContainer (com.android.internal.widget.ActionBarContainer)1 ActionBarContextView (com.android.internal.widget.ActionBarContextView)1 ActionBarView (com.android.internal.widget.ActionBarView)1