From a29eecadee389618ce87d18956e07ef4ba2b9877 Mon Sep 17 00:00:00 2001
From: deniscerri <64997243+deniscerri@users.noreply.github.com>
Date: Sun, 23 Apr 2023 14:42:12 +0200
Subject: [PATCH] theme bug fixes
---
.idea/compiler.xml | 2 +-
.idea/misc.xml | 2 +-
app/build.gradle | 19 +++++++-------
app/src/main/AndroidManifest.xml | 25 +++++++++----------
.../com/deniscerri/ytdlnis/MainActivity.kt | 5 +---
.../ytdlnis/receiver/ShareActivity.kt | 3 ++-
.../ui/downloads/ActiveDownloadsFragment.kt | 4 +++
.../ytdlnis/util/NotificationUtil.kt | 2 +-
.../com/deniscerri/ytdlnis/util/ThemeUtil.kt | 25 ++++++++-----------
.../deniscerri/ytdlnis/work/DownloadWorker.kt | 8 +++---
.../ytdlnis/work/TerminalDownloadWorker.kt | 8 +++---
app/src/main/res/layout/fragment_history.xml | 1 -
app/src/main/res/layout/fragment_home.xml | 2 +-
app/src/main/res/values-nb-rNO/strings.xml | 2 --
app/src/main/res/values-night/themes.xml | 5 ++--
app/src/main/res/values-sq-rAL/strings.xml | 2 --
app/src/main/res/values/styles.xml | 2 +-
app/src/main/res/values/themes.xml | 4 +--
app/src/main/res/xml/root_preferences.xml | 2 +-
build.gradle | 6 ++---
20 files changed, 59 insertions(+), 70 deletions(-)
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index b589d56e..fb7f4a8a 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9304d96b..f3d02381 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 3d292ffa..b2668a92 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,7 +4,7 @@ plugins {
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
- id "org.jetbrains.kotlin.plugin.serialization" version "1.7.21"
+ id "org.jetbrains.kotlin.plugin.serialization" version "1.8.10"
}
def properties = new Properties()
@@ -97,12 +97,12 @@ android {
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
- jvmTarget = '1.8'
+ jvmTarget = '11'
}
splits {
@@ -130,12 +130,11 @@ dependencies {
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
implementation 'com.google.android.material:material:1.9.0-beta01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'androidx.core:core:1.9.0'
implementation 'androidx.recyclerview:recyclerview:1.3.0'
implementation 'androidx.preference:preference:1.2.0'
implementation "androidx.navigation:navigation-fragment-ktx:$navVer"
implementation "androidx.navigation:navigation-ui-ktx:$navVer"
- implementation 'androidx.core:core-ktx:1.9.0'
+ implementation 'androidx.core:core-ktx:1.10.0'
implementation 'androidx.test.ext:junit-ktx:1.1.5'
implementation 'androidx.benchmark:benchmark-macro:1.1.1'
testImplementation "junit:junit:$junitVer"
@@ -148,7 +147,7 @@ dependencies {
androidTestImplementation "androidx.test:rules:1.5.0"
androidTestImplementation "androidx.navigation:navigation-testing:$navVer"
- implementation "io.reactivex.rxjava2:rxandroid:2.1.0"
+ implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation "com.devbrackets.android:exomedia:4.3.0"
implementation("androidx.cardview:cardview:1.0.0")
@@ -164,7 +163,7 @@ dependencies {
implementation "androidx.room:room-ktx:2.5.1"
kapt "androidx.room:room-compiler:2.5.1"
androidTestImplementation "androidx.room:room-testing:2.5.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'
implementation "androidx.compose.runtime:runtime:$composeVer"
androidTestImplementation "com.google.truth:truth:1.1.3"
@@ -174,9 +173,9 @@ dependencies {
implementation "com.squareup.retrofit2:retrofit:$retrofitVer"
implementation "com.squareup.retrofit2:converter-gson:$retrofitVer"
implementation "com.squareup.okhttp3:okhttp:5.0.0-alpha.10"
- implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
+ implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11'
- implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
+ implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0'
implementation "com.google.android.exoplayer:exoplayer:2.18.5"
implementation 'it.xabaras.android:recyclerview-swipedecorator:1.4'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7ab0e1fe..1fb4bc07 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -38,9 +38,9 @@
+ android:windowSoftInputMode="adjustPan">
@@ -56,7 +56,7 @@
@@ -82,7 +82,7 @@
@@ -93,7 +93,7 @@
@@ -104,7 +104,7 @@
@@ -115,11 +115,10 @@
+ android:parentActivityName=".MainActivity">
@@ -135,7 +134,7 @@
@@ -148,7 +147,7 @@
@@ -161,7 +160,7 @@
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt
index 29baaa00..abf6b37b 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt
@@ -18,7 +18,6 @@ import android.view.View
import android.view.WindowInsets
import android.widget.CheckBox
import android.widget.TextView
-import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.forEach
@@ -35,11 +34,9 @@ import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
import com.deniscerri.ytdlnis.util.ThemeUtil
import com.deniscerri.ytdlnis.util.UpdateUtil
-import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.navigation.NavigationBarView
import com.google.android.material.navigation.NavigationView
-import com.google.android.material.navigationrail.NavigationRailView
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.io.BufferedReader
@@ -62,7 +59,7 @@ class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
-
+ ThemeUtil.updateTheme(this)
setContentView(R.layout.activity_main)
context = baseContext
resultViewModel = ViewModelProvider(this)[ResultViewModel::class.java]
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt
index c32b5562..775dbf81 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt
@@ -31,6 +31,7 @@ import com.deniscerri.ytdlnis.database.models.ResultItem
import com.deniscerri.ytdlnis.database.viewmodel.CookieViewModel
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel
+import com.deniscerri.ytdlnis.ui.BaseActivity
import com.deniscerri.ytdlnis.ui.downloadcard.DownloadBottomSheetDialog
import com.deniscerri.ytdlnis.ui.downloadcard.SelectPlaylistItemsBottomSheetDialog
import com.google.android.material.bottomsheet.BottomSheetDialog
@@ -41,7 +42,7 @@ import kotlinx.coroutines.withContext
import java.io.File
import kotlin.system.exitProcess
-class ShareActivity : AppCompatActivity() {
+class ShareActivity : BaseActivity() {
lateinit var context: Context
private lateinit var resultViewModel: ResultViewModel
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
index 6a7dff33..939e772d 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
@@ -38,6 +38,7 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
lateinit var downloadItem: DownloadItem
private lateinit var notificationUtil: NotificationUtil
private lateinit var fileUtil: FileUtil
+ private lateinit var list: List
override fun onCreateView(
@@ -51,6 +52,7 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
notificationUtil = NotificationUtil(requireContext())
fileUtil = FileUtil()
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
+ list = listOf()
return fragmentView
}
@@ -78,6 +80,7 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
}
downloadViewModel.activeDownloads.observe(viewLifecycleOwner) {
+ list = it
activeDownloads.submitList(it)
it.forEach{item ->
WorkManager.getInstance(requireContext())
@@ -121,6 +124,7 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
}
private fun cancelDownload(itemID: Long){
+ list.find { it.id == itemID }?.let { downloadViewModel.deleteDownload(it) }
val id = itemID.toInt()
YoutubeDL.getInstance().destroyProcessById(id.toString())
WorkManager.getInstance(requireContext()).cancelUniqueWork(id.toString())
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt
index 916c46c2..0c038f4f 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt
@@ -162,7 +162,7 @@ class NotificationUtil(var context: Context) {
val errorPendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)
notificationBuilder
- .setContentTitle("${context.getString(R.string.errored)}: $title")
+ .setContentTitle("${context.getString(R.string.failed_download)}: $title")
.setContentText(error)
.setSmallIcon(R.drawable.ic_app_icon)
.setLargeIcon(
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/ThemeUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/ThemeUtil.kt
index 51c029cb..241c6057 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/util/ThemeUtil.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/util/ThemeUtil.kt
@@ -12,12 +12,13 @@ object ThemeUtil {
fun updateTheme(activity: AppCompatActivity) {
val sharedPreferences = activity.getSharedPreferences("root_preferences", Application.MODE_PRIVATE)
- val themeMode = sharedPreferences.getString("ytdlnis_theme", "Default")!!
//update accent
- val themeAccent = sharedPreferences.getString("theme_accent","blue")
- when (themeAccent) {
- "Default" -> activity.setTheme(R.style.BaseTheme)
+ when (sharedPreferences.getString("theme_accent","blue")) {
+ "Default" -> {
+ DynamicColors.applyToActivityIfAvailable(activity)
+ activity.setTheme(R.style.BaseTheme)
+ }
"blue" -> activity.setTheme(R.style.Theme_Blue)
"red" -> activity.setTheme(R.style.Theme_Red)
"green" -> activity.setTheme(R.style.Theme_Green)
@@ -26,21 +27,17 @@ object ThemeUtil {
"monochrome" -> activity.setTheme(R.style.Theme_Monochrome)
}
-
- //dynamic colors
- if (themeAccent == "Default") DynamicColors.applyToActivityIfAvailable(activity)
-
//high contrast theme
- val highContrast = sharedPreferences.getBoolean(
- "high_contrast",
- false
- )
- if (highContrast) activity.theme.applyStyle(R.style.Pure, true)
+ if (sharedPreferences.getBoolean("high_contrast",false)) {
+ activity.theme.applyStyle(R.style.Pure, true)
+ }
- when (themeMode) {
+ when (sharedPreferences.getString("ytdlnis_theme", "System")!!) {
"System" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
"Light" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
"Dark" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
+ else -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
}
+
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt b/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt
index 95737a2b..4d32d453 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt
@@ -310,6 +310,8 @@ class DownloadWorker(
historyDao.insert(historyItem)
}
}
+ notificationUtil.cancelDownloadNotification(downloadItem.id.toInt())
+
notificationUtil.createDownloadFinished(
downloadItem.title, if (finalPath.equals(context.getString(R.string.unfound_file))) null else finalPath,
NotificationUtil.DOWNLOAD_FINISHED_CHANNEL_ID
@@ -338,11 +340,7 @@ class DownloadWorker(
}, 1000)
Log.e(TAG, context.getString(R.string.failed_download), it)
- notificationUtil.updateDownloadNotification(
- downloadItem.id.toInt(),
- context.getString(R.string.failed_download), 0, 0, downloadItem.title,
- NotificationUtil.DOWNLOAD_SERVICE_CHANNEL_ID
- )
+ notificationUtil.cancelDownloadNotification(downloadItem.id.toInt())
downloadItem.status = DownloadRepository.Status.Error.toString()
runBlocking {
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/work/TerminalDownloadWorker.kt b/app/src/main/java/com/deniscerri/ytdlnis/work/TerminalDownloadWorker.kt
index d4c2555a..06addc25 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/work/TerminalDownloadWorker.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/work/TerminalDownloadWorker.kt
@@ -110,6 +110,8 @@ class TerminalDownloadWorker(
if (logDownloads && logFile.exists()){
logFile.appendText("${it.out}\n")
}
+ notificationUtil.cancelDownloadNotification(itemId)
+
}.onFailure {
if (it is YoutubeDL.CanceledException) {
return Result.failure()
@@ -121,11 +123,7 @@ class TerminalDownloadWorker(
tempFileDir.delete()
Log.e(TAG, context.getString(R.string.failed_download), it)
- notificationUtil.updateDownloadNotification(
- itemId,
- context.getString(R.string.failed_download), 0, 0, command.take(65),
- NotificationUtil.DOWNLOAD_SERVICE_CHANNEL_ID
- )
+ notificationUtil.cancelDownloadNotification(itemId)
return Result.failure()
}
diff --git a/app/src/main/res/layout/fragment_history.xml b/app/src/main/res/layout/fragment_history.xml
index 07836bcb..be7ce041 100644
--- a/app/src/main/res/layout/fragment_history.xml
+++ b/app/src/main/res/layout/fragment_history.xml
@@ -18,7 +18,6 @@
android:id="@+id/history_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
- app:layout_scrollFlags="scroll"
app:title="@string/downloads"
app:menu="@menu/history_menu"
/>
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index d2d6ab55..8da3c3ea 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -112,7 +112,7 @@
android:id="@+id/home_toolbar"
android:layout_width="match_parent"
app:title="@string/app_name"
- app:layout_scrollFlags="scroll"
+ app:layout_scrollFlags="scroll|enterAlways"
android:layout_height="wrap_content" />
Slutt
Start
Kvalitet
- Helsvart
System
Helsvart/helhvit drakt
- Helhvit
Høykontrast
Lenke du kopierte
Klipp ut
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 04b1dddd..cf2a0a65 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -1,9 +1,10 @@
-