<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
<uses-permission android:name="android.permission.READ_SEARCH_INDEXABLES" />
<uses-permission android:name="android.permission.OEM_UNLOCK_STATE" />
+ <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
<application android:label="@string/settings_label"
android:icon="@mipmap/ic_launcher_settings"
<string name="wifi_menu_scan">Scan</string>
<!-- Menu option to Wi-Fi advanced settings -->
<string name="wifi_menu_advanced">Advanced</string>
+ <!-- Menu option to show app icons instead of WiFi strength [CHAR LIMIT=20]-->
+ <string name="wifi_menu_apps">Show Apps</string>
+ <!-- Menu option to show WiFi strength icons [CHAR LIMIT=20]-->
+ <string name="wifi_menu_apps_strength">Show WiFi Strength</string>
<!-- Menu option to connect to a Wi-Fi network -->
<string name="wifi_menu_connect">Connect to network</string>
<!-- Menu option to delete a Wi-Fi network -->
import com.android.settings.R;
import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
import android.net.NetworkInfo.DetailedState;
}
}
+ public void showAppIcon() {
+ PackageManager pm = getContext().getPackageManager();
+ String systemName = pm.getNameForUid(android.os.Process.SYSTEM_UID);
+
+ Drawable drawable = pm.getDefaultActivityIcon();
+ if (mConfig == null) {
+ drawable.setAlpha(0);
+ } else if (mConfig.creatorName.equals(systemName)) {
+ drawable = getContext().getApplicationInfo().loadIcon(pm);
+ } else {
+ try {
+ drawable = pm.getApplicationIcon(mConfig.creatorName);
+ } catch (NameNotFoundException nnfe) {
+ // use default app icon
+ }
+ }
+
+ setIcon(drawable);
+ }
+
@Override
public int compareTo(Preference preference) {
if (!(preference instanceof AccessPoint)) {
private static final int MENU_ID_FORGET = Menu.FIRST + 7;
private static final int MENU_ID_MODIFY = Menu.FIRST + 8;
private static final int MENU_ID_WRITE_NFC = Menu.FIRST + 9;
+ private static final int MENU_ID_APPS = Menu.FIRST + 10;
private static final String KEY_ASSISTANT_DISMISS_PLATFORM = "assistant_dismiss_platform";
private TextView mEmptyView;
+ private boolean showAppIcons = false;
+ private MenuItem showAppMenuItem = null;
+
// this boolean extra specifies whether to disable the Next button when not connected. Used by
// account creation outside of setup wizard.
private static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect";
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+ showAppMenuItem = menu.add(Menu.NONE, MENU_ID_APPS, 0, R.string.wifi_menu_apps);
+ showAppMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
ta.recycle();
}
null);
}
return true;
+ case MENU_ID_APPS:
+ showAppIcons = !showAppIcons;
+
+ if (showAppIcons) {
+ showAppMenuItem.setTitle(R.string.wifi_menu_apps_strength);
+ } else {
+ showAppMenuItem.setTitle(R.string.wifi_menu_apps);
+ }
+ updateAccessPoints();
+ return true;
}
return super.onOptionsItemSelected(item);
}
}
for (AccessPoint accessPoint : accessPoints) {
+ if (showAppIcons) {
+ accessPoint.showAppIcon();
+ }
+
// Ignore access points that are out of range.
if (accessPoint.getLevel() != -1) {
getPreferenceScreen().addPreference(accessPoint);