Bug 1323952 - Preferences: Set default 'compact tabs' value based on experiment. r?ahunt,nevin
MozReview-Commit-ID: EbE1Lrk90bc
--- 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>