正在查看: VIP-LODDER v3.3.1 应用的 StartActivityManager.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: VIP-LODDER v3.3.1 应用的 StartActivityManager.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.hjq.permissions;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
final class StartActivityManager {
private static final String SUB_INTENT_KEY = "sub_intent_key";
private interface IStartActivityDelegate {
void startActivity(Intent intent);
void startActivityForResult(Intent intent, int i);
}
StartActivityManager() {
}
static Intent getSubIntentInMainIntent(Intent mainIntent) {
if (AndroidVersion.isAndroid13()) {
Intent subIntent = (Intent) mainIntent.getParcelableExtra(SUB_INTENT_KEY, Intent.class);
return subIntent;
}
Intent subIntent2 = (Intent) mainIntent.getParcelableExtra(SUB_INTENT_KEY);
return subIntent2;
}
static Intent getDeepSubIntent(Intent superIntent) {
Intent subIntent = getSubIntentInMainIntent(superIntent);
if (subIntent != null) {
return getDeepSubIntent(subIntent);
}
return superIntent;
}
static Intent addSubIntentToMainIntent(Intent mainIntent, Intent subIntent) {
if (mainIntent == null && subIntent != null) {
return subIntent;
}
if (subIntent == null) {
return mainIntent;
}
Intent deepSubIntent = getDeepSubIntent(mainIntent);
deepSubIntent.putExtra(SUB_INTENT_KEY, subIntent);
return mainIntent;
}
static boolean startActivity(Context context, Intent intent) {
return startActivity(new StartActivityDelegateContextImpl(context), intent);
}
static boolean startActivity(Activity activity, Intent intent) {
return startActivity(new StartActivityDelegateActivityImpl(activity), intent);
}
static boolean startActivity(Fragment fragment, Intent intent) {
return startActivity(new StartActivityDelegateFragmentImpl(fragment), intent);
}
static boolean startActivity(androidx.fragment.app.Fragment fragment, Intent intent) {
return startActivity(new StartActivityDelegateSupportFragmentImpl(fragment), intent);
}
static boolean startActivity(IStartActivityDelegate delegate, Intent intent) {
try {
delegate.startActivity(intent);
return true;
} catch (Exception e) {
e.printStackTrace();
Intent subIntent = getSubIntentInMainIntent(intent);
if (subIntent == null) {
return false;
}
return startActivity(delegate, subIntent);
}
}
static boolean startActivityForResult(Activity activity, Intent intent, int requestCode) {
return startActivityForResult(new StartActivityDelegateActivityImpl(activity), intent, requestCode);
}
static boolean startActivityForResult(Fragment fragment, Intent intent, int requestCode) {
return startActivityForResult(new StartActivityDelegateFragmentImpl(fragment), intent, requestCode);
}
static boolean startActivityForResult(androidx.fragment.app.Fragment fragment, Intent intent, int requestCode) {
return startActivityForResult(new StartActivityDelegateSupportFragmentImpl(fragment), intent, requestCode);
}
static boolean startActivityForResult(IStartActivityDelegate delegate, Intent intent, int requestCode) {
try {
delegate.startActivityForResult(intent, requestCode);
return true;
} catch (Exception e) {
e.printStackTrace();
Intent subIntent = getSubIntentInMainIntent(intent);
if (subIntent == null) {
return false;
}
return startActivityForResult(delegate, subIntent, requestCode);
}
}
private static class StartActivityDelegateContextImpl implements IStartActivityDelegate {
private final Context mContext;
private StartActivityDelegateContextImpl(Context context) {
this.mContext = context;
}
@Override
public void startActivity(Intent intent) {
this.mContext.startActivity(intent);
}
@Override
public void startActivityForResult(Intent intent, int requestCode) {
Activity activity = PermissionUtils.findActivity(this.mContext);
if (activity != null) {
activity.startActivityForResult(intent, requestCode);
} else {
startActivity(intent);
}
}
}
private static class StartActivityDelegateActivityImpl implements IStartActivityDelegate {
private final Activity mActivity;
private StartActivityDelegateActivityImpl(Activity activity) {
this.mActivity = activity;
}
@Override
public void startActivity(Intent intent) {
this.mActivity.startActivity(intent);
}
@Override
public void startActivityForResult(Intent intent, int requestCode) {
this.mActivity.startActivityForResult(intent, requestCode);
}
}
private static class StartActivityDelegateFragmentImpl implements IStartActivityDelegate {
private final Fragment mFragment;
private StartActivityDelegateFragmentImpl(Fragment fragment) {
this.mFragment = fragment;
}
@Override
public void startActivity(Intent intent) {
this.mFragment.startActivity(intent);
}
@Override
public void startActivityForResult(Intent intent, int requestCode) {
this.mFragment.startActivityForResult(intent, requestCode);
}
}
private static class StartActivityDelegateSupportFragmentImpl implements IStartActivityDelegate {
private final androidx.fragment.app.Fragment mFragment;
private StartActivityDelegateSupportFragmentImpl(androidx.fragment.app.Fragment fragment) {
this.mFragment = fragment;
}
@Override
public void startActivity(Intent intent) {
this.mFragment.startActivity(intent);
}
@Override
public void startActivityForResult(Intent intent, int requestCode) {
this.mFragment.startActivityForResult(intent, requestCode);
}
}
}