theme bug fixes

pull/110/head
deniscerri 3 years ago
parent 026cf5cdba
commit a29eecadee
No known key found for this signature in database
GPG Key ID: 95C43D517D830350

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
<bytecodeTargetLevel target="11" />
</component>
</project>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17_PREVIEW" project-jdk-name="jbr-17" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="jbr-17" project-jdk-type="JavaSDK" />
</project>

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

@ -38,9 +38,9 @@
<activity
android:name=".MainActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:windowSoftInputMode="adjustResize">
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@ -56,7 +56,7 @@
</activity>
<activity
android:name=".receiver.ShareActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleInstance"
@ -71,7 +71,7 @@
</activity>
<activity
android:name=".ui.more.downloadLogs.DownloadLogListActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".MainActivity">
<intent-filter>
@ -82,7 +82,7 @@
</activity>
<activity
android:name=".ui.downloads.DownloadQueueActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".MainActivity">
<intent-filter>
@ -93,7 +93,7 @@
</activity>
<activity
android:name=".ui.more.downloadLogs.DownloadLogActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".ui.more.downloadLogs.DownloadLogListActivity">
<intent-filter>
@ -104,7 +104,7 @@
</activity>
<activity
android:name=".ui.more.settings.SettingsActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".MainActivity">
<intent-filter>
@ -115,11 +115,10 @@
</activity>
<activity
android:name=".ui.more.TerminalActivity"
android:configChanges="layoutDirection|locale|orientation|screenSize"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:label="@string/terminal"
android:parentActivityName=".MainActivity"
android:theme="@style/BaseTheme">
android:parentActivityName=".MainActivity">
<intent-filter>
<action android:name="ytdlnis.TerminalActivity" />
@ -135,7 +134,7 @@
</activity>
<activity
android:name=".ui.more.CommandTemplatesActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".MainActivity"
android:windowSoftInputMode="adjustResize">
@ -148,7 +147,7 @@
<activity
android:name=".ui.more.CookiesActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".MainActivity"
android:windowSoftInputMode="adjustResize">
@ -161,7 +160,7 @@
<activity
android:name=".ui.more.WebViewActivity"
android:configChanges="layoutDirection|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".MainActivity"
android:windowSoftInputMode="adjustResize">

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

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

@ -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<DownloadItem>
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())

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

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

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

@ -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()
}

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

@ -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" />
<com.google.android.material.search.SearchBar

@ -177,10 +177,8 @@
<string name="end">Slutt</string>
<string name="start">Start</string>
<string name="quality">Kvalitet</string>
<string name="black">Helsvart</string>
<string name="system">System</string>
<string name="pure_theme_summary">Helsvart/helhvit drakt</string>
<string name="white">Helhvit</string>
<string name="high_contrast">Høykontrast</string>
<string name="link_you_copied">Lenke du kopierte</string>
<string name="cut">Klipp ut</string>

@ -1,9 +1,10 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="BaseTheme" parent="Theme.Material3.DayNight.NoActionBar">
<item name="android:windowLightStatusBar">?attr/isLightTheme</item>
<style name="BaseTheme" parent="Theme.Material3.Dark.NoActionBar">
<item name="android:windowLightStatusBar">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:color">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="windowActionModeOverlay">true</item>
<item name="alertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="dialogCornerRadius">28dp</item>

@ -221,8 +221,6 @@
<string name="light">Çelët</string>
<string name="quality">Kualiteti</string>
<string name="system">Sistemi</string>
<string name="white">Kompet e Bardhë</string>
<string name="black">Komplet e Zezë</string>
<string name="accents">Ngjyrat</string>
<string name="high_contrast">Kontrast i Lartë</string>
<string name="pure_theme_summary">Temë komplet e Zezë / e Bardhë</string>

@ -1,5 +1,5 @@
<resources>
<style name="Theme.BottomSheet" parent="Theme.Material3.DayNight.NoActionBar">
<style name="Theme.BottomSheet" parent="BaseTheme">
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>

@ -1,10 +1,10 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="BaseTheme" parent="Theme.Material3.DayNight.NoActionBar">
<style name="BaseTheme" parent="Theme.Material3.Light.NoActionBar">
<item name="android:windowLightStatusBar">?attr/isLightTheme</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:color">@android:color/transparent</item>
<item name="windowActionModeOverlay">true</item>
<item name="alertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="dialogCornerRadius">28dp</item>

@ -12,7 +12,7 @@
android:entries="@array/themes"
android:entryValues="@array/themes_values"
android:icon="@drawable/baseline_format_paint_24"
app:defaultValue="Default"
app:defaultValue="System"
app:key="ytdlnis_theme"
app:summary="@string/defaultValue"
app:title="@string/Theme" />

@ -23,7 +23,7 @@ buildscript {
commonsCompressVer = '1.12'
youtubedlAndroidVer = "7222fe9637"
workVer = "2.8.1"
composeVer = "1.4.0-alpha02"
composeVer = '1.4.2'
kotlinVer = "1.7.21"
coroutineVer = "1.6.4"
retrofitVer = "2.9.0"
@ -41,8 +41,8 @@ buildscript {
plugins {
id 'com.android.application' version '7.4.2' apply false
id 'com.android.library' version '7.4.2' apply false
id 'org.jetbrains.kotlin.android' version '1.7.21' apply false
id "org.jetbrains.kotlin.plugin.serialization" version "1.7.21" apply false
id 'org.jetbrains.kotlin.android' version '1.8.10' apply false
id "org.jetbrains.kotlin.plugin.serialization" version "1.8.10" apply false
id 'com.android.test' version '7.4.2' apply false
}

Loading…
Cancel
Save