recreate activities when theme changed

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java |  9 
src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java    | 11 
src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java       |  5 
src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java     |  9 
src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java |  7 
5 files changed, 36 insertions(+), 5 deletions(-)

Detailed changes

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

@@ -270,6 +270,15 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
 		this.mNotifyStatusText = (TextView) findViewById(R.id.notification_status_text);
 	}
 
+	@Override
+	protected void onStart() {
+		super.onStart();
+		final int theme = findTheme();
+		if (this.mTheme != theme) {
+			recreate();
+		}
+	}
+
 	@Override
 	public boolean onOptionsItemSelected(MenuItem menuItem) {
 		switch (menuItem.getItemId()) {

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

@@ -227,9 +227,14 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
 	@Override
 	public void onStart() {
 		super.onStart();
-		final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
-		this.showDynamicTags = preferences.getBoolean("show_dynamic_tags",false);
-		this.showLastSeen = preferences.getBoolean("last_activity", false);
+		final int theme = findTheme();
+		if (this.mTheme != theme) {
+			recreate();
+		} else {
+			final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
+			this.showDynamicTags = preferences.getBoolean("show_dynamic_tags", false);
+			this.showLastSeen = preferences.getBoolean("last_activity", false);
+		}
 	}
 
 	@Override

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

@@ -587,7 +587,10 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 	@Override
 	protected void onStart() {
 		super.onStart();
-		if (getIntent() != null) {
+		final int theme = findTheme();
+		if (this.mTheme != theme) {
+			recreate();
+		} else if (getIntent() != null) {
 			try {
 				this.jidToEdit = Jid.fromString(getIntent().getStringExtra("jid"));
 			} catch (final InvalidJidException | NullPointerException ignored) {

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

@@ -102,6 +102,15 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
 		registerForContextMenu(accountListView);
 	}
 
+	@Override
+	protected void onStart() {
+		super.onStart();
+		final int theme = findTheme();
+		if (this.mTheme != theme) {
+			recreate();
+		}
+	}
+
 	@Override
 	public void onSaveInstanceState(final Bundle savedInstanceState) {
 		if (selectedAccount != null) {

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

@@ -282,7 +282,12 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU
     @Override
     public void onStart() {
         super.onStart();
-        askForContactsPermissions();
+        final int theme = findTheme();
+        if (this.mTheme != theme) {
+            recreate();
+        } else {
+            askForContactsPermissions();
+        }
     }
 
     @Override