正在查看: Fix Locker v1.5 应用的 AddAccountActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Fix Locker v1.5 应用的 AddAccountActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.user.a4keygen;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.ProcessLifecycleOwner;
import com.user.a4keygen.common.Util;
import java.io.IOException;
public class AddAccountActivity extends Activity {
public static final String EXTRA_NEXT_ACTIVITY_INTENT = "nextActivityIntent";
private static final String GOOGLE_ACCOUNT_TYPE = "com.google";
private static final String TAG = "AddAccountActivity";
private static final long WAIT_FOR_FOREGROUND_DELAY_MS = 10;
private ComponentName mAdminComponentName;
private DevicePolicyManager mDevicePolicyManager;
private boolean mDisallowModifyAccounts;
private Intent mNextActivityIntent = null;
private UserManager mUserManager;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mUserManager = (UserManager) getSystemService("user");
this.mDevicePolicyManager = (DevicePolicyManager) getSystemService("device_policy");
this.mAdminComponentName = DeviceAdminReceiver.getComponentName(this);
setContentView(R.layout.activity_add_account);
Bundle extras = getIntent().getExtras();
if (extras != null) {
this.mNextActivityIntent = (Intent) extras.get(EXTRA_NEXT_ACTIVITY_INTENT);
}
}
@Override
protected void onResume() {
super.onResume();
disableUserRestrictions();
}
@Override
protected void onPause() {
super.onPause();
restoreUserRestrictions();
}
private void addAccount(String str) {
AccountManager accountManager = AccountManager.get(this);
Bundle bundle = new Bundle();
if (!TextUtils.isEmpty(str)) {
bundle.putString("authAccount", str);
}
accountManager.addAccount(GOOGLE_ACCOUNT_TYPE, null, null, bundle, this, new AccountManagerCallback() {
@Override
public final void run(AccountManagerFuture accountManagerFuture) {
AddAccountActivity.this.m56lambda$addAccount$1$comusera4keygenAddAccountActivity(accountManagerFuture);
}
}, null);
}
public void m56lambda$addAccount$1$comusera4keygenAddAccountActivity(AccountManagerFuture accountManagerFuture) {
try {
final Bundle bundle = (Bundle) accountManagerFuture.getResult();
waitForForeground(new Runnable() {
@Override
public final void run() {
AddAccountActivity.this.m55lambda$addAccount$0$comusera4keygenAddAccountActivity(bundle);
}
}, 1000L);
} catch (AuthenticatorException | OperationCanceledException | IOException e) {
Log.e(TAG, "addAccount - failed", e);
Toast.makeText(this, R.string.fail_to_add_account, 1).show();
}
}
private void waitForForeground(final Runnable runnable, final long j) {
if (j <= 0) {
throw new RuntimeException("Timed out waiting for foreground.");
}
if (ProcessLifecycleOwner.get().getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
runnable.run();
} else {
new Handler().postDelayed(new Runnable() {
@Override
public final void run() {
AddAccountActivity.this.m58lambda$waitForForeground$2$comusera4keygenAddAccountActivity(runnable, j);
}
}, WAIT_FOR_FOREGROUND_DELAY_MS);
}
}
public void m58lambda$waitForForeground$2$comusera4keygenAddAccountActivity(Runnable runnable, long j) {
waitForForeground(runnable, j - WAIT_FOR_FOREGROUND_DELAY_MS);
}
public void m55lambda$addAccount$0$comusera4keygenAddAccountActivity(Bundle bundle) {
String string = bundle.getString("authAccount");
Log.d(TAG, "addAccount - accountNameAdded: " + string);
Intent intent = this.mNextActivityIntent;
if (intent != null) {
startActivity(intent);
}
Intent intent2 = new Intent();
intent2.putExtra("android.app.extra.PROVISIONING_ACCOUNT_TO_MIGRATE", new Account(string, GOOGLE_ACCOUNT_TYPE));
setResult(-1, intent2);
finish();
}
private void disableUserRestrictions() {
if (Util.SDK_INT >= 24) {
Log.v(TAG, "skip disabling user restriction on N or above");
return;
}
Log.v(TAG, "disabling user restrictions");
this.mDisallowModifyAccounts = this.mUserManager.hasUserRestriction("no_modify_accounts");
this.mDevicePolicyManager.clearUserRestriction(this.mAdminComponentName, "no_modify_accounts");
}
private void restoreUserRestrictions() {
if (Util.SDK_INT >= 24) {
Log.v(TAG, "skip restoring user restrictions on N or above");
return;
}
Log.v(TAG, "restoring user restrictions");
if (this.mDisallowModifyAccounts) {
this.mDevicePolicyManager.addUserRestriction(this.mAdminComponentName, "no_modify_accounts");
}
}
public void onNavigateNext(View view) {
switch (((RadioGroup) findViewById(R.id.add_account_options)).getCheckedRadioButtonId()) {
case R.id.add_account:
addAccount(null);
break;
case R.id.add_account_skip:
Intent intent = this.mNextActivityIntent;
if (intent != null) {
startActivity(intent);
}
finish();
break;
case R.id.add_account_with_name:
final View inflate = getLayoutInflater().inflate(R.layout.simple_edittext, (ViewGroup) null);
new AlertDialog.Builder(this).setTitle(R.string.add_account_dialog_title).setView(inflate).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
AddAccountActivity.this.m57lambda$onNavigateNext$3$comusera4keygenAddAccountActivity(inflate, dialogInterface, i);
}
}).show();
break;
}
}
public void m57lambda$onNavigateNext$3$comusera4keygenAddAccountActivity(View view, DialogInterface dialogInterface, int i) {
addAccount(((EditText) view.findViewById(R.id.input)).getText().toString());
}
}