summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java55
1 files changed, 24 insertions, 31 deletions
diff --git a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
index 34a344c..2fc1243 100644
--- a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
+++ b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
@@ -25,12 +25,12 @@ import android.app.Activity;
import android.app.ActivityOptions;
import android.app.Fragment;
import android.app.FragmentManager;
-import android.content.ContentQueryMap;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
-import android.database.Cursor;
+import android.database.ContentObserver;
import android.os.Bundle;
+import android.os.Handler;
import android.provider.Settings;
import android.service.persistentdata.PersistentDataBlockManager;
import android.util.Log;
@@ -42,8 +42,6 @@ import com.cyanogenmod.setupwizard.ui.LoadingFragment;
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
import java.io.IOException;
-import java.util.Observable;
-import java.util.Observer;
public class GmsAccountPage extends SetupPage {
@@ -53,32 +51,33 @@ public class GmsAccountPage extends SetupPage {
private static final String RESTORE_WIZARD_SCRIPT =
"android.resource://com.google.android.setupwizard/xml/wizard_script";
- private ContentQueryMap mContentQueryMap;
- private Observer mSettingsObserver;
-
private boolean mBackupEnabled = false;
private Fragment mFragment;
+ private ContentResolver mContentResolver;
public GmsAccountPage(final Context context, SetupDataCallbacks callbacks) {
super(context, callbacks);
- final ContentResolver res = context.getContentResolver();
- mBackupEnabled = Settings.Secure.getInt(res,
- Settings.Secure.BACKUP_ENABLED, 0) == 1;
- mSettingsObserver = new Observer() {
- public void update(Observable o, Object arg) {
- mBackupEnabled = (Settings.Secure.getInt(res,
- Settings.Secure.BACKUP_AUTO_RESTORE, 0) == 1) ||
- (Settings.Secure.getInt(res,
- Settings.Secure.BACKUP_ENABLED, 0) == 1);
- }
- };
- //Cursor settingsCursor = res.query(Settings.Secure.CONTENT_URI, null,
- // "(" + Settings.System.NAME + "=? OR " + Settings.System.NAME + "=?)",
- // new String[]{Settings.Secure.BACKUP_AUTO_RESTORE, Settings.Secure.BACKUP_ENABLED},
- // null);
- //mContentQueryMap = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, null);
- //mContentQueryMap.addObserver(mSettingsObserver);
+ mContentResolver = context.getContentResolver();
+ mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
+ Settings.Secure.BACKUP_AUTO_RESTORE), false, mSettingsObserver);
+ mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
+ Settings.Secure.BACKUP_ENABLED), false, mSettingsObserver);
+ }
+
+ private ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
+ @Override
+ public void onChange(boolean selfChange) {
+ super.onChange(selfChange);
+ onBackupEnabledChanged();
+ }
+ };
+
+ private void onBackupEnabledChanged() {
+ mBackupEnabled = (Settings.Secure.getInt(mContentResolver,
+ Settings.Secure.BACKUP_AUTO_RESTORE, 0) == 1) ||
+ (Settings.Secure.getInt(mContentResolver,
+ Settings.Secure.BACKUP_ENABLED, 0) == 1);
}
@Override
@@ -139,13 +138,7 @@ public class GmsAccountPage extends SetupPage {
@Override
public void onFinishSetup() {
- try {
- if (mContentQueryMap != null) {
- mContentQueryMap.close();
- }
- } catch (Exception e) {
- Log.wtf(TAG, e.toString());
- }
+ mContentResolver.unregisterContentObserver(mSettingsObserver);
}
private void handleResult(int requestCode, int resultCode) {