discord-jadx/app/src/main/java/androidx/appcompat/widget/ShareActionProvider.java

143 lines
6.8 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.util.TypedValue;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import androidx.appcompat.R;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.ActivityChooserModel;
import androidx.core.view.ActionProvider;
public class ShareActionProvider extends ActionProvider {
private static final int DEFAULT_INITIAL_ACTIVITY_COUNT = 4;
public static final String DEFAULT_SHARE_HISTORY_FILE_NAME = "share_history.xml";
public final Context mContext;
private int mMaxShownActivityCount = 4;
private ActivityChooserModel.OnChooseActivityListener mOnChooseActivityListener;
private final ShareMenuItemOnMenuItemClickListener mOnMenuItemClickListener = new ShareMenuItemOnMenuItemClickListener();
public OnShareTargetSelectedListener mOnShareTargetSelectedListener;
public String mShareHistoryFileName = DEFAULT_SHARE_HISTORY_FILE_NAME;
public interface OnShareTargetSelectedListener {
boolean onShareTargetSelected(ShareActionProvider shareActionProvider, Intent intent);
}
public class ShareActivityChooserModelPolicy implements ActivityChooserModel.OnChooseActivityListener {
public ShareActivityChooserModelPolicy() {
}
@Override // androidx.appcompat.widget.ActivityChooserModel.OnChooseActivityListener
public boolean onChooseActivity(ActivityChooserModel activityChooserModel, Intent intent) {
ShareActionProvider shareActionProvider = ShareActionProvider.this;
OnShareTargetSelectedListener onShareTargetSelectedListener = shareActionProvider.mOnShareTargetSelectedListener;
if (onShareTargetSelectedListener == null) {
return false;
}
onShareTargetSelectedListener.onShareTargetSelected(shareActionProvider, intent);
return false;
}
}
public class ShareMenuItemOnMenuItemClickListener implements MenuItem.OnMenuItemClickListener {
public ShareMenuItemOnMenuItemClickListener() {
}
@Override // android.view.MenuItem.OnMenuItemClickListener
public boolean onMenuItemClick(MenuItem menuItem) {
ShareActionProvider shareActionProvider = ShareActionProvider.this;
Intent chooseActivity = ActivityChooserModel.get(shareActionProvider.mContext, shareActionProvider.mShareHistoryFileName).chooseActivity(menuItem.getItemId());
if (chooseActivity == null) {
return true;
}
String action = chooseActivity.getAction();
if ("android.intent.action.SEND".equals(action) || "android.intent.action.SEND_MULTIPLE".equals(action)) {
ShareActionProvider.this.updateIntent(chooseActivity);
}
ShareActionProvider.this.mContext.startActivity(chooseActivity);
return true;
}
}
public ShareActionProvider(Context context) {
super(context);
this.mContext = context;
}
private void setActivityChooserPolicyIfNeeded() {
if (this.mOnShareTargetSelectedListener != null) {
if (this.mOnChooseActivityListener == null) {
this.mOnChooseActivityListener = new ShareActivityChooserModelPolicy();
}
ActivityChooserModel.get(this.mContext, this.mShareHistoryFileName).setOnChooseActivityListener(this.mOnChooseActivityListener);
}
}
@Override // androidx.core.view.ActionProvider
public boolean hasSubMenu() {
return true;
}
@Override // androidx.core.view.ActionProvider
public View onCreateActionView() {
ActivityChooserView activityChooserView = new ActivityChooserView(this.mContext);
if (!activityChooserView.isInEditMode()) {
activityChooserView.setActivityChooserModel(ActivityChooserModel.get(this.mContext, this.mShareHistoryFileName));
}
TypedValue typedValue = new TypedValue();
this.mContext.getTheme().resolveAttribute(R.attr.actionModeShareDrawable, typedValue, true);
activityChooserView.setExpandActivityOverflowButtonDrawable(AppCompatResources.getDrawable(this.mContext, typedValue.resourceId));
activityChooserView.setProvider(this);
activityChooserView.setDefaultActionButtonContentDescription(R.string.abc_shareactionprovider_share_with_application);
activityChooserView.setExpandActivityOverflowButtonContentDescription(R.string.abc_shareactionprovider_share_with);
return activityChooserView;
}
@Override // androidx.core.view.ActionProvider
public void onPrepareSubMenu(SubMenu subMenu) {
subMenu.clear();
ActivityChooserModel activityChooserModel = ActivityChooserModel.get(this.mContext, this.mShareHistoryFileName);
PackageManager packageManager = this.mContext.getPackageManager();
int activityCount = activityChooserModel.getActivityCount();
int min = Math.min(activityCount, this.mMaxShownActivityCount);
for (int i = 0; i < min; i++) {
ResolveInfo activity = activityChooserModel.getActivity(i);
subMenu.add(0, i, i, activity.loadLabel(packageManager)).setIcon(activity.loadIcon(packageManager)).setOnMenuItemClickListener(this.mOnMenuItemClickListener);
}
if (min < activityCount) {
SubMenu addSubMenu = subMenu.addSubMenu(0, min, min, this.mContext.getString(R.string.abc_activity_chooser_view_see_all));
for (int i2 = 0; i2 < activityCount; i2++) {
ResolveInfo activity2 = activityChooserModel.getActivity(i2);
addSubMenu.add(0, i2, i2, activity2.loadLabel(packageManager)).setIcon(activity2.loadIcon(packageManager)).setOnMenuItemClickListener(this.mOnMenuItemClickListener);
}
}
}
public void setOnShareTargetSelectedListener(OnShareTargetSelectedListener onShareTargetSelectedListener) {
this.mOnShareTargetSelectedListener = onShareTargetSelectedListener;
setActivityChooserPolicyIfNeeded();
}
public void setShareHistoryFileName(String str) {
this.mShareHistoryFileName = str;
setActivityChooserPolicyIfNeeded();
}
public void setShareIntent(Intent intent) {
if (intent != null) {
String action = intent.getAction();
if ("android.intent.action.SEND".equals(action) || "android.intent.action.SEND_MULTIPLE".equals(action)) {
updateIntent(intent);
}
}
ActivityChooserModel.get(this.mContext, this.mShareHistoryFileName).setIntent(intent);
}
public void updateIntent(Intent intent) {
intent.addFlags(134742016);
}
}