Bug 1323952 - Preferences: Set default 'compact tabs' value based on experiment. r?ahunt,nevin draft
authorSebastian Kaspari <s.kaspari@gmail.com>
Tue, 20 Dec 2016 19:28:08 +0100
changeset 451567 d6b0862de23b1842e3bc1fe271391a69c8fa3887
parent 451566 065a6905b14c75ebb291d57aa6a433053876f45f
child 540074 b1c3685dd7dc073ff9d8548f1b487dda121ac2d1
push id39231
push users.kaspari@gmail.com
push dateTue, 20 Dec 2016 18:29:17 +0000
reviewersahunt, nevin
bugs1323952
milestone53.0a1
Bug 1323952 - Preferences: Set default 'compact tabs' value based on experiment. r?ahunt,nevin MozReview-Commit-ID: EbE1Lrk90bc
mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
mobile/android/base/resources/xml/preferences_general.xml
--- a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
+++ b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
@@ -10,16 +10,17 @@ import org.mozilla.gecko.AboutPages;
 import org.mozilla.gecko.AdjustConstants;
 import org.mozilla.gecko.AppConstants;
 import org.mozilla.gecko.AppConstants.Versions;
 import org.mozilla.gecko.BrowserApp;
 import org.mozilla.gecko.BrowserLocaleManager;
 import org.mozilla.gecko.DataReportingNotification;
 import org.mozilla.gecko.DynamicToolbar;
 import org.mozilla.gecko.EventDispatcher;
+import org.mozilla.gecko.Experiments;
 import org.mozilla.gecko.GeckoActivityStatus;
 import org.mozilla.gecko.GeckoApp;
 import org.mozilla.gecko.GeckoAppShell;
 import org.mozilla.gecko.GeckoApplication;
 import org.mozilla.gecko.GeckoProfile;
 import org.mozilla.gecko.GeckoSharedPrefs;
 import org.mozilla.gecko.LocaleManager;
 import org.mozilla.gecko.Locales;
@@ -88,16 +89,18 @@ import android.util.Log;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.ListAdapter;
 import android.widget.ListView;
 
+import com.keepsafe.switchboard.SwitchBoard;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
@@ -879,20 +882,28 @@ public class GeckoPreferences
                 } else if (PREFS_CUSTOM_TABS.equals(key) && !AppConstants.MOZ_ANDROID_CUSTOM_TABS) {
                     preferences.removePreference(pref);
                     i--;
                     continue;
                 } else if (PREFS_ACTIVITY_STREAM.equals(key) && !ActivityStream.isUserEligible(this)) {
                     preferences.removePreference(pref);
                     i--;
                     continue;
-                } else if (PREFS_COMPACT_TABS.equals(key) && HardwareUtils.isTablet()) {
-                    preferences.removePreference(pref);
-                    i--;
-                    continue;
+                } else if (PREFS_COMPACT_TABS.equals(key)) {
+                    if (HardwareUtils.isTablet()) {
+                        preferences.removePreference(pref);
+                        i--;
+                        continue;
+                    } else {
+                        final boolean value = GeckoSharedPrefs.forApp(this).getBoolean(GeckoPreferences.PREFS_COMPACT_TABS,
+                                SwitchBoard.isInExperiment(this, Experiments.COMPACT_TABS));
+
+                        pref.setDefaultValue(value);
+                        ((SwitchPreference) pref).setChecked(value);
+                    }
                 }
 
                 // Some Preference UI elements are not actually preferences,
                 // but they require a key to work correctly. For example,
                 // "Clear private data" requires a key for its state to be
                 // saved when the orientation changes. It uses the
                 // "android.not_a_preference.privacy.clear" key - which doesn't
                 // exist in Gecko - to satisfy this requirement.
--- a/mobile/android/base/resources/xml/preferences_general.xml
+++ b/mobile/android/base/resources/xml/preferences_general.xml
@@ -30,15 +30,13 @@
 
     <SwitchPreference android:key="android.not_a_preference.tab_queue"
                       android:title="@string/pref_tab_queue_title"
                       android:summary="@string/pref_tab_queue_summary"
                       android:defaultValue="false" />
 
     <SwitchPreference android:key="android.not_a_preference.compact_tabs"
                       android:title="@string/pref_compact_tabs"
-                      android:summary="@string/pref_compact_tabs_summary"
-                      android:defaultValue="false"
-                      android:persistent="true"/>
+                      android:summary="@string/pref_compact_tabs_summary" />
 
 
 </PreferenceScreen>