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 @@
+
+
-
+