Show connecting and connected messages on the header subtext of Wi-Fi slice
Fixes: 128631698 Test: robotest Change-Id: I1ea2a65d09eca9b3dd06f56c4ae69ef7f68ffd86
This commit is contained in:
@@ -33,6 +33,7 @@ import android.graphics.drawable.ColorDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.NetworkInfo;
|
||||
import android.net.NetworkInfo.State;
|
||||
import android.net.NetworkInfo.DetailedState;
|
||||
import android.net.Uri;
|
||||
import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
@@ -93,26 +94,7 @@ public class WifiSlice implements CustomSliceable {
|
||||
mContext.getTheme().applyStyle(R.style.Theme_Settings_Home, true /* force */);
|
||||
|
||||
final boolean isWifiEnabled = isWifiEnabled();
|
||||
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext,
|
||||
R.drawable.ic_settings_wireless);
|
||||
final String title = mContext.getString(R.string.wifi_settings);
|
||||
final CharSequence summary = getSummary();
|
||||
final PendingIntent toggleAction = getBroadcastIntent(mContext);
|
||||
final PendingIntent primaryAction = getPrimaryAction();
|
||||
final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryAction, icon,
|
||||
ListBuilder.ICON_IMAGE, title);
|
||||
final SliceAction toggleSliceAction = SliceAction.createToggle(toggleAction,
|
||||
null /* actionTitle */, isWifiEnabled);
|
||||
|
||||
final ListBuilder listBuilder = new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
|
||||
.setAccentColor(COLOR_NOT_TINTED)
|
||||
.addRow(new ListBuilder.RowBuilder()
|
||||
.setTitle(title)
|
||||
.setSubtitle(summary)
|
||||
.addEndItem(toggleSliceAction)
|
||||
.setPrimaryAction(primarySliceAction));
|
||||
|
||||
ListBuilder listBuilder = getListBuilder(isWifiEnabled, null /* accessPoint */);
|
||||
if (!isWifiEnabled) {
|
||||
return listBuilder.build();
|
||||
}
|
||||
@@ -137,7 +119,12 @@ public class WifiSlice implements CustomSliceable {
|
||||
final CharSequence placeholder = mContext.getText(R.string.summary_placeholder);
|
||||
for (int i = 0; i < DEFAULT_EXPANDED_ROW_COUNT; i++) {
|
||||
if (i < apCount) {
|
||||
listBuilder.addRow(getAccessPointRow(results.get(i)));
|
||||
final AccessPoint accessPoint = results.get(i);
|
||||
if (accessPoint.isActive()) {
|
||||
// update summary
|
||||
listBuilder = getListBuilder(isWifiEnabled, accessPoint);
|
||||
}
|
||||
listBuilder.addRow(getAccessPointRow(accessPoint));
|
||||
} else if (needLoadingRow) {
|
||||
listBuilder.addRow(getLoadingRow());
|
||||
needLoadingRow = false;
|
||||
@@ -149,6 +136,27 @@ public class WifiSlice implements CustomSliceable {
|
||||
return listBuilder.build();
|
||||
}
|
||||
|
||||
private ListBuilder getListBuilder(boolean isWifiEnabled, AccessPoint accessPoint) {
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext,
|
||||
R.drawable.ic_settings_wireless);
|
||||
final String title = mContext.getString(R.string.wifi_settings);
|
||||
final CharSequence summary = getSummary(accessPoint);
|
||||
final PendingIntent toggleAction = getBroadcastIntent(mContext);
|
||||
final PendingIntent primaryAction = getPrimaryAction();
|
||||
final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryAction, icon,
|
||||
ListBuilder.ICON_IMAGE, title);
|
||||
final SliceAction toggleSliceAction = SliceAction.createToggle(toggleAction,
|
||||
null /* actionTitle */, isWifiEnabled);
|
||||
|
||||
return new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
|
||||
.setAccentColor(COLOR_NOT_TINTED)
|
||||
.addRow(new ListBuilder.RowBuilder()
|
||||
.setTitle(title)
|
||||
.setSubtitle(summary)
|
||||
.addEndItem(toggleSliceAction)
|
||||
.setPrimaryAction(primarySliceAction));
|
||||
}
|
||||
|
||||
private ListBuilder.RowBuilder getAccessPointRow(AccessPoint accessPoint) {
|
||||
final CharSequence title = getAccessPointName(accessPoint);
|
||||
final IconCompat levelIcon = getAccessPointLevelIcon(accessPoint);
|
||||
@@ -167,7 +175,7 @@ public class WifiSlice implements CustomSliceable {
|
||||
}
|
||||
|
||||
private CharSequence getAccessPointName(AccessPoint accessPoint) {
|
||||
final CharSequence name = accessPoint.getConfigName();
|
||||
final CharSequence name = accessPoint.getTitle();
|
||||
final Spannable span = new SpannableString(name);
|
||||
@ColorInt final int color = Utils.getColorAttrDefaultColor(mContext,
|
||||
android.R.attr.textColorPrimary);
|
||||
@@ -306,6 +314,32 @@ public class WifiSlice implements CustomSliceable {
|
||||
}
|
||||
}
|
||||
|
||||
private CharSequence getSummary(AccessPoint accessPoint) {
|
||||
if (accessPoint == null) {
|
||||
return getSummary();
|
||||
}
|
||||
|
||||
final NetworkInfo networkInfo = accessPoint.getNetworkInfo();
|
||||
if (networkInfo == null) {
|
||||
return getSummary();
|
||||
}
|
||||
|
||||
final State state = networkInfo.getState();
|
||||
DetailedState detailedState;
|
||||
if (state == State.CONNECTING) {
|
||||
detailedState = DetailedState.CONNECTING;
|
||||
} else if (state == State.CONNECTED) {
|
||||
detailedState = DetailedState.CONNECTED;
|
||||
} else {
|
||||
return getSummary();
|
||||
}
|
||||
|
||||
final String[] formats = mContext.getResources().getStringArray(
|
||||
R.array.wifi_status_with_ssid);
|
||||
final int index = detailedState.ordinal();
|
||||
return String.format(formats[index], accessPoint.getTitle());
|
||||
}
|
||||
|
||||
private PendingIntent getPrimaryAction() {
|
||||
final Intent intent = getIntent();
|
||||
return PendingIntent.getActivity(mContext, 0 /* requestCode */,
|
||||
|
Reference in New Issue
Block a user