summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/settings/location/LocationSettingsBase.java72
-rw-r--r--src/com/android/settings/location/SettingsInjector.java2
2 files changed, 34 insertions, 40 deletions
diff --git a/src/com/android/settings/location/LocationSettingsBase.java b/src/com/android/settings/location/LocationSettingsBase.java
index 8a28039..81e841a 100644
--- a/src/com/android/settings/location/LocationSettingsBase.java
+++ b/src/com/android/settings/location/LocationSettingsBase.java
@@ -16,60 +16,32 @@
package com.android.settings.location;
-import android.content.ContentQueryMap;
+import android.app.LoaderManager.LoaderCallbacks;
import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Loader;
import android.database.Cursor;
+import android.os.Bundle;
import android.os.UserManager;
import android.provider.Settings;
-
import android.util.Log;
-import com.android.settings.SettingsPreferenceFragment;
-import java.util.Observable;
-import java.util.Observer;
+import com.android.settings.SettingsPreferenceFragment;
/**
* A base class that listens to location settings change and modifies location
* settings.
*/
-public abstract class LocationSettingsBase extends SettingsPreferenceFragment {
+public abstract class LocationSettingsBase extends SettingsPreferenceFragment
+ implements LoaderCallbacks<Cursor> {
private static final String TAG = "LocationSettingsBase";
- private ContentQueryMap mContentQueryMap;
- private Observer mSettingsObserver;
-
- @Override
- public void onStart() {
- super.onStart();
- // listen for Location Manager settings changes
- Cursor settingsCursor = getContentResolver().query(Settings.Secure.CONTENT_URI, null,
- "(" + Settings.System.NAME + "=?)",
- new String[] { Settings.Secure.LOCATION_PROVIDERS_ALLOWED },
- null);
- mContentQueryMap = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, null);
- mSettingsObserver = new Observer() {
- @Override
- public void update(Observable o, Object arg) {
- refreshLocationMode();
- }
- };
- }
-
- @Override
- public void onResume() {
- super.onResume();
- mContentQueryMap.addObserver(mSettingsObserver);
- }
- @Override
- public void onPause() {
- super.onPause();
- mContentQueryMap.deleteObserver(mSettingsObserver);
- }
+ private static final int LOADER_ID_LOCATION_MODE = 1;
@Override
- public void onStop() {
- super.onStop();
- mContentQueryMap.close();
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ getLoaderManager().initLoader(LOADER_ID_LOCATION_MODE, null, this);
}
/** Called when location mode has changed. */
@@ -101,4 +73,26 @@ public abstract class LocationSettingsBase extends SettingsPreferenceFragment {
Settings.Secure.LOCATION_MODE_OFF);
onModeChanged(mode, isRestricted());
}
+
+ @Override
+ public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+ switch (id) {
+ case LOADER_ID_LOCATION_MODE:
+ return new CursorLoader(getActivity(), Settings.Secure.CONTENT_URI, null,
+ "(" + Settings.System.NAME + "=?)",
+ new String[] { Settings.Secure.LOCATION_MODE }, null);
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+ refreshLocationMode();
+ }
+
+ @Override
+ public void onLoaderReset(Loader<Cursor> loader) {
+ // Nothing to do here.
+ }
}
diff --git a/src/com/android/settings/location/SettingsInjector.java b/src/com/android/settings/location/SettingsInjector.java
index 69de713..7bd190c 100644
--- a/src/com/android/settings/location/SettingsInjector.java
+++ b/src/com/android/settings/location/SettingsInjector.java
@@ -322,7 +322,7 @@ class SettingsInjector {
Log.wtf(TAG, "Unexpected what: " + msg);
}
- // Decide whether to load addiitonal settings based on the new state. Start by seeing
+ // Decide whether to load additional settings based on the new state. Start by seeing
// if we have headroom to load another setting.
if (mSettingsBeingLoaded.size() > 0 || mTimedOutSettings.size() > 1) {
// Don't load any more settings until one of the pending settings has completed.