Merge "Show mobile data icon with carrier Wi-Fi level in Settings" into tm-dev am: f16c90f91d
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18467044 Change-Id: I2efe5dca3a5241c247d96f53901f1254e19ce988 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -30,7 +30,6 @@ import android.content.IntentFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.AccessNetworkConstants;
|
||||
import android.telephony.NetworkRegistrationInfo;
|
||||
import android.telephony.ServiceState;
|
||||
@@ -65,6 +64,7 @@ import com.android.settingslib.mobile.MobileMappings;
|
||||
import com.android.settingslib.mobile.MobileMappings.Config;
|
||||
import com.android.settingslib.mobile.TelephonyIcons;
|
||||
import com.android.settingslib.net.SignalStrengthUtil;
|
||||
import com.android.wifitrackerlib.WifiEntry;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -282,16 +282,18 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
||||
return Html.fromHtml(result, Html.FROM_HTML_MODE_LEGACY);
|
||||
}
|
||||
|
||||
private Drawable getIcon(int subId) {
|
||||
@VisibleForTesting
|
||||
Drawable getIcon(int subId) {
|
||||
final TelephonyManager tmForSubId = mTelephonyManager.createForSubscriptionId(subId);
|
||||
final SignalStrength strength = tmForSubId.getSignalStrength();
|
||||
int level = (strength == null) ? 0 : strength.getLevel();
|
||||
int numLevels = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
|
||||
boolean isCarrierNetworkActive = isCarrierNetworkActive();
|
||||
if (shouldInflateSignalStrength(subId) || isCarrierNetworkActive) {
|
||||
level = isCarrierNetworkActive
|
||||
? SignalStrength.NUM_SIGNAL_STRENGTH_BINS
|
||||
: (level + 1);
|
||||
if (isCarrierNetworkActive) {
|
||||
level = getCarrierNetworkLevel();
|
||||
numLevels = WifiEntry.WIFI_LEVEL_MAX + 1;
|
||||
} else if (shouldInflateSignalStrength(subId)) {
|
||||
level += 1;
|
||||
numLevels += 1;
|
||||
}
|
||||
|
||||
@@ -488,6 +490,11 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
||||
&& mWifiPickerTrackerHelper.isCarrierNetworkActive();
|
||||
}
|
||||
|
||||
private int getCarrierNetworkLevel() {
|
||||
if (mWifiPickerTrackerHelper == null) return WifiEntry.WIFI_LEVEL_MIN;
|
||||
return mWifiPickerTrackerHelper.getCarrierNetworkLevel();
|
||||
}
|
||||
|
||||
/**
|
||||
* To inject necessary data from each static api.
|
||||
*/
|
||||
|
@@ -155,6 +155,17 @@ public class WifiPickerTrackerHelper implements LifecycleObserver {
|
||||
return mergedCarrierEntry.getSsid();
|
||||
}
|
||||
|
||||
/** Return the carrier network level */
|
||||
public int getCarrierNetworkLevel() {
|
||||
final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
|
||||
if (mergedCarrierEntry == null) return WifiEntry.WIFI_LEVEL_MIN;
|
||||
|
||||
int level = mergedCarrierEntry.getLevel();
|
||||
// To avoid icons not found with WIFI_LEVEL_UNREACHABLE(-1), use WIFI_LEVEL_MIN(0) instead.
|
||||
if (level < WifiEntry.WIFI_LEVEL_MIN) level = WifiEntry.WIFI_LEVEL_MIN;
|
||||
return level;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void setWifiPickerTracker(@NonNull WifiPickerTracker wifiPickerTracker) {
|
||||
mWifiPickerTracker = wifiPickerTracker;
|
||||
|
Reference in New Issue
Block a user