MD5 校验值:1036132062d4d223cd1a714f5bbea98b
ExternalActionActivity.java 文件包含反编译后的源代码,请注意,该内容仅供学习和参考使用,不得用于非法用途。
package im.skmzhmurqt.ui; import android.content.DialogInterface; import android.content.Intent; import android.content.res.Configuration; import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.RelativeLayout; import androidx.fragment.app.FragmentActivity; import com.bumptech.glide.load.resource.bitmap.HardwareConfigState; import im.skmzhmurqt.messenger.AndroidUtilities; import im.skmzhmurqt.messenger.ApplicationLoader; import im.skmzhmurqt.messenger.BuildVars; import im.skmzhmurqt.messenger.FileLog; import im.skmzhmurqt.messenger.LocaleController; import im.skmzhmurqt.messenger.MessagesController; import im.skmzhmurqt.messenger.NotificationCenter; import im.skmzhmurqt.messenger.R; import im.skmzhmurqt.messenger.SharedConfig; import im.skmzhmurqt.messenger.UserConfig; import im.skmzhmurqt.tgnet.ConnectionsManager; import im.skmzhmurqt.tgnet.RequestDelegate; import im.skmzhmurqt.tgnet.TLObject; import im.skmzhmurqt.tgnet.TLRPC; import im.skmzhmurqt.ui.actionbar.ActionBarLayout; import im.skmzhmurqt.ui.actionbar.AlertDialog; import im.skmzhmurqt.ui.actionbar.BaseFragment; import im.skmzhmurqt.ui.actionbar.DrawerLayoutContainer; import im.skmzhmurqt.ui.actionbar.Theme; import im.skmzhmurqt.ui.components.AlertsCreator; import im.skmzhmurqt.ui.components.LayoutHelper; import im.skmzhmurqt.ui.components.PasscodeView; import java.util.ArrayList; @Deprecated public class ExternalActionActivity extends FragmentActivity implements ActionBarLayout.ActionBarLayoutDelegate { private ActionBarLayout actionBarLayout; private View backgroundTablet; protected DrawerLayoutContainer drawerLayoutContainer; private boolean finished; private ActionBarLayout layersActionBarLayout; private Runnable lockRunnable; private Intent passcodeSaveIntent; private int passcodeSaveIntentAccount; private boolean passcodeSaveIntentIsNew; private boolean passcodeSaveIntentIsRestore; private int passcodeSaveIntentState; private PasscodeView passcodeView; private static ArrayList<BaseFragment> mainFragmentsStack = new ArrayList<>(); private static ArrayList<BaseFragment> layerFragmentsStack = new ArrayList<>(); @Override public void onCreate(Bundle savedInstanceState) { ApplicationLoader.postInitApplication(); requestWindowFeature(1); setTheme(R.style.Theme_TMessages); getWindow().setBackgroundDrawableResource(R.drawable.transparent); if (SharedConfig.passcodeHash.length() > 0 && !SharedConfig.allowScreenCapture) { try { getWindow().setFlags(8192, 8192); } catch (Exception e) { FileLog.e(e); } } super.onCreate(savedInstanceState); if (SharedConfig.passcodeHash.length() != 0 && SharedConfig.appLocked) { SharedConfig.lastPauseTime = ConnectionsManager.getInstance(UserConfig.selectedAccount).getCurrentTime(); } int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { AndroidUtilities.statusBarHeight = getResources().getDimensionPixelSize(resourceId); } Theme.createDialogsResources(this); Theme.createChatResources(this, false); this.actionBarLayout = new ActionBarLayout(this); DrawerLayoutContainer drawerLayoutContainer = new DrawerLayoutContainer(this); this.drawerLayoutContainer = drawerLayoutContainer; drawerLayoutContainer.setAllowOpenDrawer(false, false); setContentView(this.drawerLayoutContainer, new ViewGroup.LayoutParams(-1, -1)); if (AndroidUtilities.isTablet()) { getWindow().setSoftInputMode(16); RelativeLayout launchLayout = new RelativeLayout(this); this.drawerLayoutContainer.addView(launchLayout); FrameLayout.LayoutParams layoutParams1 = (FrameLayout.LayoutParams) launchLayout.getLayoutParams(); layoutParams1.width = -1; layoutParams1.height = -1; launchLayout.setLayoutParams(layoutParams1); this.backgroundTablet = new View(this); BitmapDrawable drawable = (BitmapDrawable) getResources().getDrawable(R.drawable.catstile); drawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); this.backgroundTablet.setBackgroundDrawable(drawable); launchLayout.addView(this.backgroundTablet, LayoutHelper.createRelative(-1, -1)); launchLayout.addView(this.actionBarLayout, LayoutHelper.createRelative(-1, -1)); FrameLayout shadowTablet = new FrameLayout(this); shadowTablet.setBackgroundColor(Theme.ACTION_BAR_PHOTO_VIEWER_COLOR); launchLayout.addView(shadowTablet, LayoutHelper.createRelative(-1, -1)); shadowTablet.setOnTouchListener(new View.OnTouchListener() { @Override public final boolean onTouch(View view, MotionEvent motionEvent) { return ExternalActionActivity.this.lambda$onCreate$0$ExternalActionActivity(view, motionEvent); } }); shadowTablet.setOnClickListener(new View.OnClickListener() { @Override public final void onClick(View view) { ExternalActionActivity.lambda$onCreate$1(view); } }); ActionBarLayout actionBarLayout = new ActionBarLayout(this); this.layersActionBarLayout = actionBarLayout; actionBarLayout.setRemoveActionBarExtraHeight(true); this.layersActionBarLayout.setBackgroundView(shadowTablet); this.layersActionBarLayout.setUseAlphaAnimations(true); this.layersActionBarLayout.setBackgroundResource(R.drawable.boxshadow); launchLayout.addView(this.layersActionBarLayout, LayoutHelper.createRelative(530, AndroidUtilities.isSmallTablet() ? 528 : HardwareConfigState.DEFAULT_MAXIMUM_FDS_FOR_HARDWARE_CONFIGS)); this.layersActionBarLayout.init(layerFragmentsStack); this.layersActionBarLayout.setDelegate(this); this.layersActionBarLayout.setDrawerLayoutContainer(this.drawerLayoutContainer); } else { RelativeLayout launchLayout2 = new RelativeLayout(this); this.drawerLayoutContainer.addView(launchLayout2, LayoutHelper.createFrame(-1, -1.0f)); this.backgroundTablet = new View(this); BitmapDrawable drawable2 = (BitmapDrawable) getResources().getDrawable(R.drawable.catstile); drawable2.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); this.backgroundTablet.setBackgroundDrawable(drawable2); launchLayout2.addView(this.backgroundTablet, LayoutHelper.createRelative(-1, -1)); launchLayout2.addView(this.actionBarLayout, LayoutHelper.createRelative(-1, -1)); } this.drawerLayoutContainer.setParentActionBarLayout(this.actionBarLayout); this.actionBarLayout.setDrawerLayoutContainer(this.drawerLayoutContainer); this.actionBarLayout.init(mainFragmentsStack); this.actionBarLayout.setDelegate(this); PasscodeView passcodeView = new PasscodeView(this); this.passcodeView = passcodeView; this.drawerLayoutContainer.addView(passcodeView, LayoutHelper.createFrame(-1, -1.0f)); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.closeOtherAppActivities, this); this.actionBarLayout.removeAllFragments(); ActionBarLayout actionBarLayout2 = this.layersActionBarLayout; if (actionBarLayout2 != null) { actionBarLayout2.removeAllFragments(); } handleIntent(getIntent(), false, savedInstanceState != null, false, UserConfig.selectedAccount, 0); needLayout(); } public boolean lambda$onCreate$0$ExternalActionActivity(View v, MotionEvent event) { if (this.actionBarLayout.fragmentsStack.isEmpty() || event.getAction() != 1) { return false; } float x = event.getX(); float y = event.getY(); int[] location = new int[2]; this.layersActionBarLayout.getLocationOnScreen(location); int viewX = location[0]; int viewY = location[1]; if (this.layersActionBarLayout.checkTransitionAnimation() || (x > viewX && x < this.layersActionBarLayout.getWidth() + viewX && y > viewY && y < this.layersActionBarLayout.getHeight() + viewY)) { return false; } if (!this.layersActionBarLayout.fragmentsStack.isEmpty()) { for (int a = 0; a < this.layersActionBarLayout.fragmentsStack.size() - 1; a = (a - 1) + 1) { ActionBarLayout actionBarLayout = this.layersActionBarLayout; actionBarLayout.removeFragmentFromStack(actionBarLayout.fragmentsStack.get(0)); } this.layersActionBarLayout.closeLastFragment(true); } return true; } public static void lambda$onCreate$1(View v) { } public void showPasscodeActivity() { if (this.passcodeView == null) { return; } SharedConfig.appLocked = true; if (SecretMediaViewer.hasInstance() && SecretMediaViewer.getInstance().isVisible()) { SecretMediaViewer.getInstance().closePhoto(false, false); } else if (PhotoViewer.hasInstance() && PhotoViewer.getInstance().isVisible()) { PhotoViewer.getInstance().closePhoto(false, true); } else if (ArticleViewer.hasInstance() && ArticleViewer.getInstance().isVisible()) { ArticleViewer.getInstance().close(false, true); } this.passcodeView.onShow(); SharedConfig.isWaitingForPasscodeEnter = true; this.drawerLayoutContainer.setAllowOpenDrawer(false, false); this.passcodeView.setDelegate(new PasscodeView.PasscodeViewDelegate() { @Override public final void didAcceptedPassword() { ExternalActionActivity.this.lambda$showPasscodeActivity$2$ExternalActionActivity(); } }); } public void lambda$showPasscodeActivity$2$ExternalActionActivity() { SharedConfig.isWaitingForPasscodeEnter = false; Intent intent = this.passcodeSaveIntent; if (intent != null) { handleIntent(intent, this.passcodeSaveIntentIsNew, this.passcodeSaveIntentIsRestore, true, this.passcodeSaveIntentAccount, this.passcodeSaveIntentState); this.passcodeSaveIntent = null; } this.drawerLayoutContainer.setAllowOpenDrawer(false, false); this.actionBarLayout.showLastFragment(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.showLastFragment(); } } public void onFinishLogin() { handleIntent(this.passcodeSaveIntent, this.passcodeSaveIntentIsNew, this.passcodeSaveIntentIsRestore, true, this.passcodeSaveIntentAccount, this.passcodeSaveIntentState); this.actionBarLayout.removeAllFragments(); ActionBarLayout actionBarLayout = this.layersActionBarLayout; if (actionBarLayout != null) { actionBarLayout.removeAllFragments(); } View view = this.backgroundTablet; if (view != null) { view.setVisibility(0); } } private boolean handleIntent(final Intent intent, final boolean isNew, final boolean restore, final boolean fromPassword, final int intentAccount, int state) { boolean z; if (!fromPassword && (AndroidUtilities.needShowPasscode(true) || SharedConfig.isWaitingForPasscodeEnter)) { showPasscodeActivity(); this.passcodeSaveIntent = intent; this.passcodeSaveIntentIsNew = isNew; this.passcodeSaveIntentIsRestore = restore; this.passcodeSaveIntentAccount = intentAccount; this.passcodeSaveIntentState = state; UserConfig.getInstance(intentAccount).saveConfig(false); return false; } if ("im.skmzhmurqt.passport.AUTHORIZE".equals(intent.getAction())) { if (state == 0) { int activatedAccountsCount = UserConfig.getActivatedAccountsCount(); if (activatedAccountsCount == 0) { this.passcodeSaveIntent = intent; this.passcodeSaveIntentIsNew = isNew; this.passcodeSaveIntentIsRestore = restore; this.passcodeSaveIntentAccount = intentAccount; this.passcodeSaveIntentState = state; LoginActivity fragment = new LoginActivity(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.addFragmentToStack(fragment); } else { this.actionBarLayout.addFragmentToStack(fragment); } if (!AndroidUtilities.isTablet()) { this.backgroundTablet.setVisibility(8); } this.actionBarLayout.showLastFragment(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.showLastFragment(); } AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); builder.setMessage(LocaleController.getString("PleaseLoginPassport", R.string.PleaseLoginPassport)); builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); builder.show(); return true; } if (activatedAccountsCount >= 2) { AlertDialog alertDialog = AlertsCreator.createAccountSelectDialog(this, new AlertsCreator.AccountSelectDelegate() { @Override public final void didSelectAccount(int i) { ExternalActionActivity.this.lambda$handleIntent$3$ExternalActionActivity(intentAccount, intent, isNew, restore, fromPassword, i); } }); alertDialog.show(); alertDialog.setCanceledOnTouchOutside(false); alertDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public final void onDismiss(DialogInterface dialogInterface) { ExternalActionActivity.this.lambda$handleIntent$4$ExternalActionActivity(dialogInterface); } }); return true; } } int bot_id = intent.getIntExtra("bot_id", 0); final String nonce = intent.getStringExtra("nonce"); final String payload = intent.getStringExtra("payload"); final TLRPC.TL_account_getAuthorizationForm req = new TLRPC.TL_account_getAuthorizationForm(); req.bot_id = bot_id; req.scope = intent.getStringExtra("scope"); req.public_key = intent.getStringExtra("public_key"); if (bot_id != 0) { if (!TextUtils.isEmpty(payload) || !TextUtils.isEmpty(nonce)) { if (!TextUtils.isEmpty(req.scope)) { if (!TextUtils.isEmpty(req.public_key)) { final int[] requestId = {0}; final AlertDialog progressDialog = new AlertDialog(this, 3); progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public final void onCancel(DialogInterface dialogInterface) { ConnectionsManager.getInstance(intentAccount).cancelRequest(requestId[0], true); } }); progressDialog.show(); requestId[0] = ConnectionsManager.getInstance(intentAccount).sendRequest(req, new RequestDelegate() { @Override public final void run(TLObject tLObject, TLRPC.TL_error tL_error) { ExternalActionActivity.this.lambda$handleIntent$10$ExternalActionActivity(requestId, intentAccount, progressDialog, req, payload, nonce, tLObject, tL_error); } }, 10); return false; } } } z = false; finish(); return z; } z = false; finish(); return z; } if (AndroidUtilities.isTablet()) { if (this.layersActionBarLayout.fragmentsStack.isEmpty()) { this.layersActionBarLayout.addFragmentToStack(new CacheControlActivity()); } } else if (this.actionBarLayout.fragmentsStack.isEmpty()) { this.actionBarLayout.addFragmentToStack(new CacheControlActivity()); } if (!AndroidUtilities.isTablet()) { this.backgroundTablet.setVisibility(8); } this.actionBarLayout.showLastFragment(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.showLastFragment(); } intent.setAction(null); return false; } public void lambda$handleIntent$3$ExternalActionActivity(int intentAccount, Intent intent, boolean isNew, boolean restore, boolean fromPassword, int account) { if (account != intentAccount) { switchToAccount(account); } handleIntent(intent, isNew, restore, fromPassword, account, 1); } public void lambda$handleIntent$4$ExternalActionActivity(DialogInterface dialog) { setResult(0); finish(); } public void lambda$handleIntent$10$ExternalActionActivity(int[] requestId, final int intentAccount, final AlertDialog progressDialog, final TLRPC.TL_account_getAuthorizationForm req, final String payload, final String nonce, TLObject response, final TLRPC.TL_error error) { final TLRPC.TL_account_authorizationForm authorizationForm = (TLRPC.TL_account_authorizationForm) response; if (authorizationForm != null) { TLRPC.TL_account_getPassword req2 = new TLRPC.TL_account_getPassword(); requestId[0] = ConnectionsManager.getInstance(intentAccount).sendRequest(req2, new RequestDelegate() { @Override public final void run(TLObject tLObject, TLRPC.TL_error tL_error) { ExternalActionActivity.this.lambda$null$7$ExternalActionActivity(progressDialog, intentAccount, authorizationForm, req, payload, nonce, tLObject, tL_error); } }); } else { AndroidUtilities.runOnUIThread(new Runnable() { @Override public final void run() { ExternalActionActivity.this.lambda$null$9$ExternalActionActivity(progressDialog, error); } }); } } public void lambda$null$7$ExternalActionActivity(final AlertDialog progressDialog, final int intentAccount, final TLRPC.TL_account_authorizationForm authorizationForm, final TLRPC.TL_account_getAuthorizationForm req, final String payload, final String nonce, final TLObject response1, TLRPC.TL_error error1) { AndroidUtilities.runOnUIThread(new Runnable() { @Override public final void run() { ExternalActionActivity.this.lambda$null$6$ExternalActionActivity(progressDialog, response1, intentAccount, authorizationForm, req, payload, nonce); } }); } public void lambda$null$6$ExternalActionActivity(AlertDialog progressDialog, TLObject response1, int intentAccount, TLRPC.TL_account_authorizationForm authorizationForm, TLRPC.TL_account_getAuthorizationForm req, String payload, String nonce) { try { progressDialog.dismiss(); } catch (Exception e) { FileLog.e(e); } if (response1 != null) { TLRPC.TL_account_password accountPassword = (TLRPC.TL_account_password) response1; MessagesController.getInstance(intentAccount).putUsers(authorizationForm.users, false); PassportActivity fragment = new PassportActivity(5, req.bot_id, req.scope, req.public_key, payload, nonce, (String) null, authorizationForm, accountPassword); fragment.setNeedActivityResult(true); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.addFragmentToStack(fragment); } else { this.actionBarLayout.addFragmentToStack(fragment); } if (!AndroidUtilities.isTablet()) { this.backgroundTablet.setVisibility(8); } this.actionBarLayout.showLastFragment(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.showLastFragment(); } } } public void lambda$null$9$ExternalActionActivity(AlertDialog progressDialog, final TLRPC.TL_error error) { try { progressDialog.dismiss(); if ("APP_VERSION_OUTDATED".equals(error.text)) { AlertDialog dialog = AlertsCreator.showUpdateAppAlert(this, LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); if (dialog != null) { dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public final void onDismiss(DialogInterface dialogInterface) { ExternalActionActivity.this.lambda$null$8$ExternalActionActivity(error, dialogInterface); } }); } else { setResult(1, new Intent().putExtra("error", error.text)); finish(); } return; } if (!"BOT_INVALID".equals(error.text) && !"PUBLIC_KEY_REQUIRED".equals(error.text) && !"PUBLIC_KEY_INVALID".equals(error.text) && !"SCOPE_EMPTY".equals(error.text) && !"PAYLOAD_EMPTY".equals(error.text)) { setResult(0); finish(); return; } setResult(1, new Intent().putExtra("error", error.text)); finish(); } catch (Exception e) { FileLog.e(e); } } public void lambda$null$8$ExternalActionActivity(TLRPC.TL_error error, DialogInterface dialog1) { setResult(1, new Intent().putExtra("error", error.text)); finish(); } public void switchToAccount(int account) { if (account == UserConfig.selectedAccount) { return; } ConnectionsManager.getInstance(UserConfig.selectedAccount).setAppPaused(true, false); UserConfig.selectedAccount = account; UserConfig.getInstance(0).saveConfig(false); if (!ApplicationLoader.mainInterfacePaused) { ConnectionsManager.getInstance(UserConfig.selectedAccount).setAppPaused(false, false); } } @Override public boolean onPreIme() { return false; } @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); handleIntent(intent, true, false, false, UserConfig.selectedAccount, 0); } private void onFinish() { if (this.finished) { return; } Runnable runnable = this.lockRunnable; if (runnable != null) { AndroidUtilities.cancelRunOnUIThread(runnable); this.lockRunnable = null; } this.finished = true; } public void presentFragment(BaseFragment fragment) { this.actionBarLayout.presentFragment(fragment); } public boolean presentFragment(BaseFragment fragment, boolean removeLast, boolean forceWithoutAnimation) { return this.actionBarLayout.presentFragment(fragment, removeLast, forceWithoutAnimation, true, false); } public void needLayout() { if (AndroidUtilities.isTablet()) { RelativeLayout.LayoutParams relativeLayoutParams = (RelativeLayout.LayoutParams) this.layersActionBarLayout.getLayoutParams(); relativeLayoutParams.leftMargin = (AndroidUtilities.displaySize.x - relativeLayoutParams.width) / 2; int y = Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0; relativeLayoutParams.topMargin = (((AndroidUtilities.displaySize.y - relativeLayoutParams.height) - y) / 2) + y; this.layersActionBarLayout.setLayoutParams(relativeLayoutParams); if (!AndroidUtilities.isSmallTablet() || getResources().getConfiguration().orientation == 2) { int leftWidth = (AndroidUtilities.displaySize.x / 100) * 35; if (leftWidth < AndroidUtilities.dp(320.0f)) { leftWidth = AndroidUtilities.dp(320.0f); } RelativeLayout.LayoutParams relativeLayoutParams2 = (RelativeLayout.LayoutParams) this.actionBarLayout.getLayoutParams(); relativeLayoutParams2.width = leftWidth; relativeLayoutParams2.height = -1; this.actionBarLayout.setLayoutParams(relativeLayoutParams2); if (AndroidUtilities.isSmallTablet() && this.actionBarLayout.fragmentsStack.size() == 2) { BaseFragment chatFragment = this.actionBarLayout.fragmentsStack.get(1); chatFragment.onPause(); this.actionBarLayout.fragmentsStack.remove(1); this.actionBarLayout.showLastFragment(); return; } return; } RelativeLayout.LayoutParams relativeLayoutParams3 = (RelativeLayout.LayoutParams) this.actionBarLayout.getLayoutParams(); relativeLayoutParams3.width = -1; relativeLayoutParams3.height = -1; this.actionBarLayout.setLayoutParams(relativeLayoutParams3); } } public void fixLayout() { ActionBarLayout actionBarLayout; if (!AndroidUtilities.isTablet() || (actionBarLayout = this.actionBarLayout) == null) { return; } actionBarLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ExternalActionActivity.this.needLayout(); if (ExternalActionActivity.this.actionBarLayout != null) { ExternalActionActivity.this.actionBarLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this); } } }); } @Override public void onPause() { super.onPause(); this.actionBarLayout.onPause(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.onPause(); } ApplicationLoader.externalInterfacePaused = true; onPasscodePause(); PasscodeView passcodeView = this.passcodeView; if (passcodeView != null) { passcodeView.onPause(); } } @Override public void onDestroy() { super.onDestroy(); onFinish(); } @Override public void onResume() { super.onResume(); this.actionBarLayout.onResume(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.onResume(); } ApplicationLoader.externalInterfacePaused = false; onPasscodeResume(); if (this.passcodeView.getVisibility() != 0) { this.actionBarLayout.onResume(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.onResume(); return; } return; } this.actionBarLayout.dismissDialogs(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.dismissDialogs(); } this.passcodeView.onResume(); } private void onPasscodePause() { Runnable runnable = this.lockRunnable; if (runnable != null) { AndroidUtilities.cancelRunOnUIThread(runnable); this.lockRunnable = null; } if (SharedConfig.passcodeHash.length() != 0) { SharedConfig.lastPauseTime = ConnectionsManager.getInstance(UserConfig.selectedAccount).getCurrentTime(); this.lockRunnable = new Runnable() { @Override public void run() { if (ExternalActionActivity.this.lockRunnable == this) { if (AndroidUtilities.needShowPasscode(true)) { if (BuildVars.LOGS_ENABLED) { FileLog.d("lock app"); } ExternalActionActivity.this.showPasscodeActivity(); } else if (BuildVars.LOGS_ENABLED) { FileLog.d("didn't pass lock check"); } ExternalActionActivity.this.lockRunnable = null; } } }; if (SharedConfig.appLocked) { AndroidUtilities.runOnUIThread(this.lockRunnable, 1000L); } else if (SharedConfig.autoLockIn != 0) { AndroidUtilities.runOnUIThread(this.lockRunnable, (SharedConfig.autoLockIn * 1000) + 1000); } } else { SharedConfig.lastPauseTime = 0; } SharedConfig.saveConfig(); } private void onPasscodeResume() { Runnable runnable = this.lockRunnable; if (runnable != null) { AndroidUtilities.cancelRunOnUIThread(runnable); this.lockRunnable = null; } if (AndroidUtilities.needShowPasscode(true)) { showPasscodeActivity(); } if (SharedConfig.lastPauseTime != 0) { SharedConfig.lastPauseTime = 0; SharedConfig.saveConfig(); } } @Override public void onConfigurationChanged(Configuration newConfig) { AndroidUtilities.checkDisplaySize(this, newConfig); super.onConfigurationChanged(newConfig); fixLayout(); } @Override public void onBackPressed() { if (this.passcodeView.getVisibility() == 0) { finish(); return; } if (PhotoViewer.getInstance().isVisible()) { PhotoViewer.getInstance().closePhoto(true, false); return; } if (this.drawerLayoutContainer.isDrawerOpened()) { this.drawerLayoutContainer.closeDrawer(false); return; } if (AndroidUtilities.isTablet()) { if (this.layersActionBarLayout.getVisibility() == 0) { this.layersActionBarLayout.onBackPressed(); return; } else { this.actionBarLayout.onBackPressed(); return; } } this.actionBarLayout.onBackPressed(); } @Override public void onLowMemory() { super.onLowMemory(); this.actionBarLayout.onLowMemory(); if (AndroidUtilities.isTablet()) { this.layersActionBarLayout.onLowMemory(); } } @Override public boolean needPresentFragment(BaseFragment fragment, boolean removeLast, boolean forceWithoutAnimation, ActionBarLayout layout) { return true; } @Override public boolean needAddFragmentToStack(BaseFragment fragment, ActionBarLayout layout) { return true; } @Override public boolean needCloseLastFragment(ActionBarLayout layout) { if (AndroidUtilities.isTablet()) { if (layout == this.actionBarLayout && layout.fragmentsStack.size() <= 1) { onFinish(); finish(); return false; } if (layout == this.layersActionBarLayout && this.actionBarLayout.fragmentsStack.isEmpty() && this.layersActionBarLayout.fragmentsStack.size() == 1) { onFinish(); finish(); return false; } } else if (layout.fragmentsStack.size() <= 1) { onFinish(); finish(); return false; } return true; } @Override public void onRebuildAllFragments(ActionBarLayout layout, boolean last) { if (AndroidUtilities.isTablet() && layout == this.layersActionBarLayout) { this.actionBarLayout.rebuildAllFragmentViews(last, last); } } }