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

Commit 7e259ee6 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Remove SystemUIDialog subclass from InternetDialog

Renames InternetDialogFactory to InternetDialogManager since its real
responsibility is to manager the existence of a single dialog at a
time rather than create dialogs.

This code needs more tlc in the future, but that is beyond the scope
of the current bug.

Flag: NA
Bug: 219008720
Test: build and run internet dialog
Change-Id: If1bdfabdab99aa34641fe37824de7e80f68160bc
parent 7b2ed1be
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.QsEventLogger;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
import com.android.systemui.qs.tiles.dialog.InternetDialogManager;
import com.android.systemui.statusbar.connectivity.AccessPointController;
import com.android.systemui.statusbar.connectivity.IconState;
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
@@ -83,7 +83,7 @@ public class InternetTile extends QSTileImpl<QSTile.BooleanState> {
    private int mLastTileState = LAST_STATE_UNKNOWN;

    protected final InternetSignalCallback mSignalCallback = new InternetSignalCallback();
    private final InternetDialogFactory mInternetDialogFactory;
    private final InternetDialogManager mInternetDialogManager;
    final Handler mHandler;

    @Inject
@@ -99,11 +99,11 @@ public class InternetTile extends QSTileImpl<QSTile.BooleanState> {
            QSLogger qsLogger,
            NetworkController networkController,
            AccessPointController accessPointController,
            InternetDialogFactory internetDialogFactory
            InternetDialogManager internetDialogManager
    ) {
        super(host, uiEventLogger, backgroundLooper, mainHandler, falsingManager, metricsLogger,
                statusBarStateController, activityStarter, qsLogger);
        mInternetDialogFactory = internetDialogFactory;
        mInternetDialogManager = internetDialogManager;
        mHandler = mainHandler;
        mController = networkController;
        mAccessPointController = accessPointController;
@@ -125,7 +125,7 @@ public class InternetTile extends QSTileImpl<QSTile.BooleanState> {

    @Override
    protected void handleClick(@Nullable View view) {
        mHandler.post(() -> mInternetDialogFactory.create(true,
        mHandler.post(() -> mInternetDialogManager.create(true,
                mAccessPointController.canConfigMobileData(),
                mAccessPointController.canConfigWifi(), view));
    }
+14 −14
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import com.android.systemui.qs.QSHost
import com.android.systemui.qs.QsEventLogger
import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory
import com.android.systemui.qs.tiles.dialog.InternetDialogManager
import com.android.systemui.res.R
import com.android.systemui.statusbar.connectivity.AccessPointController
import com.android.systemui.statusbar.pipeline.shared.ui.binder.InternetTileBinder
@@ -54,7 +54,7 @@ constructor(
        activityStarter: ActivityStarter,
        qsLogger: QSLogger,
        viewModel: InternetTileViewModel,
    private val internetDialogFactory: InternetDialogFactory,
        private val internetDialogManager: InternetDialogManager,
        private val accessPointController: AccessPointController,
) :
    QSTileImpl<QSTile.BooleanState>(
@@ -86,7 +86,7 @@ constructor(

    override fun handleClick(view: View?) {
        mainHandler.post {
            internetDialogFactory.create(
            internetDialogManager.create(
                aboveStatusBar = true,
                accessPointController.canConfigMobileData(),
                accessPointController.canConfigWifi(),
+125 −82

File changed and moved.

Preview size limit exceeded, changes collapsed.

+12 −27
Original line number Diff line number Diff line
@@ -15,64 +15,49 @@
 */
package com.android.systemui.qs.tiles.dialog

import android.content.Context
import android.os.Handler
import android.util.Log
import android.view.View
import com.android.internal.jank.InteractionJankMonitor
import com.android.internal.logging.UiEventLogger
import com.android.systemui.animation.DialogCuj
import com.android.systemui.animation.DialogTransitionAnimator
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.policy.KeyguardStateController
import java.util.concurrent.Executor
import com.android.systemui.statusbar.phone.SystemUIDialog
import javax.inject.Inject

private const val TAG = "InternetDialogFactory"
private val DEBUG = Log.isLoggable(TAG, Log.DEBUG)

/**
 * Factory to create [InternetDialog] objects.
 * Factory to create [InternetDialogDelegate] objects.
 */
@SysUISingleton
class InternetDialogFactory @Inject constructor(
    @Main private val handler: Handler,
    @Background private val executor: Executor,
    private val internetDialogController: InternetDialogController,
    private val context: Context,
    private val uiEventLogger: UiEventLogger,
class InternetDialogManager @Inject constructor(
    private val dialogTransitionAnimator: DialogTransitionAnimator,
    private val keyguardStateController: KeyguardStateController
    private val dialogFactory: InternetDialogDelegate.Factory
) {
    companion object {
        private const val INTERACTION_JANK_TAG = "internet"
        var internetDialog: InternetDialog? = null
        var dialog: SystemUIDialog? = null
    }

    /** Creates a [InternetDialog]. The dialog will be animated from [view] if it is not null. */
    /** Creates a [InternetDialogDelegate]. The dialog will be animated from [view] if it is not null. */
    fun create(
        aboveStatusBar: Boolean,
        canConfigMobileData: Boolean,
        canConfigWifi: Boolean,
        view: View?
    ) {
        if (internetDialog != null) {
        if (dialog != null) {
            if (DEBUG) {
                Log.d(TAG, "InternetDialog is showing, do not create it twice.")
            }
            return
        } else {
            internetDialog = InternetDialog(
                context, this, internetDialogController,
                canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger,
                    dialogTransitionAnimator, handler,
                executor, keyguardStateController
            )
            dialog = dialogFactory.create(
                    aboveStatusBar, canConfigMobileData, canConfigWifi).createDialog()
            if (view != null) {
                dialogTransitionAnimator.showFromView(
                    internetDialog!!, view,
                        dialog!!, view,
                    animateBackgroundBoundsChange = true,
                    cuj = DialogCuj(
                        InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN,
@@ -80,7 +65,7 @@ class InternetDialogFactory @Inject constructor(
                    )
                )
            } else {
                internetDialog?.show()
                dialog!!.show()
            }
        }
    }
@@ -89,6 +74,6 @@ class InternetDialogFactory @Inject constructor(
        if (DEBUG) {
            Log.d(TAG, "destroyDialog")
        }
        internetDialog = null
        dialog = null
    }
}
+7 −8
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ import com.android.settingslib.mobile.MobileStatusTracker.SubscriptionDefaults;
import com.android.settingslib.mobile.TelephonyIcons;
import com.android.settingslib.net.DataUsageController;
import com.android.systemui.Dumpable;
import com.android.systemui.res.R;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
@@ -72,7 +71,8 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.log.LogBuffer;
import com.android.systemui.log.core.LogLevel;
import com.android.systemui.log.dagger.StatusBarNetworkControllerLog;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
import com.android.systemui.qs.tiles.dialog.InternetDialogManager;
import com.android.systemui.res.R;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -83,8 +83,6 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceP
import com.android.systemui.telephony.TelephonyListenerManager;
import com.android.systemui.util.CarrierConfigTracker;

import dalvik.annotation.optimization.NeverCompile;

import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -99,6 +97,7 @@ import java.util.stream.Collectors;

import javax.inject.Inject;

import dalvik.annotation.optimization.NeverCompile;
import kotlin.Unit;

/** Platform implementation of the network controller. **/
@@ -201,7 +200,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
    private boolean mUserSetup;
    private boolean mSimDetected;
    private boolean mForceCellularValidated;
    private InternetDialogFactory mInternetDialogFactory;
    private InternetDialogManager mInternetDialogManager;
    private Handler mMainHandler;

    private ConfigurationController.ConfigurationListener mConfigurationListener =
@@ -245,7 +244,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
            WifiStatusTrackerFactory trackerFactory,
            MobileSignalControllerFactory mobileFactory,
            @Main Handler handler,
            InternetDialogFactory internetDialogFactory,
            InternetDialogManager internetDialogManager,
            DumpManager dumpManager,
            @StatusBarNetworkControllerLog LogBuffer logBuffer) {
        this(context, connectivityManager,
@@ -272,7 +271,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
                dumpManager,
                logBuffer);
        mReceiverHandler.post(mRegisterListeners);
        mInternetDialogFactory = internetDialogFactory;
        mInternetDialogManager = internetDialogManager;
    }

    @VisibleForTesting
@@ -829,7 +828,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
                mReceiverHandler.post(this::handleConfigurationChanged);
                break;
            case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
                mMainHandler.post(() -> mInternetDialogFactory.create(true,
                mMainHandler.post(() -> mInternetDialogManager.create(true,
                        mAccessPoints.canConfigMobileData(), mAccessPoints.canConfigWifi(),
                        null /* view */));
                break;
Loading