Allow changing the message composer theme (background and text color).

This commit is contained in:
Danny Baumann 2013-02-06 16:29:48 +01:00 committed by cketti
parent 728c1bdabe
commit bd154c4c0f
8 changed files with 50 additions and 0 deletions

View File

@ -823,6 +823,7 @@ Um Fehler zu melden, neue Funktionen vorzuschlagen oder Fragen zu stellen, besuc
<string name="folderlist_preferences">Ordnerliste</string>
<string name="settings_theme_label">Design</string>
<string name="settings_message_theme_label">Nachrichten-Design</string>
<string name="settings_compose_theme_label">Editor-Design</string>
<string name="settings_language_label">Sprache</string>
<string name="settings_message_theme_selection_label">Festes Nachrichten-Design</string>

View File

@ -52,6 +52,8 @@
<attr name="messageListDividerColor" format="reference|color"/>
<attr name="messageViewHeaderBackgroundColor" format="reference|color"/>
<attr name="messageViewAttachmentBackground" format="reference"/>
<attr name="composerBackgroundColor" format="color"/>
<attr name="composerTextColor" format="color"/>
</declare-styleable>

View File

@ -832,6 +832,7 @@ Please submit bug reports, contribute new features and ask questions at
<string name="folderlist_preferences">Folder lists</string>
<string name="settings_theme_label">Theme</string>
<string name="settings_message_theme_label">Message view theme</string>
<string name="settings_compose_theme_label">Composer theme</string>
<string name="settings_language_label">Language</string>
<string name="settings_message_theme_selection_label">Fixed message theme</string>

View File

@ -51,6 +51,8 @@
<item name="messageListDividerColor">#ffcccccc</item>
<item name="messageViewHeaderBackgroundColor">#ffffffff</item>
<item name="messageViewAttachmentBackground">@drawable/attachment_text_box_light</item>
<item name="composerBackgroundColor">@android:color/white</item>
<item name="composerTextColor">@android:color/black</item>
</style>
<style name="Theme.K9.Dark.Base" parent="Theme.Sherlock">
@ -104,6 +106,8 @@
<item name="messageListDividerColor">#ff333333</item>
<item name="messageViewHeaderBackgroundColor">#000000</item>
<item name="messageViewAttachmentBackground">@drawable/attachment_text_box_dark</item>
<item name="composerBackgroundColor">@android:color/black</item>
<item name="composerTextColor">@android:color/white</item>
</style>
<style name="Theme.K9.Light" parent="Theme.K9.Light.Base">

View File

@ -65,6 +65,14 @@
android:entryValues="@array/settings_message_theme_values"
android:dialogTitle="@string/settings_message_theme_label" />
<ListPreference
android:persistent="false"
android:key="messageComposeTheme"
android:title="@string/settings_compose_theme_label"
android:entries="@array/settings_message_theme_entries"
android:entryValues="@array/settings_message_theme_values"
android:dialogTitle="@string/settings_compose_theme_label" />
<Preference
android:persistent="false"
android:key="font_size"

View File

@ -101,6 +101,7 @@ public class K9 extends Application {
private static String language = "";
private static int theme = THEME_LIGHT;
private static int messageViewTheme = THEME_GLOBAL;
private static int composerTheme = THEME_GLOBAL;
private static boolean useFixedMessageTheme = true;
private static final FontSizes fontSizes = new FontSizes();
@ -526,6 +527,7 @@ public class K9 extends Application {
editor.putString("language", language);
editor.putInt("theme", theme);
editor.putInt("messageViewTheme", messageViewTheme);
editor.putInt("messageComposeTheme", composerTheme);
editor.putBoolean("fixedMessageViewTheme", useFixedMessageTheme);
editor.putBoolean("useGalleryBugWorkaround", useGalleryBugWorkaround);
@ -782,6 +784,7 @@ public class K9 extends Application {
K9.setK9MessageViewThemeSetting(sprefs.getInt("messageViewTheme", THEME_GLOBAL));
K9.setUseFixedMessageViewTheme(sprefs.getBoolean("fixedMessageViewTheme", true));
K9.setK9ComposerThemeSetting(sprefs.getInt("messageComposeTheme", THEME_GLOBAL));
}
private void maybeSetupStrictMode() {
@ -856,6 +859,14 @@ public class K9 extends Application {
return messageViewTheme;
}
public static int getK9ComposerTheme() {
return composerTheme == THEME_GLOBAL ? theme : composerTheme;
}
public static int getK9ComposerThemeSetting() {
return composerTheme;
}
public static int getK9Theme() {
return theme;
}
@ -873,6 +884,10 @@ public class K9 extends Application {
return useFixedMessageTheme;
}
public static void setK9ComposerThemeSetting(int compTheme) {
composerTheme = compTheme;
}
public static void setUseFixedMessageViewTheme(boolean useFixed) {
useFixedMessageTheme = useFixed;
if (!useFixedMessageTheme && messageViewTheme == THEME_GLOBAL) {

View File

@ -479,6 +479,7 @@ public class MessageCompose extends K9Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (UpgradeDatabases.actionUpgradeDatabases(this, getIntent())) {
@ -552,6 +553,19 @@ public class MessageCompose extends K9Activity implements OnClickListener {
mMessageContentView = (EditText)findViewById(R.id.message_content);
mMessageContentView.getInputExtras(true).putBoolean("allowEmoji", true);
if (K9.getK9ComposerThemeSetting() != K9.THEME_GLOBAL) {
ContextThemeWrapper wrapper = new ContextThemeWrapper(this,
K9.getK9ThemeResourceId(K9.getK9ComposerTheme()));
TypedValue outValue = new TypedValue();
EditText[] editors = new EditText[] { mMessageContentView, upperSignature, lowerSignature };
wrapper.getTheme().resolveAttribute(R.attr.composerBackgroundColor, outValue, true);
for (EditText edit : editors) edit.setBackgroundColor(outValue.data);
wrapper.getTheme().resolveAttribute(R.attr.composerTextColor, outValue, true);
for (EditText edit : editors) edit.setTextColor(outValue.data);
}
mAttachments = (LinearLayout)findViewById(R.id.attachments);
mQuotedTextShow = (Button)findViewById(R.id.quoted_text_show);
mQuotedTextBar = findViewById(R.id.quoted_text_bar);

View File

@ -55,6 +55,7 @@ public class Prefs extends K9PreferenceActivity {
private static final String PREFERENCE_THEME = "theme";
private static final String PREFERENCE_MESSAGE_VIEW_THEME = "messageViewTheme";
private static final String PREFERENCE_FIXED_MESSAGE_THEME = "fixedMessageViewTheme";
private static final String PREFERENCE_COMPOSER_THEME = "messageComposeTheme";
private static final String PREFERENCE_FONT_SIZE = "font_size";
private static final String PREFERENCE_DATE_FORMAT = "dateFormat";
private static final String PREFERENCE_ANIMATIONS = "animations";
@ -106,6 +107,7 @@ public class Prefs extends K9PreferenceActivity {
private ListPreference mTheme;
private CheckBoxPreference mFixedMessageTheme;
private ListPreference mMessageTheme;
private ListPreference mComposerTheme;
private ListPreference mDateFormat;
private CheckBoxPreference mAnimations;
private CheckBoxPreference mGestures;
@ -180,6 +182,8 @@ public class Prefs extends K9PreferenceActivity {
mFixedMessageTheme.setChecked(K9.useFixedMessageViewTheme());
mMessageTheme = setupListPreference(PREFERENCE_MESSAGE_VIEW_THEME,
themeIdToName(K9.getK9MessageViewThemeSetting()));
mComposerTheme = setupListPreference(PREFERENCE_COMPOSER_THEME,
themeIdToName(K9.getK9ComposerThemeSetting()));
findPreference(PREFERENCE_FONT_SIZE).setOnPreferenceClickListener(
new Preference.OnPreferenceClickListener() {
@ -468,6 +472,7 @@ public class Prefs extends K9PreferenceActivity {
K9.setK9Theme(themeNameToId(mTheme.getValue()));
K9.setUseFixedMessageViewTheme(mFixedMessageTheme.isChecked());
K9.setK9MessageViewThemeSetting(themeNameToId(mMessageTheme.getValue()));
K9.setK9ComposerThemeSetting(themeNameToId(mComposerTheme.getValue()));
K9.setAnimations(mAnimations.isChecked());
K9.setGesturesEnabled(mGestures.isChecked());