recreate activity after theme has changed. fixed #764

iNPUTmice created

Change summary

src/main/java/eu/siacs/conversations/ui/ConversationActivity.java |  9 
src/main/java/eu/siacs/conversations/ui/XmppActivity.java         | 14 
2 files changed, 20 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConversationActivity.java 🔗

@@ -675,6 +675,15 @@ public class ConversationActivity extends XmppActivity implements
 		}
 	}
 
+	@Override
+	public void onResume() {
+		super.onResume();
+		int theme = findTheme();
+		if (this.mTheme != theme) {
+			recreate();
+		}
+	}
+
 	@Override
 	public void onSaveInstanceState(final Bundle savedInstanceState) {
 		Conversation conversation = getSelectedConversation();

src/main/java/eu/siacs/conversations/ui/XmppActivity.java 🔗

@@ -94,6 +94,7 @@ public abstract class XmppActivity extends Activity {
 	protected boolean mUseSubject = true;
 
 	private DisplayMetrics metrics;
+	protected int mTheme;
 
 	protected interface OnValueEdited {
 		public void onValueEdited(String value);
@@ -292,9 +293,8 @@ public abstract class XmppActivity extends Activity {
 		mPrimaryColor = getResources().getColor(R.color.primary);
 		mSecondaryBackgroundColor = getResources().getColor(
 				R.color.secondarybackground);
-		if (getPreferences().getBoolean("use_larger_font", false)) {
-			setTheme(R.style.ConversationsTheme_LargerText);
-		}
+		this.mTheme = findTheme();
+		setTheme(this.mTheme);
 		mUseSubject = getPreferences().getBoolean("use_subject", true);
 	}
 
@@ -721,6 +721,14 @@ public abstract class XmppActivity extends Activity {
 		}
 	}
 
+	protected int findTheme() {
+		if (getPreferences().getBoolean("use_larger_font", false)) {
+			return R.style.ConversationsTheme_LargerText;
+		} else {
+			return R.style.ConversationsTheme;
+		}
+	}
+
 	@Override
 	public void onPause() {
 		super.onPause();