[2/2] OmniGears: move dashboard layout options inside OG

looks currently odd to have the context menu in every page

Change-Id: Ia5a978935cdf75a93e7d334503a0289002d59b8d
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 105b4e2..88184ae 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -605,4 +605,9 @@
     <string name="logcat_app_summary">Start app to collect logs</string>
     <string name="omni_theme_title">Omni Light/Dark theme</string>
     <string name="omni_theme_summary">Substratum based theme</string>
+
+    <string name="show_dashboard_columns_title">Use columns layout</string>
+    <string name="show_dashboard_columns_summary">In settings main page</string>
+    <string name="hide_dashboard_summary_title">Hide summary</string>
+    <string name="hide_dashboard_summary_summary">In settings main page</string>
 </resources>
diff --git a/res/xml/more_settings.xml b/res/xml/more_settings.xml
index 46ca535..a193dea 100644
--- a/res/xml/more_settings.xml
+++ b/res/xml/more_settings.xml
@@ -28,6 +28,16 @@
                 android:title="@string/volume_dialog_headers_title"
                 android:summary="@string/volume_dialog_headers_summary"
                 android:defaultValue="true" />
+            <SwitchPreference
+                android:key="show_dashboard_columns"
+                android:title="@string/show_dashboard_columns_title"
+                android:summary="@string/show_dashboard_columns_summary"
+                android:persistent="false" />
+            <SwitchPreference
+                android:key="hide_dashboard_summary"
+                android:title="@string/hide_dashboard_summary_title"
+                android:summary="@string/hide_dashboard_summary_summary"
+                android:persistent="false" />
 
         </PreferenceCategory>
 
diff --git a/src/org/omnirom/omnigears/moresettings/MoreSettings.java b/src/org/omnirom/omnigears/moresettings/MoreSettings.java
index 1c8c1e3..ea8dd00 100644
--- a/src/org/omnirom/omnigears/moresettings/MoreSettings.java
+++ b/src/org/omnirom/omnigears/moresettings/MoreSettings.java
@@ -19,17 +19,21 @@
 package org.omnirom.omnigears.moresettings;
 
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.support.v7.preference.ListPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceCategory;
 import android.support.v7.preference.PreferenceScreen;
+import android.support.v7.preference.Preference.OnPreferenceChangeListener;
+import android.support.v14.preference.SwitchPreference;
 import android.provider.SearchIndexableResource;
 import android.util.Log;
 
 import com.android.internal.util.omni.PackageUtils;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.internal.logging.MetricsLogger;
@@ -42,6 +46,10 @@
 
 public class MoreSettings extends SettingsPreferenceFragment implements Indexable {
     private static final String TAG = "MoreSettings";
+    private static final String KEY_SHOW_DASHBOARD_COLUMNS = "show_dashboard_columns";
+    private static final String KEY_HIDE_DASHBOARD_SUMMARY = "hide_dashboard_summary";
+
+    private SharedPreferences mAppPreferences;
 
     @Override
     public int getMetricsCategory() {
@@ -60,6 +68,30 @@
                 systemPrefs.removePreference(logcatApp);
             }
         }
+        mAppPreferences = getActivity().getSharedPreferences(SettingsActivity.APP_PREFERENCES_NAME,
+                Context.MODE_PRIVATE);
+
+        SwitchPreference showColumnsLayout = (SwitchPreference) findPreference(KEY_SHOW_DASHBOARD_COLUMNS);
+        showColumnsLayout.setChecked(mAppPreferences.getInt(SettingsActivity.KEY_COLUMNS_COUNT, 1) == 2);
+        showColumnsLayout.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+            public boolean onPreferenceChange(Preference preference, Object newValue) {
+                if ((Boolean) newValue ) {
+                    mAppPreferences.edit().putInt(SettingsActivity.KEY_COLUMNS_COUNT, 2).commit();
+                } else {
+                    mAppPreferences.edit().putInt(SettingsActivity.KEY_COLUMNS_COUNT, 1).commit();
+                }
+                return true;
+            }
+        });
+
+        SwitchPreference hideColumnSummary = (SwitchPreference) findPreference(KEY_HIDE_DASHBOARD_SUMMARY);
+        hideColumnSummary.setChecked(mAppPreferences.getBoolean(SettingsActivity.KEY_HIDE_SUMMARY, false));
+        hideColumnSummary.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+            public boolean onPreferenceChange(Preference preference, Object newValue) {
+                mAppPreferences.edit().putBoolean(SettingsActivity.KEY_HIDE_SUMMARY, ((Boolean) newValue)).commit();
+                return true;
+            }
+        });
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =