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