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

Commit f6448502 authored by Matt Pietal's avatar Matt Pietal
Browse files

User switcher - Fix broken user addition

Adding users from accounts other than the non-system user was not
functional. Simply use the context to launch the CreateUserActivity in
a new task stack.

Also, address test failures where Dependency.get() was being used by
other tests with the wrong context, creating failures in the user
switcher tests. Remove this call from SystemUIDialog and update it
everywhere.

Fixes: 218989709
Fixes: 218824658
Test: atest KeyguardUserSwitcherAdapterTest UserDetailViewAdapterTest KeyguardSecurityContainerTest UserSwitcherControllerTest InternetDialogTest SystemUIDialogTest
Change-Id: Iaceb3dd2add7d2372f9ec646610c8e147c516e63
parent dd0811a6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
    android:id="@+id/user_switcher_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="64dp"
    android:layout_marginBottom="40dp"
    android:layout_marginEnd="60dp"
    android:layout_marginStart="60dp">

+2 −3
Original line number Diff line number Diff line
@@ -754,11 +754,10 @@
        <item name="android:windowSplashScreenAnimatedIcon">@drawable/ic_blank</item>
    </style>

    <style name="Theme.CreateUser" parent="@style/Theme.SystemUI">
    <style name="Theme.CreateUser" parent="@android:style/Theme.DeviceDefault.NoActionBar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">#33000000</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>

    <style name="Theme.PeopleTileConfigActivity" parent="@style/Theme.SystemUI">
+1 −1
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ public class CastTile extends QSTileImpl<BooleanState> {
            holder.init(dialog);
            SystemUIDialog.setShowForAllUsers(dialog, true);
            SystemUIDialog.registerDismissListener(dialog);
            SystemUIDialog.setWindowOnTop(dialog);
            SystemUIDialog.setWindowOnTop(dialog, mKeyguard.isShowing());

            mUiHandler.post(() -> {
                if (view != null) {
+7 −3
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
import com.android.systemui.statusbar.connectivity.NetworkController;
import com.android.systemui.statusbar.connectivity.SignalCallback;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.policy.KeyguardStateController;

import javax.inject.Inject;

@@ -68,7 +69,7 @@ public class CellularTile extends QSTileImpl<SignalState> {

    private final NetworkController mController;
    private final DataUsageController mDataController;

    private final KeyguardStateController mKeyguard;
    private final CellSignalCallback mSignalCallback = new CellSignalCallback();

    @Inject
@@ -81,11 +82,14 @@ public class CellularTile extends QSTileImpl<SignalState> {
            StatusBarStateController statusBarStateController,
            ActivityStarter activityStarter,
            QSLogger qsLogger,
            NetworkController networkController
            NetworkController networkController,
            KeyguardStateController keyguardStateController

    ) {
        super(host, backgroundLooper, mainHandler, falsingManager, metricsLogger,
                statusBarStateController, activityStarter, qsLogger);
        mController = networkController;
        mKeyguard = keyguardStateController;
        mDataController = mController.getMobileDataController();
        mController.observe(getLifecycle(), mSignalCallback);
    }
@@ -145,7 +149,7 @@ public class CellularTile extends QSTileImpl<SignalState> {
        dialog.getWindow().setType(LayoutParams.TYPE_KEYGUARD_DIALOG);
        SystemUIDialog.setShowForAllUsers(dialog, true);
        SystemUIDialog.registerDismissListener(dialog);
        SystemUIDialog.setWindowOnTop(dialog);
        SystemUIDialog.setWindowOnTop(dialog, mKeyguard.isShowing());
        dialog.show();
    }

+6 −2
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.wifitrackerlib.WifiEntry;

import java.util.List;
@@ -130,6 +131,7 @@ public class InternetDialog extends SystemUIDialog implements
    private Button mDoneButton;
    private Button mAirplaneModeButton;
    private Drawable mBackgroundOn;
    private KeyguardStateController mKeyguard;
    @Nullable
    private Drawable mBackgroundOff = null;
    private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
@@ -159,7 +161,8 @@ public class InternetDialog extends SystemUIDialog implements
    public InternetDialog(Context context, InternetDialogFactory internetDialogFactory,
            InternetDialogController internetDialogController, boolean canConfigMobileData,
            boolean canConfigWifi, boolean aboveStatusBar, UiEventLogger uiEventLogger,
            @Main Handler handler, @Background Executor executor) {
            @Main Handler handler, @Background Executor executor,
            KeyguardStateController keyguardStateController) {
        super(context);
        if (DEBUG) {
            Log.d(TAG, "Init InternetDialog");
@@ -177,6 +180,7 @@ public class InternetDialog extends SystemUIDialog implements
        mWifiManager = mInternetDialogController.getWifiManager();
        mCanConfigMobileData = canConfigMobileData;
        mCanConfigWifi = canConfigWifi;
        mKeyguard = keyguardStateController;

        mUiEventLogger = uiEventLogger;
        mAdapter = new InternetAdapter(mInternetDialogController);
@@ -615,7 +619,7 @@ public class InternetDialog extends SystemUIDialog implements
        mAlertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
        SystemUIDialog.setShowForAllUsers(mAlertDialog, true);
        SystemUIDialog.registerDismissListener(mAlertDialog);
        SystemUIDialog.setWindowOnTop(mAlertDialog);
        SystemUIDialog.setWindowOnTop(mAlertDialog, mKeyguard.isShowing());
        mAlertDialog.show();
    }

Loading