Skip to content

Instantly share code, notes, and snippets.

@valldrac
Last active May 19, 2024 20:37
Show Gist options
  • Save valldrac/6867c8fad3b923a32b3bc06ddca92ccc to your computer and use it in GitHub Desktop.
Save valldrac/6867c8fad3b923a32b3bc06ddca92ccc to your computer and use it in GitHub Desktop.
wip/true-black-theme
commit 154c5879d48d0165b6bf3a37047dc38ee579b0f9 (HEAD -> wip/true-black-theme)
Author: Oscar Mira <valldrac@molly.im>
Commit: Oscar Mira <valldrac@molly.im>
Add dark theme with true black background color
diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt
index 0cdf7dcf91..6ac4eef67f 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt
@@ -298,6 +298,7 @@ import org.thoughtcrime.securesms.util.SaveAttachmentUtil
import org.thoughtcrime.securesms.util.SignalLocalMetrics
import org.thoughtcrime.securesms.util.StorageUtil
import org.thoughtcrime.securesms.util.TextSecurePreferences
+import org.thoughtcrime.securesms.util.ThemeUtil
import org.thoughtcrime.securesms.util.ViewUtil
import org.thoughtcrime.securesms.util.WindowUtil
import org.thoughtcrime.securesms.util.atMidnight
@@ -1353,7 +1354,7 @@ class ConversationFragment :
val navColor = if (wallpaperEnabled) {
R.color.conversation_navigation_wallpaper
} else {
- R.color.signal_colorBackground
+ ThemeUtil.getThemedColor(requireContext(), android.R.attr.navigationBarColor)
}
binding.scrollDateHeader.setBackgroundResource(
diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/DynamicNoActionBarTheme.java b/app/src/main/java/org/thoughtcrime/securesms/util/DynamicNoActionBarTheme.java
index 53e27e72a5..4eef8742f8 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/util/DynamicNoActionBarTheme.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/util/DynamicNoActionBarTheme.java
@@ -7,6 +7,8 @@ import org.thoughtcrime.securesms.R;
public class DynamicNoActionBarTheme extends DynamicTheme {
protected @StyleRes int getTheme() {
- return R.style.Signal_DayNight_NoActionBar;
+ // TODO: Return theme based on user preference
+ // return R.style.Signal_DayNight_NoActionBar;
+ return R.style.Molly_DayNight_NoActionBar_TrueBlack;
}
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java
index 58757ee717..a7621dc9a3 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java
@@ -761,9 +761,10 @@ public class TextSecurePreferences {
}
/**
- * @deprecated Use {@link SettingsValues#getTheme()} via {@link org.thoughtcrime.securesms.keyvalue.SignalStore} instead.
+ * Deprecated in upstream. However, in Molly, still useful to retrieve the theme while the app is locked
+ * without initializing SignalStore.
+ * Consider using {@link SettingsValues#getTheme()} instead.
*/
- @Deprecated
public static String getTheme(Context context) {
return getStringPreference(context, THEME_PREF, DynamicTheme.systemThemeAvailable() ? "system" : "light");
}
diff --git a/app/src/main/res/values-night/dark_themes.xml b/app/src/main/res/values-night/dark_themes.xml
index 09ca4376aa..a150534c6a 100644
--- a/app/src/main/res/values-night/dark_themes.xml
+++ b/app/src/main/res/values-night/dark_themes.xml
@@ -6,6 +6,8 @@
<style name="Signal.DayNight.NoActionBar" parent="TextSecure.DarkNoActionBar" />
+ <style name="Molly.DayNight.NoActionBar.TrueBlack" parent="TextSecure.DarkNoActionBar.TrueBlack" />
+
<style name="Signal.DayNight.Invite" parent="Signal.NoActionBar.Invite" />
<style name="Signal.DayNight.IntroTheme" parent="TextSecure.DarkIntroTheme" />
diff --git a/app/src/main/res/values/light_themes.xml b/app/src/main/res/values/light_themes.xml
index 6eec2eb742..5ac7c59c0d 100644
--- a/app/src/main/res/values/light_themes.xml
+++ b/app/src/main/res/values/light_themes.xml
@@ -5,6 +5,8 @@
<style name="Signal.DayNight.NoActionBar" parent="TextSecure.LightNoActionBar" />
+ <style name="Molly.DayNight.NoActionBar.TrueBlack" parent="TextSecure.LightNoActionBar" />
+
<style name="Signal.DayNight.Invite" parent="Signal.Light.NoActionBar.Invite" />
<style name="Signal.DayNight.IntroTheme" parent="TextSecure.LightIntroTheme" />
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 96a5ee68ad..2c0c255e9d 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -34,6 +34,10 @@
<!-- leave empty to allow overriding -->
</style>
+ <style name="TextSecure.DarkNoActionBar.TrueBlack" parent="@style/TextSecure.DarkNoActionBar">
+ <item name="android:windowBackground">@color/core_black</item>
+ </style>
+
<style name="TextSecure.DarkNoActionBar.StoryViewer">
<item name="android:windowBackground">@color/signal_colorSurface</item>
</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment