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