Browse Source

Jetpack Compose Re-write

Carles Sentis 11 months ago
parent
commit
ccb5d8e056
39 changed files with 88 additions and 232 deletions
  1. 6 0
      .idea/vcs.xml
  2. 25 0
      README.md
  3. 3 4
      app/build.gradle.kts
  4. BIN
      app/release/app-release.aab
  5. 0 1
      app/src/main/AndroidManifest.xml
  6. 4 1
      app/src/main/java/com/codeskraps/sbrowser/ForegroundService.kt
  7. 7 0
      app/src/main/java/com/codeskraps/sbrowser/MediaWebViewPreferences.kt
  8. 8 1
      app/src/main/java/com/codeskraps/sbrowser/feature/bookmarks/presentation/components/BookmarksScreen.kt
  9. 8 1
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/SettingsViewModel.kt
  10. 1 1
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/CategoryPreference.kt
  11. 1 1
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/CheckPreference.kt
  12. 1 1
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/ListPreference.kt
  13. 1 1
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/Preference.kt
  14. 4 0
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/SettingsScreen.kt
  15. 1 0
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/mvi/SettingsEvent.kt
  16. 4 2
      app/src/main/java/com/codeskraps/sbrowser/feature/settings/mvi/SettingsState.kt
  17. 1 1
      app/src/main/java/com/codeskraps/sbrowser/feature/webview/MediaWebViewModel.kt
  18. 1 0
      app/src/main/java/com/codeskraps/sbrowser/feature/webview/media/MediaWebViewClient.kt
  19. 3 0
      app/src/main/java/com/codeskraps/sbrowser/ui/theme/Color.kt
  20. 2 2
      app/src/main/java/com/codeskraps/sbrowser/ui/theme/Theme.kt
  21. 1 0
      app/src/main/java/com/codeskraps/sbrowser/util/Constants.kt
  22. BIN
      app/src/main/res/drawable-night/ic_notification.png
  23. 0 170
      app/src/main/res/drawable/ic_launcher_background.xml
  24. 0 30
      app/src/main/res/drawable/ic_launcher_foreground.xml
  25. BIN
      app/src/main/res/drawable/ic_notification.png
  26. 5 0
      app/src/main/res/drawable/ic_notification.xml
  27. 0 6
      app/src/main/res/mipmap-anydpi/ic_launcher.xml
  28. 0 6
      app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
  29. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher.webp
  30. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
  31. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher.webp
  32. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
  33. BIN
      app/src/main/res/mipmap-xhdpi/ic_launcher.webp
  34. BIN
      app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
  35. BIN
      app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
  36. BIN
      app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
  37. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
  38. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
  39. 1 3
      gradle/libs.versions.toml

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 25 - 0
README.md

@@ -1,3 +1,4 @@
+![logo](app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp)
 
 # sBrowser
 
@@ -26,68 +27,92 @@ Install from Google Play
 v2.7
  - Build in AdBlocker
  - Bug fix
+ 
 v2.6
  - Added menu button
+ 
 v.2.5
  - Stop browser when pushed to the background
+ 
 v2.4
  - Update to Material Design
  - More support for native Html5 video playback
+ 
 v2.3
  - More support for native Html5 video playback
+ 
 v2.2
  - Improve rotation
  - Plays Html5 videos in native player in some websites
+ 
 v2.1 
  - Issue on rotate loading home screen
+ 
 v2.0 
  - Pro Account
  - Sync Bookmarks to sBrowser server
+ 
 v1.7.2 
  - Issue with menu button not showing in some devices
  - Better tablet support
  - NEW PERMISSION (com.android.vending.BILLING) NOT YET IMPLEMENTED
+ 
 v1.7.1
  - Re-enable Refresh/Stop button functionality
+ 
 v1.7
  - Hardware acceleration allowed for YouTube handling and similar
  - Some bug fixes and improvements
+ 
 v1.6.6
  - Removed from recent apps
  - Default home page "https://encrypted.google.com/"
  - Default search engine "https://encrypted.google.com/" 
+ 
 v1.6.4
  - Opens https links from third party apps
+ 
 v1.6.3
  - Added feedback menu button
  - Added top bar in preference/bookmark screens
+ 
 v1.6.2
  - Compleate fixed bug in the bookmarks
+ 
 v1.6.1
  - Fixed bug of out of memory error on bookmarks
+ 
 v1.6
  - Added edit/delete bookmarks
  - Bookmarks now show thumbnail
+ 
 v1.5 
  - Added set user agent in preferences
  - Fixed crashes when pressing menu option while still loading
  - No need to enter http or http while changing web address
  - Other improvements in bookmark activity
+ 
 v1.4.3 
  - Removed back & quit buttons from bar
  - Bar moved to the right on landscape
  - Other minor changes
+ 
 v1.3.3 
  - Opens market links
+ 
 v1.3.2 
  - Bar moved to the bottom
  - Other minor improvements
+ 
 v1.3.1 
  - Changed empty picture of bookmarks
+ 
 v1.3 
  - Bookmarks view change to GridView
+ 
 v1.2 
  - Icon added to the app drawer
+ 
 v1.1 
  - Added bookmarks
 

+ 3 - 4
app/build.gradle.kts

@@ -11,11 +11,11 @@ android {
     compileSdk = 34
 
     defaultConfig {
-        applicationId = "com.codeskraps.sbrowser_d"
+        applicationId = "com.codeskraps.sbrowser_new"
         minSdk = 26
         targetSdk = 34
-        versionCode = 1
-        versionName = "1.0"
+        versionCode = 2
+        versionName = "3.0"
 
         testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
         vectorDrawables {
@@ -78,7 +78,6 @@ dependencies {
     implementation(libs.jsoup)
 
     implementation(libs.media3.exoplayer)
-    //implementation(libs.media3.session)
     implementation(libs.media3.ui)
 
     testImplementation(libs.junit)

BIN
app/release/app-release.aab


+ 0 - 1
app/src/main/AndroidManifest.xml

@@ -14,7 +14,6 @@
         android:fullBackupContent="@xml/backup_rules"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
-        android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/Theme.SBrowser"
         tools:targetApi="31">

+ 4 - 1
app/src/main/java/com/codeskraps/sbrowser/ForegroundService.kt

@@ -32,6 +32,9 @@ class ForegroundService : Service() {
     @Inject
     lateinit var mediaWebView: MediaWebView
 
+    @Inject
+    lateinit var mediaWebViewPreferences: MediaWebViewPreferences
+
     override fun onBind(intent: Intent?): IBinder? = null
 
     override fun onCreate() {
@@ -93,7 +96,7 @@ class ForegroundService : Service() {
     private fun createNotification(contentText: String): Notification =
         NotificationCompat.Builder(this, CHANNEL_ID)
             .setContentTitle(getString(R.string.app_name))
-            .setContentText(contentText)
+            .setContentText(if (mediaWebViewPreferences.showUrl) contentText else "Keep notification to play while the app is on the background.")
             .setSmallIcon(R.drawable.ic_notification)
             .setContentIntent(contentPendingIntent())
             .setDeleteIntent(deletePendingIntent())

+ 7 - 0
app/src/main/java/com/codeskraps/sbrowser/MediaWebViewPreferences.kt

@@ -14,6 +14,7 @@ class MediaWebViewPreferences @Inject constructor(
         private const val PREF_JAVASCRIPT = "pref_javascript"
         private const val PREF_PLUGINS = "pref_plugins"
         private const val PREF_USER_AGENT = "pref_user_agent"
+        private const val PREF_SHOW_URL = "pref_show_url"
     }
 
     private val prefs by lazy {
@@ -61,4 +62,10 @@ class MediaWebViewPreferences @Inject constructor(
         set(value) {
             prefs.edit().putString(PREF_USER_AGENT, value).apply()
         }
+
+    var showUrl: Boolean
+        get() = prefs.getBoolean(PREF_SHOW_URL, Constants.showUrl)
+        set(value) {
+            prefs.edit().putBoolean(PREF_SHOW_URL, value).apply()
+        }
 }

+ 8 - 1
app/src/main/java/com/codeskraps/sbrowser/feature/bookmarks/presentation/components/BookmarksScreen.kt

@@ -3,7 +3,9 @@ package com.codeskraps.sbrowser.feature.bookmarks.presentation.components
 import android.widget.Toast
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.layout.width
 import androidx.compose.foundation.lazy.grid.GridCells
 import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
@@ -48,6 +50,7 @@ fun BookmarksScreen(
 
     Scaffold(
         modifier = Modifier.fillMaxSize(),
+        containerColor = MaterialTheme.colorScheme.secondary,
         topBar = {
             TopAppBar(title = { Text(text = "Bookmarks") })
         }
@@ -78,13 +81,17 @@ fun BookmarksScreen(
                     Box(
                         modifier = Modifier
                             .width(100.dp)
+                            .height(100.dp)
                             .padding(10.dp)
                     ) {
                         IconButton(
                             onClick = { handleEvent(BookmarkEvent.Add) },
                             modifier = Modifier.align(Alignment.Center)
                         ) {
-                            Icon(imageVector = Icons.Default.Add, contentDescription = "Add")
+                            Icon(
+                                modifier = Modifier.size(200.dp),
+                                imageVector = Icons.Default.Add, contentDescription = "Add"
+                            )
                         }
                     }
                 }

+ 8 - 1
app/src/main/java/com/codeskraps/sbrowser/feature/settings/SettingsViewModel.kt

@@ -29,7 +29,8 @@ class SettingsViewModel @Inject constructor(
                         homeUrl = mediaWebViewPreferences.homeUrl,
                         javaScript = mediaWebViewPreferences.javaScript,
                         plugins = mediaWebViewPreferences.plugins,
-                        userAgent = mediaWebViewPreferences.userAgent
+                        userAgent = mediaWebViewPreferences.userAgent,
+                        showUrl = mediaWebViewPreferences.showUrl
                     )
                 )
             )
@@ -43,6 +44,7 @@ class SettingsViewModel @Inject constructor(
             is SettingsEvent.JavaScript -> onJavaScript(currentState, event.value)
             is SettingsEvent.Plugins -> onPlugins(currentState, event.value)
             is SettingsEvent.UserAgent -> onUserAgent(currentState, event.value)
+            is SettingsEvent.ShowUrl -> onShowUrl(currentState, event.value)
         }
     }
 
@@ -70,4 +72,9 @@ class SettingsViewModel @Inject constructor(
         mediaWebViewPreferences.userAgent = value
         return currentState.copy(userAgent = value)
     }
+
+    private fun onShowUrl(currentState: SettingsState, value: Boolean): SettingsState {
+        mediaWebViewPreferences.showUrl = value
+        return currentState.copy(showUrl = value)
+    }
 }

+ 1 - 1
app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/CategoryPreference.kt

@@ -15,7 +15,7 @@ fun CategoryPreference(
     Text(
         modifier = Modifier
             .fillMaxWidth()
-            .padding(start = 15.dp, top = 5.dp, end = 15.dp, bottom = 5.dp),
+            .padding(start = 20.dp, top = 10.dp, end = 20.dp, bottom = 10.dp),
         color = MaterialTheme.colorScheme.tertiary,
         text = title
     )

+ 1 - 1
app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/CheckPreference.kt

@@ -30,7 +30,7 @@ fun CheckPreference(
     Row(
         modifier = Modifier
             .fillMaxWidth()
-            .padding(start = 10.dp, top = 5.dp, end = 10.dp, bottom = 5.dp)
+            .padding(start = 15.dp, top = 10.dp, end = 15.dp, bottom = 10.dp)
     ) {
         Column(
             modifier = Modifier

+ 1 - 1
app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/ListPreference.kt

@@ -32,7 +32,7 @@ fun ListPreference(
     Column(
         modifier = Modifier
             .fillMaxWidth()
-            .padding(start = 10.dp, top = 5.dp, end = 10.dp, bottom = 5.dp)
+            .padding(start = 15.dp, top = 10.dp, end = 15.dp, bottom = 10.dp)
             .clickable { showDialog = true }
     ) {
         Text(text = title)

+ 1 - 1
app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/Preference.kt

@@ -28,7 +28,7 @@ fun Preference(
 
     var modifier = Modifier
         .fillMaxWidth()
-        .padding(start = 10.dp, top = 5.dp, end = 10.dp, bottom = 5.dp)
+        .padding(start = 15.dp, top = 10.dp, end = 15.dp, bottom = 10.dp)
     onChange?.let {
         modifier = modifier.clickable {
             showDialog = true

+ 4 - 0
app/src/main/java/com/codeskraps/sbrowser/feature/settings/components/SettingsScreen.kt

@@ -66,6 +66,10 @@ fun SettingsScreen(
                 ) { newValue ->
                     handleEvent(SettingsEvent.UserAgent(newValue))
                 }
+                CategoryPreference(title = "Notification")
+                CheckPreference(title = "Show Url", value = state.showUrl) { newValue ->
+                    handleEvent(SettingsEvent.ShowUrl(newValue))
+                }
                 CategoryPreference(title = "Information")
                 Preference(
                     title = "sBrowser v3.0",

+ 1 - 0
app/src/main/java/com/codeskraps/sbrowser/feature/settings/mvi/SettingsEvent.kt

@@ -8,4 +8,5 @@ sealed interface SettingsEvent {
     data class JavaScript(val value: Boolean) : SettingsEvent
     data class Plugins(val value: PluginState) : SettingsEvent
     data class UserAgent(val value: String) : SettingsEvent
+    data class ShowUrl(val value: Boolean) : SettingsEvent
 }

+ 4 - 2
app/src/main/java/com/codeskraps/sbrowser/feature/settings/mvi/SettingsState.kt

@@ -7,14 +7,16 @@ data class SettingsState(
     val homeUrl: String,
     val javaScript: Boolean,
     val plugins: PluginState,
-    val userAgent: String
+    val userAgent: String,
+    val showUrl: Boolean,
 ) {
     companion object {
         val initial = SettingsState(
             homeUrl = Constants.home,
             javaScript = Constants.javaScript,
             plugins = Constants.plugins,
-            userAgent = Constants.userAgent
+            userAgent = Constants.userAgent,
+            showUrl = Constants.showUrl
         )
     }
 }

+ 1 - 1
app/src/main/java/com/codeskraps/sbrowser/feature/webview/MediaWebViewModel.kt

@@ -67,7 +67,7 @@ class MediaWebViewModel @Inject constructor(
     }
 
     private fun onLoad(currentState: MediaWebViewState, url: String): MediaWebViewState {
-        mediaWebView.loadUrl(url.ifBlank { Constants.home })
+        mediaWebView.loadUrl(url.ifBlank { mediaWebViewPreferences.homeUrl })
         savedStateHandle.remove<String>("url")
         return currentState
     }

+ 1 - 0
app/src/main/java/com/codeskraps/sbrowser/feature/webview/media/MediaWebViewClient.kt

@@ -20,6 +20,7 @@ class MediaWebViewClient : WebViewClient() {
     override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
         super.onPageStarted(view, url, favicon)
         handleEvent?.let { it(MediaWebViewEvent.Loading(true)) }
+        urlListener?.let { url?.let { (url) } }
     }
 
     override fun onPageFinished(view: WebView?, url: String?) {

+ 3 - 0
app/src/main/java/com/codeskraps/sbrowser/ui/theme/Color.kt

@@ -2,6 +2,9 @@ package com.codeskraps.sbrowser.ui.theme
 
 import androidx.compose.ui.graphics.Color
 
+val primary = Color(0xFF142AF3)
+val primary_dark = Color(0xFF6876F2)
+
 // Neutrals
 val dark_100 = Color(0xFF2C3A42)
 val dark_95 = Color(0xFF37444B)

+ 2 - 2
app/src/main/java/com/codeskraps/sbrowser/ui/theme/Theme.kt

@@ -19,7 +19,7 @@ private val DarkColorScheme = darkColorScheme(
     onSecondary = dark_5,
     onSecondaryContainer = dark_20,
     secondaryContainer = dark_85,
-    tertiary = Color(0xFFDCAF28),
+    tertiary = primary_dark,
     background = Color.Black,
     onBackground = Color.White
 )
@@ -31,7 +31,7 @@ private val LightColorScheme = lightColorScheme(
     onSecondary = dark_100,
     onSecondaryContainer = dark_85,
     secondaryContainer = dark_15,
-    tertiary = Color(0xFFDCAF28),
+    tertiary = primary,
     background = Color.White,
     onBackground = Color.Black
 )

+ 1 - 0
app/src/main/java/com/codeskraps/sbrowser/util/Constants.kt

@@ -7,5 +7,6 @@ object Constants {
     const val javaScript = true
     val plugins = PluginState.ON
     const val userAgent = "Default"
+    const val showUrl = false
     const val inputExtra = "inputExtra"
 }

BIN
app/src/main/res/drawable-night/ic_notification.png


+ 0 - 170
app/src/main/res/drawable/ic_launcher_background.xml

@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="108dp"
-    android:height="108dp"
-    android:viewportWidth="108"
-    android:viewportHeight="108">
-    <path
-        android:fillColor="#3DDC84"
-        android:pathData="M0,0h108v108h-108z" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M9,0L9,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,0L19,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,0L29,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,0L39,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,0L49,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,0L59,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,0L69,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,0L79,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M89,0L89,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M99,0L99,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,9L108,9"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,19L108,19"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,29L108,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,39L108,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,49L108,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,59L108,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,69L108,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,79L108,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,89L108,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,99L108,99"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,29L89,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,39L89,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,49L89,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,59L89,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,69L89,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,79L89,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,19L29,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,19L39,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,19L49,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,19L59,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,19L69,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,19L79,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-</vector>

+ 0 - 30
app/src/main/res/drawable/ic_launcher_foreground.xml

@@ -1,30 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="108dp"
-    android:height="108dp"
-    android:viewportWidth="108"
-    android:viewportHeight="108">
-    <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
-        <aapt:attr name="android:fillColor">
-            <gradient
-                android:endX="85.84757"
-                android:endY="92.4963"
-                android:startX="42.9492"
-                android:startY="49.59793"
-                android:type="linear">
-                <item
-                    android:color="#44000000"
-                    android:offset="0.0" />
-                <item
-                    android:color="#00000000"
-                    android:offset="1.0" />
-            </gradient>
-        </aapt:attr>
-    </path>
-    <path
-        android:fillColor="#FFFFFF"
-        android:fillType="nonZero"
-        android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
-</vector>

BIN
app/src/main/res/drawable/ic_notification.png


+ 5 - 0
app/src/main/res/drawable/ic_notification.xml

@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#000000"
+    android:viewportHeight="24" android:viewportWidth="24"
+    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="@color/notification_icon" android:pathData="M8,5v14l11,-7z"/>
+</vector>

+ 0 - 6
app/src/main/res/mipmap-anydpi/ic_launcher.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@drawable/ic_launcher_background" />
-    <foreground android:drawable="@drawable/ic_launcher_foreground" />
-    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
-</adaptive-icon>

+ 0 - 6
app/src/main/res/mipmap-anydpi/ic_launcher_round.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@drawable/ic_launcher_background" />
-    <foreground android:drawable="@drawable/ic_launcher_foreground" />
-    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
-</adaptive-icon>

BIN
app/src/main/res/mipmap-hdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-hdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-mdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-mdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-xhdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp


+ 1 - 3
gradle/libs.versions.toml

@@ -44,12 +44,10 @@ room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
 
 jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" }
 media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3_version" }
-media3-session = { group = "androidx.media3", name = "media3-session", version.ref = "media3_version" }
 media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "media3_version" }
 
 [plugins]
 androidApplication = { id = "com.android.application", version.ref = "agp" }
 kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
 google-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
-google-hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
-
+google-hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }