Loading src/com/android/settings/wifi/slice/WifiSlice.java +56 −22 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading Loading @@ -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 */, Loading Loading
src/com/android/settings/wifi/slice/WifiSlice.java +56 −22 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading Loading @@ -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 */, Loading