628 lines
27 KiB
Java
628 lines
27 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.ResolveInfo;
|
|
import android.content.res.Resources;
|
|
import android.content.res.TypedArray;
|
|
import android.database.DataSetObserver;
|
|
import android.graphics.drawable.ColorDrawable;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.util.AttributeSet;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewTreeObserver;
|
|
import android.view.accessibility.AccessibilityNodeInfo;
|
|
import android.widget.AdapterView;
|
|
import android.widget.BaseAdapter;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.ImageView;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.PopupWindow;
|
|
import android.widget.TextView;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.appcompat.R;
|
|
import androidx.appcompat.view.menu.ShowableListMenu;
|
|
import androidx.appcompat.widget.ActivityChooserModel;
|
|
import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure;
|
|
import androidx.core.view.ActionProvider;
|
|
import androidx.core.view.ViewCompat;
|
|
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public class ActivityChooserView extends ViewGroup implements ActivityChooserModel.ActivityChooserModelClient {
|
|
private final View mActivityChooserContent;
|
|
private final Drawable mActivityChooserContentBackground;
|
|
public final ActivityChooserViewAdapter mAdapter;
|
|
private final Callbacks mCallbacks;
|
|
private int mDefaultActionButtonContentDescription;
|
|
public final FrameLayout mDefaultActivityButton;
|
|
private final ImageView mDefaultActivityButtonImage;
|
|
public final FrameLayout mExpandActivityOverflowButton;
|
|
private final ImageView mExpandActivityOverflowButtonImage;
|
|
public int mInitialActivityCount;
|
|
private boolean mIsAttachedToWindow;
|
|
public boolean mIsSelectingDefaultActivity;
|
|
private final int mListPopupMaxWidth;
|
|
private ListPopupWindow mListPopupWindow;
|
|
public final DataSetObserver mModelDataSetObserver;
|
|
public PopupWindow.OnDismissListener mOnDismissListener;
|
|
private final ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener;
|
|
public ActionProvider mProvider;
|
|
|
|
/* renamed from: androidx.appcompat.widget.ActivityChooserView$1 reason: invalid class name */
|
|
public class AnonymousClass1 extends DataSetObserver {
|
|
public AnonymousClass1() {
|
|
}
|
|
|
|
@Override // android.database.DataSetObserver
|
|
public void onChanged() {
|
|
super.onChanged();
|
|
ActivityChooserView.this.mAdapter.notifyDataSetChanged();
|
|
}
|
|
|
|
@Override // android.database.DataSetObserver
|
|
public void onInvalidated() {
|
|
super.onInvalidated();
|
|
ActivityChooserView.this.mAdapter.notifyDataSetInvalidated();
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.ActivityChooserView$2 reason: invalid class name */
|
|
public class AnonymousClass2 implements ViewTreeObserver.OnGlobalLayoutListener {
|
|
public AnonymousClass2() {
|
|
}
|
|
|
|
@Override // android.view.ViewTreeObserver.OnGlobalLayoutListener
|
|
public void onGlobalLayout() {
|
|
if (!ActivityChooserView.this.isShowingPopup()) {
|
|
return;
|
|
}
|
|
if (!ActivityChooserView.this.isShown()) {
|
|
ActivityChooserView.this.getListPopupWindow().dismiss();
|
|
return;
|
|
}
|
|
ActivityChooserView.this.getListPopupWindow().show();
|
|
ActionProvider actionProvider = ActivityChooserView.this.mProvider;
|
|
if (actionProvider != null) {
|
|
actionProvider.subUiVisibilityChanged(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.ActivityChooserView$3 reason: invalid class name */
|
|
public class AnonymousClass3 extends View.AccessibilityDelegate {
|
|
public AnonymousClass3() {
|
|
}
|
|
|
|
@Override // android.view.View.AccessibilityDelegate
|
|
public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfo accessibilityNodeInfo) {
|
|
super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfo);
|
|
AccessibilityNodeInfoCompat.wrap(accessibilityNodeInfo).setCanOpenPopup(true);
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.ActivityChooserView$4 reason: invalid class name */
|
|
public class AnonymousClass4 extends ForwardingListener {
|
|
public AnonymousClass4(View view) {
|
|
super(view);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ForwardingListener
|
|
public ShowableListMenu getPopup() {
|
|
return ActivityChooserView.this.getListPopupWindow();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ForwardingListener
|
|
public boolean onForwardingStarted() {
|
|
ActivityChooserView.this.showPopup();
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ForwardingListener
|
|
public boolean onForwardingStopped() {
|
|
ActivityChooserView.this.dismissPopup();
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.ActivityChooserView$5 reason: invalid class name */
|
|
public class AnonymousClass5 extends DataSetObserver {
|
|
public AnonymousClass5() {
|
|
}
|
|
|
|
@Override // android.database.DataSetObserver
|
|
public void onChanged() {
|
|
super.onChanged();
|
|
ActivityChooserView.this.updateAppearance();
|
|
}
|
|
}
|
|
|
|
public class ActivityChooserViewAdapter extends BaseAdapter {
|
|
private static final int ITEM_VIEW_TYPE_ACTIVITY = 0;
|
|
private static final int ITEM_VIEW_TYPE_COUNT = 3;
|
|
private static final int ITEM_VIEW_TYPE_FOOTER = 1;
|
|
public static final int MAX_ACTIVITY_COUNT_DEFAULT = 4;
|
|
public static final int MAX_ACTIVITY_COUNT_UNLIMITED = Integer.MAX_VALUE;
|
|
private ActivityChooserModel mDataModel;
|
|
private boolean mHighlightDefaultActivity;
|
|
private int mMaxActivityCount = 4;
|
|
private boolean mShowDefaultActivity;
|
|
private boolean mShowFooterView;
|
|
|
|
public ActivityChooserViewAdapter() {
|
|
}
|
|
|
|
public int getActivityCount() {
|
|
return this.mDataModel.getActivityCount();
|
|
}
|
|
|
|
@Override // android.widget.Adapter
|
|
public int getCount() {
|
|
int activityCount = this.mDataModel.getActivityCount();
|
|
if (!this.mShowDefaultActivity && this.mDataModel.getDefaultActivity() != null) {
|
|
activityCount--;
|
|
}
|
|
int min = Math.min(activityCount, this.mMaxActivityCount);
|
|
return this.mShowFooterView ? min + 1 : min;
|
|
}
|
|
|
|
public ActivityChooserModel getDataModel() {
|
|
return this.mDataModel;
|
|
}
|
|
|
|
public ResolveInfo getDefaultActivity() {
|
|
return this.mDataModel.getDefaultActivity();
|
|
}
|
|
|
|
public int getHistorySize() {
|
|
return this.mDataModel.getHistorySize();
|
|
}
|
|
|
|
@Override // android.widget.Adapter
|
|
public Object getItem(int i) {
|
|
int itemViewType = getItemViewType(i);
|
|
if (itemViewType == 0) {
|
|
if (!this.mShowDefaultActivity && this.mDataModel.getDefaultActivity() != null) {
|
|
i++;
|
|
}
|
|
return this.mDataModel.getActivity(i);
|
|
} else if (itemViewType == 1) {
|
|
return null;
|
|
} else {
|
|
throw new IllegalArgumentException();
|
|
}
|
|
}
|
|
|
|
@Override // android.widget.Adapter
|
|
public long getItemId(int i) {
|
|
return (long) i;
|
|
}
|
|
|
|
@Override // android.widget.BaseAdapter, android.widget.Adapter
|
|
public int getItemViewType(int i) {
|
|
return (!this.mShowFooterView || i != getCount() - 1) ? 0 : 1;
|
|
}
|
|
|
|
public boolean getShowDefaultActivity() {
|
|
return this.mShowDefaultActivity;
|
|
}
|
|
|
|
@Override // android.widget.Adapter
|
|
public View getView(int i, View view, ViewGroup viewGroup) {
|
|
int itemViewType = getItemViewType(i);
|
|
if (itemViewType == 0) {
|
|
if (view == null || view.getId() != R.id.list_item) {
|
|
view = LayoutInflater.from(ActivityChooserView.this.getContext()).inflate(R.layout.abc_activity_chooser_view_list_item, viewGroup, false);
|
|
}
|
|
PackageManager packageManager = ActivityChooserView.this.getContext().getPackageManager();
|
|
ResolveInfo resolveInfo = (ResolveInfo) getItem(i);
|
|
((ImageView) view.findViewById(R.id.icon)).setImageDrawable(resolveInfo.loadIcon(packageManager));
|
|
((TextView) view.findViewById(R.id.title)).setText(resolveInfo.loadLabel(packageManager));
|
|
if (!this.mShowDefaultActivity || i != 0 || !this.mHighlightDefaultActivity) {
|
|
view.setActivated(false);
|
|
} else {
|
|
view.setActivated(true);
|
|
}
|
|
return view;
|
|
} else if (itemViewType != 1) {
|
|
throw new IllegalArgumentException();
|
|
} else if (view != null && view.getId() == 1) {
|
|
return view;
|
|
} else {
|
|
View inflate = LayoutInflater.from(ActivityChooserView.this.getContext()).inflate(R.layout.abc_activity_chooser_view_list_item, viewGroup, false);
|
|
inflate.setId(1);
|
|
((TextView) inflate.findViewById(R.id.title)).setText(ActivityChooserView.this.getContext().getString(R.string.abc_activity_chooser_view_see_all));
|
|
return inflate;
|
|
}
|
|
}
|
|
|
|
@Override // android.widget.BaseAdapter, android.widget.Adapter
|
|
public int getViewTypeCount() {
|
|
return 3;
|
|
}
|
|
|
|
public int measureContentWidth() {
|
|
int i = this.mMaxActivityCount;
|
|
this.mMaxActivityCount = Integer.MAX_VALUE;
|
|
int makeMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, 0);
|
|
int makeMeasureSpec2 = View.MeasureSpec.makeMeasureSpec(0, 0);
|
|
int count = getCount();
|
|
View view = null;
|
|
int i2 = 0;
|
|
for (int i3 = 0; i3 < count; i3++) {
|
|
view = getView(i3, view, null);
|
|
view.measure(makeMeasureSpec, makeMeasureSpec2);
|
|
i2 = Math.max(i2, view.getMeasuredWidth());
|
|
}
|
|
this.mMaxActivityCount = i;
|
|
return i2;
|
|
}
|
|
|
|
public void setDataModel(ActivityChooserModel activityChooserModel) {
|
|
ActivityChooserModel dataModel = ActivityChooserView.this.mAdapter.getDataModel();
|
|
if (dataModel != null && ActivityChooserView.this.isShown()) {
|
|
dataModel.unregisterObserver(ActivityChooserView.this.mModelDataSetObserver);
|
|
}
|
|
this.mDataModel = activityChooserModel;
|
|
if (activityChooserModel != null && ActivityChooserView.this.isShown()) {
|
|
activityChooserModel.registerObserver(ActivityChooserView.this.mModelDataSetObserver);
|
|
}
|
|
notifyDataSetChanged();
|
|
}
|
|
|
|
public void setMaxActivityCount(int i) {
|
|
if (this.mMaxActivityCount != i) {
|
|
this.mMaxActivityCount = i;
|
|
notifyDataSetChanged();
|
|
}
|
|
}
|
|
|
|
public void setShowDefaultActivity(boolean z2, boolean z3) {
|
|
if (this.mShowDefaultActivity != z2 || this.mHighlightDefaultActivity != z3) {
|
|
this.mShowDefaultActivity = z2;
|
|
this.mHighlightDefaultActivity = z3;
|
|
notifyDataSetChanged();
|
|
}
|
|
}
|
|
|
|
public void setShowFooterView(boolean z2) {
|
|
if (this.mShowFooterView != z2) {
|
|
this.mShowFooterView = z2;
|
|
notifyDataSetChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
public class Callbacks implements AdapterView.OnItemClickListener, View.OnClickListener, View.OnLongClickListener, PopupWindow.OnDismissListener {
|
|
public Callbacks() {
|
|
}
|
|
|
|
private void notifyOnDismissListener() {
|
|
PopupWindow.OnDismissListener onDismissListener = ActivityChooserView.this.mOnDismissListener;
|
|
if (onDismissListener != null) {
|
|
onDismissListener.onDismiss();
|
|
}
|
|
}
|
|
|
|
@Override // android.view.View.OnClickListener
|
|
public void onClick(View view) {
|
|
ActivityChooserView activityChooserView = ActivityChooserView.this;
|
|
if (view == activityChooserView.mDefaultActivityButton) {
|
|
activityChooserView.dismissPopup();
|
|
Intent chooseActivity = ActivityChooserView.this.mAdapter.getDataModel().chooseActivity(ActivityChooserView.this.mAdapter.getDataModel().getActivityIndex(ActivityChooserView.this.mAdapter.getDefaultActivity()));
|
|
if (chooseActivity != null) {
|
|
chooseActivity.addFlags(524288);
|
|
ActivityChooserView.this.getContext().startActivity(chooseActivity);
|
|
}
|
|
} else if (view == activityChooserView.mExpandActivityOverflowButton) {
|
|
activityChooserView.mIsSelectingDefaultActivity = false;
|
|
activityChooserView.showPopupUnchecked(activityChooserView.mInitialActivityCount);
|
|
} else {
|
|
throw new IllegalArgumentException();
|
|
}
|
|
}
|
|
|
|
@Override // android.widget.PopupWindow.OnDismissListener
|
|
public void onDismiss() {
|
|
notifyOnDismissListener();
|
|
ActionProvider actionProvider = ActivityChooserView.this.mProvider;
|
|
if (actionProvider != null) {
|
|
actionProvider.subUiVisibilityChanged(false);
|
|
}
|
|
}
|
|
|
|
@Override // android.widget.AdapterView.OnItemClickListener
|
|
public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
|
|
int itemViewType = ((ActivityChooserViewAdapter) adapterView.getAdapter()).getItemViewType(i);
|
|
if (itemViewType == 0) {
|
|
ActivityChooserView.this.dismissPopup();
|
|
ActivityChooserView activityChooserView = ActivityChooserView.this;
|
|
if (!activityChooserView.mIsSelectingDefaultActivity) {
|
|
if (!activityChooserView.mAdapter.getShowDefaultActivity()) {
|
|
i++;
|
|
}
|
|
Intent chooseActivity = ActivityChooserView.this.mAdapter.getDataModel().chooseActivity(i);
|
|
if (chooseActivity != null) {
|
|
chooseActivity.addFlags(524288);
|
|
ActivityChooserView.this.getContext().startActivity(chooseActivity);
|
|
}
|
|
} else if (i > 0) {
|
|
activityChooserView.mAdapter.getDataModel().setDefaultActivity(i);
|
|
}
|
|
} else if (itemViewType == 1) {
|
|
ActivityChooserView.this.showPopupUnchecked(Integer.MAX_VALUE);
|
|
} else {
|
|
throw new IllegalArgumentException();
|
|
}
|
|
}
|
|
|
|
@Override // android.view.View.OnLongClickListener
|
|
public boolean onLongClick(View view) {
|
|
ActivityChooserView activityChooserView = ActivityChooserView.this;
|
|
if (view == activityChooserView.mDefaultActivityButton) {
|
|
if (activityChooserView.mAdapter.getCount() > 0) {
|
|
ActivityChooserView activityChooserView2 = ActivityChooserView.this;
|
|
activityChooserView2.mIsSelectingDefaultActivity = true;
|
|
activityChooserView2.showPopupUnchecked(activityChooserView2.mInitialActivityCount);
|
|
}
|
|
return true;
|
|
}
|
|
throw new IllegalArgumentException();
|
|
}
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public static class InnerLayout extends LinearLayout {
|
|
private static final int[] TINT_ATTRS = {16842964};
|
|
|
|
public InnerLayout(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(context, attributeSet, TINT_ATTRS);
|
|
setBackgroundDrawable(obtainStyledAttributes.getDrawable(0));
|
|
obtainStyledAttributes.recycle();
|
|
}
|
|
}
|
|
|
|
public ActivityChooserView(@NonNull Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public ActivityChooserView(@NonNull Context context, @Nullable AttributeSet attributeSet) {
|
|
this(context, attributeSet, 0);
|
|
}
|
|
|
|
public ActivityChooserView(@NonNull Context context, @Nullable AttributeSet attributeSet, int i) {
|
|
super(context, attributeSet, i);
|
|
this.mModelDataSetObserver = new AnonymousClass1();
|
|
this.mOnGlobalLayoutListener = new AnonymousClass2();
|
|
this.mInitialActivityCount = 4;
|
|
int[] iArr = R.styleable.ActivityChooserView;
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, iArr, i, 0);
|
|
ViewCompat.saveAttributeDataForStyleable(this, context, iArr, attributeSet, obtainStyledAttributes, i, 0);
|
|
this.mInitialActivityCount = obtainStyledAttributes.getInt(R.styleable.ActivityChooserView_initialActivityCount, 4);
|
|
Drawable drawable = obtainStyledAttributes.getDrawable(R.styleable.ActivityChooserView_expandActivityOverflowButtonDrawable);
|
|
obtainStyledAttributes.recycle();
|
|
LayoutInflater.from(getContext()).inflate(R.layout.abc_activity_chooser_view, (ViewGroup) this, true);
|
|
Callbacks callbacks = new Callbacks();
|
|
this.mCallbacks = callbacks;
|
|
View findViewById = findViewById(R.id.activity_chooser_view_content);
|
|
this.mActivityChooserContent = findViewById;
|
|
this.mActivityChooserContentBackground = findViewById.getBackground();
|
|
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.default_activity_button);
|
|
this.mDefaultActivityButton = frameLayout;
|
|
frameLayout.setOnClickListener(callbacks);
|
|
frameLayout.setOnLongClickListener(callbacks);
|
|
int i2 = R.id.image;
|
|
this.mDefaultActivityButtonImage = (ImageView) frameLayout.findViewById(i2);
|
|
FrameLayout frameLayout2 = (FrameLayout) findViewById(R.id.expand_activities_button);
|
|
frameLayout2.setOnClickListener(callbacks);
|
|
frameLayout2.setAccessibilityDelegate(new AnonymousClass3());
|
|
frameLayout2.setOnTouchListener(new AnonymousClass4(frameLayout2));
|
|
this.mExpandActivityOverflowButton = frameLayout2;
|
|
ImageView imageView = (ImageView) frameLayout2.findViewById(i2);
|
|
this.mExpandActivityOverflowButtonImage = imageView;
|
|
imageView.setImageDrawable(drawable);
|
|
ActivityChooserViewAdapter activityChooserViewAdapter = new ActivityChooserViewAdapter();
|
|
this.mAdapter = activityChooserViewAdapter;
|
|
activityChooserViewAdapter.registerDataSetObserver(new AnonymousClass5());
|
|
Resources resources = context.getResources();
|
|
this.mListPopupMaxWidth = Math.max(resources.getDisplayMetrics().widthPixels / 2, resources.getDimensionPixelSize(R.dimen.abc_config_prefDialogWidth));
|
|
}
|
|
|
|
public boolean dismissPopup() {
|
|
if (!isShowingPopup()) {
|
|
return true;
|
|
}
|
|
getListPopupWindow().dismiss();
|
|
ViewTreeObserver viewTreeObserver = getViewTreeObserver();
|
|
if (!viewTreeObserver.isAlive()) {
|
|
return true;
|
|
}
|
|
viewTreeObserver.removeGlobalOnLayoutListener(this.mOnGlobalLayoutListener);
|
|
return true;
|
|
}
|
|
|
|
public ActivityChooserModel getDataModel() {
|
|
return this.mAdapter.getDataModel();
|
|
}
|
|
|
|
public ListPopupWindow getListPopupWindow() {
|
|
if (this.mListPopupWindow == null) {
|
|
ListPopupWindow listPopupWindow = new ListPopupWindow(getContext());
|
|
this.mListPopupWindow = listPopupWindow;
|
|
listPopupWindow.setAdapter(this.mAdapter);
|
|
this.mListPopupWindow.setAnchorView(this);
|
|
this.mListPopupWindow.setModal(true);
|
|
this.mListPopupWindow.setOnItemClickListener(this.mCallbacks);
|
|
this.mListPopupWindow.setOnDismissListener(this.mCallbacks);
|
|
}
|
|
return this.mListPopupWindow;
|
|
}
|
|
|
|
public boolean isShowingPopup() {
|
|
return getListPopupWindow().isShowing();
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public void onAttachedToWindow() {
|
|
super.onAttachedToWindow();
|
|
ActivityChooserModel dataModel = this.mAdapter.getDataModel();
|
|
if (dataModel != null) {
|
|
dataModel.registerObserver(this.mModelDataSetObserver);
|
|
}
|
|
this.mIsAttachedToWindow = true;
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public void onDetachedFromWindow() {
|
|
super.onDetachedFromWindow();
|
|
ActivityChooserModel dataModel = this.mAdapter.getDataModel();
|
|
if (dataModel != null) {
|
|
dataModel.unregisterObserver(this.mModelDataSetObserver);
|
|
}
|
|
ViewTreeObserver viewTreeObserver = getViewTreeObserver();
|
|
if (viewTreeObserver.isAlive()) {
|
|
viewTreeObserver.removeGlobalOnLayoutListener(this.mOnGlobalLayoutListener);
|
|
}
|
|
if (isShowingPopup()) {
|
|
dismissPopup();
|
|
}
|
|
this.mIsAttachedToWindow = false;
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public void onLayout(boolean z2, int i, int i2, int i3, int i4) {
|
|
this.mActivityChooserContent.layout(0, 0, i3 - i, i4 - i2);
|
|
if (!isShowingPopup()) {
|
|
dismissPopup();
|
|
}
|
|
}
|
|
|
|
@Override // android.view.View
|
|
public void onMeasure(int i, int i2) {
|
|
View view = this.mActivityChooserContent;
|
|
if (this.mDefaultActivityButton.getVisibility() != 0) {
|
|
i2 = View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.getSize(i2), BasicMeasure.EXACTLY);
|
|
}
|
|
measureChild(view, i, i2);
|
|
setMeasuredDimension(view.getMeasuredWidth(), view.getMeasuredHeight());
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ActivityChooserModel.ActivityChooserModelClient
|
|
public void setActivityChooserModel(ActivityChooserModel activityChooserModel) {
|
|
this.mAdapter.setDataModel(activityChooserModel);
|
|
if (isShowingPopup()) {
|
|
dismissPopup();
|
|
showPopup();
|
|
}
|
|
}
|
|
|
|
public void setDefaultActionButtonContentDescription(int i) {
|
|
this.mDefaultActionButtonContentDescription = i;
|
|
}
|
|
|
|
public void setExpandActivityOverflowButtonContentDescription(int i) {
|
|
this.mExpandActivityOverflowButtonImage.setContentDescription(getContext().getString(i));
|
|
}
|
|
|
|
public void setExpandActivityOverflowButtonDrawable(Drawable drawable) {
|
|
this.mExpandActivityOverflowButtonImage.setImageDrawable(drawable);
|
|
}
|
|
|
|
public void setInitialActivityCount(int i) {
|
|
this.mInitialActivityCount = i;
|
|
}
|
|
|
|
public void setOnDismissListener(PopupWindow.OnDismissListener onDismissListener) {
|
|
this.mOnDismissListener = onDismissListener;
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void setProvider(ActionProvider actionProvider) {
|
|
this.mProvider = actionProvider;
|
|
}
|
|
|
|
public boolean showPopup() {
|
|
if (isShowingPopup() || !this.mIsAttachedToWindow) {
|
|
return false;
|
|
}
|
|
this.mIsSelectingDefaultActivity = false;
|
|
showPopupUnchecked(this.mInitialActivityCount);
|
|
return true;
|
|
}
|
|
|
|
/* JADX WARNING: Removed duplicated region for block: B:14:0x004d */
|
|
/* JADX WARNING: Removed duplicated region for block: B:26:? A[RETURN, SYNTHETIC] */
|
|
public void showPopupUnchecked(int i) {
|
|
ListPopupWindow listPopupWindow;
|
|
if (this.mAdapter.getDataModel() != null) {
|
|
getViewTreeObserver().addOnGlobalLayoutListener(this.mOnGlobalLayoutListener);
|
|
boolean z2 = this.mDefaultActivityButton.getVisibility() == 0;
|
|
int activityCount = this.mAdapter.getActivityCount();
|
|
if (i != Integer.MAX_VALUE) {
|
|
int i2 = z2 ? 1 : 0;
|
|
int i3 = z2 ? 1 : 0;
|
|
int i4 = z2 ? 1 : 0;
|
|
if (activityCount > i + i2) {
|
|
this.mAdapter.setShowFooterView(true);
|
|
this.mAdapter.setMaxActivityCount(i - 1);
|
|
listPopupWindow = getListPopupWindow();
|
|
if (listPopupWindow.isShowing()) {
|
|
if (this.mIsSelectingDefaultActivity || !z2) {
|
|
this.mAdapter.setShowDefaultActivity(true, z2);
|
|
} else {
|
|
this.mAdapter.setShowDefaultActivity(false, false);
|
|
}
|
|
listPopupWindow.setContentWidth(Math.min(this.mAdapter.measureContentWidth(), this.mListPopupMaxWidth));
|
|
listPopupWindow.show();
|
|
ActionProvider actionProvider = this.mProvider;
|
|
if (actionProvider != null) {
|
|
actionProvider.subUiVisibilityChanged(true);
|
|
}
|
|
listPopupWindow.getListView().setContentDescription(getContext().getString(R.string.abc_activitychooserview_choose_application));
|
|
listPopupWindow.getListView().setSelector(new ColorDrawable(0));
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
this.mAdapter.setShowFooterView(false);
|
|
this.mAdapter.setMaxActivityCount(i);
|
|
listPopupWindow = getListPopupWindow();
|
|
if (listPopupWindow.isShowing()) {
|
|
}
|
|
} else {
|
|
throw new IllegalStateException("No data model. Did you call #setDataModel?");
|
|
}
|
|
}
|
|
|
|
public void updateAppearance() {
|
|
if (this.mAdapter.getCount() > 0) {
|
|
this.mExpandActivityOverflowButton.setEnabled(true);
|
|
} else {
|
|
this.mExpandActivityOverflowButton.setEnabled(false);
|
|
}
|
|
int activityCount = this.mAdapter.getActivityCount();
|
|
int historySize = this.mAdapter.getHistorySize();
|
|
if (activityCount == 1 || (activityCount > 1 && historySize > 0)) {
|
|
this.mDefaultActivityButton.setVisibility(0);
|
|
ResolveInfo defaultActivity = this.mAdapter.getDefaultActivity();
|
|
PackageManager packageManager = getContext().getPackageManager();
|
|
this.mDefaultActivityButtonImage.setImageDrawable(defaultActivity.loadIcon(packageManager));
|
|
if (this.mDefaultActionButtonContentDescription != 0) {
|
|
this.mDefaultActivityButton.setContentDescription(getContext().getString(this.mDefaultActionButtonContentDescription, defaultActivity.loadLabel(packageManager)));
|
|
}
|
|
} else {
|
|
this.mDefaultActivityButton.setVisibility(8);
|
|
}
|
|
if (this.mDefaultActivityButton.getVisibility() == 0) {
|
|
this.mActivityChooserContent.setBackgroundDrawable(this.mActivityChooserContentBackground);
|
|
} else {
|
|
this.mActivityChooserContent.setBackgroundDrawable(null);
|
|
}
|
|
}
|
|
}
|