Build out the SettingsManager model.

Change-Id: Ie831dbf624efc5c7e27924785a0ec193b3ce53bd
diff --git a/src/com/android/camera/PieController.java b/src/com/android/camera/PieController.java
index 6224401..0a7fcc6 100644
--- a/src/com/android/camera/PieController.java
+++ b/src/com/android/camera/PieController.java
@@ -16,12 +16,13 @@
 
 package com.android.camera;
 
-import android.app.Activity;
 import android.graphics.drawable.Drawable;
 import android.util.Log;
 
+import com.android.camera.CameraActivity;
 import com.android.camera.CameraPreference.OnPreferenceChangedListener;
 import com.android.camera.drawable.TextDrawable;
+import com.android.camera.settings.SettingsManager;
 import com.android.camera.ui.PieItem;
 import com.android.camera.ui.PieItem.OnClickListener;
 import com.android.camera.ui.PieRenderer;
@@ -41,7 +42,7 @@
     protected static float CENTER = (float) Math.PI / 2;
     protected static final float SWEEP = 0.06f;
 
-    protected Activity mActivity;
+    protected CameraActivity mActivity;
     protected PreferenceGroup mPreferenceGroup;
     protected OnPreferenceChangedListener mListener;
     protected PieRenderer mRenderer;
@@ -53,7 +54,7 @@
         mListener = listener;
     }
 
-    public PieController(Activity activity, PieRenderer pie) {
+    public PieController(CameraActivity activity, PieRenderer pie) {
         mActivity = activity;
         mRenderer = pie;
         mPreferences = new ArrayList<IconListPreference>();
@@ -75,7 +76,8 @@
 
     protected void setCameraId(int cameraId) {
         ListPreference pref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_ID);
-        pref.setValue("" + cameraId);
+        SettingsManager settingsManager = mActivity.getSettingsManager();
+        settingsManager.setValueFromPreference(pref, "" + cameraId);
     }
 
     protected PieItem makeItem(int resId) {
@@ -90,6 +92,8 @@
     }
 
     public PieItem makeItem(String prefKey) {
+        final SettingsManager settingsManager = mActivity.getSettingsManager();
+
         final IconListPreference pref =
                 (IconListPreference) mPreferenceGroup.findPreference(prefKey);
         if (pref == null) return null;
@@ -97,7 +101,8 @@
         int resid = -1;
         if (!pref.getUseSingleIcon() && iconIds != null) {
             // Each entry has a corresponding icon.
-            int index = pref.findIndexOfValue(pref.getValue());
+            String value = settingsManager.getValueFromPreference(pref);
+            int index = pref.findIndexOfValue(value);
             resid = iconIds[index];
         } else {
             // The preference only has a single icon to represent it.
@@ -122,7 +127,7 @@
                 inner.setOnClickListener(new OnClickListener() {
                     @Override
                     public void onClick(PieItem item) {
-                        pref.setValueIndex(index);
+                        settingsManager.setValueIndexFromPreference(pref, index);
                         reloadPreference(pref);
                         onSettingChanged(pref);
                     }
@@ -138,7 +143,10 @@
         if (pref == null) return null;
         int[] iconIds = pref.getLargeIconIds();
         int resid = -1;
-        int index = pref.findIndexOfValue(pref.getValue());
+        SettingsManager settingsManager = mActivity.getSettingsManager();
+        String value = settingsManager.getValueFromPreference(pref);
+        int index = pref.findIndexOfValue(value);
+
         if (!pref.getUseSingleIcon() && iconIds != null) {
             // Each entry has a corresponding icon.
             resid = iconIds[index];
@@ -161,10 +169,14 @@
                     }
                     IconListPreference pref = (IconListPreference) mPreferenceGroup
                             .findPreference(prefKey);
-                    int index = pref.findIndexOfValue(pref.getValue());
+
+                    SettingsManager settingsManager = mActivity.getSettingsManager();
+                    String value = settingsManager.getValueFromPreference(pref);
+                    int index = pref.findIndexOfValue(value);
+
                     CharSequence[] values = pref.getEntryValues();
                     index = (index + 1) % values.length;
-                    pref.setValueIndex(index);
+                    settingsManager.setValueIndexFromPreference(pref, index);
                     fitem.setLabel(pref.getLabels()[index]);
                     fitem.setImageResource(mActivity,
                             ((IconListPreference) pref).getLargeIconIds()[index]);
@@ -191,7 +203,10 @@
         IconListPreference pref = (IconListPreference) mPreferenceGroup
                 .findPreference(prefKey);
         if (pref != null) {
-            int index = pref.findIndexOfValue(pref.getValue());
+            SettingsManager settingsManager = mActivity.getSettingsManager();
+            String value = settingsManager.getValueFromPreference(pref);
+            int index = pref.findIndexOfValue(value);
+
             item.setLabel(pref.getLabels()[index]);
             item.setImageResource(mActivity,
                     ((IconListPreference) pref).getLargeIconIds()[index]);
@@ -218,7 +233,9 @@
             // Each entry has a corresponding icon.
             int index;
             if (overrideValue == null) {
-                index = pref.findIndexOfValue(pref.getValue());
+                SettingsManager settingsManager = mActivity.getSettingsManager();
+                String value = settingsManager.getValueFromPreference(pref);
+                index = pref.findIndexOfValue(value);
             } else {
                 index = pref.findIndexOfValue(overrideValue);
                 if (index == -1) {