Merge changes from topic "caitlinshk-wifi-flag" into udc-qpr-dev
* changes: [Flags][SB] Remove NEW_STATUS_BAR_WIFI flags. [Flags][SB] Remove BATTERY_SHIELD_ICON flag; use the resource directly.
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a06bac5b5
@@ -1,28 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
**
|
|
||||||
** Copyright 2018, The Android Open Source Project
|
|
||||||
**
|
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
<com.android.systemui.statusbar.StatusBarWifiView
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:id="@+id/wifi_combo"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center_vertical" >
|
|
||||||
|
|
||||||
<include layout="@layout/status_bar_wifi_group_inner" />
|
|
||||||
|
|
||||||
</com.android.systemui.statusbar.StatusBarWifiView>
|
|
||||||
@@ -30,9 +30,8 @@ import android.view.View;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.dagger.qualifiers.Main;
|
import com.android.systemui.dagger.qualifiers.Main;
|
||||||
import com.android.systemui.flags.FeatureFlags;
|
|
||||||
import com.android.systemui.flags.Flags;
|
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
||||||
@@ -130,7 +129,6 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
TunerService tunerService,
|
TunerService tunerService,
|
||||||
@Main Handler mainHandler,
|
@Main Handler mainHandler,
|
||||||
ContentResolver contentResolver,
|
ContentResolver contentResolver,
|
||||||
FeatureFlags featureFlags,
|
|
||||||
BatteryController batteryController) {
|
BatteryController batteryController) {
|
||||||
super(view);
|
super(view);
|
||||||
mLocation = location;
|
mLocation = location;
|
||||||
@@ -142,7 +140,8 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
mBatteryController = batteryController;
|
mBatteryController = batteryController;
|
||||||
|
|
||||||
mView.setBatteryEstimateFetcher(mBatteryController::getEstimatedTimeRemainingString);
|
mView.setBatteryEstimateFetcher(mBatteryController::getEstimatedTimeRemainingString);
|
||||||
mView.setDisplayShieldEnabled(featureFlags.isEnabled(Flags.BATTERY_SHIELD_ICON));
|
mView.setDisplayShieldEnabled(
|
||||||
|
getContext().getResources().getBoolean(R.bool.flag_battery_shield_icon));
|
||||||
|
|
||||||
mSlotBattery = getResources().getString(com.android.internal.R.string.status_bar_battery);
|
mSlotBattery = getResources().getString(com.android.internal.R.string.status_bar_battery);
|
||||||
mSettingObserver = new SettingObserver(mMainHandler);
|
mSettingObserver = new SettingObserver(mMainHandler);
|
||||||
|
|||||||
@@ -372,22 +372,10 @@ object Flags {
|
|||||||
// TODO(b/256614753): Tracking Bug
|
// TODO(b/256614753): Tracking Bug
|
||||||
val NEW_STATUS_BAR_MOBILE_ICONS = releasedFlag(606, "new_status_bar_mobile_icons")
|
val NEW_STATUS_BAR_MOBILE_ICONS = releasedFlag(606, "new_status_bar_mobile_icons")
|
||||||
|
|
||||||
// TODO(b/256614210): Tracking Bug
|
|
||||||
val NEW_STATUS_BAR_WIFI_ICON = releasedFlag(607, "new_status_bar_wifi_icon")
|
|
||||||
|
|
||||||
// TODO(b/256614751): Tracking Bug
|
// TODO(b/256614751): Tracking Bug
|
||||||
val NEW_STATUS_BAR_MOBILE_ICONS_BACKEND =
|
val NEW_STATUS_BAR_MOBILE_ICONS_BACKEND =
|
||||||
unreleasedFlag(608, "new_status_bar_mobile_icons_backend", teamfood = true)
|
unreleasedFlag(608, "new_status_bar_mobile_icons_backend", teamfood = true)
|
||||||
|
|
||||||
// TODO(b/256613548): Tracking Bug
|
|
||||||
val NEW_STATUS_BAR_WIFI_ICON_BACKEND =
|
|
||||||
unreleasedFlag(609, "new_status_bar_wifi_icon_backend", teamfood = true)
|
|
||||||
|
|
||||||
// TODO(b/256623670): Tracking Bug
|
|
||||||
@JvmField
|
|
||||||
val BATTERY_SHIELD_ICON =
|
|
||||||
resourceBooleanFlag(610, R.bool.flag_battery_shield_icon, "battery_shield_icon")
|
|
||||||
|
|
||||||
// TODO(b/260881289): Tracking Bug
|
// TODO(b/260881289): Tracking Bug
|
||||||
val NEW_STATUS_BAR_ICONS_DEBUG_COLORING =
|
val NEW_STATUS_BAR_ICONS_DEBUG_COLORING =
|
||||||
unreleasedFlag(611, "new_status_bar_icons_debug_coloring")
|
unreleasedFlag(611, "new_status_bar_icons_debug_coloring")
|
||||||
|
|||||||
@@ -282,7 +282,6 @@ abstract class ShadeModule {
|
|||||||
tunerService: TunerService,
|
tunerService: TunerService,
|
||||||
@Main mainHandler: Handler,
|
@Main mainHandler: Handler,
|
||||||
contentResolver: ContentResolver,
|
contentResolver: ContentResolver,
|
||||||
featureFlags: FeatureFlags,
|
|
||||||
batteryController: BatteryController,
|
batteryController: BatteryController,
|
||||||
): BatteryMeterViewController {
|
): BatteryMeterViewController {
|
||||||
return BatteryMeterViewController(
|
return BatteryMeterViewController(
|
||||||
@@ -293,7 +292,6 @@ abstract class ShadeModule {
|
|||||||
tunerService,
|
tunerService,
|
||||||
mainHandler,
|
mainHandler,
|
||||||
contentResolver,
|
contentResolver,
|
||||||
featureFlags,
|
|
||||||
batteryController,
|
batteryController,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ import android.widget.FrameLayout
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* A temporary base class that's shared between our old status bar connectivity view implementations
|
* A temporary base class that's shared between our old status bar connectivity view implementations
|
||||||
* ([StatusBarWifiView], [StatusBarMobileView]) and our new status bar implementations (
|
* ([StatusBarMobileView]) and our new status bar implementations ([ModernStatusBarWifiView],
|
||||||
* [ModernStatusBarWifiView], [ModernStatusBarMobileView]).
|
* [ModernStatusBarMobileView]).
|
||||||
*
|
*
|
||||||
* Once our refactor is over, we should be able to delete this go-between class and the old view
|
* Once our refactor is over, we should be able to delete this go-between class and the old view
|
||||||
* class.
|
* class.
|
||||||
|
|||||||
@@ -1,249 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2018 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.systemui.statusbar;
|
|
||||||
|
|
||||||
import static com.android.systemui.plugins.DarkIconDispatcher.getTint;
|
|
||||||
import static com.android.systemui.statusbar.StatusBarIconView.STATE_DOT;
|
|
||||||
import static com.android.systemui.statusbar.StatusBarIconView.STATE_HIDDEN;
|
|
||||||
import static com.android.systemui.statusbar.StatusBarIconView.STATE_ICON;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.res.ColorStateList;
|
|
||||||
import android.graphics.Rect;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
|
|
||||||
import com.android.systemui.R;
|
|
||||||
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start small: StatusBarWifiView will be able to layout from a WifiIconState
|
|
||||||
*/
|
|
||||||
public class StatusBarWifiView extends BaseStatusBarFrameLayout implements DarkReceiver {
|
|
||||||
private static final String TAG = "StatusBarWifiView";
|
|
||||||
|
|
||||||
/// Used to show etc dots
|
|
||||||
private StatusBarIconView mDotView;
|
|
||||||
/// Contains the main icon layout
|
|
||||||
private LinearLayout mWifiGroup;
|
|
||||||
private ImageView mWifiIcon;
|
|
||||||
private ImageView mIn;
|
|
||||||
private ImageView mOut;
|
|
||||||
private View mInoutContainer;
|
|
||||||
private View mSignalSpacer;
|
|
||||||
private View mAirplaneSpacer;
|
|
||||||
private WifiIconState mState;
|
|
||||||
private String mSlot;
|
|
||||||
@StatusBarIconView.VisibleState
|
|
||||||
private int mVisibleState = STATE_HIDDEN;
|
|
||||||
|
|
||||||
public static StatusBarWifiView fromContext(Context context, String slot) {
|
|
||||||
LayoutInflater inflater = LayoutInflater.from(context);
|
|
||||||
StatusBarWifiView v = (StatusBarWifiView) inflater.inflate(R.layout.status_bar_wifi_group, null);
|
|
||||||
v.setSlot(slot);
|
|
||||||
v.init();
|
|
||||||
v.setVisibleState(STATE_ICON);
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StatusBarWifiView(Context context) {
|
|
||||||
super(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public StatusBarWifiView(Context context, AttributeSet attrs) {
|
|
||||||
super(context, attrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
public StatusBarWifiView(Context context, AttributeSet attrs, int defStyleAttr) {
|
|
||||||
super(context, attrs, defStyleAttr);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSlot(String slot) {
|
|
||||||
mSlot = slot;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setStaticDrawableColor(int color) {
|
|
||||||
ColorStateList list = ColorStateList.valueOf(color);
|
|
||||||
mWifiIcon.setImageTintList(list);
|
|
||||||
mIn.setImageTintList(list);
|
|
||||||
mOut.setImageTintList(list);
|
|
||||||
mDotView.setDecorColor(color);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setDecorColor(int color) {
|
|
||||||
mDotView.setDecorColor(color);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSlot() {
|
|
||||||
return mSlot;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isIconVisible() {
|
|
||||||
return mState != null && mState.visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setVisibleState(@StatusBarIconView.VisibleState int state, boolean animate) {
|
|
||||||
if (state == mVisibleState) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mVisibleState = state;
|
|
||||||
|
|
||||||
switch (state) {
|
|
||||||
case STATE_ICON:
|
|
||||||
mWifiGroup.setVisibility(View.VISIBLE);
|
|
||||||
mDotView.setVisibility(View.GONE);
|
|
||||||
break;
|
|
||||||
case STATE_DOT:
|
|
||||||
mWifiGroup.setVisibility(View.GONE);
|
|
||||||
mDotView.setVisibility(View.VISIBLE);
|
|
||||||
break;
|
|
||||||
case STATE_HIDDEN:
|
|
||||||
default:
|
|
||||||
mWifiGroup.setVisibility(View.GONE);
|
|
||||||
mDotView.setVisibility(View.GONE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@StatusBarIconView.VisibleState
|
|
||||||
public int getVisibleState() {
|
|
||||||
return mVisibleState;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void getDrawingRect(Rect outRect) {
|
|
||||||
super.getDrawingRect(outRect);
|
|
||||||
float translationX = getTranslationX();
|
|
||||||
float translationY = getTranslationY();
|
|
||||||
outRect.left += translationX;
|
|
||||||
outRect.right += translationX;
|
|
||||||
outRect.top += translationY;
|
|
||||||
outRect.bottom += translationY;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void init() {
|
|
||||||
mWifiGroup = findViewById(R.id.wifi_group);
|
|
||||||
mWifiIcon = findViewById(R.id.wifi_signal);
|
|
||||||
mIn = findViewById(R.id.wifi_in);
|
|
||||||
mOut = findViewById(R.id.wifi_out);
|
|
||||||
mSignalSpacer = findViewById(R.id.wifi_signal_spacer);
|
|
||||||
mAirplaneSpacer = findViewById(R.id.wifi_airplane_spacer);
|
|
||||||
mInoutContainer = findViewById(R.id.inout_container);
|
|
||||||
|
|
||||||
initDotView();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initDotView() {
|
|
||||||
mDotView = new StatusBarIconView(mContext, mSlot, null);
|
|
||||||
mDotView.setVisibleState(STATE_DOT);
|
|
||||||
|
|
||||||
int width = mContext.getResources().getDimensionPixelSize(R.dimen.status_bar_icon_size_sp);
|
|
||||||
LayoutParams lp = new LayoutParams(width, width);
|
|
||||||
lp.gravity = Gravity.CENTER_VERTICAL | Gravity.START;
|
|
||||||
addView(mDotView, lp);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void applyWifiState(WifiIconState state) {
|
|
||||||
boolean requestLayout = false;
|
|
||||||
|
|
||||||
if (state == null) {
|
|
||||||
requestLayout = getVisibility() != View.GONE;
|
|
||||||
setVisibility(View.GONE);
|
|
||||||
mState = null;
|
|
||||||
} else if (mState == null) {
|
|
||||||
requestLayout = true;
|
|
||||||
mState = state.copy();
|
|
||||||
initViewState();
|
|
||||||
} else if (!mState.equals(state)) {
|
|
||||||
requestLayout = updateState(state.copy());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (requestLayout) {
|
|
||||||
requestLayout();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean updateState(WifiIconState state) {
|
|
||||||
setContentDescription(state.contentDescription);
|
|
||||||
if (mState.resId != state.resId && state.resId >= 0) {
|
|
||||||
mWifiIcon.setImageDrawable(mContext.getDrawable(state.resId));
|
|
||||||
}
|
|
||||||
|
|
||||||
mIn.setVisibility(state.activityIn ? View.VISIBLE : View.GONE);
|
|
||||||
mOut.setVisibility(state.activityOut ? View.VISIBLE : View.GONE);
|
|
||||||
mInoutContainer.setVisibility(
|
|
||||||
(state.activityIn || state.activityOut) ? View.VISIBLE : View.GONE);
|
|
||||||
mAirplaneSpacer.setVisibility(state.airplaneSpacerVisible ? View.VISIBLE : View.GONE);
|
|
||||||
mSignalSpacer.setVisibility(state.signalSpacerVisible ? View.VISIBLE : View.GONE);
|
|
||||||
|
|
||||||
boolean needsLayout = state.activityIn != mState.activityIn
|
|
||||||
||state.activityOut != mState.activityOut;
|
|
||||||
|
|
||||||
if (mState.visible != state.visible) {
|
|
||||||
needsLayout |= true;
|
|
||||||
setVisibility(state.visible ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
mState = state;
|
|
||||||
return needsLayout;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initViewState() {
|
|
||||||
setContentDescription(mState.contentDescription);
|
|
||||||
if (mState.resId >= 0) {
|
|
||||||
mWifiIcon.setImageDrawable(mContext.getDrawable(mState.resId));
|
|
||||||
}
|
|
||||||
|
|
||||||
mIn.setVisibility(mState.activityIn ? View.VISIBLE : View.GONE);
|
|
||||||
mOut.setVisibility(mState.activityOut ? View.VISIBLE : View.GONE);
|
|
||||||
mInoutContainer.setVisibility(
|
|
||||||
(mState.activityIn || mState.activityOut) ? View.VISIBLE : View.GONE);
|
|
||||||
mAirplaneSpacer.setVisibility(mState.airplaneSpacerVisible ? View.VISIBLE : View.GONE);
|
|
||||||
mSignalSpacer.setVisibility(mState.signalSpacerVisible ? View.VISIBLE : View.GONE);
|
|
||||||
setVisibility(mState.visible ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDarkChanged(ArrayList<Rect> areas, float darkIntensity, int tint) {
|
|
||||||
int areaTint = getTint(areas, this, tint);
|
|
||||||
ColorStateList color = ColorStateList.valueOf(areaTint);
|
|
||||||
mWifiIcon.setImageTintList(color);
|
|
||||||
mIn.setImageTintList(color);
|
|
||||||
mOut.setImageTintList(color);
|
|
||||||
mDotView.setDecorColor(areaTint);
|
|
||||||
mDotView.setIconColor(areaTint, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "StatusBarWifiView(slot=" + mSlot + " state=" + mState + ")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -18,10 +18,6 @@ package com.android.systemui.statusbar.connectivity;
|
|||||||
|
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
||||||
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
|
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
|
||||||
import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN;
|
|
||||||
import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT;
|
|
||||||
import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_NONE;
|
|
||||||
import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_OUT;
|
|
||||||
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
@@ -557,10 +553,6 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
|||||||
mBroadcastDispatcher.unregisterReceiver(this);
|
mBroadcastDispatcher.unregisterReceiver(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getConnectedWifiLevel() {
|
|
||||||
return mWifiSignalController.getState().level;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AccessPointController getAccessPointController() {
|
public AccessPointController getAccessPointController() {
|
||||||
return mAccessPoints;
|
return mAccessPoints;
|
||||||
@@ -654,14 +646,6 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
|||||||
return mWifiSignalController.isCarrierMergedWifi(subId);
|
return mWifiSignalController.isCarrierMergedWifi(subId);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean hasDefaultNetwork() {
|
|
||||||
return !mNoDefaultNetwork;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean isNonCarrierWifiNetworkAvailable() {
|
|
||||||
return !mNoNetworksAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean isEthernetDefault() {
|
boolean isEthernetDefault() {
|
||||||
return mConnectedTransports.get(NetworkCapabilities.TRANSPORT_ETHERNET);
|
return mConnectedTransports.get(NetworkCapabilities.TRANSPORT_ETHERNET);
|
||||||
}
|
}
|
||||||
@@ -1242,15 +1226,12 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean mDemoInetCondition;
|
private boolean mDemoInetCondition;
|
||||||
private WifiState mDemoWifiState;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDemoModeStarted() {
|
public void onDemoModeStarted() {
|
||||||
if (DEBUG) Log.d(TAG, "Entering demo mode");
|
if (DEBUG) Log.d(TAG, "Entering demo mode");
|
||||||
unregisterListeners();
|
unregisterListeners();
|
||||||
mDemoInetCondition = mInetCondition;
|
mDemoInetCondition = mInetCondition;
|
||||||
mDemoWifiState = mWifiSignalController.getState();
|
|
||||||
mDemoWifiState.ssid = "DemoMode";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1300,41 +1281,6 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
|||||||
controller.updateConnectivity(connected, connected);
|
controller.updateConnectivity(connected, connected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String wifi = args.getString("wifi");
|
|
||||||
if (wifi != null && !mStatusBarPipelineFlags.runNewWifiIconBackend()) {
|
|
||||||
boolean show = wifi.equals("show");
|
|
||||||
String level = args.getString("level");
|
|
||||||
if (level != null) {
|
|
||||||
mDemoWifiState.level = level.equals("null") ? -1
|
|
||||||
: Math.min(Integer.parseInt(level), WifiIcons.WIFI_LEVEL_COUNT - 1);
|
|
||||||
mDemoWifiState.connected = mDemoWifiState.level >= 0;
|
|
||||||
}
|
|
||||||
String activity = args.getString("activity");
|
|
||||||
if (activity != null) {
|
|
||||||
switch (activity) {
|
|
||||||
case "inout":
|
|
||||||
mWifiSignalController.setActivity(DATA_ACTIVITY_INOUT);
|
|
||||||
break;
|
|
||||||
case "in":
|
|
||||||
mWifiSignalController.setActivity(DATA_ACTIVITY_IN);
|
|
||||||
break;
|
|
||||||
case "out":
|
|
||||||
mWifiSignalController.setActivity(DATA_ACTIVITY_OUT);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
mWifiSignalController.setActivity(DATA_ACTIVITY_NONE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
mWifiSignalController.setActivity(DATA_ACTIVITY_NONE);
|
|
||||||
}
|
|
||||||
String ssid = args.getString("ssid");
|
|
||||||
if (ssid != null) {
|
|
||||||
mDemoWifiState.ssid = ssid;
|
|
||||||
}
|
|
||||||
mDemoWifiState.enabled = show;
|
|
||||||
mWifiSignalController.notifyListeners();
|
|
||||||
}
|
|
||||||
String sims = args.getString("sims");
|
String sims = args.getString("sims");
|
||||||
if (sims != null && !mStatusBarPipelineFlags.useNewMobileIcons()) {
|
if (sims != null && !mStatusBarPipelineFlags.useNewMobileIcons()) {
|
||||||
int num = MathUtils.constrain(Integer.parseInt(sims), 1, 8);
|
int num = MathUtils.constrain(Integer.parseInt(sims), 1, 8);
|
||||||
|
|||||||
@@ -35,11 +35,9 @@ import com.android.systemui.plugins.DarkIconDispatcher;
|
|||||||
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
||||||
import com.android.systemui.statusbar.StatusBarIconView;
|
import com.android.systemui.statusbar.StatusBarIconView;
|
||||||
import com.android.systemui.statusbar.StatusBarMobileView;
|
import com.android.systemui.statusbar.StatusBarMobileView;
|
||||||
import com.android.systemui.statusbar.StatusBarWifiView;
|
|
||||||
import com.android.systemui.statusbar.StatusIconDisplayable;
|
import com.android.systemui.statusbar.StatusIconDisplayable;
|
||||||
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider;
|
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
|
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileViewLogger;
|
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileViewLogger;
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.ui.view.ModernStatusBarMobileView;
|
import com.android.systemui.statusbar.pipeline.mobile.ui.view.ModernStatusBarMobileView;
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel;
|
import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel;
|
||||||
@@ -58,7 +56,6 @@ public class DemoStatusIcons extends StatusIconContainer implements DemoMode, Da
|
|||||||
private final ArrayList<ModernStatusBarMobileView> mModernMobileViews = new ArrayList<>();
|
private final ArrayList<ModernStatusBarMobileView> mModernMobileViews = new ArrayList<>();
|
||||||
private final int mIconSize;
|
private final int mIconSize;
|
||||||
|
|
||||||
private StatusBarWifiView mWifiView;
|
|
||||||
private ModernStatusBarWifiView mModernWifiView;
|
private ModernStatusBarWifiView mModernWifiView;
|
||||||
private boolean mDemoMode;
|
private boolean mDemoMode;
|
||||||
private int mColor;
|
private int mColor;
|
||||||
@@ -238,36 +235,6 @@ public class DemoStatusIcons extends StatusIconContainer implements DemoMode, Da
|
|||||||
addView(v, 0, createLayoutParams());
|
addView(v, 0, createLayoutParams());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addDemoWifiView(WifiIconState state) {
|
|
||||||
Log.d(TAG, "addDemoWifiView: ");
|
|
||||||
StatusBarWifiView view = StatusBarWifiView.fromContext(mContext, state.slot);
|
|
||||||
|
|
||||||
int viewIndex = getChildCount();
|
|
||||||
// If we have mobile views, put wifi before them
|
|
||||||
for (int i = 0; i < getChildCount(); i++) {
|
|
||||||
View child = getChildAt(i);
|
|
||||||
if (child instanceof StatusBarMobileView
|
|
||||||
|| child instanceof ModernStatusBarMobileView) {
|
|
||||||
viewIndex = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mWifiView = view;
|
|
||||||
mWifiView.applyWifiState(state);
|
|
||||||
mWifiView.setStaticDrawableColor(mColor);
|
|
||||||
addView(view, viewIndex, createLayoutParams());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateWifiState(WifiIconState state) {
|
|
||||||
Log.d(TAG, "updateWifiState: ");
|
|
||||||
if (mWifiView == null) {
|
|
||||||
addDemoWifiView(state);
|
|
||||||
} else {
|
|
||||||
mWifiView.applyWifiState(state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a new mobile icon view
|
* Add a new mobile icon view
|
||||||
*/
|
*/
|
||||||
@@ -352,10 +319,7 @@ public class DemoStatusIcons extends StatusIconContainer implements DemoMode, Da
|
|||||||
|
|
||||||
public void onRemoveIcon(StatusIconDisplayable view) {
|
public void onRemoveIcon(StatusIconDisplayable view) {
|
||||||
if (view.getSlot().equals("wifi")) {
|
if (view.getSlot().equals("wifi")) {
|
||||||
if (view instanceof StatusBarWifiView) {
|
if (view instanceof ModernStatusBarWifiView) {
|
||||||
removeView(mWifiView);
|
|
||||||
mWifiView = null;
|
|
||||||
} else if (view instanceof ModernStatusBarWifiView) {
|
|
||||||
Log.d(TAG, "onRemoveIcon: removing modern wifi view");
|
Log.d(TAG, "onRemoveIcon: removing modern wifi view");
|
||||||
removeView(mModernWifiView);
|
removeView(mModernWifiView);
|
||||||
mModernWifiView = null;
|
mModernWifiView = null;
|
||||||
@@ -409,9 +373,6 @@ public class DemoStatusIcons extends StatusIconContainer implements DemoMode, Da
|
|||||||
public void onDarkChanged(ArrayList<Rect> areas, float darkIntensity, int tint) {
|
public void onDarkChanged(ArrayList<Rect> areas, float darkIntensity, int tint) {
|
||||||
setColor(DarkIconDispatcher.getTint(areas, mStatusIcons, tint));
|
setColor(DarkIconDispatcher.getTint(areas, mStatusIcons, tint));
|
||||||
|
|
||||||
if (mWifiView != null) {
|
|
||||||
mWifiView.onDarkChanged(areas, darkIntensity, tint);
|
|
||||||
}
|
|
||||||
if (mModernWifiView != null) {
|
if (mModernWifiView != null) {
|
||||||
mModernWifiView.onDarkChanged(areas, darkIntensity, tint);
|
mModernWifiView.onDarkChanged(areas, darkIntensity, tint);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ package com.android.systemui.statusbar.phone;
|
|||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON;
|
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON;
|
||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE;
|
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE;
|
||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE_NEW;
|
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE_NEW;
|
||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI;
|
|
||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI_NEW;
|
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI_NEW;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
@@ -43,12 +42,10 @@ import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
|||||||
import com.android.systemui.statusbar.BaseStatusBarFrameLayout;
|
import com.android.systemui.statusbar.BaseStatusBarFrameLayout;
|
||||||
import com.android.systemui.statusbar.StatusBarIconView;
|
import com.android.systemui.statusbar.StatusBarIconView;
|
||||||
import com.android.systemui.statusbar.StatusBarMobileView;
|
import com.android.systemui.statusbar.StatusBarMobileView;
|
||||||
import com.android.systemui.statusbar.StatusBarWifiView;
|
|
||||||
import com.android.systemui.statusbar.StatusIconDisplayable;
|
import com.android.systemui.statusbar.StatusIconDisplayable;
|
||||||
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider;
|
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
|
|
||||||
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
|
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter;
|
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter;
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.ui.binder.MobileIconsBinder;
|
import com.android.systemui.statusbar.pipeline.mobile.ui.binder.MobileIconsBinder;
|
||||||
@@ -97,16 +94,9 @@ public interface StatusBarIconController {
|
|||||||
*/
|
*/
|
||||||
void setIcon(String slot, int resourceId, CharSequence contentDescription);
|
void setIcon(String slot, int resourceId, CharSequence contentDescription);
|
||||||
|
|
||||||
/** */
|
|
||||||
void setWifiIcon(String slot, WifiIconState state);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets up a wifi icon using the new data pipeline. No effect if the wifi icon has already been
|
* Sets up a wifi icon using the new data pipeline. No effect if the wifi icon has already been
|
||||||
* set up (inflated and added to the view hierarchy).
|
* set up (inflated and added to the view hierarchy).
|
||||||
*
|
|
||||||
* This method completely replaces {@link #setWifiIcon} with the information from the new wifi
|
|
||||||
* data pipeline. Icons will automatically keep their state up to date, so we don't have to
|
|
||||||
* worry about funneling state objects through anymore.
|
|
||||||
*/
|
*/
|
||||||
void setNewWifiIcon();
|
void setNewWifiIcon();
|
||||||
|
|
||||||
@@ -408,13 +398,7 @@ public interface StatusBarIconController {
|
|||||||
mMobileIconsViewModel = null;
|
mMobileIconsViewModel = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (statusBarPipelineFlags.runNewWifiIconBackend()) {
|
mWifiViewModel = wifiUiAdapter.bindGroup(mGroup, mLocation);
|
||||||
// This starts the flow for the new pipeline, and will notify us of changes if
|
|
||||||
// {@link StatusBarPipelineFlags#useNewWifiIcon} is also true.
|
|
||||||
mWifiViewModel = wifiUiAdapter.bindGroup(mGroup, mLocation);
|
|
||||||
} else {
|
|
||||||
mWifiViewModel = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDemoable() {
|
public boolean isDemoable() {
|
||||||
@@ -462,9 +446,6 @@ public interface StatusBarIconController {
|
|||||||
case TYPE_ICON:
|
case TYPE_ICON:
|
||||||
return addIcon(index, slot, blocked, holder.getIcon());
|
return addIcon(index, slot, blocked, holder.getIcon());
|
||||||
|
|
||||||
case TYPE_WIFI:
|
|
||||||
return addWifiIcon(index, slot, holder.getWifiState());
|
|
||||||
|
|
||||||
case TYPE_WIFI_NEW:
|
case TYPE_WIFI_NEW:
|
||||||
return addNewWifiIcon(index, slot);
|
return addNewWifiIcon(index, slot);
|
||||||
|
|
||||||
@@ -487,29 +468,7 @@ public interface StatusBarIconController {
|
|||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
protected StatusIconDisplayable addWifiIcon(int index, String slot, WifiIconState state) {
|
|
||||||
if (mStatusBarPipelineFlags.useNewWifiIcon()) {
|
|
||||||
throw new IllegalStateException("Attempting to add a wifi icon while the new "
|
|
||||||
+ "icons are enabled is not supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
final StatusBarWifiView view = onCreateStatusBarWifiView(slot);
|
|
||||||
view.applyWifiState(state);
|
|
||||||
mGroup.addView(view, index, onCreateLayoutParams());
|
|
||||||
|
|
||||||
if (mIsInDemoMode) {
|
|
||||||
mDemoStatusIcons.addDemoWifiView(state);
|
|
||||||
}
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected StatusIconDisplayable addNewWifiIcon(int index, String slot) {
|
protected StatusIconDisplayable addNewWifiIcon(int index, String slot) {
|
||||||
if (!mStatusBarPipelineFlags.useNewWifiIcon()) {
|
|
||||||
throw new IllegalStateException("Attempting to add a wifi icon using the new"
|
|
||||||
+ "pipeline, but the enabled flag is false.");
|
|
||||||
}
|
|
||||||
|
|
||||||
ModernStatusBarWifiView view = onCreateModernStatusBarWifiView(slot);
|
ModernStatusBarWifiView view = onCreateModernStatusBarWifiView(slot);
|
||||||
mGroup.addView(view, index, onCreateLayoutParams());
|
mGroup.addView(view, index, onCreateLayoutParams());
|
||||||
|
|
||||||
@@ -573,11 +532,6 @@ public interface StatusBarIconController {
|
|||||||
return new StatusBarIconView(mContext, slot, null, blocked);
|
return new StatusBarIconView(mContext, slot, null, blocked);
|
||||||
}
|
}
|
||||||
|
|
||||||
private StatusBarWifiView onCreateStatusBarWifiView(String slot) {
|
|
||||||
StatusBarWifiView view = StatusBarWifiView.fromContext(mContext, slot);
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
|
|
||||||
private ModernStatusBarWifiView onCreateModernStatusBarWifiView(String slot) {
|
private ModernStatusBarWifiView onCreateModernStatusBarWifiView(String slot) {
|
||||||
return ModernStatusBarWifiView.constructAndBind(mContext, slot, mWifiViewModel);
|
return ModernStatusBarWifiView.constructAndBind(mContext, slot, mWifiViewModel);
|
||||||
}
|
}
|
||||||
@@ -640,9 +594,6 @@ public interface StatusBarIconController {
|
|||||||
case TYPE_ICON:
|
case TYPE_ICON:
|
||||||
onSetIcon(viewIndex, holder.getIcon());
|
onSetIcon(viewIndex, holder.getIcon());
|
||||||
return;
|
return;
|
||||||
case TYPE_WIFI:
|
|
||||||
onSetWifiIcon(viewIndex, holder.getWifiState());
|
|
||||||
return;
|
|
||||||
case TYPE_MOBILE:
|
case TYPE_MOBILE:
|
||||||
onSetMobileIcon(viewIndex, holder.getMobileState());
|
onSetMobileIcon(viewIndex, holder.getMobileState());
|
||||||
return;
|
return;
|
||||||
@@ -655,23 +606,6 @@ public interface StatusBarIconController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSetWifiIcon(int viewIndex, WifiIconState state) {
|
|
||||||
View view = mGroup.getChildAt(viewIndex);
|
|
||||||
if (view instanceof StatusBarWifiView) {
|
|
||||||
((StatusBarWifiView) view).applyWifiState(state);
|
|
||||||
} else if (view instanceof ModernStatusBarWifiView) {
|
|
||||||
// ModernStatusBarWifiView will automatically apply state based on its callbacks, so
|
|
||||||
// we don't need to call applyWifiState.
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException("View at " + viewIndex + " must be of type "
|
|
||||||
+ "StatusBarWifiView or ModernStatusBarWifiView");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mIsInDemoMode) {
|
|
||||||
mDemoStatusIcons.updateWifiState(state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onSetMobileIcon(int viewIndex, MobileIconState state) {
|
public void onSetMobileIcon(int viewIndex, MobileIconState state) {
|
||||||
View view = mGroup.getChildAt(viewIndex);
|
View view = mGroup.getChildAt(viewIndex);
|
||||||
if (view instanceof StatusBarMobileView) {
|
if (view instanceof StatusBarMobileView) {
|
||||||
@@ -703,9 +637,7 @@ public interface StatusBarIconController {
|
|||||||
mIsInDemoMode = true;
|
mIsInDemoMode = true;
|
||||||
if (mDemoStatusIcons == null) {
|
if (mDemoStatusIcons == null) {
|
||||||
mDemoStatusIcons = createDemoStatusIcons();
|
mDemoStatusIcons = createDemoStatusIcons();
|
||||||
if (mStatusBarPipelineFlags.useNewWifiIcon()) {
|
mDemoStatusIcons.addModernWifiView(mWifiViewModel);
|
||||||
mDemoStatusIcons.addModernWifiView(mWifiViewModel);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
mDemoStatusIcons.onDemoModeStarted();
|
mDemoStatusIcons.onDemoModeStarted();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ import com.android.systemui.statusbar.CommandQueue;
|
|||||||
import com.android.systemui.statusbar.StatusIconDisplayable;
|
import com.android.systemui.statusbar.StatusIconDisplayable;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
|
|
||||||
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
|
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
|
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
|
||||||
@@ -201,36 +200,8 @@ public class StatusBarIconControllerImpl implements Tunable,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setWifiIcon(String slot, WifiIconState state) {
|
|
||||||
if (mStatusBarPipelineFlags.useNewWifiIcon()) {
|
|
||||||
Log.d(TAG, "ignoring old pipeline callback because the new wifi icon is enabled");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state == null) {
|
|
||||||
removeIcon(slot, 0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusBarIconHolder holder = mStatusBarIconList.getIconHolder(slot, 0);
|
|
||||||
if (holder == null) {
|
|
||||||
holder = StatusBarIconHolder.fromWifiIconState(state);
|
|
||||||
setIcon(slot, holder);
|
|
||||||
} else {
|
|
||||||
holder.setWifiState(state);
|
|
||||||
handleSet(slot, holder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNewWifiIcon() {
|
public void setNewWifiIcon() {
|
||||||
if (!mStatusBarPipelineFlags.useNewWifiIcon()) {
|
|
||||||
Log.d(TAG, "ignoring new pipeline callback because the new wifi icon is disabled");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String slot = mContext.getString(com.android.internal.R.string.status_bar_wifi);
|
String slot = mContext.getString(com.android.internal.R.string.status_bar_wifi);
|
||||||
StatusBarIconHolder holder = mStatusBarIconList.getIconHolder(slot, /* tag= */ 0);
|
StatusBarIconHolder holder = mStatusBarIconList.getIconHolder(slot, /* tag= */ 0);
|
||||||
if (holder == null) {
|
if (holder == null) {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import android.os.UserHandle;
|
|||||||
import com.android.internal.statusbar.StatusBarIcon;
|
import com.android.internal.statusbar.StatusBarIcon;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
|
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconViewModel;
|
import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconViewModel;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -36,7 +35,6 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
*/
|
*/
|
||||||
public class StatusBarIconHolder {
|
public class StatusBarIconHolder {
|
||||||
public static final int TYPE_ICON = 0;
|
public static final int TYPE_ICON = 0;
|
||||||
public static final int TYPE_WIFI = 1;
|
|
||||||
public static final int TYPE_MOBILE = 2;
|
public static final int TYPE_MOBILE = 2;
|
||||||
/**
|
/**
|
||||||
* TODO (b/249790733): address this once the new pipeline is in place
|
* TODO (b/249790733): address this once the new pipeline is in place
|
||||||
@@ -65,7 +63,6 @@ public class StatusBarIconHolder {
|
|||||||
|
|
||||||
@IntDef({
|
@IntDef({
|
||||||
TYPE_ICON,
|
TYPE_ICON,
|
||||||
TYPE_WIFI,
|
|
||||||
TYPE_MOBILE,
|
TYPE_MOBILE,
|
||||||
TYPE_MOBILE_NEW,
|
TYPE_MOBILE_NEW,
|
||||||
TYPE_WIFI_NEW
|
TYPE_WIFI_NEW
|
||||||
@@ -74,7 +71,6 @@ public class StatusBarIconHolder {
|
|||||||
@interface IconType {}
|
@interface IconType {}
|
||||||
|
|
||||||
private StatusBarIcon mIcon;
|
private StatusBarIcon mIcon;
|
||||||
private WifiIconState mWifiState;
|
|
||||||
private MobileIconState mMobileState;
|
private MobileIconState mMobileState;
|
||||||
private @IconType int mType = TYPE_ICON;
|
private @IconType int mType = TYPE_ICON;
|
||||||
private int mTag = 0;
|
private int mTag = 0;
|
||||||
@@ -83,7 +79,6 @@ public class StatusBarIconHolder {
|
|||||||
public static String getTypeString(@IconType int type) {
|
public static String getTypeString(@IconType int type) {
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case TYPE_ICON: return "ICON";
|
case TYPE_ICON: return "ICON";
|
||||||
case TYPE_WIFI: return "WIFI_OLD";
|
|
||||||
case TYPE_MOBILE: return "MOBILE_OLD";
|
case TYPE_MOBILE: return "MOBILE_OLD";
|
||||||
case TYPE_MOBILE_NEW: return "MOBILE_NEW";
|
case TYPE_MOBILE_NEW: return "MOBILE_NEW";
|
||||||
case TYPE_WIFI_NEW: return "WIFI_NEW";
|
case TYPE_WIFI_NEW: return "WIFI_NEW";
|
||||||
@@ -101,25 +96,6 @@ public class StatusBarIconHolder {
|
|||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** */
|
|
||||||
public static StatusBarIconHolder fromResId(
|
|
||||||
Context context,
|
|
||||||
int resId,
|
|
||||||
CharSequence contentDescription) {
|
|
||||||
StatusBarIconHolder holder = new StatusBarIconHolder();
|
|
||||||
holder.mIcon = new StatusBarIcon(UserHandle.SYSTEM, context.getPackageName(),
|
|
||||||
Icon.createWithResource( context, resId), 0, 0, contentDescription);
|
|
||||||
return holder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** */
|
|
||||||
public static StatusBarIconHolder fromWifiIconState(WifiIconState state) {
|
|
||||||
StatusBarIconHolder holder = new StatusBarIconHolder();
|
|
||||||
holder.mWifiState = state;
|
|
||||||
holder.mType = TYPE_WIFI;
|
|
||||||
return holder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Creates a new holder with for the new wifi icon. */
|
/** Creates a new holder with for the new wifi icon. */
|
||||||
public static StatusBarIconHolder forNewWifiIcon() {
|
public static StatusBarIconHolder forNewWifiIcon() {
|
||||||
StatusBarIconHolder holder = new StatusBarIconHolder();
|
StatusBarIconHolder holder = new StatusBarIconHolder();
|
||||||
@@ -177,15 +153,6 @@ public class StatusBarIconHolder {
|
|||||||
mIcon = icon;
|
mIcon = icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public WifiIconState getWifiState() {
|
|
||||||
return mWifiState;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWifiState(WifiIconState state) {
|
|
||||||
mWifiState = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public MobileIconState getMobileState() {
|
public MobileIconState getMobileState() {
|
||||||
return mMobileState;
|
return mMobileState;
|
||||||
@@ -199,8 +166,6 @@ public class StatusBarIconHolder {
|
|||||||
switch (mType) {
|
switch (mType) {
|
||||||
case TYPE_ICON:
|
case TYPE_ICON:
|
||||||
return mIcon.visible;
|
return mIcon.visible;
|
||||||
case TYPE_WIFI:
|
|
||||||
return mWifiState.visible;
|
|
||||||
case TYPE_MOBILE:
|
case TYPE_MOBILE:
|
||||||
return mMobileState.visible;
|
return mMobileState.visible;
|
||||||
case TYPE_MOBILE_NEW:
|
case TYPE_MOBILE_NEW:
|
||||||
@@ -223,10 +188,6 @@ public class StatusBarIconHolder {
|
|||||||
mIcon.visible = visible;
|
mIcon.visible = visible;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_WIFI:
|
|
||||||
mWifiState.visible = visible;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TYPE_MOBILE:
|
case TYPE_MOBILE:
|
||||||
mMobileState.visible = visible;
|
mMobileState.visible = visible;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import com.android.systemui.statusbar.connectivity.IconState;
|
|||||||
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
|
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
|
||||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||||
import com.android.systemui.statusbar.connectivity.WifiIndicators;
|
|
||||||
import com.android.systemui.statusbar.policy.SecurityController;
|
import com.android.systemui.statusbar.policy.SecurityController;
|
||||||
import com.android.systemui.tuner.TunerService;
|
import com.android.systemui.tuner.TunerService;
|
||||||
import com.android.systemui.tuner.TunerService.Tunable;
|
import com.android.systemui.tuner.TunerService.Tunable;
|
||||||
@@ -51,7 +50,6 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
|
|
||||||
private final String mSlotAirplane;
|
private final String mSlotAirplane;
|
||||||
private final String mSlotMobile;
|
private final String mSlotMobile;
|
||||||
private final String mSlotWifi;
|
|
||||||
private final String mSlotEthernet;
|
private final String mSlotEthernet;
|
||||||
private final String mSlotVpn;
|
private final String mSlotVpn;
|
||||||
private final String mSlotNoCalling;
|
private final String mSlotNoCalling;
|
||||||
@@ -67,17 +65,14 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
|
|
||||||
private boolean mHideAirplane;
|
private boolean mHideAirplane;
|
||||||
private boolean mHideMobile;
|
private boolean mHideMobile;
|
||||||
private boolean mHideWifi;
|
|
||||||
private boolean mHideEthernet;
|
private boolean mHideEthernet;
|
||||||
private boolean mActivityEnabled;
|
private boolean mActivityEnabled;
|
||||||
|
|
||||||
// Track as little state as possible, and only for padding purposes
|
// Track as little state as possible, and only for padding purposes
|
||||||
private boolean mIsAirplaneMode = false;
|
private boolean mIsAirplaneMode = false;
|
||||||
private boolean mIsWifiEnabled = false;
|
|
||||||
|
|
||||||
private ArrayList<MobileIconState> mMobileStates = new ArrayList<>();
|
private ArrayList<MobileIconState> mMobileStates = new ArrayList<>();
|
||||||
private ArrayList<CallIndicatorIconState> mCallIndicatorStates = new ArrayList<>();
|
private ArrayList<CallIndicatorIconState> mCallIndicatorStates = new ArrayList<>();
|
||||||
private WifiIconState mWifiIconState = new WifiIconState();
|
|
||||||
private boolean mInitialized;
|
private boolean mInitialized;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -99,7 +94,6 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
|
|
||||||
mSlotAirplane = mContext.getString(com.android.internal.R.string.status_bar_airplane);
|
mSlotAirplane = mContext.getString(com.android.internal.R.string.status_bar_airplane);
|
||||||
mSlotMobile = mContext.getString(com.android.internal.R.string.status_bar_mobile);
|
mSlotMobile = mContext.getString(com.android.internal.R.string.status_bar_mobile);
|
||||||
mSlotWifi = mContext.getString(com.android.internal.R.string.status_bar_wifi);
|
|
||||||
mSlotEthernet = mContext.getString(com.android.internal.R.string.status_bar_ethernet);
|
mSlotEthernet = mContext.getString(com.android.internal.R.string.status_bar_ethernet);
|
||||||
mSlotVpn = mContext.getString(com.android.internal.R.string.status_bar_vpn);
|
mSlotVpn = mContext.getString(com.android.internal.R.string.status_bar_vpn);
|
||||||
mSlotNoCalling = mContext.getString(com.android.internal.R.string.status_bar_no_calling);
|
mSlotNoCalling = mContext.getString(com.android.internal.R.string.status_bar_no_calling);
|
||||||
@@ -154,71 +148,19 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
ArraySet<String> hideList = StatusBarIconController.getIconHideList(mContext, newValue);
|
ArraySet<String> hideList = StatusBarIconController.getIconHideList(mContext, newValue);
|
||||||
boolean hideAirplane = hideList.contains(mSlotAirplane);
|
boolean hideAirplane = hideList.contains(mSlotAirplane);
|
||||||
boolean hideMobile = hideList.contains(mSlotMobile);
|
boolean hideMobile = hideList.contains(mSlotMobile);
|
||||||
boolean hideWifi = hideList.contains(mSlotWifi);
|
|
||||||
boolean hideEthernet = hideList.contains(mSlotEthernet);
|
boolean hideEthernet = hideList.contains(mSlotEthernet);
|
||||||
|
|
||||||
if (hideAirplane != mHideAirplane || hideMobile != mHideMobile
|
if (hideAirplane != mHideAirplane || hideMobile != mHideMobile
|
||||||
|| hideEthernet != mHideEthernet || hideWifi != mHideWifi) {
|
|| hideEthernet != mHideEthernet) {
|
||||||
mHideAirplane = hideAirplane;
|
mHideAirplane = hideAirplane;
|
||||||
mHideMobile = hideMobile;
|
mHideMobile = hideMobile;
|
||||||
mHideEthernet = hideEthernet;
|
mHideEthernet = hideEthernet;
|
||||||
mHideWifi = hideWifi;
|
|
||||||
// Re-register to get new callbacks.
|
// Re-register to get new callbacks.
|
||||||
mNetworkController.removeCallback(this);
|
mNetworkController.removeCallback(this);
|
||||||
mNetworkController.addCallback(this);
|
mNetworkController.addCallback(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setWifiIndicators(@NonNull WifiIndicators indicators) {
|
|
||||||
if (DEBUG) {
|
|
||||||
Log.d(TAG, "setWifiIndicators: " + indicators);
|
|
||||||
}
|
|
||||||
boolean visible = indicators.statusIcon.visible && !mHideWifi;
|
|
||||||
boolean in = indicators.activityIn && mActivityEnabled && visible;
|
|
||||||
boolean out = indicators.activityOut && mActivityEnabled && visible;
|
|
||||||
mIsWifiEnabled = indicators.enabled;
|
|
||||||
|
|
||||||
WifiIconState newState = mWifiIconState.copy();
|
|
||||||
|
|
||||||
if (mWifiIconState.noDefaultNetwork && mWifiIconState.noNetworksAvailable
|
|
||||||
&& !mIsAirplaneMode) {
|
|
||||||
newState.visible = true;
|
|
||||||
newState.resId = R.drawable.ic_qs_no_internet_unavailable;
|
|
||||||
} else if (mWifiIconState.noDefaultNetwork && !mWifiIconState.noNetworksAvailable
|
|
||||||
&& (!mIsAirplaneMode || (mIsAirplaneMode && mIsWifiEnabled))) {
|
|
||||||
newState.visible = true;
|
|
||||||
newState.resId = R.drawable.ic_qs_no_internet_available;
|
|
||||||
} else {
|
|
||||||
newState.visible = visible;
|
|
||||||
newState.resId = indicators.statusIcon.icon;
|
|
||||||
newState.activityIn = in;
|
|
||||||
newState.activityOut = out;
|
|
||||||
newState.contentDescription = indicators.statusIcon.contentDescription;
|
|
||||||
MobileIconState first = getFirstMobileState();
|
|
||||||
newState.signalSpacerVisible = first != null && first.typeId != 0;
|
|
||||||
}
|
|
||||||
newState.slot = mSlotWifi;
|
|
||||||
newState.airplaneSpacerVisible = mIsAirplaneMode;
|
|
||||||
updateWifiIconWithState(newState);
|
|
||||||
mWifiIconState = newState;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateShowWifiSignalSpacer(WifiIconState state) {
|
|
||||||
MobileIconState first = getFirstMobileState();
|
|
||||||
state.signalSpacerVisible = first != null && first.typeId != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateWifiIconWithState(WifiIconState state) {
|
|
||||||
if (DEBUG) Log.d(TAG, "WifiIconState: " + state == null ? "" : state.toString());
|
|
||||||
if (state.visible && state.resId > 0) {
|
|
||||||
mIconController.setWifiIcon(mSlotWifi, state);
|
|
||||||
mIconController.setIconVisibility(mSlotWifi, true);
|
|
||||||
} else {
|
|
||||||
mIconController.setIconVisibility(mSlotWifi, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCallIndicator(@NonNull IconState statusIcon, int subId) {
|
public void setCallIndicator(@NonNull IconState statusIcon, int subId) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
@@ -257,10 +199,6 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Visibility of the data type indicator changed
|
|
||||||
boolean typeChanged = indicators.statusType != state.typeId
|
|
||||||
&& (indicators.statusType == 0 || state.typeId == 0);
|
|
||||||
|
|
||||||
state.visible = indicators.statusIcon.visible && !mHideMobile;
|
state.visible = indicators.statusIcon.visible && !mHideMobile;
|
||||||
state.strengthId = indicators.statusIcon.icon;
|
state.strengthId = indicators.statusIcon.icon;
|
||||||
state.typeId = indicators.statusType;
|
state.typeId = indicators.statusType;
|
||||||
@@ -277,15 +215,6 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
}
|
}
|
||||||
// Always send a copy to maintain value type semantics
|
// Always send a copy to maintain value type semantics
|
||||||
mIconController.setMobileIcons(mSlotMobile, MobileIconState.copyStates(mMobileStates));
|
mIconController.setMobileIcons(mSlotMobile, MobileIconState.copyStates(mMobileStates));
|
||||||
|
|
||||||
if (typeChanged) {
|
|
||||||
WifiIconState wifiCopy = mWifiIconState.copy();
|
|
||||||
updateShowWifiSignalSpacer(wifiCopy);
|
|
||||||
if (!Objects.equals(wifiCopy, mWifiIconState)) {
|
|
||||||
updateWifiIconWithState(wifiCopy);
|
|
||||||
mWifiIconState = wifiCopy;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private CallIndicatorIconState getNoCallingState(int subId) {
|
private CallIndicatorIconState getNoCallingState(int subId) {
|
||||||
@@ -308,15 +237,6 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private MobileIconState getFirstMobileState() {
|
|
||||||
if (mMobileStates.size() > 0) {
|
|
||||||
return mMobileStates.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It is expected that a call to setSubs will be immediately followed by setMobileDataIndicators
|
* It is expected that a call to setSubs will be immediately followed by setMobileDataIndicators
|
||||||
* so we don't have to update the icon manager at this point, just remove the old ones
|
* so we don't have to update the icon manager at this point, just remove the old ones
|
||||||
@@ -504,60 +424,6 @@ public class StatusBarSignalPolicy implements SignalCallback,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class WifiIconState extends SignalIconState{
|
|
||||||
public int resId;
|
|
||||||
public boolean airplaneSpacerVisible;
|
|
||||||
public boolean signalSpacerVisible;
|
|
||||||
public boolean noDefaultNetwork;
|
|
||||||
public boolean noValidatedNetwork;
|
|
||||||
public boolean noNetworksAvailable;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
// Skipping reference equality bc this should be more of a value type
|
|
||||||
if (o == null || getClass() != o.getClass()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!super.equals(o)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
WifiIconState that = (WifiIconState) o;
|
|
||||||
return resId == that.resId
|
|
||||||
&& airplaneSpacerVisible == that.airplaneSpacerVisible
|
|
||||||
&& signalSpacerVisible == that.signalSpacerVisible
|
|
||||||
&& noDefaultNetwork == that.noDefaultNetwork
|
|
||||||
&& noValidatedNetwork == that.noValidatedNetwork
|
|
||||||
&& noNetworksAvailable == that.noNetworksAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void copyTo(WifiIconState other) {
|
|
||||||
super.copyTo(other);
|
|
||||||
other.resId = resId;
|
|
||||||
other.airplaneSpacerVisible = airplaneSpacerVisible;
|
|
||||||
other.signalSpacerVisible = signalSpacerVisible;
|
|
||||||
other.noDefaultNetwork = noDefaultNetwork;
|
|
||||||
other.noValidatedNetwork = noValidatedNetwork;
|
|
||||||
other.noNetworksAvailable = noNetworksAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public WifiIconState copy() {
|
|
||||||
WifiIconState newState = new WifiIconState();
|
|
||||||
copyTo(newState);
|
|
||||||
return newState;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(super.hashCode(),
|
|
||||||
resId, airplaneSpacerVisible, signalSpacerVisible, noDefaultNetwork,
|
|
||||||
noValidatedNetwork, noNetworksAvailable);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override public String toString() {
|
|
||||||
return "WifiIconState(resId=" + resId + ", visible=" + visible + ")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A little different. This one delegates to SignalDrawable instead of a specific resId
|
* A little different. This one delegates to SignalDrawable instead of a specific resId
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -45,18 +45,6 @@ constructor(
|
|||||||
fun runNewMobileIconsBackend(): Boolean =
|
fun runNewMobileIconsBackend(): Boolean =
|
||||||
featureFlags.isEnabled(Flags.NEW_STATUS_BAR_MOBILE_ICONS_BACKEND) || useNewMobileIcons()
|
featureFlags.isEnabled(Flags.NEW_STATUS_BAR_MOBILE_ICONS_BACKEND) || useNewMobileIcons()
|
||||||
|
|
||||||
/** True if we should display the wifi icon using the new status bar data pipeline. */
|
|
||||||
fun useNewWifiIcon(): Boolean = featureFlags.isEnabled(Flags.NEW_STATUS_BAR_WIFI_ICON)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* True if we should run the new wifi icon backend to get the logging.
|
|
||||||
*
|
|
||||||
* Does *not* affect whether we render the wifi icon using the new backend data. See
|
|
||||||
* [useNewWifiIcon] for that.
|
|
||||||
*/
|
|
||||||
fun runNewWifiIconBackend(): Boolean =
|
|
||||||
featureFlags.isEnabled(Flags.NEW_STATUS_BAR_WIFI_ICON_BACKEND) || useNewWifiIcon()
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if we should apply some coloring to the icons that were rendered with the new
|
* Returns true if we should apply some coloring to the icons that were rendered with the new
|
||||||
* pipeline to help with debugging.
|
* pipeline to help with debugging.
|
||||||
@@ -71,5 +59,5 @@ constructor(
|
|||||||
* @return true if this icon is controlled by any of the status bar pipeline flags
|
* @return true if this icon is controlled by any of the status bar pipeline flags
|
||||||
*/
|
*/
|
||||||
fun isIconControlledByFlags(slotName: String): Boolean =
|
fun isIconControlledByFlags(slotName: String): Boolean =
|
||||||
slotName == wifiSlot && useNewWifiIcon() || slotName == mobileSlot && useNewMobileIcons()
|
slotName == wifiSlot || (slotName == mobileSlot && useNewMobileIcons())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,12 +101,7 @@ open class ModernStatusBarView(context: Context, attrs: AttributeSet?) :
|
|||||||
this.binding = bindingCreator.invoke()
|
this.binding = bindingCreator.invoke()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Creates a [StatusBarIconView] that is always in DOT mode and adds it to this view. */
|
||||||
* Creates a [StatusBarIconView] that is always in DOT mode and adds it to this view.
|
|
||||||
*
|
|
||||||
* Mostly duplicated from [com.android.systemui.statusbar.StatusBarWifiView] and
|
|
||||||
* [com.android.systemui.statusbar.StatusBarMobileView].
|
|
||||||
*/
|
|
||||||
private fun initDotView() {
|
private fun initDotView() {
|
||||||
// TODO(b/238425913): Could we just have this dot view be part of the layout with a dot
|
// TODO(b/238425913): Could we just have this dot view be part of the layout with a dot
|
||||||
// drawable so we don't need to inflate it manually? Would that not work with animations?
|
// drawable so we don't need to inflate it manually? Would that not work with animations?
|
||||||
|
|||||||
@@ -68,12 +68,7 @@ constructor(
|
|||||||
launch {
|
launch {
|
||||||
locationViewModel.wifiIcon.collect { wifiIcon ->
|
locationViewModel.wifiIcon.collect { wifiIcon ->
|
||||||
// Only notify the icon controller if we want to *render* the new icon.
|
// Only notify the icon controller if we want to *render* the new icon.
|
||||||
// Note that this flow may still run if
|
if (wifiIcon is WifiIcon.Visible) {
|
||||||
// [statusBarPipelineFlags.runNewWifiIconBackend] is true because we may
|
|
||||||
// want to get the logging data without rendering.
|
|
||||||
if (
|
|
||||||
wifiIcon is WifiIcon.Visible && statusBarPipelineFlags.useNewWifiIcon()
|
|
||||||
) {
|
|
||||||
iconController.setNewWifiIcon()
|
iconController.setNewWifiIcon()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,9 +33,8 @@ import android.provider.Settings;
|
|||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.flags.FakeFeatureFlags;
|
|
||||||
import com.android.systemui.flags.Flags;
|
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
@@ -62,7 +61,6 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
private Handler mHandler;
|
private Handler mHandler;
|
||||||
@Mock
|
@Mock
|
||||||
private ContentResolver mContentResolver;
|
private ContentResolver mContentResolver;
|
||||||
private FakeFeatureFlags mFeatureFlags;
|
|
||||||
@Mock
|
@Mock
|
||||||
private BatteryController mBatteryController;
|
private BatteryController mBatteryController;
|
||||||
|
|
||||||
@@ -75,8 +73,8 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
when(mBatteryMeterView.getContext()).thenReturn(mContext);
|
when(mBatteryMeterView.getContext()).thenReturn(mContext);
|
||||||
when(mBatteryMeterView.getResources()).thenReturn(mContext.getResources());
|
when(mBatteryMeterView.getResources()).thenReturn(mContext.getResources());
|
||||||
|
|
||||||
mFeatureFlags = new FakeFeatureFlags();
|
mContext.getOrCreateTestableResources().addOverride(
|
||||||
mFeatureFlags.set(Flags.BATTERY_SHIELD_ICON, false);
|
R.bool.flag_battery_shield_icon, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -135,7 +133,8 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shieldFlagDisabled_viewNotified() {
|
public void shieldFlagDisabled_viewNotified() {
|
||||||
mFeatureFlags.set(Flags.BATTERY_SHIELD_ICON, false);
|
mContext.getOrCreateTestableResources().addOverride(
|
||||||
|
R.bool.flag_battery_shield_icon, false);
|
||||||
|
|
||||||
initController();
|
initController();
|
||||||
|
|
||||||
@@ -144,7 +143,8 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shieldFlagEnabled_viewNotified() {
|
public void shieldFlagEnabled_viewNotified() {
|
||||||
mFeatureFlags.set(Flags.BATTERY_SHIELD_ICON, true);
|
mContext.getOrCreateTestableResources().addOverride(
|
||||||
|
R.bool.flag_battery_shield_icon, true);
|
||||||
|
|
||||||
initController();
|
initController();
|
||||||
|
|
||||||
@@ -160,7 +160,6 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
mTunerService,
|
mTunerService,
|
||||||
mHandler,
|
mHandler,
|
||||||
mContentResolver,
|
mContentResolver,
|
||||||
mFeatureFlags,
|
|
||||||
mBatteryController
|
mBatteryController
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ package com.android.systemui.statusbar.phone;
|
|||||||
|
|
||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON;
|
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON;
|
||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE;
|
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE;
|
||||||
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI;
|
|
||||||
|
|
||||||
import static junit.framework.Assert.assertTrue;
|
import static junit.framework.Assert.assertTrue;
|
||||||
|
|
||||||
@@ -41,13 +40,11 @@ import com.android.systemui.plugins.DarkIconDispatcher;
|
|||||||
import com.android.systemui.statusbar.CommandQueue;
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
import com.android.systemui.statusbar.StatusBarIconView;
|
import com.android.systemui.statusbar.StatusBarIconView;
|
||||||
import com.android.systemui.statusbar.StatusBarMobileView;
|
import com.android.systemui.statusbar.StatusBarMobileView;
|
||||||
import com.android.systemui.statusbar.StatusBarWifiView;
|
|
||||||
import com.android.systemui.statusbar.StatusIconDisplayable;
|
import com.android.systemui.statusbar.StatusIconDisplayable;
|
||||||
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider;
|
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarIconController.DarkIconManager;
|
import com.android.systemui.statusbar.phone.StatusBarIconController.DarkIconManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
|
import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
|
|
||||||
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
|
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter;
|
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter;
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.ui.WifiUiAdapter;
|
import com.android.systemui.statusbar.pipeline.wifi.ui.WifiUiAdapter;
|
||||||
@@ -156,13 +153,9 @@ public class StatusBarIconControllerTest extends LeakCheckedTest {
|
|||||||
assertTrue("Expected StatusBarIconView",
|
assertTrue("Expected StatusBarIconView",
|
||||||
(manager.getViewAt(0) instanceof StatusBarIconView));
|
(manager.getViewAt(0) instanceof StatusBarIconView));
|
||||||
|
|
||||||
holder = holderForType(TYPE_WIFI);
|
|
||||||
manager.onIconAdded(1, "test_wifi", false, holder);
|
|
||||||
assertTrue(manager.getViewAt(1) instanceof StatusBarWifiView);
|
|
||||||
|
|
||||||
holder = holderForType(TYPE_MOBILE);
|
holder = holderForType(TYPE_MOBILE);
|
||||||
manager.onIconAdded(2, "test_mobile", false, holder);
|
manager.onIconAdded(1, "test_mobile", false, holder);
|
||||||
assertTrue(manager.getViewAt(2) instanceof StatusBarMobileView);
|
assertTrue(manager.getViewAt(1) instanceof StatusBarMobileView);
|
||||||
}
|
}
|
||||||
|
|
||||||
private StatusBarIconHolder holderForType(int type) {
|
private StatusBarIconHolder holderForType(int type) {
|
||||||
@@ -170,9 +163,6 @@ public class StatusBarIconControllerTest extends LeakCheckedTest {
|
|||||||
case TYPE_MOBILE:
|
case TYPE_MOBILE:
|
||||||
return StatusBarIconHolder.fromMobileIconState(mock(MobileIconState.class));
|
return StatusBarIconHolder.fromMobileIconState(mock(MobileIconState.class));
|
||||||
|
|
||||||
case TYPE_WIFI:
|
|
||||||
return StatusBarIconHolder.fromWifiIconState(mock(WifiIconState.class));
|
|
||||||
|
|
||||||
case TYPE_ICON:
|
case TYPE_ICON:
|
||||||
default:
|
default:
|
||||||
return StatusBarIconHolder.fromIcon(mock(StatusBarIcon.class));
|
return StatusBarIconHolder.fromIcon(mock(StatusBarIcon.class));
|
||||||
@@ -213,13 +203,6 @@ public class StatusBarIconControllerTest extends LeakCheckedTest {
|
|||||||
return mock;
|
return mock;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected StatusBarWifiView addWifiIcon(int index, String slot, WifiIconState state) {
|
|
||||||
StatusBarWifiView mock = mock(StatusBarWifiView.class);
|
|
||||||
mGroup.addView(mock, index);
|
|
||||||
return mock;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected StatusBarMobileView addMobileIcon(int index, String slot, MobileIconState state) {
|
protected StatusBarMobileView addMobileIcon(int index, String slot, MobileIconState state) {
|
||||||
StatusBarMobileView mock = mock(StatusBarMobileView.class);
|
StatusBarMobileView mock = mock(StatusBarMobileView.class);
|
||||||
@@ -253,13 +236,6 @@ public class StatusBarIconControllerTest extends LeakCheckedTest {
|
|||||||
return mock;
|
return mock;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected StatusBarWifiView addWifiIcon(int index, String slot, WifiIconState state) {
|
|
||||||
StatusBarWifiView mock = mock(StatusBarWifiView.class);
|
|
||||||
mGroup.addView(mock, index);
|
|
||||||
return mock;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected StatusBarMobileView addMobileIcon(int index, String slot, MobileIconState state) {
|
protected StatusBarMobileView addMobileIcon(int index, String slot, MobileIconState state) {
|
||||||
StatusBarMobileView mock = mock(StatusBarMobileView.class);
|
StatusBarMobileView mock = mock(StatusBarMobileView.class);
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import com.android.systemui.statusbar.phone.StatusBarIconController;
|
|||||||
import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
|
import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -61,10 +60,6 @@ public class FakeStatusBarIconController extends BaseLeakChecker<IconManager>
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setWifiIcon(String slot, WifiIconState state) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNewWifiIcon() {
|
public void setNewWifiIcon() {
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user