|
1 | 1 | package fr.free.nrw.commons.theme;
|
2 | 2 |
|
3 |
| -import android.content.Intent; |
4 | 3 | import android.os.Bundle;
|
5 |
| -import android.preference.PreferenceManager; |
6 | 4 |
|
7 | 5 | import fr.free.nrw.commons.R;
|
| 6 | +import fr.free.nrw.commons.Utils; |
8 | 7 | import fr.free.nrw.commons.di.CommonsDaggerAppCompatActivity;
|
9 | 8 |
|
10 | 9 | public abstract class BaseActivity extends CommonsDaggerAppCompatActivity {
|
11 |
| - protected boolean currentTheme; |
| 10 | + protected boolean wasPreviouslyDarkTheme; |
12 | 11 |
|
13 | 12 | @Override
|
14 | 13 | protected void onCreate(Bundle savedInstanceState) {
|
15 |
| - boolean currentThemeIsDark = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme", false); |
16 |
| - if (currentThemeIsDark){ |
17 |
| - currentTheme = true; |
18 |
| - setTheme(R.style.DarkAppTheme); |
19 |
| - } else { |
20 |
| - currentTheme = false; |
21 |
| - setTheme(R.style.LightAppTheme); // default |
22 |
| - } |
| 14 | + wasPreviouslyDarkTheme = Utils.isDarkTheme(this); |
| 15 | + setTheme(wasPreviouslyDarkTheme ? R.style.DarkAppTheme : R.style.LightAppTheme); |
23 | 16 | super.onCreate(savedInstanceState);
|
24 | 17 | }
|
25 | 18 |
|
26 | 19 | @Override
|
27 | 20 | protected void onResume() {
|
28 | 21 | // Restart activity if theme is changed
|
29 |
| - boolean newTheme = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme", false); |
30 |
| - if (currentTheme != newTheme) { //is activity theme changed |
31 |
| - Intent intent = getIntent(); |
32 |
| - finish(); |
33 |
| - startActivity(intent); |
| 22 | + if (wasPreviouslyDarkTheme != Utils.isDarkTheme(this)) { |
| 23 | + recreate(); |
34 | 24 | }
|
| 25 | + |
35 | 26 | super.onResume();
|
36 | 27 | }
|
37 | 28 | }
|
0 commit comments