From 290fe68fc611c7897face796318a83f11ace622c Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 28 Nov 2019 08:13:17 +0300 Subject: use Theme.DayNight and values-night to implement light/dark theme GalleryActivity: add all checked images together to prevent pager desync --- org.fox.ttrss/src/main/AndroidManifest.xml | 4 +- .../main/java/org/fox/ttrss/CommonActivity.java | 24 ++++++--- .../main/java/org/fox/ttrss/GalleryActivity.java | 10 ++-- .../main/java/org/fox/ttrss/LogcatActivity.java | 4 +- .../java/org/fox/ttrss/YoutubePlayerActivity.java | 4 +- org.fox.ttrss/src/main/res/values-night/style.xml | 63 ++++++++++++++++++++++ org.fox.ttrss/src/main/res/values-v21/style.xml | 6 +-- org.fox.ttrss/src/main/res/values/arrays.xml | 5 +- org.fox.ttrss/src/main/res/values/style.xml | 12 ++--- org.fox.ttrss/src/main/res/xml/preferences.xml | 2 +- 10 files changed, 106 insertions(+), 28 deletions(-) create mode 100644 org.fox.ttrss/src/main/res/values-night/style.xml (limited to 'org.fox.ttrss/src') diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml index d2ac289f..5afba197 100755 --- a/org.fox.ttrss/src/main/AndroidManifest.xml +++ b/org.fox.ttrss/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="507" + android:versionName="1.273"> diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java index 493676d8..bd7eee87 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java @@ -17,7 +17,6 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.database.sqlite.SQLiteDatabase; import android.graphics.BitmapFactory; -import android.graphics.Point; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; @@ -48,6 +47,7 @@ import java.util.Arrays; import java.util.List; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; import androidx.browser.customtabs.CustomTabsCallback; import androidx.browser.customtabs.CustomTabsClient; import androidx.browser.customtabs.CustomTabsIntent; @@ -315,21 +315,29 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc protected void setAppTheme(SharedPreferences prefs) { String theme = prefs.getString("theme", CommonActivity.THEME_DEFAULT); - - if (theme.equals(THEME_DARK)) { - setTheme(R.style.DarkTheme); - } else if (theme.equals(THEME_AMBER)) { - setTheme(R.style.AmberTheme); + + Log.d(TAG, "setting theme to: " + theme); + + if ("THEME_DARK".equals(theme)) { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + } else if ("THEME_LIGHT".equals(theme)) { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); } else { - setTheme(R.style.LightTheme); + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_TIME); } + + setTheme(R.style.AppTheme); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { Log.d(TAG, "onSharedPreferenceChanged:" + key); - String[] filter = new String[] { "theme", "enable_cats", "headline_mode", "widget_update_interval", + if ("theme".equals(key)) { + setAppTheme(sharedPreferences); + } + + String[] filter = new String[] { "enable_cats", "headline_mode", "widget_update_interval", "headlines_swipe_to_dismiss", "headlines_mark_read_scroll", "headlines_request_size" }; m_needRestart = Arrays.asList(filter).indexOf(key) != -1; diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java index ca2b6a47..f458d0f9 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; +import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.Toolbar; import androidx.core.app.ActivityCompat; import androidx.fragment.app.Fragment; @@ -225,7 +226,8 @@ public class GalleryActivity extends CommonActivity { m_prefs = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()); - setTheme(R.style.DarkTheme); + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.AppTheme); super.onCreate(savedInstanceState); @@ -296,7 +298,7 @@ public class GalleryActivity extends CommonActivity { MediaCheckTask mct = new MediaCheckTask() { @Override protected void onProgressUpdate(MediaProgressResult... result) { - m_items.add(result[0].item); + //m_items.add(result[0].item); m_adapter.notifyDataSetChanged(); if (result[0].position < result[0].count) { @@ -311,8 +313,8 @@ public class GalleryActivity extends CommonActivity { @Override protected void onPostExecute(List result) { - //m_items.addAll(result); - //m_adapter.notifyDataSetChanged(); + m_items.addAll(result); + m_adapter.notifyDataSetChanged(); } }; diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java index c845a1d7..cc6e84b9 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java @@ -11,6 +11,7 @@ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; +import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.Toolbar; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import icepick.State; @@ -25,7 +26,8 @@ public class LogcatActivity extends CommonActivity { @Override public void onCreate(Bundle savedInstanceState) { - setTheme(R.style.DarkTheme); + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.AppTheme); super.onCreate(savedInstanceState); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java index 464684be..11a937e2 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java @@ -13,6 +13,7 @@ import com.google.android.youtube.player.YouTubeInitializationResult; import com.google.android.youtube.player.YouTubePlayer; import com.google.android.youtube.player.YouTubePlayerSupportFragment; +import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.Toolbar; import icepick.State; @@ -28,7 +29,8 @@ public class YoutubePlayerActivity extends CommonActivity implements YouTubePlay @Override public void onCreate(Bundle savedInstanceState) { - setTheme(R.style.DarkTheme); + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.AppTheme); super.onCreate(savedInstanceState); setContentView(R.layout.activity_youtube_player); diff --git a/org.fox.ttrss/src/main/res/values-night/style.xml b/org.fox.ttrss/src/main/res/values-night/style.xml new file mode 100644 index 00000000..c81d4b31 --- /dev/null +++ b/org.fox.ttrss/src/main/res/values-night/style.xml @@ -0,0 +1,63 @@ + + + + \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/values-v21/style.xml b/org.fox.ttrss/src/main/res/values-v21/style.xml index 1e5a366a..17484a87 100755 --- a/org.fox.ttrss/src/main/res/values-v21/style.xml +++ b/org.fox.ttrss/src/main/res/values-v21/style.xml @@ -1,16 +1,16 @@ - - + --> diff --git a/org.fox.ttrss/src/main/res/values/arrays.xml b/org.fox.ttrss/src/main/res/values/arrays.xml index 25b2bd58..60053955 100644 --- a/org.fox.ttrss/src/main/res/values/arrays.xml +++ b/org.fox.ttrss/src/main/res/values/arrays.xml @@ -1,13 +1,13 @@ + @string/theme_auto @string/theme_light @string/theme_dark - @string/theme_amber + THEME_AUTO THEME_LIGHT THEME_DARK - THEME_AMBER @string/headline_display_mode_default @@ -52,4 +52,5 @@ 30 45 + Automatic \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/values/style.xml b/org.fox.ttrss/src/main/res/values/style.xml index 9121638c..711b62a7 100755 --- a/org.fox.ttrss/src/main/res/values/style.xml +++ b/org.fox.ttrss/src/main/res/values/style.xml @@ -1,11 +1,10 @@ - - + - #909090 + diff --git a/org.fox.ttrss/src/main/res/xml/preferences.xml b/org.fox.ttrss/src/main/res/xml/preferences.xml index f20bb2cc..d9fef61a 100755 --- a/org.fox.ttrss/src/main/res/xml/preferences.xml +++ b/org.fox.ttrss/src/main/res/xml/preferences.xml @@ -32,7 +32,7 @@ android:key="category_look_and_feel" android:title="@string/look_and_feel" >