From 4d859ee8d45d86cf3cd308eff8b943bfe7ae3204 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Denis=20=C3=87erri?=
<64997243+deniscerri@users.noreply.github.com>
Date: Fri, 3 Mar 2023 21:54:50 +0100
Subject: [PATCH] prevented card from duplicating when switching formats
---
app/src/main/AndroidManifest.xml | 10 +++---
.../main/java/com/deniscerri/ytdlnis/App.kt | 5 ---
.../com/deniscerri/ytdlnis/MainActivity.kt | 7 ++--
.../database/repository/ResultRepository.kt | 16 ++-------
.../ytdlnis/receiver/ShareActivity.kt | 3 +-
.../ui/downloadcard/DownloadAudioFragment.kt | 4 +--
.../downloadcard/DownloadBottomSheetDialog.kt | 2 +-
.../ui/downloadcard/DownloadVideoFragment.kt | 9 +++--
.../FormatSelectionBottomSheetDialog.kt | 34 +++++++++++-------
.../ui/{ => more}/CustomCommandActivity.kt | 2 +-
.../ytdlnis/ui/{ => more}/MoreFragment.kt | 2 +-
.../downloadLogs/DownloadLogActivity.kt | 5 +--
.../downloadLogs/DownloadLogListActivity.kt | 10 +-----
.../{ => more}/settings/SettingsActivity.kt | 2 +-
.../{ => more}/settings/SettingsFragment.kt | 2 +-
.../com/deniscerri/ytdlnis/util/InfoUtil.kt | 36 +++++++++++++++++++
.../res/layout/activity_command_templates.xml | 2 +-
.../res/layout/activity_custom_command.xml | 2 +-
.../main/res/layout/activity_download_log.xml | 2 +-
.../res/layout/activity_download_log_list.xml | 2 +-
.../res/layout/activity_download_queue.xml | 2 +-
app/src/main/res/layout/activity_settings.xml | 2 +-
22 files changed, 89 insertions(+), 72 deletions(-)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/{ => more}/CustomCommandActivity.kt (99%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/{ => more}/MoreFragment.kt (95%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/{ => more}/downloadLogs/DownloadLogActivity.kt (94%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/{ => more}/downloadLogs/DownloadLogListActivity.kt (92%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/{ => more}/settings/SettingsActivity.kt (97%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/{ => more}/settings/SettingsFragment.kt (99%)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d2215144..309ac0aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -55,7 +55,7 @@
@@ -75,9 +75,9 @@
@@ -85,7 +85,7 @@
@@ -95,7 +95,7 @@
{
- var el: Array =
- inputQuery.split("/".toRegex()).dropLastWhile { it.isEmpty() }
- .toTypedArray()
- var query = el[el.size - 1]
- if (query!!.contains("watch?v=")) {
- query = query.substring(8)
- }
- el = query.split("&".toRegex()).dropLastWhile { it.isEmpty() }
- .toTypedArray()
- query = el[0]
- el = query!!.split("\\?".toRegex()).dropLastWhile { it.isEmpty() }
- .toTypedArray()
- query = el[0]
val infoUtil = InfoUtil(context)
+ val query = infoUtil.getIDFromYoutubeURL(inputQuery)
try {
- val v = infoUtil.getVideo(query!!)
+ val v = infoUtil.getVideo(query)
if (resetResults) deleteAll()
itemCount.postValue(1)
resultDao.insert(v!!)
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 eba2e4ca..3f4fb5ae 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt
@@ -108,7 +108,7 @@ class ShareActivity : AppCompatActivity() {
}
resultViewModel.items.observe(this) {
- if (it.isNotEmpty()){
+ if (it.isNotEmpty() && supportFragmentManager.findFragmentByTag("downloadSingleSheet") == null){
if(resultViewModel.itemCount.value!! == it.size){
loadingBottomSheet.cancel()
showDownloadSheet(it[0])
@@ -211,6 +211,5 @@ class ShareActivity : AppCompatActivity() {
companion object {
private const val TAG = "ShareActivity"
-
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadAudioFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadAudioFragment.kt
index c2255a3c..8ef80f53 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadAudioFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadAudioFragment.kt
@@ -162,10 +162,10 @@ class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() {
if (containers.contains(formats[formats.lastIndex].container)){
formats[formats.lastIndex].container
}else{
- containers[0]
+ sharedPreferences.getString("audio_format", "mp3")!!
}
}catch (e: Exception){
- containers[0]
+ sharedPreferences.getString("audio_format", "mp3")!!
}
downloadItem.format.container = selectedContainer
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt
index f92d9abd..e2375276 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt
@@ -135,7 +135,7 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val
val timepicker = MaterialTimePicker.Builder()
- .setTimeFormat(TimeFormat.CLOCK_12H)
+ .setTimeFormat(TimeFormat.CLOCK_24H)
.setHour(currentDate.get(Calendar.HOUR_OF_DAY))
.setMinute(currentDate.get(Calendar.MINUTE))
.build()
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadVideoFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadVideoFragment.kt
index 80fb1e4e..3185c2ec 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadVideoFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadVideoFragment.kt
@@ -58,7 +58,7 @@ class DownloadVideoFragment(private val resultItem: ResultItem) : Fragment() {
fragmentView = inflater.inflate(R.layout.fragment_download_video, container, false)
activity = getActivity()
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
- resultViewModel = ViewModelProvider(this)[ResultViewModel::class.java]
+ resultViewModel = ViewModelProvider(this@DownloadVideoFragment)[ResultViewModel::class.java]
downloadItem = downloadViewModel.createDownloadItemFromResult(resultItem, Type.video)
fileUtil = FileUtil()
uiUtil = UiUtil(fileUtil)
@@ -151,7 +151,12 @@ class DownloadVideoFragment(private val resultItem: ResultItem) : Fragment() {
}else{
containerAutoCompleteTextView.setText(containers[0], false)
}
-
+ lifecycleScope.launch {
+ withContext(Dispatchers.IO){
+ resultItem.formats = ArrayList(allFormats)
+ resultViewModel.update(resultItem)
+ }
+ }
formats = allFormats.toMutableList()
uiUtil.populateFormatCard(formatCard, item)
}
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/FormatSelectionBottomSheetDialog.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/FormatSelectionBottomSheetDialog.kt
index f5f658a2..8d176187 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/FormatSelectionBottomSheetDialog.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/FormatSelectionBottomSheetDialog.kt
@@ -17,6 +17,7 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.get
import androidx.core.view.size
import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.widget.ViewPager2
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.database.models.DownloadItem
@@ -37,6 +38,9 @@ import com.google.android.material.datepicker.MaterialDatePicker
import com.google.android.material.tabs.TabLayout
import com.google.android.material.timepicker.MaterialTimePicker
import com.google.android.material.timepicker.TimeFormat
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
import java.util.*
@@ -73,20 +77,24 @@ class FormatSelectionBottomSheetDialog(private val item: DownloadItem, private v
val refreshBtn = view.findViewById