mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-24 02:12:15 -05:00
+toggle option in message view to change message display theme (dark,light) permanently (Issue 1674)
This commit is contained in:
parent
93be25bf37
commit
76d8e11703
@ -72,4 +72,9 @@
|
|||||||
android:title="@string/select_text_action"
|
android:title="@string/select_text_action"
|
||||||
android:showAsAction="never"
|
android:showAsAction="never"
|
||||||
/>
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/toggle_message_view_theme"
|
||||||
|
android:title="@string/message_view_theme_action_dark"
|
||||||
|
android:showAsAction="never"
|
||||||
|
/>
|
||||||
</menu>
|
</menu>
|
||||||
|
@ -164,6 +164,9 @@ http://k9mail.googlecode.com/
|
|||||||
<string name="hide_full_header_action">Hide full header</string>
|
<string name="hide_full_header_action">Hide full header</string>
|
||||||
<string name="select_text_action">Select text</string>
|
<string name="select_text_action">Select text</string>
|
||||||
|
|
||||||
|
<string name="message_view_theme_action_dark">Change background to black</string>
|
||||||
|
<string name="message_view_theme_action_light">Change background to white</string>
|
||||||
|
|
||||||
<string name="mark_as_unread_action">Mark as unread</string>
|
<string name="mark_as_unread_action">Mark as unread</string>
|
||||||
<string name="add_cc_bcc_action">Add Cc/Bcc</string>
|
<string name="add_cc_bcc_action">Add Cc/Bcc</string>
|
||||||
<string name="read_receipt">Read receipt</string>
|
<string name="read_receipt">Read receipt</string>
|
||||||
|
@ -78,6 +78,7 @@ public class K9 extends Application {
|
|||||||
|
|
||||||
private static String language = "";
|
private static String language = "";
|
||||||
private static int theme = THEME_LIGHT;
|
private static int theme = THEME_LIGHT;
|
||||||
|
private static int messageViewTheme = THEME_LIGHT;
|
||||||
|
|
||||||
private static final FontSizes fontSizes = new FontSizes();
|
private static final FontSizes fontSizes = new FontSizes();
|
||||||
|
|
||||||
@ -458,6 +459,7 @@ public class K9 extends Application {
|
|||||||
|
|
||||||
editor.putString("language", language);
|
editor.putString("language", language);
|
||||||
editor.putInt("theme", theme);
|
editor.putInt("theme", theme);
|
||||||
|
editor.putInt("messageViewTheme", messageViewTheme);
|
||||||
editor.putBoolean("useGalleryBugWorkaround", useGalleryBugWorkaround);
|
editor.putBoolean("useGalleryBugWorkaround", useGalleryBugWorkaround);
|
||||||
|
|
||||||
editor.putBoolean("confirmDelete", mConfirmDelete);
|
editor.putBoolean("confirmDelete", mConfirmDelete);
|
||||||
@ -661,6 +663,8 @@ public class K9 extends Application {
|
|||||||
theme = THEME_LIGHT;
|
theme = THEME_LIGHT;
|
||||||
}
|
}
|
||||||
K9.setK9Theme(theme);
|
K9.setK9Theme(theme);
|
||||||
|
|
||||||
|
K9.setK9MessageViewTheme(sprefs.getInt("messageViewTheme", THEME_LIGHT));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void maybeSetupStrictMode() {
|
private void maybeSetupStrictMode() {
|
||||||
@ -727,6 +731,10 @@ public class K9 extends Application {
|
|||||||
return getK9ThemeResourceId(theme);
|
return getK9ThemeResourceId(theme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getK9MessageViewTheme() {
|
||||||
|
return messageViewTheme;
|
||||||
|
}
|
||||||
|
|
||||||
public static int getK9Theme() {
|
public static int getK9Theme() {
|
||||||
return theme;
|
return theme;
|
||||||
}
|
}
|
||||||
@ -735,6 +743,10 @@ public class K9 extends Application {
|
|||||||
theme = ntheme;
|
theme = ntheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setK9MessageViewTheme(int nMessageViewTheme) {
|
||||||
|
messageViewTheme = nMessageViewTheme;
|
||||||
|
}
|
||||||
|
|
||||||
public static BACKGROUND_OPS getBackgroundOps() {
|
public static BACKGROUND_OPS getBackgroundOps() {
|
||||||
return backgroundOps;
|
return backgroundOps;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,9 @@ import android.app.Dialog;
|
|||||||
import android.app.ProgressDialog;
|
import android.app.ProgressDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences.Editor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@ -72,6 +74,8 @@ public class MessageView extends K9Activity implements OnClickListener {
|
|||||||
private MessageViewHandler mHandler = new MessageViewHandler();
|
private MessageViewHandler mHandler = new MessageViewHandler();
|
||||||
private StorageManager.StorageListener mStorageListener = new StorageListenerImplementation();
|
private StorageManager.StorageListener mStorageListener = new StorageListenerImplementation();
|
||||||
|
|
||||||
|
private MenuItem mToggleMessageViewMenu;
|
||||||
|
|
||||||
/** this variable is used to save the calling AttachmentView
|
/** this variable is used to save the calling AttachmentView
|
||||||
* until the onActivityResult is called.
|
* until the onActivityResult is called.
|
||||||
* => with this reference we can identity the caller
|
* => with this reference we can identity the caller
|
||||||
@ -602,6 +606,26 @@ public class MessageView extends K9Activity implements OnClickListener {
|
|||||||
startRefileActivity(ACTIVITY_CHOOSE_FOLDER_COPY);
|
startRefileActivity(ACTIVITY_CHOOSE_FOLDER_COPY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onToggleColors() {
|
||||||
|
if (K9.getK9MessageViewTheme() == K9.THEME_DARK) {
|
||||||
|
K9.setK9MessageViewTheme(K9.THEME_LIGHT);
|
||||||
|
} else {
|
||||||
|
K9.setK9MessageViewTheme(K9.THEME_DARK);
|
||||||
|
}
|
||||||
|
|
||||||
|
new AsyncTask<Object, Object, Object>() {
|
||||||
|
@Override
|
||||||
|
protected Object doInBackground(Object... params) {
|
||||||
|
Preferences prefs = Preferences.getPreferences(getApplicationContext());
|
||||||
|
Editor editor = prefs.getPreferences().edit();
|
||||||
|
K9.save(editor);
|
||||||
|
editor.commit();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}.execute();
|
||||||
|
displayMessage(mMessageReference);
|
||||||
|
}
|
||||||
|
|
||||||
private void startRefileActivity(int activity) {
|
private void startRefileActivity(int activity) {
|
||||||
Intent intent = new Intent(this, ChooseFolder.class);
|
Intent intent = new Intent(this, ChooseFolder.class);
|
||||||
intent.putExtra(ChooseFolder.EXTRA_ACCOUNT, mAccount.getUuid());
|
intent.putExtra(ChooseFolder.EXTRA_ACCOUNT, mAccount.getUuid());
|
||||||
@ -788,6 +812,9 @@ public class MessageView extends K9Activity implements OnClickListener {
|
|||||||
case R.id.select_text:
|
case R.id.select_text:
|
||||||
mMessageView.beginSelectingText();
|
mMessageView.beginSelectingText();
|
||||||
break;
|
break;
|
||||||
|
case R.id.toggle_message_view_theme:
|
||||||
|
onToggleColors();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
@ -814,6 +841,14 @@ public class MessageView extends K9Activity implements OnClickListener {
|
|||||||
menu.findItem(R.id.move).setVisible(true);
|
menu.findItem(R.id.move).setVisible(true);
|
||||||
menu.findItem(R.id.archive).setVisible(true);
|
menu.findItem(R.id.archive).setVisible(true);
|
||||||
menu.findItem(R.id.spam).setVisible(true);
|
menu.findItem(R.id.spam).setVisible(true);
|
||||||
|
|
||||||
|
mToggleMessageViewMenu = menu.findItem(R.id.toggle_message_view_theme);
|
||||||
|
if (K9.getK9MessageViewTheme() == K9.THEME_DARK) {
|
||||||
|
mToggleMessageViewMenu.setTitle(R.string.message_view_theme_action_light);
|
||||||
|
} else {
|
||||||
|
mToggleMessageViewMenu.setTitle(R.string.message_view_theme_action_dark);
|
||||||
|
}
|
||||||
|
|
||||||
toggleActionsState(menu, true);
|
toggleActionsState(menu, true);
|
||||||
|
|
||||||
if (mNextMessage != null) {
|
if (mNextMessage != null) {
|
||||||
|
@ -191,6 +191,9 @@ public class GlobalSettings {
|
|||||||
s.put("theme", Settings.versions(
|
s.put("theme", Settings.versions(
|
||||||
new V(1, new ThemeSetting(K9.THEME_LIGHT))
|
new V(1, new ThemeSetting(K9.THEME_LIGHT))
|
||||||
));
|
));
|
||||||
|
s.put("messageViewTheme", Settings.versions(
|
||||||
|
new V(16, new ThemeSetting(K9.THEME_LIGHT))
|
||||||
|
));
|
||||||
s.put("useGalleryBugWorkaround", Settings.versions(
|
s.put("useGalleryBugWorkaround", Settings.versions(
|
||||||
new V(1, new GalleryBugWorkaroundSetting())
|
new V(1, new GalleryBugWorkaroundSetting())
|
||||||
));
|
));
|
||||||
|
@ -35,7 +35,7 @@ public class Settings {
|
|||||||
*
|
*
|
||||||
* @see SettingsExporter
|
* @see SettingsExporter
|
||||||
*/
|
*/
|
||||||
public static final int VERSION = 15;
|
public static final int VERSION = 16;
|
||||||
|
|
||||||
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,
|
||||||
|
@ -94,10 +94,13 @@ public class MessageWebView extends TitleBarWebView {
|
|||||||
this.setScrollBarStyle(SCROLLBARS_INSIDE_OVERLAY);
|
this.setScrollBarStyle(SCROLLBARS_INSIDE_OVERLAY);
|
||||||
this.setLongClickable(true);
|
this.setLongClickable(true);
|
||||||
|
|
||||||
if (K9.getK9Theme() == K9.THEME_DARK) {
|
if (K9.getK9MessageViewTheme() == K9.THEME_DARK) {
|
||||||
// Black theme should get a black webview background
|
// Black theme should get a black webview background
|
||||||
// we'll set the background of the messages on load
|
// we'll set the background of the messages on load
|
||||||
this.setBackgroundColor(0xff000000);
|
this.setBackgroundColor(0xff000000);
|
||||||
|
} else {
|
||||||
|
// multitoggle requires reset to white
|
||||||
|
this.setBackgroundColor(0xffffffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
final WebSettings webSettings = this.getSettings();
|
final WebSettings webSettings = this.getSettings();
|
||||||
@ -152,7 +155,7 @@ public class MessageWebView extends TitleBarWebView {
|
|||||||
|
|
||||||
public void setText(String text, String contentType) {
|
public void setText(String text, String contentType) {
|
||||||
String content = text;
|
String content = text;
|
||||||
if (K9.getK9Theme() == K9.THEME_DARK) {
|
if (K9.getK9MessageViewTheme() == K9.THEME_DARK) {
|
||||||
// It's a little wrong to just throw in the <style> before the opening <html>
|
// It's a little wrong to just throw in the <style> before the opening <html>
|
||||||
// but it's less wrong than trying to edit the html stream
|
// but it's less wrong than trying to edit the html stream
|
||||||
content = "<style>* { background: black ! important; color: white !important }" +
|
content = "<style>* { background: black ! important; color: white !important }" +
|
||||||
|
@ -720,7 +720,7 @@ public class SingleMessageView extends LinearLayout implements OnClickListener,
|
|||||||
showShowPicturesAction(false);
|
showShowPicturesAction(false);
|
||||||
mAttachments.removeAllViews();
|
mAttachments.removeAllViews();
|
||||||
mHiddenAttachments.removeAllViews();
|
mHiddenAttachments.removeAllViews();
|
||||||
|
mMessageContentView.configure();
|
||||||
/*
|
/*
|
||||||
* Clear the WebView content
|
* Clear the WebView content
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user