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

Commit c3af8564 authored by Zoey Chen's avatar Zoey Chen Committed by Android (Google) Code Review
Browse files

Merge "[SystemUI] 1.Remove the unnecessary log 2. update signal icon in bg thread" into sc-qpr1-dev

parents 2c7ec2cb 5f685c98
Loading
Loading
Loading
Loading
+38 −15
Original line number Diff line number Diff line
@@ -66,11 +66,13 @@ import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.accessibility.floatingmenu.AnnotationLinkSpan;
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.wifitrackerlib.WifiEntry;

import java.util.List;
import java.util.concurrent.Executor;

/**
 * Dialog for showing mobile network, connected Wi-Fi network and Wi-Fi networks.
@@ -84,6 +86,7 @@ public class InternetDialog extends SystemUIDialog implements
    static final long PROGRESS_DELAY_MS = 2000L;

    private final Handler mHandler;
    private final Executor mBackgroundExecutor;
    private final LinearLayoutManager mLayoutManager;

    @VisibleForTesting
@@ -158,13 +161,14 @@ 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) {
            @Main Handler handler, @Background Executor executor) {
        super(context, R.style.Theme_SystemUI_Dialog_Internet);
        if (DEBUG) {
            Log.d(TAG, "Init InternetDialog");
        }
        mContext = context;
        mHandler = handler;
        mBackgroundExecutor = executor;
        mInternetDialogFactory = internetDialogFactory;
        mInternetDialogController = internetDialogController;
        mSubscriptionManager = mInternetDialogController.getSubscriptionManager();
@@ -299,7 +303,13 @@ public class InternetDialog extends SystemUIDialog implements
        dismiss();
    }

    void updateDialog() {
    /**
     * Update the internet dialog when receiving the callback.
     *
     * @param shouldUpdateMobileNetwork {@code true} for update the mobile network layout,
     * otherwise {@code false}.
     */
    void updateDialog(boolean shouldUpdateMobileNetwork) {
        if (DEBUG) {
            Log.d(TAG, "updateDialog");
        }
@@ -309,8 +319,10 @@ public class InternetDialog extends SystemUIDialog implements
            mInternetDialogSubTitle.setText(getSubtitleText());
        }
        updateEthernet();
        if (shouldUpdateMobileNetwork) {
            setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular()
                    || mInternetDialogController.isCarrierNetworkActive());
        }

        if (!mCanConfigWifi) {
            return;
@@ -379,7 +391,13 @@ public class InternetDialog extends SystemUIDialog implements
            } else {
                mMobileSummaryText.setVisibility(View.GONE);
            }
            mSignalIcon.setImageDrawable(getSignalStrengthDrawable());

            mBackgroundExecutor.execute(() -> {
                Drawable drawable = getSignalStrengthDrawable();
                mHandler.post(() -> {
                    mSignalIcon.setImageDrawable(drawable);
                });
            });
            mMobileTitleText.setTextAppearance(isCarrierNetworkConnected
                    ? R.style.TextAppearance_InternetDialog_Active
                    : R.style.TextAppearance_InternetDialog);
@@ -534,52 +552,57 @@ public class InternetDialog extends SystemUIDialog implements

    @Override
    public void onRefreshCarrierInfo() {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    public void onSimStateChanged() {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    @WorkerThread
    public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    @WorkerThread
    public void onLost(Network network) {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    public void onSubscriptionsChanged(int defaultDataSubId) {
        mDefaultDataSubId = defaultDataSubId;
        mTelephonyManager = mTelephonyManager.createForSubscriptionId(mDefaultDataSubId);
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    public void onUserMobileDataStateChanged(boolean enabled) {
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    public void onServiceStateChanged(ServiceState serviceState) {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    @WorkerThread
    public void onDataConnectionStateChanged(int state, int networkType) {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    public void onSignalStrengthsChanged(SignalStrength signalStrength) {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
    public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) {
        mHandler.post(() -> updateDialog());
        mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
    }

    @Override
@@ -591,7 +614,7 @@ public class InternetDialog extends SystemUIDialog implements
        mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount);
        mHandler.post(() -> {
            mAdapter.notifyDataSetChanged();
            updateDialog();
            updateDialog(false /* shouldUpdateMobileNetwork */);
        });
    }

+13 −6
Original line number Diff line number Diff line
@@ -149,6 +149,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
    private ConnectivityManager.NetworkCallback mConnectivityManagerNetworkCallback;
    private WindowManager mWindowManager;
    private ToastFactory mToastFactory;
    private SignalDrawable mSignalDrawable;

    @VisibleForTesting
    static final float TOAST_PARAMS_HORIZONTAL_WEIGHT = 1.0f;
@@ -225,6 +226,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        mConnectivityManagerNetworkCallback = new DataConnectivityListener();
        mWindowManager = windowManager;
        mToastFactory = toastFactory;
        mSignalDrawable = new SignalDrawable(mContext);
    }

    void onStart(@NonNull InternetDialogCallback callback, boolean canConfigWifi) {
@@ -431,10 +433,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,

    Drawable getSignalStrengthIcon(Context context, int level, int numLevels,
            int iconType, boolean cutOut) {
        Log.d(TAG, "getSignalStrengthIcon");
        final SignalDrawable signalDrawable = new SignalDrawable(context);
        signalDrawable.setLevel(
                SignalDrawable.getState(level, numLevels, cutOut));
        mSignalDrawable.setLevel(SignalDrawable.getState(level, numLevels, cutOut));

        // Make the network type drawable
        final Drawable networkDrawable =
@@ -443,7 +442,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
                        : context.getResources().getDrawable(iconType, context.getTheme());

        // Overlay the two drawables
        final Drawable[] layers = {networkDrawable, signalDrawable};
        final Drawable[] layers = {networkDrawable, mSignalDrawable};
        final int iconSize =
                context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size);

@@ -892,7 +891,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
            TelephonyCallback.DataConnectionStateListener,
            TelephonyCallback.DisplayInfoListener,
            TelephonyCallback.ServiceStateListener,
            TelephonyCallback.SignalStrengthsListener {
            TelephonyCallback.SignalStrengthsListener,
            TelephonyCallback.UserMobileDataStateListener {

        @Override
        public void onServiceStateChanged(@NonNull ServiceState serviceState) {
@@ -914,6 +914,11 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
            mTelephonyDisplayInfo = telephonyDisplayInfo;
            mCallback.onDisplayInfoChanged(telephonyDisplayInfo);
        }

        @Override
        public void onUserMobileDataStateChanged(boolean enabled) {
            mCallback.onUserMobileDataStateChanged(enabled);
        }
    }

    private class InternetOnSubscriptionChangedListener
@@ -1018,6 +1023,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,

        void onSignalStrengthsChanged(SignalStrength signalStrength);

        void onUserMobileDataStateChanged(boolean enabled);

        void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo);

        void dismissDialog();
+5 −1
Original line number Diff line number Diff line
@@ -20,7 +20,9 @@ import android.os.Handler
import android.util.Log
import com.android.internal.logging.UiEventLogger
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main
import java.util.concurrent.Executor
import javax.inject.Inject

private const val TAG = "InternetDialogFactory"
@@ -32,6 +34,7 @@ private val DEBUG = Log.isLoggable(TAG, Log.DEBUG)
@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
@@ -49,7 +52,8 @@ class InternetDialogFactory @Inject constructor(
            return
        } else {
            internetDialog = InternetDialog(context, this, internetDialogController,
                    canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler)
                    canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler,
                    executor)
            internetDialog?.show()
        }
    }
+23 −19
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import androidx.test.filters.SmallTest;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;
import com.android.wifitrackerlib.WifiEntry;

import org.junit.After;
@@ -65,6 +67,7 @@ public class InternetDialogTest extends SysuiTestCase {
    @Mock
    private InternetDialogController mInternetDialogController;

    private FakeExecutor mBgExecutor = new FakeExecutor(new FakeSystemClock());
    private InternetDialog mInternetDialog;
    private View mDialogView;
    private View mSubTitle;
@@ -93,7 +96,8 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mInternetDialogController.getWifiManager()).thenReturn(mWifiManager);

        mInternetDialog = new InternetDialog(mContext, mock(InternetDialogFactory.class),
                mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler);
                mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler,
                mBgExecutor);
        mInternetDialog.mAdapter = mInternetAdapter;
        mInternetDialog.onAccessPointsChanged(mWifiEntries, mInternetWifiEntry);
        mInternetDialog.show();
@@ -129,7 +133,7 @@ public class InternetDialogTest extends SysuiTestCase {
    public void updateDialog_withApmOn_internetDialogSubTitleGone() {
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(true);

        assertThat(mSubTitle.getVisibility()).isEqualTo(View.GONE);
    }
@@ -138,7 +142,7 @@ public class InternetDialogTest extends SysuiTestCase {
    public void updateDialog_withApmOff_internetDialogSubTitleVisible() {
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(true);

        assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE);
    }
@@ -148,7 +152,7 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
        when(mInternetDialogController.hasEthernet()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(true);

        assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE);
    }
@@ -158,7 +162,7 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
        when(mInternetDialogController.hasEthernet()).thenReturn(false);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(true);

        assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE);
    }
@@ -168,7 +172,7 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
        when(mInternetDialogController.hasEthernet()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(true);

        assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE);
    }
@@ -178,7 +182,7 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
        when(mInternetDialogController.hasEthernet()).thenReturn(false);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(true);

        assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE);
    }
@@ -187,7 +191,7 @@ public class InternetDialogTest extends SysuiTestCase {
    public void updateDialog_withApmOn_mobileDataLayoutGone() {
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(true);

        assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.GONE);
    }
@@ -197,7 +201,7 @@ public class InternetDialogTest extends SysuiTestCase {
        // The preconditions WiFi ON and Internet WiFi are already in setUp()
        doReturn(false).when(mInternetDialogController).activeNetworkIsCellular();

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
    }
@@ -208,7 +212,7 @@ public class InternetDialogTest extends SysuiTestCase {
        mInternetDialog.onAccessPointsChanged(mWifiEntries, null /* connectedEntry*/);
        doReturn(false).when(mInternetDialogController).activeNetworkIsCellular();

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
    }
@@ -218,7 +222,7 @@ public class InternetDialogTest extends SysuiTestCase {
        // The precondition WiFi ON is already in setUp()
        mInternetDialog.onAccessPointsChanged(null /* wifiEntries */, mInternetWifiEntry);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE);
        assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE);
@@ -228,7 +232,7 @@ public class InternetDialogTest extends SysuiTestCase {
    public void updateDialog_wifiOnAndHasWifiList_showWifiListAndSeeAll() {
        // The preconditions WiFi ON and WiFi entries are already in setUp()

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE);
@@ -239,7 +243,7 @@ public class InternetDialogTest extends SysuiTestCase {
        // The preconditions WiFi ON and Internet WiFi are already in setUp()
        when(mInternetDialogController.isDeviceLocked()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiToggle.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mWifiToggle.getBackground()).isNotNull();
@@ -250,7 +254,7 @@ public class InternetDialogTest extends SysuiTestCase {
        // The preconditions WiFi ON and Internet WiFi are already in setUp()
        when(mInternetDialogController.isDeviceLocked()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
    }
@@ -260,7 +264,7 @@ public class InternetDialogTest extends SysuiTestCase {
        // The preconditions WiFi entries are already in setUp()
        when(mInternetDialogController.isDeviceLocked()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE);
        assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE);
@@ -270,7 +274,7 @@ public class InternetDialogTest extends SysuiTestCase {
    public void updateDialog_wifiOn_hideWifiScanNotify() {
        // The preconditions WiFi ON and Internet WiFi are already in setUp()

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
    }
@@ -280,7 +284,7 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mWifiManager.isWifiEnabled()).thenReturn(false);
        when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
    }
@@ -291,7 +295,7 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
        when(mInternetDialogController.isDeviceLocked()).thenReturn(true);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
    }
@@ -302,7 +306,7 @@ public class InternetDialogTest extends SysuiTestCase {
        when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
        when(mInternetDialogController.isDeviceLocked()).thenReturn(false);

        mInternetDialog.updateDialog();
        mInternetDialog.updateDialog(false);

        assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.VISIBLE);
        TextView wifiScanNotifyText = mDialogView.requireViewById(R.id.wifi_scan_notify_text);