Added setting to disable using the background as (un)read indicator

This commit is contained in:
cketti 2012-10-02 22:56:06 +02:00
parent fad52e6dac
commit 952c40710e
9 changed files with 46 additions and 10 deletions

View File

@ -43,6 +43,8 @@
<attr name="textColorPrimaryRecipientDropdown" format="reference" /> <attr name="textColorPrimaryRecipientDropdown" format="reference" />
<attr name="textColorSecondaryRecipientDropdown" format="reference" /> <attr name="textColorSecondaryRecipientDropdown" format="reference" />
<attr name="backgroundColorChooseAccountHeader" format="color" /> <attr name="backgroundColorChooseAccountHeader" format="color" />
<attr name="messageListReadItemBackgroundColor" format="reference|color"/>
<attr name="messageListUnreadItemBackgroundColor" format="reference|color"/>
</declare-styleable> </declare-styleable>
</resources> </resources>

View File

@ -1147,4 +1147,7 @@ http://k9mail.googlecode.com/
<string name="pull_to_refresh_remote_search_from_local_search_pull">Pull to search server…</string> <string name="pull_to_refresh_remote_search_from_local_search_pull">Pull to search server…</string>
<string name="pull_to_refresh_remote_search_from_local_search_release">Release to search server…</string> <string name="pull_to_refresh_remote_search_from_local_search_release">Release to search server…</string>
<string name="remote_search_unavailable_no_network">Remote search is unavailable without network connectivity.</string> <string name="remote_search_unavailable_no_network">Remote search is unavailable without network connectivity.</string>
<string name="global_settings_background_as_unread_indicator_label">Use background as (un)read indicator</string>
<string name="global_settings_background_as_unread_indicator_summary">Show read and unread messages with different background colors</string>
</resources> </resources>

View File

@ -42,6 +42,8 @@
<item name="iconMenuShowFolders">@drawable/ic_show_folders</item> <item name="iconMenuShowFolders">@drawable/ic_show_folders</item>
<item name="textColorPrimaryRecipientDropdown">@android:color/primary_text_light</item> <item name="textColorPrimaryRecipientDropdown">@android:color/primary_text_light</item>
<item name="textColorSecondaryRecipientDropdown">@android:color/secondary_text_light</item> <item name="textColorSecondaryRecipientDropdown">@android:color/secondary_text_light</item>
<item name="messageListReadItemBackgroundColor">#80cdcdcd</item>
<item name="messageListUnreadItemBackgroundColor">#00ffffff</item>
</style> </style>
<style name="Theme.K9.Dark.Base" parent="Theme.Sherlock"> <style name="Theme.K9.Dark.Base" parent="Theme.Sherlock">
@ -85,6 +87,8 @@
<item name="iconMenuShowFolders">@drawable/ic_show_folders</item> <item name="iconMenuShowFolders">@drawable/ic_show_folders</item>
<item name="textColorPrimaryRecipientDropdown">@android:color/primary_text_dark</item> <item name="textColorPrimaryRecipientDropdown">@android:color/primary_text_dark</item>
<item name="textColorSecondaryRecipientDropdown">@android:color/secondary_text_dark</item> <item name="textColorSecondaryRecipientDropdown">@android:color/secondary_text_dark</item>
<item name="messageListReadItemBackgroundColor">#00000000</item>
<item name="messageListUnreadItemBackgroundColor">#805a5a5a</item>
</style> </style>
<style name="Theme.K9.Light" parent="Theme.K9.Light.Base"> <style name="Theme.K9.Light" parent="Theme.K9.Light.Base">

View File

@ -137,6 +137,12 @@
android:dependency="messagelist_show_contact_name" android:dependency="messagelist_show_contact_name"
/> />
<CheckBoxPreference
android:persistent="false"
android:key="messagelist_background_as_unread_indicator"
android:title="@string/global_settings_background_as_unread_indicator_label"
android:summary="@string/global_settings_background_as_unread_indicator_summary"
/>
</PreferenceCategory> </PreferenceCategory>

View File

@ -204,6 +204,8 @@ public class K9 extends Application {
private static SortType mSortType; private static SortType mSortType;
private static HashMap<SortType, Boolean> mSortAscending = new HashMap<SortType, Boolean>(); private static HashMap<SortType, Boolean> mSortAscending = new HashMap<SortType, Boolean>();
private static boolean sUseBackgroundAsUnreadIndicator = true;
/** /**
* The MIME type(s) of attachments we're willing to view. * The MIME type(s) of attachments we're willing to view.
*/ */
@ -469,6 +471,7 @@ public class K9 extends Application {
editor.putString("notificationHideSubject", sNotificationHideSubject.toString()); editor.putString("notificationHideSubject", sNotificationHideSubject.toString());
editor.putString("attachmentdefaultpath", mAttachmentDefaultPath); editor.putString("attachmentdefaultpath", mAttachmentDefaultPath);
editor.putBoolean("useBackgroundAsUnreadIndicator", sUseBackgroundAsUnreadIndicator);
fontSizes.save(editor); fontSizes.save(editor);
} }
@ -637,6 +640,7 @@ public class K9 extends Application {
} }
mAttachmentDefaultPath = sprefs.getString("attachmentdefaultpath", Environment.getExternalStorageDirectory().toString()); mAttachmentDefaultPath = sprefs.getString("attachmentdefaultpath", Environment.getExternalStorageDirectory().toString());
sUseBackgroundAsUnreadIndicator = sprefs.getBoolean("useBackgroundAsUnreadIndicator", true);
fontSizes.load(sprefs); fontSizes.load(sprefs);
try { try {
@ -1116,4 +1120,11 @@ public class K9 extends Application {
mSortAscending.put(sortType, sortAscending); mSortAscending.put(sortType, sortAscending);
} }
public static synchronized boolean useBackgroundAsUnreadIndicator() {
return sUseBackgroundAsUnreadIndicator;
}
public static synchronized void setUseBackgroundAsUnreadIndicator(boolean enabled) {
sUseBackgroundAsUnreadIndicator = enabled;
}
} }

View File

@ -2493,14 +2493,15 @@ public class MessageList extends K9ListActivity implements OnItemClickListener,
holder.chip.setBackgroundDrawable(message.message.getFolder().getAccount().generateColorChip(message.read,message.message.toMe(), false, message.flagged).drawable()); holder.chip.setBackgroundDrawable(message.message.getFolder().getAccount().generateColorChip(message.read,message.message.toMe(), false, message.flagged).drawable());
} }
// if (K9.getK9Theme() == K9.THEME_LIGHT) {
// // Light theme: light grey background for read messages if (K9.useBackgroundAsUnreadIndicator()) {
// view.setBackgroundColor(message.read ? int res = (message.read) ? R.attr.messageListReadItemBackgroundColor :
// Color.rgb(230, 230, 230) : Color.rgb(255, 255, 255)); R.attr.messageListUnreadItemBackgroundColor;
// } else {
// // Dark theme: dark grey background for unread messages TypedValue outValue = new TypedValue();
// view.setBackgroundColor(message.read ? 0 : Color.rgb(45, 45, 45)); getTheme().resolveAttribute(res, outValue, true);
// } view.setBackgroundColor(outValue.data);
}
String subject = null; String subject = null;

View File

@ -85,6 +85,7 @@ public class Prefs extends K9PreferenceActivity {
private static final String PREFERENCE_SENSITIVE_LOGGING = "sensitive_logging"; private static final String PREFERENCE_SENSITIVE_LOGGING = "sensitive_logging";
private static final String PREFERENCE_ATTACHMENT_DEF_PATH = "attachment_default_path"; private static final String PREFERENCE_ATTACHMENT_DEF_PATH = "attachment_default_path";
private static final String PREFERENCE_BACKGROUND_AS_UNREAD_INDICATOR = "messagelist_background_as_unread_indicator";
private static final int ACTIVITY_CHOOSE_FOLDER = 1; private static final int ACTIVITY_CHOOSE_FOLDER = 1;
private ListPreference mLanguage; private ListPreference mLanguage;
@ -124,6 +125,7 @@ public class Prefs extends K9PreferenceActivity {
private CheckBoxPreference mBatchButtonsMove; private CheckBoxPreference mBatchButtonsMove;
private CheckBoxPreference mBatchButtonsFlag; private CheckBoxPreference mBatchButtonsFlag;
private CheckBoxPreference mBatchButtonsUnselect; private CheckBoxPreference mBatchButtonsUnselect;
private CheckBoxPreference mBackgroundAsUnreadIndicator;
public static void actionPrefs(Context context) { public static void actionPrefs(Context context) {
Intent i = new Intent(context, Prefs.class); Intent i = new Intent(context, Prefs.class);
@ -223,6 +225,9 @@ public class Prefs extends K9PreferenceActivity {
mShowContactName = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_SHOW_CONTACT_NAME); mShowContactName = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_SHOW_CONTACT_NAME);
mShowContactName.setChecked(K9.showContactName()); mShowContactName.setChecked(K9.showContactName());
mBackgroundAsUnreadIndicator = (CheckBoxPreference)findPreference(PREFERENCE_BACKGROUND_AS_UNREAD_INDICATOR);
mBackgroundAsUnreadIndicator.setChecked(K9.useBackgroundAsUnreadIndicator());
mChangeContactNameColor = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_CONTACT_NAME_COLOR); mChangeContactNameColor = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_CONTACT_NAME_COLOR);
mChangeContactNameColor.setChecked(K9.changeContactNameColor()); mChangeContactNameColor.setChecked(K9.changeContactNameColor());
if (K9.changeContactNameColor()) { if (K9.changeContactNameColor()) {
@ -406,6 +411,7 @@ public class Prefs extends K9PreferenceActivity {
K9.setShowCorrespondentNames(mShowCorrespondentNames.isChecked()); K9.setShowCorrespondentNames(mShowCorrespondentNames.isChecked());
K9.setMessageListSenderAboveSubject(mSenderAboveSubject.isChecked()); K9.setMessageListSenderAboveSubject(mSenderAboveSubject.isChecked());
K9.setShowContactName(mShowContactName.isChecked()); K9.setShowContactName(mShowContactName.isChecked());
K9.setUseBackgroundAsUnreadIndicator(mBackgroundAsUnreadIndicator.isChecked());
K9.setChangeContactNameColor(mChangeContactNameColor.isChecked()); K9.setChangeContactNameColor(mChangeContactNameColor.isChecked());
K9.setMessageViewFixedWidthFont(mFixedWidth.isChecked()); K9.setMessageViewFixedWidthFont(mFixedWidth.isChecked());
K9.setMessageViewReturnToList(mReturnToList.isChecked()); K9.setMessageViewReturnToList(mReturnToList.isChecked());

View File

@ -216,6 +216,9 @@ public class GlobalSettings {
new V(12, new EnumSetting(NotificationHideSubject.class, new V(12, new EnumSetting(NotificationHideSubject.class,
NotificationHideSubject.NEVER)) NotificationHideSubject.NEVER))
)); ));
s.put("useBackgroundAsUnreadIndicator", Settings.versions(
new V(19, new BooleanSetting(true))
));
SETTINGS = Collections.unmodifiableMap(s); SETTINGS = Collections.unmodifiableMap(s);

View File

@ -35,7 +35,7 @@ public class Settings {
* *
* @see SettingsExporter * @see SettingsExporter
*/ */
public static final int VERSION = 18; public static final int VERSION = 19;
public static Map<String, Object> validate(int version, Map<String, public static Map<String, Object> validate(int version, Map<String,
TreeMap<Integer, SettingsDescription>> settings, TreeMap<Integer, SettingsDescription>> settings,