CrackMe.apk
Download file
package androidx.core.app;
import android.app.Activity;
import android.content.ClipData;
import android.content.ComponentName;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.text.Html;
import android.text.Spanned;
import android.util.Log;
import android.view.ActionProvider;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ShareActionProvider;
import androidx.core.content.IntentCompat;
import androidx.core.util.Preconditions;
import java.util.ArrayList;
public final class ShareCompat {
public static final String EXTRA_CALLING_ACTIVITY = "androidx.core.app.EXTRA_CALLING_ACTIVITY";
public static final String EXTRA_CALLING_ACTIVITY_INTEROP = "android.support.v4.app.EXTRA_CALLING_ACTIVITY";
public static final String EXTRA_CALLING_PACKAGE = "androidx.core.app.EXTRA_CALLING_PACKAGE";
public static final String EXTRA_CALLING_PACKAGE_INTEROP = "android.support.v4.app.EXTRA_CALLING_PACKAGE";
private static final String HISTORY_FILENAME_PREFIX = ".sharecompat_";
private ShareCompat() {
}
public static String getCallingPackage(Activity activity) {
Intent intent = activity.getIntent();
String callingPackage = activity.getCallingPackage();
return (callingPackage != null || intent == null) ? callingPackage : getCallingPackage(intent);
}
static String getCallingPackage(Intent intent) {
String stringExtra = intent.getStringExtra(EXTRA_CALLING_PACKAGE);
return stringExtra == null ? intent.getStringExtra(EXTRA_CALLING_PACKAGE_INTEROP) : stringExtra;
}
public static ComponentName getCallingActivity(Activity activity) {
Intent intent = activity.getIntent();
ComponentName callingActivity = activity.getCallingActivity();
return callingActivity == null ? getCallingActivity(intent) : callingActivity;
}
static ComponentName getCallingActivity(Intent intent) {
ComponentName componentName = (ComponentName) intent.getParcelableExtra(EXTRA_CALLING_ACTIVITY);
return componentName == null ? (ComponentName) intent.getParcelableExtra(EXTRA_CALLING_ACTIVITY_INTEROP) : componentName;
}
@Deprecated
public static void configureMenuItem(MenuItem menuItem, IntentBuilder intentBuilder) {
ShareActionProvider shareActionProvider;
ActionProvider actionProvider = menuItem.getActionProvider();
if (!(actionProvider instanceof ShareActionProvider)) {
shareActionProvider = new ShareActionProvider(intentBuilder.getContext());
} else {
shareActionProvider = (ShareActionProvider) actionProvider;
}
shareActionProvider.setShareHistoryFileName(HISTORY_FILENAME_PREFIX + intentBuilder.getContext().getClass().getName());
shareActionProvider.setShareIntent(intentBuilder.getIntent());
menuItem.setActionProvider(shareActionProvider);
if (Build.VERSION.SDK_INT < 16 && !menuItem.hasSubMenu()) {
menuItem.setIntent(intentBuilder.createChooserIntent());
}
}
@Deprecated
public static void configureMenuItem(Menu menu, int i, IntentBuilder intentBuilder) {
MenuItem findItem = menu.findItem(i);
if (findItem != null) {
configureMenuItem(findItem, intentBuilder);
return;
}
throw new IllegalArgumentException("Could not find menu item with id " + i + " in the supplied menu");
}
public static class IntentBuilder {
private ArrayList<String> mBccAddresses;
private ArrayList<String> mCcAddresses;
private CharSequence mChooserTitle;
private final Context mContext;
private final Intent mIntent;
private ArrayList<Uri> mStreams;
private ArrayList<String> mToAddresses;
@Deprecated
public static IntentBuilder from(Activity activity) {
return new IntentBuilder(activity);
}
public IntentBuilder(Context context) {
Activity activity;
this.mContext = (Context) Preconditions.checkNotNull(context);
Intent action = new Intent().setAction("android.intent.action.SEND");
this.mIntent = action;
action.putExtra(ShareCompat.EXTRA_CALLING_PACKAGE, context.getPackageName());
action.putExtra(ShareCompat.EXTRA_CALLING_PACKAGE_INTEROP, context.getPackageName());
action.addFlags(524288);
while (true) {
if (!(context instanceof ContextWrapper)) {
activity = null;
break;
} else if (context instanceof Activity) {
activity = (Activity) context;
break;
} else {
context = ((ContextWrapper) context).getBaseContext();
}
}
if (activity != null) {
ComponentName componentName = activity.getComponentName();
this.mIntent.putExtra(ShareCompat.EXTRA_CALLING_ACTIVITY, componentName);
this.mIntent.putExtra(ShareCompat.EXTRA_CALLING_ACTIVITY_INTEROP, componentName);
}
}
public Intent getIntent() {
ArrayList<String> arrayList = this.mToAddresses;
if (arrayList != null) {
combineArrayExtra("android.intent.extra.EMAIL", arrayList);
this.mToAddresses = null;
}
ArrayList<String> arrayList2 = this.mCcAddresses;
if (arrayList2 != null) {
combineArrayExtra("android.intent.extra.CC", arrayList2);
this.mCcAddresses = null;
}
ArrayList<String> arrayList3 = this.mBccAddresses;
if (arrayList3 != null) {
combineArrayExtra("android.intent.extra.BCC", arrayList3);
this.mBccAddresses = null;
}
ArrayList<Uri> arrayList4 = this.mStreams;
boolean z = true;
if (arrayList4 == null || arrayList4.size() <= 1) {
z = false;
}
if (!z) {
this.mIntent.setAction("android.intent.action.SEND");
ArrayList<Uri> arrayList5 = this.mStreams;
if (arrayList5 == null || arrayList5.isEmpty()) {
this.mIntent.removeExtra("android.intent.extra.STREAM");
if (Build.VERSION.SDK_INT >= 16) {
Api16Impl.removeClipData(this.mIntent);
}
} else {
this.mIntent.putExtra("android.intent.extra.STREAM", this.mStreams.get(0));
if (Build.VERSION.SDK_INT >= 16) {
Api16Impl.migrateExtraStreamToClipData(this.mIntent, this.mStreams);
}
}
} else {
this.mIntent.setAction("android.intent.action.SEND_MULTIPLE");
this.mIntent.putParcelableArrayListExtra("android.intent.extra.STREAM", this.mStreams);
if (Build.VERSION.SDK_INT >= 16) {
Api16Impl.migrateExtraStreamToClipData(this.mIntent, this.mStreams);
}
}
return this.mIntent;
}
/* access modifiers changed from: package-private */
public Context getContext() {
return this.mContext;
}
private void combineArrayExtra(String str, ArrayList<String> arrayList) {
String[] stringArrayExtra = this.mIntent.getStringArrayExtra(str);
int length = stringArrayExtra != null ? stringArrayExtra.length : 0;
String[] strArr = new String[(arrayList.size() + length)];
arrayList.toArray(strArr);
if (stringArrayExtra != null) {
System.arraycopy(stringArrayExtra, 0, strArr, arrayList.size(), length);
}
this.mIntent.putExtra(str, strArr);
}
private void combineArrayExtra(String str, String[] strArr) {
Intent intent = getIntent();
String[] stringArrayExtra = intent.getStringArrayExtra(str);
int length = stringArrayExtra != null ? stringArrayExtra.length : 0;
String[] strArr2 = new String[(strArr.length + length)];
if (stringArrayExtra != null) {
System.arraycopy(stringArrayExtra, 0, strArr2, 0, length);
}
System.arraycopy(strArr, 0, strArr2, length, strArr.length);
intent.putExtra(str, strArr2);
}
public Intent createChooserIntent() {
return Intent.createChooser(getIntent(), this.mChooserTitle);
}
public void startChooser() {
this.mContext.startActivity(createChooserIntent());
}
public IntentBuilder setChooserTitle(CharSequence charSequence) {
this.mChooserTitle = charSequence;
return this;
}
public IntentBuilder setChooserTitle(int i) {
return setChooserTitle(this.mContext.getText(i));
}
public IntentBuilder setType(String str) {
this.mIntent.setType(str);
return this;
}
public IntentBuilder setText(CharSequence charSequence) {
this.mIntent.putExtra("android.intent.extra.TEXT", charSequence);
return this;
}
public IntentBuilder setHtmlText(String str) {
this.mIntent.putExtra(IntentCompat.EXTRA_HTML_TEXT, str);
if (!this.mIntent.hasExtra("android.intent.extra.TEXT")) {
setText(Html.fromHtml(str));
}
return this;
}
public IntentBuilder setStream(Uri uri) {
this.mStreams = null;
if (uri != null) {
addStream(uri);
}
return this;
}
public IntentBuilder addStream(Uri uri) {
if (this.mStreams == null) {
this.mStreams = new ArrayList<>();
}
this.mStreams.add(uri);
return this;
}
public IntentBuilder setEmailTo(String[] strArr) {
if (this.mToAddresses != null) {
this.mToAddresses = null;
}
this.mIntent.putExtra("android.intent.extra.EMAIL", strArr);
return this;
}
public IntentBuilder addEmailTo(String str) {
if (this.mToAddresses == null) {
this.mToAddresses = new ArrayList<>();
}
this.mToAddresses.add(str);
return this;
}
public IntentBuilder addEmailTo(String[] strArr) {
combineArrayExtra("android.intent.extra.EMAIL", strArr);
return this;
}
public IntentBuilder setEmailCc(String[] strArr) {
this.mIntent.putExtra("android.intent.extra.CC", strArr);
return this;
}
public IntentBuilder addEmailCc(String str) {
if (this.mCcAddresses == null) {
this.mCcAddresses = new ArrayList<>();
}
this.mCcAddresses.add(str);
return this;
}
public IntentBuilder addEmailCc(String[] strArr) {
combineArrayExtra("android.intent.extra.CC", strArr);
return this;
}
public IntentBuilder setEmailBcc(String[] strArr) {
this.mIntent.putExtra("android.intent.extra.BCC", strArr);
return this;
}
public IntentBuilder addEmailBcc(String str) {
if (this.mBccAddresses == null) {
this.mBccAddresses = new ArrayList<>();
}
this.mBccAddresses.add(str);
return this;
}
public IntentBuilder addEmailBcc(String[] strArr) {
combineArrayExtra("android.intent.extra.BCC", strArr);
return this;
}
public IntentBuilder setSubject(String str) {
this.mIntent.putExtra("android.intent.extra.SUBJECT", str);
return this;
}
}
public static class IntentReader {
private static final String TAG = "IntentReader";
private final ComponentName mCallingActivity;
private final String mCallingPackage;
private final Context mContext;
private final Intent mIntent;
private ArrayList<Uri> mStreams;
@Deprecated
public static IntentReader from(Activity activity) {
return new IntentReader(activity);
}
public IntentReader(Activity activity) {
this((Context) Preconditions.checkNotNull(activity), activity.getIntent());
}
public IntentReader(Context context, Intent intent) {
this.mContext = (Context) Preconditions.checkNotNull(context);
this.mIntent = (Intent) Preconditions.checkNotNull(intent);
this.mCallingPackage = ShareCompat.getCallingPackage(intent);
this.mCallingActivity = ShareCompat.getCallingActivity(intent);
}
public boolean isShareIntent() {
String action = this.mIntent.getAction();
return "android.intent.action.SEND".equals(action) || "android.intent.action.SEND_MULTIPLE".equals(action);
}
public boolean isSingleShare() {
return "android.intent.action.SEND".equals(this.mIntent.getAction());
}
public boolean isMultipleShare() {
return "android.intent.action.SEND_MULTIPLE".equals(this.mIntent.getAction());
}
public String getType() {
return this.mIntent.getType();
}
public CharSequence getText() {
return this.mIntent.getCharSequenceExtra("android.intent.extra.TEXT");
}
public String getHtmlText() {
String stringExtra = this.mIntent.getStringExtra(IntentCompat.EXTRA_HTML_TEXT);
if (stringExtra != null) {
return stringExtra;
}
CharSequence text = getText();
if (text instanceof Spanned) {
return Html.toHtml((Spanned) text);
}
if (text == null) {
return stringExtra;
}
if (Build.VERSION.SDK_INT >= 16) {
return Html.escapeHtml(text);
}
StringBuilder sb = new StringBuilder();
withinStyle(sb, text, 0, text.length());
return sb.toString();
}
private static void withinStyle(StringBuilder sb, CharSequence charSequence, int i, int i2) {
while (i < i2) {
char charAt = charSequence.charAt(i);
if (charAt == '<') {
sb.append("<");
} else if (charAt == '>') {
sb.append(">");
} else if (charAt == '&') {
sb.append("&");
} else if (charAt > '~' || charAt < ' ') {
sb.append("&#");
sb.append(charAt);
sb.append(";");
} else if (charAt == ' ') {
while (true) {
int i3 = i + 1;
if (i3 >= i2 || charSequence.charAt(i3) != ' ') {
sb.append(' ');
} else {
sb.append(" ");
i = i3;
}
}
sb.append(' ');
} else {
sb.append(charAt);
}
i++;
}
}
public Uri getStream() {
return (Uri) this.mIntent.getParcelableExtra("android.intent.extra.STREAM");
}
public Uri getStream(int i) {
if (this.mStreams == null && isMultipleShare()) {
this.mStreams = this.mIntent.getParcelableArrayListExtra("android.intent.extra.STREAM");
}
ArrayList<Uri> arrayList = this.mStreams;
if (arrayList != null) {
return arrayList.get(i);
}
if (i == 0) {
return (Uri) this.mIntent.getParcelableExtra("android.intent.extra.STREAM");
}
throw new IndexOutOfBoundsException("Stream items available: " + getStreamCount() + " index requested: " + i);
}
public int getStreamCount() {
if (this.mStreams == null && isMultipleShare()) {
this.mStreams = this.mIntent.getParcelableArrayListExtra("android.intent.extra.STREAM");
}
ArrayList<Uri> arrayList = this.mStreams;
if (arrayList != null) {
return arrayList.size();
}
return this.mIntent.hasExtra("android.intent.extra.STREAM") ? 1 : 0;
}
public String[] getEmailTo() {
return this.mIntent.getStringArrayExtra("android.intent.extra.EMAIL");
}
public String[] getEmailCc() {
return this.mIntent.getStringArrayExtra("android.intent.extra.CC");
}
public String[] getEmailBcc() {
return this.mIntent.getStringArrayExtra("android.intent.extra.BCC");
}
public String getSubject() {
return this.mIntent.getStringExtra("android.intent.extra.SUBJECT");
}
public String getCallingPackage() {
return this.mCallingPackage;
}
public ComponentName getCallingActivity() {
return this.mCallingActivity;
}
public Drawable getCallingActivityIcon() {
if (this.mCallingActivity == null) {
return null;
}
try {
return this.mContext.getPackageManager().getActivityIcon(this.mCallingActivity);
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Could not retrieve icon for calling activity", e);
return null;
}
}
public Drawable getCallingApplicationIcon() {
if (this.mCallingPackage == null) {
return null;
}
try {
return this.mContext.getPackageManager().getApplicationIcon(this.mCallingPackage);
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Could not retrieve icon for calling application", e);
return null;
}
}
public CharSequence getCallingApplicationLabel() {
if (this.mCallingPackage == null) {
return null;
}
PackageManager packageManager = this.mContext.getPackageManager();
try {
return packageManager.getApplicationLabel(packageManager.getApplicationInfo(this.mCallingPackage, 0));
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Could not retrieve label for calling application", e);
return null;
}
}
}
private static class Api16Impl {
private Api16Impl() {
}
static void migrateExtraStreamToClipData(Intent intent, ArrayList<Uri> arrayList) {
CharSequence charSequenceExtra = intent.getCharSequenceExtra("android.intent.extra.TEXT");
String stringExtra = intent.getStringExtra(IntentCompat.EXTRA_HTML_TEXT);
ClipData clipData = new ClipData((CharSequence) null, new String[]{intent.getType()}, new ClipData.Item(charSequenceExtra, stringExtra, (Intent) null, arrayList.get(0)));
int size = arrayList.size();
for (int i = 1; i < size; i++) {
clipData.addItem(new ClipData.Item(arrayList.get(i)));
}
intent.setClipData(clipData);
intent.addFlags(1);
}
static void removeClipData(Intent intent) {
intent.setClipData((ClipData) null);
intent.setFlags(intent.getFlags() & -2);
}
}
}
Download file