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

Commit d43a381e authored by Vadim Caen's avatar Vadim Caen Committed by Android (Google) Code Review
Browse files

Merge "Finish MediaProj..Perm..Activity if Keyguard is dismissed" into main

parents 7f8d88b2 33a10da3
Loading
Loading
Loading
Loading
+30 −12
Original line number Diff line number Diff line
@@ -68,12 +68,12 @@ import com.android.systemui.res.R;
import com.android.systemui.statusbar.phone.AlertDialogWithDelegate;
import com.android.systemui.statusbar.phone.SystemUIDialog;

import dagger.Lazy;

import java.util.function.Consumer;

import javax.inject.Inject;

import dagger.Lazy;

public class MediaProjectionPermissionActivity extends Activity {
    private static final String TAG = "MediaProjectionPermissionActivity";
    private static final float MAX_APP_NAME_SIZE_PX = 500f;
@@ -132,8 +132,7 @@ public class MediaProjectionPermissionActivity extends Activity {
                mPackageName = launchingIntent.getStringExtra(
                        EXTRA_PACKAGE_REUSING_GRANTED_CONSENT);
            } else {
                setResult(RESULT_CANCELED);
                finish(RECORD_CANCEL, /* projection= */ null);
                finishAsCancelled();
                return;
            }
        }
@@ -145,8 +144,7 @@ public class MediaProjectionPermissionActivity extends Activity {
            mUid = aInfo.uid;
        } catch (PackageManager.NameNotFoundException e) {
            Log.e(TAG, "Unable to look up package name", e);
            setResult(RESULT_CANCELED);
            finish(RECORD_CANCEL, /* projection= */ null);
            finishAsCancelled();
            return;
        }

@@ -176,15 +174,13 @@ public class MediaProjectionPermissionActivity extends Activity {
            }
        } catch (RemoteException e) {
            Log.e(TAG, "Error checking projection permissions", e);
            setResult(RESULT_CANCELED);
            finish(RECORD_CANCEL, /* projection= */ null);
            finishAsCancelled();
            return;
        }

        if (mFeatureFlags.isEnabled(Flags.WM_ENABLE_PARTIAL_SCREEN_SHARING_ENTERPRISE_POLICIES)) {
            if (showScreenCaptureDisabledDialogIfNeeded()) {
                setResult(RESULT_CANCELED);
                finish(RECORD_CANCEL, /* projection= */ null);
                finishAsCancelled();
                return;
            }
        }
@@ -346,6 +342,21 @@ public class MediaProjectionPermissionActivity extends Activity {
    private void requestDeviceUnlock() {
        mKeyguardManager.requestDismissKeyguard(this,
                new KeyguardManager.KeyguardDismissCallback() {

                    @Override
                    public void onDismissError() {
                        if (com.android.systemui.Flags.mediaProjectionDialogBehindLockscreen()) {
                            finishAsCancelled();
                        }
                    }

                    @Override
                    public void onDismissCancelled() {
                        if (com.android.systemui.Flags.mediaProjectionDialogBehindLockscreen()) {
                            finishAsCancelled();
                        }
                    }

                    @Override
                    public void onDismissSucceeded() {
                        mDialog.show();
@@ -386,8 +397,7 @@ public class MediaProjectionPermissionActivity extends Activity {
            }
        } catch (RemoteException e) {
            Log.e(TAG, "Error granting projection permission", e);
            setResult(RESULT_CANCELED);
            finish(RECORD_CANCEL, /* projection= */ null);
            finishAsCancelled();
        } finally {
            if (mDialog != null) {
                mDialog.dismiss();
@@ -436,6 +446,14 @@ public class MediaProjectionPermissionActivity extends Activity {
        }
    }

    /**
     * Finishes this activity and cancel the projection request.
     */
    private void finishAsCancelled() {
        setResult(RESULT_CANCELED);
        finish(RECORD_CANCEL, /* projection= */ null);
    }

    @Nullable
    private MediaProjectionConfig getMediaProjectionConfig() {
        Intent intent = getIntent();