Loading src/com/android/settings/location/LocationSettingsBase.java +33 −39 Original line number Diff line number Diff line Loading @@ -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); } private static final int LOADER_ID_LOCATION_MODE = 1; @Override public void onPause() { super.onPause(); mContentQueryMap.deleteObserver(mSettingsObserver); } @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. */ Loading Loading @@ -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. } } src/com/android/settings/location/SettingsInjector.java +1 −1 Original line number Diff line number Diff line Loading @@ -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. Loading Loading
src/com/android/settings/location/LocationSettingsBase.java +33 −39 Original line number Diff line number Diff line Loading @@ -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); } private static final int LOADER_ID_LOCATION_MODE = 1; @Override public void onPause() { super.onPause(); mContentQueryMap.deleteObserver(mSettingsObserver); } @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. */ Loading Loading @@ -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. } }
src/com/android/settings/location/SettingsInjector.java +1 −1 Original line number Diff line number Diff line Loading @@ -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. Loading