summaryrefslogtreecommitdiffstats
path: root/src/com/android/mail
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/mail')
-rw-r--r--src/com/android/mail/preferences/MailPrefs.java14
-rw-r--r--src/com/android/mail/ui/settings/GeneralPrefsFragment.java28
-rw-r--r--src/com/android/mail/ui/settings/MailPreferenceActivity.java62
3 files changed, 79 insertions, 25 deletions
diff --git a/src/com/android/mail/preferences/MailPrefs.java b/src/com/android/mail/preferences/MailPrefs.java
index 2eb786906..8e73ed3bc 100644
--- a/src/com/android/mail/preferences/MailPrefs.java
+++ b/src/com/android/mail/preferences/MailPrefs.java
@@ -25,6 +25,7 @@ import com.android.mail.providers.Account;
import com.android.mail.providers.UIProvider;
import com.android.mail.utils.LogUtils;
import com.android.mail.widget.BaseWidgetProvider;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
@@ -137,15 +138,16 @@ public final class MailPrefs extends VersionedPrefs {
public static final String ARCHIVE_AND_DELETE = "archive-and-delete";
}
- public static MailPrefs get(Context c) {
+ public static MailPrefs get(final Context c) {
if (sInstance == null) {
- sInstance = new MailPrefs(c);
+ sInstance = new MailPrefs(c, PREFS_NAME);
}
return sInstance;
}
- private MailPrefs(Context c) {
- super(c, PREFS_NAME);
+ @VisibleForTesting
+ public MailPrefs(final Context c, final String prefsName) {
+ super(c, prefsName);
mSnapHeaderDefault = c.getResources().getInteger(R.integer.prefDefault_snapHeader);
}
@@ -494,7 +496,7 @@ public final class MailPrefs extends VersionedPrefs {
}
public void setConversationOverviewMode(final boolean overviewMode) {
- getEditor().putBoolean(PreferenceKeys.CONVERSATION_OVERVIEW_MODE, overviewMode);
+ getEditor().putBoolean(PreferenceKeys.CONVERSATION_OVERVIEW_MODE, overviewMode).apply();
}
public boolean getConversationOverviewMode() {
@@ -507,7 +509,7 @@ public final class MailPrefs extends VersionedPrefs {
}
public void setSnapHeaderMode(final int snapHeaderMode) {
- getEditor().putInt(PreferenceKeys.SNAP_HEADER_MODE, snapHeaderMode);
+ getEditor().putInt(PreferenceKeys.SNAP_HEADER_MODE, snapHeaderMode).apply();
}
public int getSnapHeaderMode() {
diff --git a/src/com/android/mail/ui/settings/GeneralPrefsFragment.java b/src/com/android/mail/ui/settings/GeneralPrefsFragment.java
index e4b176bad..b3ed97373 100644
--- a/src/com/android/mail/ui/settings/GeneralPrefsFragment.java
+++ b/src/com/android/mail/ui/settings/GeneralPrefsFragment.java
@@ -41,6 +41,7 @@ import com.android.mail.providers.UIProvider.AutoAdvance;
import com.android.mail.providers.UIProvider.SnapHeaderValue;
import com.android.mail.utils.LogUtils;
import com.android.mail.R;
+import com.android.mail.utils.Utils;
import com.google.common.annotations.VisibleForTesting;
/**
@@ -53,6 +54,8 @@ public class GeneralPrefsFragment extends MailPreferenceFragment
static final String AUTO_ADVANCE_WIDGET = "auto-advance-widget";
static final String SNAP_HEADER_MODE_WIDGET = "snap-header-mode-widget";
+ static final String CALLED_FROM_TEST = "called-from-test";
+
// Category for removal actions
protected static final String REMOVAL_ACTIONS_GROUP = "removal-actions-group";
@@ -61,32 +64,18 @@ public class GeneralPrefsFragment extends MailPreferenceFragment
private AlertDialog mClearSearchHistoryDialog;
private ListPreference mAutoAdvance;
- @VisibleForTesting
- static final int[] AUTO_ADVANCE_VALUES = {
+ private static final int[] AUTO_ADVANCE_VALUES = {
AutoAdvance.NEWER,
AutoAdvance.OLDER,
AutoAdvance.LIST
};
private ListPreference mSnapHeader;
- @VisibleForTesting
- static final int[] SNAP_HEADER_VALUES = {
+ private static final int[] SNAP_HEADER_VALUES = {
SnapHeaderValue.ALWAYS,
SnapHeaderValue.PORTRAIT_ONLY,
SnapHeaderValue.NEVER
};
- private final boolean mCalledFromTest;
-
- public GeneralPrefsFragment() {
- super();
- mCalledFromTest = false;
- }
-
- @VisibleForTesting
- GeneralPrefsFragment(boolean fromTest) {
- mCalledFromTest = fromTest;
- }
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -103,9 +92,10 @@ public class GeneralPrefsFragment extends MailPreferenceFragment
addPreferencesFromResource(R.xml.general_preferences);
- // Disabling snap headers is just for phones
- if (!mCalledFromTest
- && com.android.mail.utils.Utils.useTabletUI(getActivity().getResources())) {
+ // Disabling snap headers is just for phones and unit tests
+ final Bundle args = getArguments();
+ final boolean calledFromTest = args != null && args.getBoolean(CALLED_FROM_TEST, false);
+ if (!calledFromTest && Utils.useTabletUI(getActivity().getResources())) {
final PreferenceScreen ps = getPreferenceScreen();
ps.removePreference(findPreference(SNAP_HEADER_MODE_WIDGET));
}
diff --git a/src/com/android/mail/ui/settings/MailPreferenceActivity.java b/src/com/android/mail/ui/settings/MailPreferenceActivity.java
new file mode 100644
index 000000000..925b16add
--- /dev/null
+++ b/src/com/android/mail/ui/settings/MailPreferenceActivity.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (C) 2014 Google Inc.
+ * Licensed to The Android Open Source Project.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+package com.android.mail.ui.settings;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+
+import com.android.mail.R;
+import com.google.common.annotations.VisibleForTesting;
+
+import java.lang.ref.WeakReference;
+import java.util.List;
+
+public class MailPreferenceActivity extends PreferenceActivity {
+
+ private WeakReference<GeneralPrefsFragment> mGeneralPrefsFragmentRef;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @VisibleForTesting
+ GeneralPrefsFragment getGeneralPrefsFragment() {
+ return mGeneralPrefsFragmentRef != null ? mGeneralPrefsFragmentRef.get() : null;
+ }
+
+ @Override
+ public void onAttachFragment(Fragment fragment) {
+ super.onAttachFragment(fragment);
+ if (fragment instanceof GeneralPrefsFragment) {
+ mGeneralPrefsFragmentRef =
+ new WeakReference<GeneralPrefsFragment>((GeneralPrefsFragment) fragment);
+ }
+ }
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ return GeneralPrefsFragment.class.getCanonicalName().equals(fragmentName);
+ }
+
+ @Override
+ public void onBuildHeaders(List<Header> target) {
+ loadHeadersFromResource(R.xml.preference_headers, target);
+ }
+}