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

Commit cfe50f47 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere
Browse files

Use ActivityStarter to start Settings activity

This CL fixes the Activity started when clicking the "Settings" button
of the Volume dialog. This ensures that the keyguard is dismissed if we
are showing the Dialog on the keyguard.

Bug: 202262476
Test: Manual
Change-Id: I3fcfba5a46cbef2e60733e3dbe93578d10db6f3a
parent 8bfc996c
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.media.MediaOutputConstants;
import com.android.systemui.R;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.phone.SystemUIDialog;

import java.util.ArrayList;
@@ -69,6 +70,7 @@ public class VolumePanelDialog extends SystemUIDialog implements LifecycleOwner
    private static final int DURATION_SLICE_BINDING_TIMEOUT_MS = 200;
    private static final int DEFAULT_SLICE_SIZE = 4;

    private final ActivityStarter mActivityStarter;
    private RecyclerView mVolumePanelSlices;
    private VolumePanelSlicesAdapter mVolumePanelSlicesAdapter;
    private final LifecycleRegistry mLifecycleRegistry;
@@ -78,8 +80,10 @@ public class VolumePanelDialog extends SystemUIDialog implements LifecycleOwner
    private boolean mSlicesReadyToLoad;
    private LocalBluetoothProfileManager mProfileManager;

    public VolumePanelDialog(Context context, boolean aboveStatusBar) {
    public VolumePanelDialog(Context context,
            ActivityStarter activityStarter, boolean aboveStatusBar) {
        super(context);
        mActivityStarter = activityStarter;
        mLifecycleRegistry = new LifecycleRegistry(this);
        if (!aboveStatusBar) {
            getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
@@ -100,9 +104,11 @@ public class VolumePanelDialog extends SystemUIDialog implements LifecycleOwner
        doneButton.setOnClickListener(v -> dismiss());
        Button settingsButton = dialogView.findViewById(R.id.settings_button);
        settingsButton.setOnClickListener(v -> {
            getContext().startActivity(new Intent(Settings.ACTION_SOUND_SETTINGS).addFlags(
                    Intent.FLAG_ACTIVITY_NEW_TASK));
            dismiss();

            Intent intent = new Intent(Settings.ACTION_SOUND_SETTINGS);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mActivityStarter.startActivity(intent, /* dismissShade= */ true);
        });

        LocalBluetoothManager localBluetoothManager = LocalBluetoothManager.getInstance(
+3 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.util.Log
import android.view.View
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.plugins.ActivityStarter
import javax.inject.Inject

private const val TAG = "VolumePanelFactory"
@@ -33,6 +34,7 @@ private val DEBUG = Log.isLoggable(TAG, Log.DEBUG)
@SysUISingleton
class VolumePanelFactory @Inject constructor(
    private val context: Context,
    private val activityStarter: ActivityStarter,
    private val dialogLaunchAnimator: DialogLaunchAnimator
) {
    companion object {
@@ -45,7 +47,7 @@ class VolumePanelFactory @Inject constructor(
            return
        }

        val dialog = VolumePanelDialog(context, aboveStatusBar)
        val dialog = VolumePanelDialog(context, activityStarter, aboveStatusBar)
        volumePanelDialog = dialog

        // Show the dialog.