Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d67ff32 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Stop putting credential confirmation activity to the home task."...

Merge "Merge "Stop putting credential confirmation activity to the home task." into qt-dev am: ee05562a am: f060129c" into qt-r1-dev-plus-aosp
parents 5202e22e bf7711fc
Loading
Loading
Loading
Loading
+18 −20
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static android.app.ActivityManager.TaskDescription;
import android.annotation.ColorInt;
import android.annotation.UserIdInt;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.KeyguardManager;
import android.app.PendingIntent;
@@ -32,9 +31,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.UserHandle;
import android.util.Log;
import android.view.View;

import com.android.internal.annotations.VisibleForTesting;
@@ -57,6 +54,8 @@ public class WorkLockActivity extends Activity {
    static final String EXTRA_TASK_DESCRIPTION =
            "com.android.systemui.keyguard.extra.TASK_DESCRIPTION";

    private static final int REQUEST_CODE_CONFIRM_CREDENTIALS = 1;

    /**
     * Cached keyguard manager instance populated by {@link #getKeyguardManager}.
     * @see KeyguardManager
@@ -111,7 +110,6 @@ public class WorkLockActivity extends Activity {
    @Override
    public void onBackPressed() {
        // Ignore back presses.
        return;
    }

    @Override
@@ -151,26 +149,26 @@ public class WorkLockActivity extends Activity {
                PendingIntent.FLAG_ONE_SHOT |
                PendingIntent.FLAG_IMMUTABLE, options.toBundle());

        if (target != null) {
            credential.putExtra(Intent.EXTRA_INTENT, target.getIntentSender());
        try {
            ActivityManager.getService().startConfirmDeviceCredentialIntent(credential,
                    getChallengeOptions().toBundle());
        } catch (RemoteException e) {
            Log.e(TAG, "Failed to start confirm credential intent", e);
        }

        startActivityForResult(credential, REQUEST_CODE_CONFIRM_CREDENTIALS);
    }

    private ActivityOptions getChallengeOptions() {
        // If we are taking up the whole screen, just use the default animation of clipping the
        // credentials activity into the entire foreground.
        if (!isInMultiWindowMode()) {
            return ActivityOptions.makeBasic();
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE_CONFIRM_CREDENTIALS &&  resultCode != RESULT_OK) {
            // The user dismissed the challenge, don't show it again.
            goToHomeScreen();
        }
    }

        // Otherwise, animate the transition from this part of the screen to fullscreen
        // using our own decor as the starting position.
        final View view = getWindow().getDecorView();
        return ActivityOptions.makeScaleUpAnimation(view, 0, 0, view.getWidth(), view.getHeight());
    private void goToHomeScreen() {
        final Intent homeIntent = new Intent(Intent.ACTION_MAIN);
        homeIntent.addCategory(Intent.CATEGORY_HOME);
        homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(homeIntent);
    }

    private KeyguardManager getKeyguardManager() {
+0 −7
Original line number Diff line number Diff line
@@ -280,13 +280,6 @@ class ActivityStartInterceptor {
            mActivityOptions = ActivityOptions.makeBasic();
        }

        ActivityRecord homeActivityRecord = mRootActivityContainer.getDefaultDisplayHomeActivity();
        if (homeActivityRecord != null && homeActivityRecord.getTaskRecord() != null) {
            // Showing credential confirmation activity in home task to avoid stopping
            // multi-windowed mode after showing the full-screen credential confirmation activity.
            mActivityOptions.setLaunchTaskId(homeActivityRecord.getTaskRecord().taskId);
        }

        final UserInfo parent = mUserManager.getProfileParent(mUserId);
        mRInfo = mSupervisor.resolveIntent(mIntent, mResolvedType, parent.id, 0, mRealCallingUid);
        mAInfo = mSupervisor.resolveActivity(mIntent, mRInfo, mStartFlags, null /*profilerInfo*/);
+2 −9
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECOND
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
import static android.content.pm.ApplicationInfo.FLAG_FACTORY_TEST;
import static android.content.pm.ConfigurationInfo.GL_ES_VERSION_UNDEFINED;
import static android.content.pm.PackageManager.FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS;
@@ -6892,15 +6891,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
            synchronized (mGlobalLock) {
                final long ident = Binder.clearCallingIdentity();
                try {
                    intent.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS |
                            FLAG_ACTIVITY_TASK_ON_HOME);
                    ActivityOptions activityOptions = options != null
                    intent.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
                    final ActivityOptions activityOptions = options != null
                            ? new ActivityOptions(options) : ActivityOptions.makeBasic();
                    final ActivityRecord homeActivity =
                            mRootActivityContainer.getDefaultDisplayHomeActivity();
                    if (homeActivity != null) {
                        activityOptions.setLaunchTaskId(homeActivity.getTaskRecord().taskId);
                    }
                    mContext.startActivityAsUser(intent, activityOptions.toBundle(),
                            UserHandle.CURRENT);
                } finally {