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