Introduce new Disconnect functionality for Wifi networks in Internet
Panel only - Display the close icon on the Wi-Fi network connected to the Internet, and performs the same action as tapping on the carrier network when tapped it. - Display the cog icon on the Wi-Fi network if it has no the Internet access. - Screenshot: https://screenshot.googleplex.com/YBQ8onG2dFJ8Q2a Bug: 187995278 Test: manual test atest -c ProviderModelSliceTest Change-Id: Id54a94c1fdfc37aff5cc37d6fb9f5478c0dccb00
This commit is contained in:
@@ -34,6 +34,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
@@ -59,6 +60,8 @@ import java.util.stream.Collectors;
|
||||
public class ProviderModelSlice extends WifiSlice {
|
||||
|
||||
private static final String TAG = "ProviderModelSlice";
|
||||
protected static final String ACTION_TITLE_CONNECT_TO_CARRIER = "Connect_To_Carrier";
|
||||
|
||||
private final ProviderModelSliceHelper mHelper;
|
||||
|
||||
public ProviderModelSlice(Context context) {
|
||||
@@ -249,6 +252,31 @@ public class ProviderModelSlice extends WifiSlice {
|
||||
.setSubtitle(mContext.getText(R.string.to_switch_networks_disconnect_ethernet));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ListBuilder.RowBuilder getWifiSliceItemRow(WifiSliceItem wifiSliceItem) {
|
||||
final CharSequence title = wifiSliceItem.getTitle();
|
||||
final IconCompat levelIcon = getWifiSliceItemLevelIcon(wifiSliceItem);
|
||||
final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
|
||||
.setTitleItem(levelIcon, ListBuilder.ICON_IMAGE)
|
||||
.setTitle(title)
|
||||
.setSubtitle(wifiSliceItem.getSummary())
|
||||
.setContentDescription(wifiSliceItem.getContentDescription());
|
||||
|
||||
final IconCompat endIcon;
|
||||
if (wifiSliceItem.hasInternetAccess()) {
|
||||
rowBuilder.setPrimaryAction(SliceAction.create(getBroadcastIntent(mContext),
|
||||
levelIcon, ListBuilder.ICON_IMAGE, ACTION_TITLE_CONNECT_TO_CARRIER));
|
||||
endIcon = IconCompat.createWithResource(mContext, R.drawable.ic_settings_close);
|
||||
} else {
|
||||
rowBuilder.setPrimaryAction(getWifiEntryAction(wifiSliceItem, levelIcon, title));
|
||||
endIcon = getEndIcon(wifiSliceItem);
|
||||
}
|
||||
if (endIcon != null) {
|
||||
rowBuilder.addEndItem(endIcon, ListBuilder.ICON_IMAGE);
|
||||
}
|
||||
return rowBuilder;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IconCompat getWifiSliceItemLevelIcon(WifiSliceItem wifiSliceItem) {
|
||||
if (wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED
|
||||
|
Reference in New Issue
Block a user