diff --git a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java index be483f80e..2f2b870f8 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java @@ -83,6 +83,10 @@ public class BaseActivity extends AppCompatActivity { setTheme(R.style.BlackAppTheme); currentThemeId = R.style.BlackAppTheme; break; + case "DRACULA": + setTheme(R.style.DraculaAppTheme); + currentThemeId = R.style.DraculaAppTheme; + break; } break; } @@ -113,6 +117,11 @@ public class BaseActivity extends AppCompatActivity { setTheme(R.style.BlackAppTheme); currentThemeId = R.style.BlackAppTheme; break; + case "DRACULA": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.DraculaAppTheme); + currentThemeId = R.style.DraculaAppTheme; + break; } } super.onCreate(savedInstanceState); diff --git a/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java index 220526dc5..48b51a25b 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java @@ -76,6 +76,9 @@ public class BaseAlertDialogActivity extends AppCompatActivity { case "BLACK": setTheme(R.style.BlackAlertDialog); break; + case "DRACULA": + setTheme(R.style.DraculaAlertDialog); + break; } break; } @@ -101,6 +104,10 @@ public class BaseAlertDialogActivity extends AppCompatActivity { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); setTheme(R.style.BlackAlertDialog); break; + case "DRACULA": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.DraculaAlertDialog); + break; } } super.onCreate(savedInstanceState); diff --git a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java index dce372699..e8f0111e4 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java @@ -75,6 +75,9 @@ public class BaseBarActivity extends AppCompatActivity { case "BLACK": setTheme(R.style.BlackAppThemeBar); break; + case "DRACULA": + setTheme(R.style.DraculaAppThemeBar); + break; } break; } @@ -101,6 +104,10 @@ public class BaseBarActivity extends AppCompatActivity { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); setTheme(R.style.BlackAppThemeBar); break; + case "DRACULA": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.DraculaAppThemeBar); + break; } } super.onCreate(savedInstanceState); diff --git a/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java index 12f89e809..77f2df730 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java @@ -75,6 +75,9 @@ public class BaseTransparentActivity extends AppCompatActivity { case "BLACK": setTheme(R.style.TransparentBlack); break; + case "DRACULA": + setTheme(R.style.TransparentDracula); + break; } break; } @@ -101,6 +104,10 @@ public class BaseTransparentActivity extends AppCompatActivity { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); setTheme(R.style.TransparentBlack); break; + case "DRACULA": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.TransparentDracula); + break; } } super.onCreate(savedInstanceState); diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index c8af7befc..09ed1de66 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -1918,6 +1918,8 @@ public class Helper { return R.style.SolarizedAlertDialog; } else if (R.style.BlackAppThemeBar == currentThemeId || R.style.BlackAppTheme == currentThemeId) { return R.style.BlackAlertDialog; + } else if (R.style.DraculaAppThemeBar == currentThemeId || R.style.DraculaAppTheme == currentThemeId) { + return R.style.DraculaAlertDialog; } return R.style.AppTheme; } diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index af12f71d0..6b1fe40cc 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -439,6 +439,12 @@ public class SpannableHelper { } + @Override + public void updateDrawState(@NonNull TextPaint ds) { + super.updateDrawState(ds); + ds.setColor(ThemeHelper.getAttColor(context, R.attr.linkColor)); + } + }, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } } @@ -661,6 +667,7 @@ public class SpannableHelper { public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); + ds.setColor(ThemeHelper.getAttColor(context, R.attr.linkColor)); } }, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } @@ -694,6 +701,7 @@ public class SpannableHelper { public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); + ds.setColor(ThemeHelper.getAttColor(context, R.attr.linkColor)); } }, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } @@ -730,6 +738,7 @@ public class SpannableHelper { public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); + ds.setColor(ThemeHelper.getAttColor(context, R.attr.linkColor)); } }, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } @@ -877,6 +886,7 @@ public class SpannableHelper { public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); + ds.setColor(ThemeHelper.getAttColor(context, R.attr.linkColor)); } }, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); @@ -1024,6 +1034,8 @@ public class SpannableHelper { @Override public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); + ds.setUnderlineText(false); + ds.setColor(ThemeHelper.getAttColor(context, R.attr.linkColor)); } }, startPosition, endPosition, diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 72cf8611b..847250a4a 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,6 +1,10 @@ + + + + - + + - + + + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 5b63928fa..e18735892 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -65,6 +65,18 @@ #000000 + #ff79c6 + #50fa7b + #f8f8f2 + #6272a4 + #ffb86c + #f1fa8c + #8be9fd + #282a36 + #44475a + #bd93f9 + + #FFEA00 #42A5F5 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f1fc79aaf..1613ea359 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -703,6 +703,7 @@ Solarized (Light) Solarized (Dark) Black + Dracula LIGHT @@ -711,6 +712,7 @@ SOLARIZED_LIGHT SOLARIZED_DARK BLACK + DRACULA diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 0bb81b60e..7d4ec92c8 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,6 +1,9 @@ + + - +