summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/UserDictionarySettings.java14
-rw-r--r--src/com/android/settings/location/SettingsInjector.java97
-rw-r--r--src/com/android/settings/wifi/AccessPoint.java7
-rw-r--r--src/com/android/settings/wifi/WifiDialog.java2
-rw-r--r--src/com/android/settings/wifi/WifiSettings.java33
-rw-r--r--src/com/android/settings/wifi/WifiSetupActivity.java22
-rw-r--r--src/com/android/settings/wifi/p2p/WifiP2pPeer.java7
7 files changed, 102 insertions, 80 deletions
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index 9f6df50..da12004 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -16,6 +16,9 @@
package com.android.settings;
+import com.android.settings.inputmethod.UserDictionaryAddWordContents;
+import com.android.settings.inputmethod.UserDictionarySettingsUtils;
+
import android.app.ListFragment;
import android.content.ContentResolver;
import android.content.Context;
@@ -37,9 +40,6 @@ import android.widget.SectionIndexer;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
-import com.android.settings.inputmethod.UserDictionaryAddWordContents;
-import com.android.settings.inputmethod.UserDictionarySettingsUtils;
-
import java.util.Locale;
public class UserDictionarySettings extends ListFragment {
@@ -165,7 +165,7 @@ public class UserDictionarySettings extends ListFragment {
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
MenuItem actionItem =
menu.add(0, OPTIONS_MENU_ADD, 0, R.string.user_dict_settings_add_menu_title)
- .setIcon(R.drawable.ic_menu_add);
+ .setIcon(R.drawable.ic_menu_add_dark);
actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
}
@@ -236,8 +236,9 @@ public class UserDictionarySettings extends ListFragment {
private AlphabetIndexer mIndexer;
- private ViewBinder mViewBinder = new ViewBinder() {
+ private final ViewBinder mViewBinder = new ViewBinder() {
+ @Override
public boolean setViewValue(View v, Cursor c, int columnIndex) {
if (columnIndex == INDEX_SHORTCUT) {
final String shortcut = c.getString(INDEX_SHORTCUT);
@@ -268,14 +269,17 @@ public class UserDictionarySettings extends ListFragment {
setViewBinder(mViewBinder);
}
+ @Override
public int getPositionForSection(int section) {
return null == mIndexer ? 0 : mIndexer.getPositionForSection(section);
}
+ @Override
public int getSectionForPosition(int position) {
return null == mIndexer ? 0 : mIndexer.getSectionForPosition(position);
}
+ @Override
public Object[] getSections() {
return null == mIndexer ? null : mIndexer.getSections();
}
diff --git a/src/com/android/settings/location/SettingsInjector.java b/src/com/android/settings/location/SettingsInjector.java
index 7bd190c..5929466 100644
--- a/src/com/android/settings/location/SettingsInjector.java
+++ b/src/com/android/settings/location/SettingsInjector.java
@@ -30,6 +30,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Messenger;
+import android.os.SystemClock;
import android.preference.Preference;
import android.util.AttributeSet;
import android.util.Log;
@@ -42,7 +43,6 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
@@ -67,22 +67,6 @@ class SettingsInjector {
private static final long INJECTED_STATUS_UPDATE_TIMEOUT_MILLIS = 1000;
/**
- * Intent action marking the receiver as injecting a setting
- */
- public static final String RECEIVER_INTENT = "com.android.settings.InjectedLocationSetting";
-
- /**
- * Name of the meta-data tag used to specify the resource file that includes the settings
- * attributes.
- */
- public static final String META_DATA_NAME = "com.android.settings.InjectedLocationSetting";
-
- /**
- * Name of the XML tag that includes the attributes for the setting.
- */
- public static final String ATTRIBUTES_NAME = "injected-location-setting";
-
- /**
* {@link Message#what} value for starting to load status values
* in case we aren't already in the process of loading them.
*/
@@ -115,7 +99,8 @@ class SettingsInjector {
/**
* Returns a list with one {@link InjectedSetting} object for each {@link android.app.Service}
- * that responds to {@link #RECEIVER_INTENT} and provides the expected setting metadata.
+ * that responds to {@link SettingInjectorService#ACTION_SERVICE_INTENT} and provides the
+ * expected setting metadata.
*
* Duplicates some code from {@link android.content.pm.RegisteredServicesCache}.
*
@@ -123,37 +108,38 @@ class SettingsInjector {
*/
private List<InjectedSetting> getSettings() {
PackageManager pm = mContext.getPackageManager();
- Intent receiverIntent = new Intent(RECEIVER_INTENT);
+ Intent intent = new Intent(SettingInjectorService.ACTION_SERVICE_INTENT);
List<ResolveInfo> resolveInfos =
- pm.queryIntentServices(receiverIntent, PackageManager.GET_META_DATA);
+ pm.queryIntentServices(intent, PackageManager.GET_META_DATA);
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Found services: " + resolveInfos);
}
List<InjectedSetting> settings = new ArrayList<InjectedSetting>(resolveInfos.size());
- for (ResolveInfo receiver : resolveInfos) {
+ for (ResolveInfo resolveInfo : resolveInfos) {
try {
- InjectedSetting info = parseServiceInfo(receiver, pm);
- if (info == null) {
- Log.w(TAG, "Unable to load service info " + receiver);
+ InjectedSetting setting = parseServiceInfo(resolveInfo, pm);
+ if (setting == null) {
+ Log.w(TAG, "Unable to load service info " + resolveInfo);
} else {
- if (Log.isLoggable(TAG, Log.INFO)) {
- Log.i(TAG, "Loaded service info: " + info);
- }
- settings.add(info);
+ settings.add(setting);
}
} catch (XmlPullParserException e) {
- Log.w(TAG, "Unable to load service info " + receiver, e);
+ Log.w(TAG, "Unable to load service info " + resolveInfo, e);
} catch (IOException e) {
- Log.w(TAG, "Unable to load service info " + receiver, e);
+ Log.w(TAG, "Unable to load service info " + resolveInfo, e);
}
}
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Loaded settings: " + settings);
+ }
return settings;
}
/**
- * Parses {@link InjectedSetting} from the attributes of the {@link #META_DATA_NAME} tag.
+ * Parses {@link InjectedSetting} from the attributes of the
+ * {@link SettingInjectorService#META_DATA_NAME} tag.
*
* Duplicates some code from {@link android.content.pm.RegisteredServicesCache}.
*/
@@ -164,9 +150,9 @@ class SettingsInjector {
XmlResourceParser parser = null;
try {
- parser = si.loadXmlMetaData(pm, META_DATA_NAME);
+ parser = si.loadXmlMetaData(pm, SettingInjectorService.META_DATA_NAME);
if (parser == null) {
- throw new XmlPullParserException("No " + META_DATA_NAME
+ throw new XmlPullParserException("No " + SettingInjectorService.META_DATA_NAME
+ " meta-data for " + service + ": " + si);
}
@@ -178,9 +164,9 @@ class SettingsInjector {
}
String nodeName = parser.getName();
- if (!ATTRIBUTES_NAME.equals(nodeName)) {
+ if (!SettingInjectorService.ATTRIBUTES_NAME.equals(nodeName)) {
throw new XmlPullParserException("Meta-data does not start with "
- + ATTRIBUTES_NAME + " tag");
+ + SettingInjectorService.ATTRIBUTES_NAME + " tag");
}
Resources res = pm.getResourcesForApplication(si.applicationInfo);
@@ -201,15 +187,15 @@ class SettingsInjector {
private static InjectedSetting parseAttributes(
String packageName, String className, Resources res, AttributeSet attrs) {
- TypedArray sa = res.obtainAttributes(attrs, android.R.styleable.InjectedLocationSetting);
+ TypedArray sa = res.obtainAttributes(attrs, android.R.styleable.SettingInjectorService);
try {
// Note that to help guard against malicious string injection, we do not allow dynamic
// specification of the label (setting title)
- final String label = sa.getString(android.R.styleable.InjectedLocationSetting_label);
+ final String label = sa.getString(android.R.styleable.SettingInjectorService_title);
final int iconId = sa.getResourceId(
- android.R.styleable.InjectedLocationSetting_icon, 0);
+ android.R.styleable.SettingInjectorService_icon, 0);
final String settingsActivity =
- sa.getString(android.R.styleable.InjectedLocationSetting_settingsActivity);
+ sa.getString(android.R.styleable.SettingInjectorService_settingsActivity);
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "parsed label: " + label + ", iconId: " + iconId
+ ", settingsActivity: " + settingsActivity);
@@ -306,6 +292,7 @@ class SettingsInjector {
break;
case WHAT_RECEIVED_STATUS:
final Setting receivedSetting = (Setting) msg.obj;
+ receivedSetting.maybeLogElapsedTime();
mSettingsBeingLoaded.remove(receivedSetting);
mTimedOutSettings.remove(receivedSetting);
removeMessages(WHAT_TIMEOUT, receivedSetting);
@@ -357,8 +344,7 @@ class SettingsInjector {
iter.remove();
// Request the status value
- Intent intent = setting.createUpdatingIntent();
- mContext.startService(intent);
+ setting.startService();
mSettingsBeingLoaded.add(setting);
// Ensure that if receiving the status value takes too long, we start loading the
@@ -390,6 +376,7 @@ class SettingsInjector {
public final InjectedSetting setting;
public final Preference preference;
+ public long startMillis;
private Setting(InjectedSetting setting, Preference preference) {
this.setting = setting;
@@ -406,7 +393,7 @@ class SettingsInjector {
/**
* Returns true if they both have the same {@link #setting} value. Ignores mutable
- * preference so that it's safe to use in sets.
+ * {@link #preference} and {@link #startMillis} so that it's safe to use in sets.
*/
@Override
public boolean equals(Object o) {
@@ -419,11 +406,10 @@ class SettingsInjector {
}
/**
- * Creates an Intent to ask the receiver for the current status for the setting, and display
- * it when it replies.
+ * Starts the service to fetch for the current status for the setting, and updates the
+ * preference when the service replies.
*/
- public Intent createUpdatingIntent() {
- final Intent receiverIntent = setting.getServiceIntent();
+ public void startService() {
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -440,12 +426,25 @@ class SettingsInjector {
}
};
Messenger messenger = new Messenger(handler);
- receiverIntent.putExtra(SettingInjectorService.MESSENGER_KEY, messenger);
+
+ Intent intent = setting.getServiceIntent();
+ intent.putExtra(SettingInjectorService.MESSENGER_KEY, messenger);
+
if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, setting + ": sending rcv-intent: " + receiverIntent
+ Log.d(TAG, setting + ": sending update intent: " + intent
+ ", handler: " + handler);
+ startMillis = SystemClock.elapsedRealtime();
+ } else {
+ startMillis = 0;
+ }
+ mContext.startService(intent);
+ }
+
+ public void maybeLogElapsedTime() {
+ if (Log.isLoggable(TAG, Log.DEBUG) && startMillis != 0) {
+ long end = SystemClock.elapsedRealtime();
+ Log.d(TAG, this + " update took " + (end - startMillis) + " millis");
}
- return receiverIntent;
}
}
}
diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java
index 20146eb..c4d1f7c 100644
--- a/src/com/android/settings/wifi/AccessPoint.java
+++ b/src/com/android/settings/wifi/AccessPoint.java
@@ -16,6 +16,8 @@
package com.android.settings.wifi;
+import com.android.settings.R;
+
import android.content.Context;
import android.net.NetworkInfo.DetailedState;
import android.net.wifi.ScanResult;
@@ -29,8 +31,6 @@ import android.util.Log;
import android.view.View;
import android.widget.ImageView;
-import com.android.settings.R;
-
class AccessPoint extends Preference {
static final String TAG = "Settings.AccessPoint";
@@ -211,7 +211,8 @@ class AccessPoint extends Preference {
signal.setImageDrawable(null);
} else {
signal.setImageLevel(getLevel());
- signal.setImageResource(R.drawable.wifi_signal);
+ signal.setImageDrawable(getContext().getTheme().obtainStyledAttributes(
+ new int[] {R.attr.wifi_signal}).getDrawable(0));
signal.setImageState((security != SECURITY_NONE) ?
STATE_SECURED : STATE_NONE, true);
}
diff --git a/src/com/android/settings/wifi/WifiDialog.java b/src/com/android/settings/wifi/WifiDialog.java
index 82b0cc6..f1720c1 100644
--- a/src/com/android/settings/wifi/WifiDialog.java
+++ b/src/com/android/settings/wifi/WifiDialog.java
@@ -38,7 +38,7 @@ class WifiDialog extends AlertDialog implements WifiConfigUiBase {
public WifiDialog(Context context, DialogInterface.OnClickListener listener,
AccessPoint accessPoint, boolean edit) {
- super(context, R.style.Theme_WifiDialog);
+ super(context);
mEdit = edit;
mListener = listener;
mAccessPoint = accessPoint;
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 9fc1010..1caf58b 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -19,12 +19,9 @@ package com.android.settings.wifi;
import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
+import com.android.settings.R;
+import com.android.settings.RestrictedSettingsFragment;
+import com.android.settings.wifi.p2p.WifiP2pSettings;
import android.app.ActionBar;
import android.app.Activity;
@@ -37,6 +34,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.res.Resources;
+import android.content.res.TypedArray;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
@@ -76,9 +74,12 @@ import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
-import com.android.settings.R;
-import com.android.settings.RestrictedSettingsFragment;
-import com.android.settings.wifi.p2p.WifiP2pSettings;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* Two types of UI are provided here.
@@ -134,7 +135,7 @@ public class WifiSettings extends RestrictedSettingsFragment
private DetailedState mLastState;
private WifiInfo mLastInfo;
- private AtomicBoolean mConnected = new AtomicBoolean(false);
+ private final AtomicBoolean mConnected = new AtomicBoolean(false);
private WifiDialog mDialog;
@@ -447,10 +448,11 @@ public class WifiSettings extends RestrictedSettingsFragment
if (isRestrictedAndNotPinProtected()) return;
final boolean wifiIsEnabled = mWifiManager.isWifiEnabled();
+ TypedArray ta = getActivity().getTheme().obtainStyledAttributes(
+ new int[] {R.attr.ic_menu_add, R.attr.ic_wps});
if (mSetupWizardMode) {
- // FIXME: add setIcon() when graphics are available
menu.add(Menu.NONE, MENU_ID_WPS_PBC, 0, R.string.wifi_menu_wps_pbc)
- .setIcon(R.drawable.ic_wps)
+ .setIcon(ta.getDrawable(1))
.setEnabled(wifiIsEnabled)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.add(Menu.NONE, MENU_ID_ADD_NETWORK, 0, R.string.wifi_add_network)
@@ -458,11 +460,11 @@ public class WifiSettings extends RestrictedSettingsFragment
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
} else {
menu.add(Menu.NONE, MENU_ID_WPS_PBC, 0, R.string.wifi_menu_wps_pbc)
- .setIcon(R.drawable.ic_wps)
+ .setIcon(ta.getDrawable(1))
.setEnabled(wifiIsEnabled)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADD_NETWORK, 0, R.string.wifi_add_network)
- .setIcon(R.drawable.ic_menu_add)
+ .setIcon(ta.getDrawable(0))
.setEnabled(wifiIsEnabled)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.wifi_menu_scan)
@@ -481,6 +483,7 @@ public class WifiSettings extends RestrictedSettingsFragment
//.setIcon(android.R.drawable.ic_menu_manage)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
}
+ ta.recycle();
super.onCreateOptionsMenu(menu, inflater);
}
@@ -808,7 +811,7 @@ public class WifiSettings extends RestrictedSettingsFragment
/** A restricted multimap for use in constructAccessPoints */
private class Multimap<K,V> {
- private HashMap<K,List<V>> store = new HashMap<K,List<V>>();
+ private final HashMap<K,List<V>> store = new HashMap<K,List<V>>();
/** retrieve a non-null list of values with key K */
List<V> getAll(K key) {
List<V> values = store.get(key);
diff --git a/src/com/android/settings/wifi/WifiSetupActivity.java b/src/com/android/settings/wifi/WifiSetupActivity.java
index 8415954..1739750 100644
--- a/src/com/android/settings/wifi/WifiSetupActivity.java
+++ b/src/com/android/settings/wifi/WifiSetupActivity.java
@@ -17,7 +17,25 @@ package com.android.settings.wifi;
import com.android.settings.ButtonBarHandler;
-// dummy class for setup wizard theme
+import android.content.res.Resources;
+
public class WifiSetupActivity extends WifiPickerActivity implements ButtonBarHandler {
+ // Extra containing the resource name of the theme to be used
+ private static final String EXTRA_THEME = "theme";
+ private static final String THEME_HOLO = "holo";
+ private static final String THEME_HOLO_LIGHT = "holo_light";
+
+ // Style resources containing theme settings
+ private static final String RESOURCE_THEME_DARK = "SetupWizardWifiTheme";
+ private static final String RESOURCE_THEME_LIGHT = "SetupWizardWifiTheme.Light";
-} \ No newline at end of file
+ @Override
+ protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+ String themeName = getIntent().getStringExtra(EXTRA_THEME);
+ if (themeName != null && themeName.equalsIgnoreCase(THEME_HOLO_LIGHT)) {
+ resid = getResources().getIdentifier(RESOURCE_THEME_LIGHT, "style",
+ getPackageName());
+ }
+ super.onApplyThemeResource(theme, resid, first);
+ }
+}
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pPeer.java b/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
index 1eb810e..a364021 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
@@ -20,21 +20,18 @@ import com.android.settings.R;
import android.content.Context;
import android.net.wifi.WifiManager;
-import android.net.wifi.p2p.WifiP2pManager;
import android.net.wifi.p2p.WifiP2pDevice;
import android.preference.Preference;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
-import java.util.Comparator;
-
public class WifiP2pPeer extends Preference {
private static final int[] STATE_SECURED = {R.attr.state_encrypted};
public WifiP2pDevice device;
- private int mRssi;
+ private final int mRssi;
private ImageView mSignal;
private static final int SIGNAL_LEVELS = 4;
@@ -57,7 +54,7 @@ public class WifiP2pPeer extends Preference {
if (mRssi == Integer.MAX_VALUE) {
mSignal.setImageDrawable(null);
} else {
- mSignal.setImageResource(R.drawable.wifi_signal);
+ mSignal.setImageResource(R.drawable.wifi_signal_dark);
mSignal.setImageState(STATE_SECURED, true);
}
refresh();