diff --git a/app/src/main/java/me/ash/reader/ui/theme/Color.kt b/app/src/main/java/me/ash/reader/ui/theme/Color.kt deleted file mode 100644 index 29fee49..0000000 --- a/app/src/main/java/me/ash/reader/ui/theme/Color.kt +++ /dev/null @@ -1,62 +0,0 @@ -package me.ash.reader.ui.theme - -import androidx.compose.ui.graphics.Color - -val md_theme_light_primary = Color(0xFF00658e) -val md_theme_light_onPrimary = Color(0xFFffffff) -val md_theme_light_primaryContainer = Color(0xFFc3e7ff) -val md_theme_light_onPrimaryContainer = Color(0xFF001e2e) -val md_theme_light_secondary = Color(0xFF4f616e) -val md_theme_light_onSecondary = Color(0xFFffffff) -val md_theme_light_secondaryContainer = Color(0xFFd2e5f4) -val md_theme_light_onSecondaryContainer = Color(0xFF0b1d28) -val md_theme_light_tertiary = Color(0xFF625a7c) -val md_theme_light_onTertiary = Color(0xFFffffff) -val md_theme_light_tertiaryContainer = Color(0xFFe8ddff) -val md_theme_light_onTertiaryContainer = Color(0xFF1e1735) -val md_theme_light_error = Color(0xFFba1b1b) -val md_theme_light_errorContainer = Color(0xFFffdad4) -val md_theme_light_onError = Color(0xFFffffff) -val md_theme_light_onErrorContainer = Color(0xFF410001) -val md_theme_light_background = Color(0xFFfbfcff) -val md_theme_light_onBackground = Color(0xFF191c1e) -val md_theme_light_surface = Color(0xFFfbfcff) -val md_theme_light_onSurface = Color(0xFF191c1e) -val md_theme_light_surfaceVariant = Color(0xFFdde3ea) -val md_theme_light_onSurfaceVariant = Color(0xFF41484d) -val md_theme_light_outline = Color(0xFF71787e) -val md_theme_light_inverseOnSurface = Color(0xFFf0f1f4) -val md_theme_light_inverseSurface = Color(0xFF2e3133) -val md_theme_light_inversePrimary = Color(0xFF7fcfff) -val md_theme_light_shadow = Color(0xFF000000) - -val md_theme_dark_primary = Color(0xFF7fcfff) -val md_theme_dark_onPrimary = Color(0xFF00344b) -val md_theme_dark_primaryContainer = Color(0xFF004c6c) -val md_theme_dark_onPrimaryContainer = Color(0xFFc3e7ff) -val md_theme_dark_secondary = Color(0xFFb6c9d8) -val md_theme_dark_onSecondary = Color(0xFF21333e) -val md_theme_dark_secondaryContainer = Color(0xFF374955) -val md_theme_dark_onSecondaryContainer = Color(0xFFd2e5f4) -val md_theme_dark_tertiary = Color(0xFFccc1e9) -val md_theme_dark_onTertiary = Color(0xFF332c4b) -val md_theme_dark_tertiaryContainer = Color(0xFF4a4263) -val md_theme_dark_onTertiaryContainer = Color(0xFFe8ddff) -val md_theme_dark_error = Color(0xFFffb4a9) -val md_theme_dark_errorContainer = Color(0xFF930006) -val md_theme_dark_onError = Color(0xFF680003) -val md_theme_dark_onErrorContainer = Color(0xFFffdad4) -val md_theme_dark_background = Color(0xFF191c1e) -val md_theme_dark_onBackground = Color(0xFFe1e2e5) -val md_theme_dark_surface = Color(0xFF191c1e) -val md_theme_dark_onSurface = Color(0xFFe1e2e5) -val md_theme_dark_surfaceVariant = Color(0xFF41484d) -val md_theme_dark_onSurfaceVariant = Color(0xFFc1c7ce) -val md_theme_dark_outline = Color(0xFF8b9298) -val md_theme_dark_inverseOnSurface = Color(0xFF191c1e) -val md_theme_dark_inverseSurface = Color(0xFFe1e2e5) -val md_theme_dark_inversePrimary = Color(0xFF00658e) -val md_theme_dark_shadow = Color(0xFF000000) - -val seed = Color(0xFF006187) -val error = Color(0xFFba1b1b) \ No newline at end of file diff --git a/app/src/main/java/me/ash/reader/ui/theme/Theme.kt b/app/src/main/java/me/ash/reader/ui/theme/Theme.kt index 43582b5..0190f21 100644 --- a/app/src/main/java/me/ash/reader/ui/theme/Theme.kt +++ b/app/src/main/java/me/ash/reader/ui/theme/Theme.kt @@ -2,76 +2,19 @@ package me.ash.reader.ui.theme import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material3.* +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.platform.LocalContext +import me.ash.reader.ui.theme.color.PurpleColor -private val LightThemeColors = lightColorScheme( - - primary = md_theme_light_primary, - onPrimary = md_theme_light_onPrimary, - primaryContainer = md_theme_light_primaryContainer, - onPrimaryContainer = md_theme_light_onPrimaryContainer, - secondary = md_theme_light_secondary, - onSecondary = md_theme_light_onSecondary, - secondaryContainer = md_theme_light_secondaryContainer, - onSecondaryContainer = md_theme_light_onSecondaryContainer, - tertiary = md_theme_light_tertiary, - onTertiary = md_theme_light_onTertiary, - tertiaryContainer = md_theme_light_tertiaryContainer, - onTertiaryContainer = md_theme_light_onTertiaryContainer, - error = md_theme_light_error, - errorContainer = md_theme_light_errorContainer, - onError = md_theme_light_onError, - onErrorContainer = md_theme_light_onErrorContainer, - background = md_theme_light_background, - onBackground = md_theme_light_onBackground, - surface = md_theme_light_surface, - onSurface = md_theme_light_onSurface, - surfaceVariant = md_theme_light_surfaceVariant, - onSurfaceVariant = md_theme_light_onSurfaceVariant, - outline = md_theme_light_outline, - inverseOnSurface = md_theme_light_inverseOnSurface, - inverseSurface = md_theme_light_inverseSurface, - inversePrimary = md_theme_light_inversePrimary, -// shadow = md_theme_light_shadow, -) - -private val DarkThemeColors = darkColorScheme( - - primary = md_theme_dark_primary, - onPrimary = md_theme_dark_onPrimary, - primaryContainer = md_theme_dark_primaryContainer, - onPrimaryContainer = md_theme_dark_onPrimaryContainer, - secondary = md_theme_dark_secondary, - onSecondary = md_theme_dark_onSecondary, - secondaryContainer = md_theme_dark_secondaryContainer, - onSecondaryContainer = md_theme_dark_onSecondaryContainer, - tertiary = md_theme_dark_tertiary, - onTertiary = md_theme_dark_onTertiary, - tertiaryContainer = md_theme_dark_tertiaryContainer, - onTertiaryContainer = md_theme_dark_onTertiaryContainer, - error = md_theme_dark_error, - errorContainer = md_theme_dark_errorContainer, - onError = md_theme_dark_onError, - onErrorContainer = md_theme_dark_onErrorContainer, - background = md_theme_dark_background, - onBackground = md_theme_dark_onBackground, - surface = md_theme_dark_surface, - onSurface = md_theme_dark_onSurface, - surfaceVariant = md_theme_dark_surfaceVariant, - onSurfaceVariant = md_theme_dark_onSurfaceVariant, - outline = md_theme_dark_outline, - inverseOnSurface = md_theme_dark_inverseOnSurface, - inverseSurface = md_theme_dark_inverseSurface, - inversePrimary = md_theme_dark_inversePrimary, -// shadow = md_theme_dark_shadow, -) +private val LightThemeColors = PurpleColor.lightColorScheme +private val DarkThemeColors = PurpleColor.darkColorScheme val LocalLightThemeColors = staticCompositionLocalOf { LightThemeColors } - val LocalDarkThemeColors = staticCompositionLocalOf { DarkThemeColors } @Composable @@ -81,6 +24,7 @@ fun AppTheme( ) { // Dynamic color is available on Android 12+ val dynamicColor = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S + val light = when { dynamicColor -> dynamicLightColorScheme(LocalContext.current) else -> LightThemeColors diff --git a/app/src/main/java/me/ash/reader/ui/theme/color/BlueColor.kt b/app/src/main/java/me/ash/reader/ui/theme/color/BlueColor.kt new file mode 100644 index 0000000..64de0dd --- /dev/null +++ b/app/src/main/java/me/ash/reader/ui/theme/color/BlueColor.kt @@ -0,0 +1,118 @@ +package me.ash.reader.ui.theme.color + +import androidx.compose.ui.graphics.Color + +object BlueColor : IColor { + override val md_theme_light_primary: Color + get() = Color(0xFF00658e) + override val md_theme_light_onPrimary: Color + get() = Color(0xFFffffff) + override val md_theme_light_primaryContainer: Color + get() = Color(0xFFc3e7ff) + override val md_theme_light_onPrimaryContainer: Color + get() = Color(0xFF001e2e) + override val md_theme_light_secondary: Color + get() = Color(0xFF4f616e) + override val md_theme_light_onSecondary: Color + get() = Color(0xFFffffff) + override val md_theme_light_secondaryContainer: Color + get() = Color(0xFFd2e5f4) + override val md_theme_light_onSecondaryContainer: Color + get() = Color(0xFF0b1d28) + override val md_theme_light_tertiary: Color + get() = Color(0xFF625a7c) + override val md_theme_light_onTertiary: Color + get() = Color(0xFFffffff) + override val md_theme_light_tertiaryContainer: Color + get() = Color(0xFFe8ddff) + override val md_theme_light_onTertiaryContainer: Color + get() = Color(0xFF1e1735) + override val md_theme_light_error: Color + get() = Color(0xFFba1b1b) + override val md_theme_light_errorContainer: Color + get() = Color(0xFFffdad4) + override val md_theme_light_onError: Color + get() = Color(0xFFffffff) + override val md_theme_light_onErrorContainer: Color + get() = Color(0xFF410001) + override val md_theme_light_background: Color + get() = Color(0xFFfbfcff) + override val md_theme_light_onBackground: Color + get() = Color(0xFF191c1e) + override val md_theme_light_surface: Color + get() = Color(0xFFfbfcff) + override val md_theme_light_onSurface: Color + get() = Color(0xFF191c1e) + override val md_theme_light_surfaceVariant: Color + get() = Color(0xFFdde3ea) + override val md_theme_light_onSurfaceVariant: Color + get() = Color(0xFF41484d) + override val md_theme_light_outline: Color + get() = Color(0xFF71787e) + override val md_theme_light_inverseOnSurface: Color + get() = Color(0xFFf0f1f4) + override val md_theme_light_inverseSurface: Color + get() = Color(0xFF2e3133) + override val md_theme_light_inversePrimary: Color + get() = Color(0xFF7fcfff) + override val md_theme_light_shadow: Color + get() = Color(0xFF000000) + override val md_theme_dark_primary: Color + get() = Color(0xFF7fcfff) + override val md_theme_dark_onPrimary: Color + get() = Color(0xFF00344b) + override val md_theme_dark_primaryContainer: Color + get() = Color(0xFF004c6c) + override val md_theme_dark_onPrimaryContainer: Color + get() = Color(0xFFc3e7ff) + override val md_theme_dark_secondary: Color + get() = Color(0xFFb6c9d8) + override val md_theme_dark_onSecondary: Color + get() = Color(0xFF21333e) + override val md_theme_dark_secondaryContainer: Color + get() = Color(0xFF374955) + override val md_theme_dark_onSecondaryContainer: Color + get() = Color(0xFFd2e5f4) + override val md_theme_dark_tertiary: Color + get() = Color(0xFFccc1e9) + override val md_theme_dark_onTertiary: Color + get() = Color(0xFF332c4b) + override val md_theme_dark_tertiaryContainer: Color + get() = Color(0xFF4a4263) + override val md_theme_dark_onTertiaryContainer: Color + get() = Color(0xFFe8ddff) + override val md_theme_dark_error: Color + get() = Color(0xFFffb4a9) + override val md_theme_dark_errorContainer: Color + get() = Color(0xFF930006) + override val md_theme_dark_onError: Color + get() = Color(0xFF680003) + override val md_theme_dark_onErrorContainer: Color + get() = Color(0xFFffdad4) + override val md_theme_dark_background: Color + get() = Color(0xFF191c1e) + override val md_theme_dark_onBackground: Color + get() = Color(0xFFe1e2e5) + override val md_theme_dark_surface: Color + get() = Color(0xFF191c1e) + override val md_theme_dark_onSurface: Color + get() = Color(0xFFe1e2e5) + override val md_theme_dark_surfaceVariant: Color + get() = Color(0xFF41484d) + override val md_theme_dark_onSurfaceVariant: Color + get() = Color(0xFFc1c7ce) + override val md_theme_dark_outline: Color + get() = Color(0xFF8b9298) + override val md_theme_dark_inverseOnSurface: Color + get() = Color(0xFF191c1e) + override val md_theme_dark_inverseSurface: Color + get() = Color(0xFFe1e2e5) + override val md_theme_dark_inversePrimary: Color + get() = Color(0xFF00658e) + override val md_theme_dark_shadow: Color + get() = Color(0xFF000000) + override val seed: Color + get() = Color(0xFF006187) + override val error: Color + get() = Color(0xFFba1b1b) +} \ No newline at end of file diff --git a/app/src/main/java/me/ash/reader/ui/theme/color/IColor.kt b/app/src/main/java/me/ash/reader/ui/theme/color/IColor.kt new file mode 100644 index 0000000..652b865 --- /dev/null +++ b/app/src/main/java/me/ash/reader/ui/theme/color/IColor.kt @@ -0,0 +1,127 @@ +package me.ash.reader.ui.theme.color + +import androidx.compose.material3.ColorScheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.ui.graphics.Color + +interface IColor { + val md_theme_light_primary: Color + val md_theme_light_onPrimary: Color + val md_theme_light_primaryContainer: Color + val md_theme_light_onPrimaryContainer: Color + val md_theme_light_secondary: Color + val md_theme_light_onSecondary: Color + val md_theme_light_secondaryContainer: Color + val md_theme_light_onSecondaryContainer: Color + val md_theme_light_tertiary: Color + val md_theme_light_onTertiary: Color + val md_theme_light_tertiaryContainer: Color + val md_theme_light_onTertiaryContainer: Color + val md_theme_light_error: Color + val md_theme_light_errorContainer: Color + val md_theme_light_onError: Color + val md_theme_light_onErrorContainer: Color + val md_theme_light_background: Color + val md_theme_light_onBackground: Color + val md_theme_light_surface: Color + val md_theme_light_onSurface: Color + val md_theme_light_surfaceVariant: Color + val md_theme_light_onSurfaceVariant: Color + val md_theme_light_outline: Color + val md_theme_light_inverseOnSurface: Color + val md_theme_light_inverseSurface: Color + val md_theme_light_inversePrimary: Color + val md_theme_light_shadow: Color + + val md_theme_dark_primary: Color + val md_theme_dark_onPrimary: Color + val md_theme_dark_primaryContainer: Color + val md_theme_dark_onPrimaryContainer: Color + val md_theme_dark_secondary: Color + val md_theme_dark_onSecondary: Color + val md_theme_dark_secondaryContainer: Color + val md_theme_dark_onSecondaryContainer: Color + val md_theme_dark_tertiary: Color + val md_theme_dark_onTertiary: Color + val md_theme_dark_tertiaryContainer: Color + val md_theme_dark_onTertiaryContainer: Color + val md_theme_dark_error: Color + val md_theme_dark_errorContainer: Color + val md_theme_dark_onError: Color + val md_theme_dark_onErrorContainer: Color + val md_theme_dark_background: Color + val md_theme_dark_onBackground: Color + val md_theme_dark_surface: Color + val md_theme_dark_onSurface: Color + val md_theme_dark_surfaceVariant: Color + val md_theme_dark_onSurfaceVariant: Color + val md_theme_dark_outline: Color + val md_theme_dark_inverseOnSurface: Color + val md_theme_dark_inverseSurface: Color + val md_theme_dark_inversePrimary: Color + val md_theme_dark_shadow: Color + + val seed: Color + val error: Color + + val lightColorScheme: ColorScheme + get() = lightColorScheme( + primary = md_theme_light_primary, + onPrimary = md_theme_light_onPrimary, + primaryContainer = md_theme_light_primaryContainer, + onPrimaryContainer = md_theme_light_onPrimaryContainer, + secondary = md_theme_light_secondary, + onSecondary = md_theme_light_onSecondary, + secondaryContainer = md_theme_light_secondaryContainer, + onSecondaryContainer = md_theme_light_onSecondaryContainer, + tertiary = md_theme_light_tertiary, + onTertiary = md_theme_light_onTertiary, + tertiaryContainer = md_theme_light_tertiaryContainer, + onTertiaryContainer = md_theme_light_onTertiaryContainer, + error = md_theme_light_error, + errorContainer = md_theme_light_errorContainer, + onError = md_theme_light_onError, + onErrorContainer = md_theme_light_onErrorContainer, + background = md_theme_light_background, + onBackground = md_theme_light_onBackground, + surface = md_theme_light_surface, + onSurface = md_theme_light_onSurface, + surfaceVariant = md_theme_light_surfaceVariant, + onSurfaceVariant = md_theme_light_onSurfaceVariant, + outline = md_theme_light_outline, + inverseOnSurface = md_theme_light_inverseOnSurface, + inverseSurface = md_theme_light_inverseSurface, + inversePrimary = md_theme_light_inversePrimary, + ) + + val darkColorScheme: ColorScheme + get() = darkColorScheme( + primary = md_theme_dark_primary, + onPrimary = md_theme_dark_onPrimary, + primaryContainer = md_theme_dark_primaryContainer, + onPrimaryContainer = md_theme_dark_onPrimaryContainer, + secondary = md_theme_dark_secondary, + onSecondary = md_theme_dark_onSecondary, + secondaryContainer = md_theme_dark_secondaryContainer, + onSecondaryContainer = md_theme_dark_onSecondaryContainer, + tertiary = md_theme_dark_tertiary, + onTertiary = md_theme_dark_onTertiary, + tertiaryContainer = md_theme_dark_tertiaryContainer, + onTertiaryContainer = md_theme_dark_onTertiaryContainer, + error = md_theme_dark_error, + errorContainer = md_theme_dark_errorContainer, + onError = md_theme_dark_onError, + onErrorContainer = md_theme_dark_onErrorContainer, + background = md_theme_dark_background, + onBackground = md_theme_dark_onBackground, + surface = md_theme_dark_surface, + onSurface = md_theme_dark_onSurface, + surfaceVariant = md_theme_dark_surfaceVariant, + onSurfaceVariant = md_theme_dark_onSurfaceVariant, + outline = md_theme_dark_outline, + inverseOnSurface = md_theme_dark_inverseOnSurface, + inverseSurface = md_theme_dark_inverseSurface, + inversePrimary = md_theme_dark_inversePrimary, + ) +} \ No newline at end of file diff --git a/app/src/main/java/me/ash/reader/ui/theme/color/PurpleColor.kt b/app/src/main/java/me/ash/reader/ui/theme/color/PurpleColor.kt new file mode 100644 index 0000000..202f188 --- /dev/null +++ b/app/src/main/java/me/ash/reader/ui/theme/color/PurpleColor.kt @@ -0,0 +1,118 @@ +package me.ash.reader.ui.theme.color + +import androidx.compose.ui.graphics.Color + +object PurpleColor : IColor { + override val md_theme_light_primary: Color + get() = Color(0xFF5f51ac) + override val md_theme_light_onPrimary: Color + get() = Color(0xFFffffff) + override val md_theme_light_primaryContainer: Color + get() = Color(0xFFe6deff) + override val md_theme_light_onPrimaryContainer: Color + get() = Color(0xFF190065) + override val md_theme_light_secondary: Color + get() = Color(0xFF605c72) + override val md_theme_light_onSecondary: Color + get() = Color(0xFFffffff) + override val md_theme_light_secondaryContainer: Color + get() = Color(0xFFe5dff9) + override val md_theme_light_onSecondaryContainer: Color + get() = Color(0xFF1c192c) + override val md_theme_light_tertiary: Color + get() = Color(0xFF7c5264) + override val md_theme_light_onTertiary: Color + get() = Color(0xFFffffff) + override val md_theme_light_tertiaryContainer: Color + get() = Color(0xFFffd8e8) + override val md_theme_light_onTertiaryContainer: Color + get() = Color(0xFF301020) + override val md_theme_light_error: Color + get() = Color(0xFFba1b1b) + override val md_theme_light_errorContainer: Color + get() = Color(0xFFffdad4) + override val md_theme_light_onError: Color + get() = Color(0xFFffffff) + override val md_theme_light_onErrorContainer: Color + get() = Color(0xFF410001) + override val md_theme_light_background: Color + get() = Color(0xFFfffbff) + override val md_theme_light_onBackground: Color + get() = Color(0xFF1c1b1e) + override val md_theme_light_surface: Color + get() = Color(0xFFfffbff) + override val md_theme_light_onSurface: Color + get() = Color(0xFF1c1b1e) + override val md_theme_light_surfaceVariant: Color + get() = Color(0xFFe5e0ec) + override val md_theme_light_onSurfaceVariant: Color + get() = Color(0xFF48454f) + override val md_theme_light_outline: Color + get() = Color(0xFF79767f) + override val md_theme_light_inverseOnSurface: Color + get() = Color(0xFFf4eff4) + override val md_theme_light_inverseSurface: Color + get() = Color(0xFF313033) + override val md_theme_light_inversePrimary: Color + get() = Color(0xFFcabeff) + override val md_theme_light_shadow: Color + get() = Color(0xFF000000) + override val md_theme_dark_primary: Color + get() = Color(0xFFcabeff) + override val md_theme_dark_onPrimary: Color + get() = Color(0xFF301f7a) + override val md_theme_dark_primaryContainer: Color + get() = Color(0xFF473892) + override val md_theme_dark_onPrimaryContainer: Color + get() = Color(0xFFe6deff) + override val md_theme_dark_secondary: Color + get() = Color(0xFFc9c3dc) + override val md_theme_dark_onSecondary: Color + get() = Color(0xFF312e41) + override val md_theme_dark_secondaryContainer: Color + get() = Color(0xFF484459) + override val md_theme_dark_onSecondaryContainer: Color + get() = Color(0xFFe5dff9) + override val md_theme_dark_tertiary: Color + get() = Color(0xFFedb8cd) + override val md_theme_dark_onTertiary: Color + get() = Color(0xFF492536) + override val md_theme_dark_tertiaryContainer: Color + get() = Color(0xFF613b4c) + override val md_theme_dark_onTertiaryContainer: Color + get() = Color(0xFFffd8e8) + override val md_theme_dark_error: Color + get() = Color(0xFFffb4a9) + override val md_theme_dark_errorContainer: Color + get() = Color(0xFF930006) + override val md_theme_dark_onError: Color + get() = Color(0xFF680003) + override val md_theme_dark_onErrorContainer: Color + get() = Color(0xFFffdad4) + override val md_theme_dark_background: Color + get() = Color(0xFF1c1b1e) + override val md_theme_dark_onBackground: Color + get() = Color(0xFFe5e1e5) + override val md_theme_dark_surface: Color + get() = Color(0xFF1c1b1e) + override val md_theme_dark_onSurface: Color + get() = Color(0xFFe5e1e5) + override val md_theme_dark_surfaceVariant: Color + get() = Color(0xFF48454f) + override val md_theme_dark_onSurfaceVariant: Color + get() = Color(0xFFc9c4d0) + override val md_theme_dark_outline: Color + get() = Color(0xFF938f99) + override val md_theme_dark_inverseOnSurface: Color + get() = Color(0xFF1c1b1e) + override val md_theme_dark_inverseSurface: Color + get() = Color(0xFFe5e1e5) + override val md_theme_dark_inversePrimary: Color + get() = Color(0xFF5f51ac) + override val md_theme_dark_shadow: Color + get() = Color(0xFF000000) + override val seed: Color + get() = Color(0xFF53459f) + override val error: Color + get() = Color(0xFFba1b1b) +} \ No newline at end of file diff --git a/app/src/main/res/raw/ash.opml b/app/src/main/res/raw/ash.opml deleted file mode 100644 index e60eeae..0000000 --- a/app/src/main/res/raw/ash.opml +++ /dev/null @@ -1,46 +0,0 @@ - - - -Ash - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file