puntobip/sources/android/support/v7/app/ActionBarActivityDelegateBase.java
2022-12-04 18:05:41 -03:00

574 lines
23 KiB
Java

package android.support.v7.app;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v7.appcompat.R;
import android.support.v7.internal.view.menu.ListMenuPresenter;
import android.support.v7.internal.view.menu.MenuBuilder;
import android.support.v7.internal.view.menu.MenuPresenter;
import android.support.v7.internal.view.menu.MenuView;
import android.support.v7.internal.view.menu.MenuWrapperFactory;
import android.support.v7.internal.widget.ActionBarContainer;
import android.support.v7.internal.widget.ActionBarContextView;
import android.support.v7.internal.widget.ActionBarView;
import android.support.v7.internal.widget.ProgressBarICS;
import android.support.v7.view.ActionMode;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes.dex */
public class ActionBarActivityDelegateBase extends ActionBarActivityDelegate implements MenuPresenter.Callback, MenuBuilder.Callback {
private static final int[] ACTION_BAR_DRAWABLE_TOGGLE_ATTRS = {R.attr.homeAsUpIndicator};
private static final String TAG = "ActionBarActivityDelegateBase";
private ActionBarView mActionBarView;
private ActionMode mActionMode;
private boolean mClosingActionMenu;
private boolean mFeatureIndeterminateProgress;
private boolean mFeatureProgress;
private ListMenuPresenter mListMenuPresenter;
private MenuBuilder mMenu;
private Bundle mPanelFrozenActionViewState;
private boolean mPanelIsPrepared;
private boolean mPanelRefreshContent;
private boolean mSubDecorInstalled;
private CharSequence mTitleToSet;
/* JADX INFO: Access modifiers changed from: package-private */
public ActionBarActivityDelegateBase(ActionBarActivity activity) {
super(activity);
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public ActionBar createSupportActionBar() {
ensureSubDecor();
return new ActionBarImplBase(this.mActivity, this.mActivity);
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void onConfigurationChanged(Configuration newConfig) {
if (this.mHasActionBar && this.mSubDecorInstalled) {
ActionBarImplBase actionBar = (ActionBarImplBase) getSupportActionBar();
actionBar.onConfigurationChanged(newConfig);
}
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void onStop() {
ActionBarImplBase ab = (ActionBarImplBase) getSupportActionBar();
if (ab != null) {
ab.setShowHideAnimationEnabled(false);
}
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void onPostResume() {
ActionBarImplBase ab = (ActionBarImplBase) getSupportActionBar();
if (ab != null) {
ab.setShowHideAnimationEnabled(true);
}
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void setContentView(View v) {
ensureSubDecor();
ViewGroup contentParent = (ViewGroup) this.mActivity.findViewById(16908290);
contentParent.removeAllViews();
contentParent.addView(v);
this.mActivity.onSupportContentChanged();
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void setContentView(int resId) {
ensureSubDecor();
ViewGroup contentParent = (ViewGroup) this.mActivity.findViewById(16908290);
contentParent.removeAllViews();
this.mActivity.getLayoutInflater().inflate(resId, contentParent);
this.mActivity.onSupportContentChanged();
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void setContentView(View v, ViewGroup.LayoutParams lp) {
ensureSubDecor();
ViewGroup contentParent = (ViewGroup) this.mActivity.findViewById(16908290);
contentParent.removeAllViews();
contentParent.addView(v, lp);
this.mActivity.onSupportContentChanged();
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void addContentView(View v, ViewGroup.LayoutParams lp) {
ensureSubDecor();
ViewGroup contentParent = (ViewGroup) this.mActivity.findViewById(16908290);
contentParent.addView(v, lp);
this.mActivity.onSupportContentChanged();
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void onContentChanged() {
}
/* JADX INFO: Access modifiers changed from: package-private */
public final void ensureSubDecor() {
boolean splitActionBar;
if (!this.mSubDecorInstalled) {
if (this.mHasActionBar) {
if (this.mOverlayActionBar) {
this.mActivity.superSetContentView(R.layout.abc_action_bar_decor_overlay);
} else {
this.mActivity.superSetContentView(R.layout.abc_action_bar_decor);
}
this.mActionBarView = (ActionBarView) this.mActivity.findViewById(R.id.action_bar);
this.mActionBarView.setWindowCallback(this.mActivity);
if (this.mFeatureProgress) {
this.mActionBarView.initProgress();
}
if (this.mFeatureIndeterminateProgress) {
this.mActionBarView.initIndeterminateProgress();
}
boolean splitWhenNarrow = "splitActionBarWhenNarrow".equals(getUiOptionsFromMetadata());
if (splitWhenNarrow) {
splitActionBar = this.mActivity.getResources().getBoolean(R.bool.abc_split_action_bar_is_narrow);
} else {
TypedArray a = this.mActivity.obtainStyledAttributes(R.styleable.ActionBarWindow);
splitActionBar = a.getBoolean(2, false);
a.recycle();
}
ActionBarContainer splitView = (ActionBarContainer) this.mActivity.findViewById(R.id.split_action_bar);
if (splitView != null) {
this.mActionBarView.setSplitView(splitView);
this.mActionBarView.setSplitActionBar(splitActionBar);
this.mActionBarView.setSplitWhenNarrow(splitWhenNarrow);
ActionBarContextView cab = (ActionBarContextView) this.mActivity.findViewById(R.id.action_context_bar);
cab.setSplitView(splitView);
cab.setSplitActionBar(splitActionBar);
cab.setSplitWhenNarrow(splitWhenNarrow);
}
} else {
this.mActivity.superSetContentView(R.layout.abc_simple_decor);
}
View content = this.mActivity.findViewById(16908290);
content.setId(-1);
View abcContent = this.mActivity.findViewById(R.id.action_bar_activity_content);
abcContent.setId(16908290);
if (this.mTitleToSet != null) {
this.mActionBarView.setWindowTitle(this.mTitleToSet);
this.mTitleToSet = null;
}
applyFixedSizeWindow();
this.mSubDecorInstalled = true;
this.mActivity.getWindow().getDecorView().post(new Runnable() { // from class: android.support.v7.app.ActionBarActivityDelegateBase.1
@Override // java.lang.Runnable
public void run() {
ActionBarActivityDelegateBase.this.supportInvalidateOptionsMenu();
}
});
}
}
private void applyFixedSizeWindow() {
TypedArray a = this.mActivity.obtainStyledAttributes(R.styleable.ActionBarWindow);
TypedValue mFixedWidthMajor = null;
TypedValue mFixedWidthMinor = null;
TypedValue mFixedHeightMajor = null;
TypedValue mFixedHeightMinor = null;
if (a.hasValue(3)) {
if (0 == 0) {
mFixedWidthMajor = new TypedValue();
}
a.getValue(3, mFixedWidthMajor);
}
if (a.hasValue(5)) {
if (0 == 0) {
mFixedWidthMinor = new TypedValue();
}
a.getValue(5, mFixedWidthMinor);
}
if (a.hasValue(6)) {
if (0 == 0) {
mFixedHeightMajor = new TypedValue();
}
a.getValue(6, mFixedHeightMajor);
}
if (a.hasValue(4)) {
if (0 == 0) {
mFixedHeightMinor = new TypedValue();
}
a.getValue(4, mFixedHeightMinor);
}
DisplayMetrics metrics = this.mActivity.getResources().getDisplayMetrics();
boolean isPortrait = metrics.widthPixels < metrics.heightPixels;
int w = -1;
int h = -1;
TypedValue tvw = isPortrait ? mFixedWidthMinor : mFixedWidthMajor;
if (tvw != null && tvw.type != 0) {
if (tvw.type == 5) {
w = (int) tvw.getDimension(metrics);
} else if (tvw.type == 6) {
w = (int) tvw.getFraction(metrics.widthPixels, metrics.widthPixels);
}
}
TypedValue tvh = isPortrait ? mFixedHeightMajor : mFixedHeightMinor;
if (tvh != null && tvh.type != 0) {
if (tvh.type == 5) {
h = (int) tvh.getDimension(metrics);
} else if (tvh.type == 6) {
h = (int) tvh.getFraction(metrics.heightPixels, metrics.heightPixels);
}
}
if (w != -1 || h != -1) {
this.mActivity.getWindow().setLayout(w, h);
}
a.recycle();
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public boolean supportRequestWindowFeature(int featureId) {
switch (featureId) {
case 2:
this.mFeatureProgress = true;
return true;
case 3:
case 4:
case 6:
case 7:
default:
return this.mActivity.requestWindowFeature(featureId);
case 5:
this.mFeatureIndeterminateProgress = true;
return true;
case 8:
this.mHasActionBar = true;
return true;
case 9:
this.mOverlayActionBar = true;
return true;
}
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void onTitleChanged(CharSequence title) {
if (this.mActionBarView != null) {
this.mActionBarView.setWindowTitle(title);
} else {
this.mTitleToSet = title;
}
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public View onCreatePanelView(int featureId) {
if (featureId != 0 || !preparePanel()) {
return null;
}
View createdPanelView = (View) getListMenuView(this.mActivity, this);
return createdPanelView;
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public boolean onCreatePanelMenu(int featureId, Menu menu) {
if (featureId != 0) {
return this.mActivity.superOnCreatePanelMenu(featureId, menu);
}
return false;
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public boolean onPreparePanel(int featureId, View view, Menu menu) {
if (featureId != 0) {
return this.mActivity.superOnPreparePanel(featureId, view, menu);
}
return false;
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public boolean onMenuItemSelected(int featureId, MenuItem item) {
if (featureId == 0) {
item = MenuWrapperFactory.createMenuItemWrapper(item);
}
return this.mActivity.superOnMenuItemSelected(featureId, item);
}
@Override // android.support.v7.internal.view.menu.MenuBuilder.Callback
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) {
return this.mActivity.onMenuItemSelected(0, item);
}
@Override // android.support.v7.internal.view.menu.MenuBuilder.Callback
public void onMenuModeChange(MenuBuilder menu) {
reopenMenu(menu, true);
}
@Override // android.support.v7.internal.view.menu.MenuPresenter.Callback
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) {
if (!this.mClosingActionMenu) {
this.mClosingActionMenu = true;
this.mActivity.closeOptionsMenu();
this.mActionBarView.dismissPopupMenus();
this.mClosingActionMenu = false;
}
}
@Override // android.support.v7.internal.view.menu.MenuPresenter.Callback
public boolean onOpenSubMenu(MenuBuilder subMenu) {
return false;
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public ActionMode startSupportActionMode(ActionMode.Callback callback) {
if (callback == null) {
throw new IllegalArgumentException("ActionMode callback can not be null.");
}
if (this.mActionMode != null) {
this.mActionMode.finish();
}
ActionMode.Callback wrappedCallback = new ActionModeCallbackWrapper(callback);
ActionBarImplBase ab = (ActionBarImplBase) getSupportActionBar();
if (ab != null) {
this.mActionMode = ab.startActionMode(wrappedCallback);
}
if (this.mActionMode != null) {
this.mActivity.onSupportActionModeStarted(this.mActionMode);
}
return this.mActionMode;
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public void supportInvalidateOptionsMenu() {
if (this.mMenu != null) {
Bundle savedActionViewStates = new Bundle();
this.mMenu.saveActionViewStates(savedActionViewStates);
if (savedActionViewStates.size() > 0) {
this.mPanelFrozenActionViewState = savedActionViewStates;
}
this.mMenu.stopDispatchingItemsChanged();
this.mMenu.clear();
}
this.mPanelRefreshContent = true;
if (this.mActionBarView != null) {
this.mPanelIsPrepared = false;
preparePanel();
}
}
private void reopenMenu(MenuBuilder menu, boolean toggleMenuMode) {
if (this.mActionBarView != null && this.mActionBarView.isOverflowReserved()) {
if (!this.mActionBarView.isOverflowMenuShowing() || !toggleMenuMode) {
if (this.mActionBarView.getVisibility() == 0) {
this.mActionBarView.showOverflowMenu();
return;
}
return;
}
this.mActionBarView.hideOverflowMenu();
return;
}
menu.close();
}
private MenuView getListMenuView(Context context, MenuPresenter.Callback cb) {
if (this.mMenu == null) {
return null;
}
if (this.mListMenuPresenter == null) {
TypedArray a = context.obtainStyledAttributes(R.styleable.Theme);
int listPresenterTheme = a.getResourceId(4, R.style.Theme_AppCompat_CompactMenu);
a.recycle();
this.mListMenuPresenter = new ListMenuPresenter(R.layout.abc_list_menu_item_layout, listPresenterTheme);
this.mListMenuPresenter.setCallback(cb);
this.mMenu.addMenuPresenter(this.mListMenuPresenter);
} else {
this.mListMenuPresenter.updateMenuView(false);
}
return this.mListMenuPresenter.getMenuView(new FrameLayout(context));
}
@Override // android.support.v7.app.ActionBarActivityDelegate
public boolean onBackPressed() {
if (this.mActionMode != null) {
this.mActionMode.finish();
return true;
} else if (this.mActionBarView != null && this.mActionBarView.hasExpandedActionView()) {
this.mActionBarView.collapseActionView();
return true;
} else {
return false;
}
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // android.support.v7.app.ActionBarActivityDelegate
public void setSupportProgressBarVisibility(boolean visible) {
updateProgressBars(visible ? -1 : -2);
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // android.support.v7.app.ActionBarActivityDelegate
public void setSupportProgressBarIndeterminateVisibility(boolean visible) {
updateProgressBars(visible ? -1 : -2);
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // android.support.v7.app.ActionBarActivityDelegate
public void setSupportProgressBarIndeterminate(boolean indeterminate) {
updateProgressBars(indeterminate ? -3 : -4);
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // android.support.v7.app.ActionBarActivityDelegate
public void setSupportProgress(int progress) {
updateProgressBars(progress + 0);
}
@Override // android.support.v7.app.ActionBarActivityDelegate
int getHomeAsUpIndicatorAttrId() {
return R.attr.homeAsUpIndicator;
}
private void updateProgressBars(int value) {
ProgressBarICS circularProgressBar = getCircularProgressBar();
ProgressBarICS horizontalProgressBar = getHorizontalProgressBar();
if (value == -1) {
if (this.mFeatureProgress) {
int level = horizontalProgressBar.getProgress();
int visibility = (horizontalProgressBar.isIndeterminate() || level < 10000) ? 0 : 4;
horizontalProgressBar.setVisibility(visibility);
}
if (this.mFeatureIndeterminateProgress) {
circularProgressBar.setVisibility(0);
}
} else if (value == -2) {
if (this.mFeatureProgress) {
horizontalProgressBar.setVisibility(8);
}
if (this.mFeatureIndeterminateProgress) {
circularProgressBar.setVisibility(8);
}
} else if (value == -3) {
horizontalProgressBar.setIndeterminate(true);
} else if (value == -4) {
horizontalProgressBar.setIndeterminate(false);
} else if (value >= 0 && value <= 10000) {
horizontalProgressBar.setProgress(value + 0);
if (value < 10000) {
showProgressBars(horizontalProgressBar, circularProgressBar);
} else {
hideProgressBars(horizontalProgressBar, circularProgressBar);
}
}
}
private void showProgressBars(ProgressBarICS horizontalProgressBar, ProgressBarICS spinnyProgressBar) {
if (this.mFeatureIndeterminateProgress && spinnyProgressBar.getVisibility() == 4) {
spinnyProgressBar.setVisibility(0);
}
if (this.mFeatureProgress && horizontalProgressBar.getProgress() < 10000) {
horizontalProgressBar.setVisibility(0);
}
}
private void hideProgressBars(ProgressBarICS horizontalProgressBar, ProgressBarICS spinnyProgressBar) {
if (this.mFeatureIndeterminateProgress && spinnyProgressBar.getVisibility() == 0) {
spinnyProgressBar.setVisibility(4);
}
if (this.mFeatureProgress && horizontalProgressBar.getVisibility() == 0) {
horizontalProgressBar.setVisibility(4);
}
}
private ProgressBarICS getCircularProgressBar() {
ProgressBarICS pb = (ProgressBarICS) this.mActionBarView.findViewById(R.id.progress_circular);
if (pb != null) {
pb.setVisibility(4);
}
return pb;
}
private ProgressBarICS getHorizontalProgressBar() {
ProgressBarICS pb = (ProgressBarICS) this.mActionBarView.findViewById(R.id.progress_horizontal);
if (pb != null) {
pb.setVisibility(4);
}
return pb;
}
private boolean initializePanelMenu() {
this.mMenu = new MenuBuilder(getActionBarThemedContext());
this.mMenu.setCallback(this);
return true;
}
private boolean preparePanel() {
if (this.mPanelIsPrepared) {
return true;
}
if (this.mMenu == null || this.mPanelRefreshContent) {
if (this.mMenu == null && (!initializePanelMenu() || this.mMenu == null)) {
return false;
}
if (this.mActionBarView != null) {
this.mActionBarView.setMenu(this.mMenu, this);
}
this.mMenu.stopDispatchingItemsChanged();
if (!this.mActivity.superOnCreatePanelMenu(0, this.mMenu)) {
this.mMenu = null;
if (this.mActionBarView != null) {
this.mActionBarView.setMenu(null, this);
}
return false;
}
this.mPanelRefreshContent = false;
}
this.mMenu.stopDispatchingItemsChanged();
if (this.mPanelFrozenActionViewState != null) {
this.mMenu.restoreActionViewStates(this.mPanelFrozenActionViewState);
this.mPanelFrozenActionViewState = null;
}
if (!this.mActivity.superOnPreparePanel(0, null, this.mMenu)) {
if (this.mActionBarView != null) {
this.mActionBarView.setMenu(null, this);
}
this.mMenu.startDispatchingItemsChanged();
return false;
}
this.mMenu.startDispatchingItemsChanged();
this.mPanelIsPrepared = true;
return true;
}
/* loaded from: classes.dex */
private class ActionModeCallbackWrapper implements ActionMode.Callback {
private ActionMode.Callback mWrapped;
public ActionModeCallbackWrapper(ActionMode.Callback wrapped) {
this.mWrapped = wrapped;
}
@Override // android.support.v7.view.ActionMode.Callback
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
return this.mWrapped.onCreateActionMode(mode, menu);
}
@Override // android.support.v7.view.ActionMode.Callback
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return this.mWrapped.onPrepareActionMode(mode, menu);
}
@Override // android.support.v7.view.ActionMode.Callback
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return this.mWrapped.onActionItemClicked(mode, item);
}
@Override // android.support.v7.view.ActionMode.Callback
public void onDestroyActionMode(ActionMode mode) {
this.mWrapped.onDestroyActionMode(mode);
ActionBarActivityDelegateBase.this.mActivity.onSupportActionModeFinished(mode);
ActionBarActivityDelegateBase.this.mActionMode = null;
}
}
}