From 7c608c88625a424e7881116e3e7373c80fd73e28 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 18 Sep 2016 20:26:47 +0200 Subject: [PATCH] recreate activities when theme changed --- .../conversations/ui/ConferenceDetailsActivity.java | 9 +++++++++ .../conversations/ui/ContactDetailsActivity.java | 11 ++++++++--- .../siacs/conversations/ui/EditAccountActivity.java | 5 ++++- .../siacs/conversations/ui/ManageAccountActivity.java | 9 +++++++++ .../conversations/ui/StartConversationActivity.java | 7 ++++++- 5 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java index e6f7fc5d9..7791372a8 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java +++ b/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()) { diff --git a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java index 836e345b3..08128094e 100644 --- a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java +++ b/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 diff --git a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java index c10d2741e..83364ca2c 100644 --- a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +++ b/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) { diff --git a/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java index f52ccb197..0f6b58ef0 100644 --- a/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java +++ b/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) { diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index 768961c11..ec5559aed 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/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