diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 69b80b47..8e435fba 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -32,6 +32,10 @@
+
+
+
@@ -42,6 +46,7 @@
+
(R.id.downloads_download_button_type)
when(item.type) {
- "audio" -> {
+ DownloadViewModel.Type.audio -> {
btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music)
}
- "video" -> {
+ DownloadViewModel.Type.video -> {
btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video)
}
- "command" -> {
+ DownloadViewModel.Type.command -> {
btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_baseline_keyboard_arrow_right_24)
}
}
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/adapter/HistoryAdapter.kt b/app/src/main/java/com/deniscerri/ytdlnis/adapter/HistoryAdapter.kt
index fb6045ec..f93c9a07 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/adapter/HistoryAdapter.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/adapter/HistoryAdapter.kt
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.database.models.HistoryItem
+import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.google.android.material.button.MaterialButton
import com.google.android.material.card.MaterialCardView
import com.squareup.picasso.Picasso
@@ -121,12 +122,10 @@ class HistoryAdapter(onItemClickListener: OnItemClickListener, activity: Activit
})
thumbnail.alpha = 0.7f
}
- if (item.type.isNotEmpty()) {
- if (item.type == "audio") {
- if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music)
- } else {
- if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video)
- }
+ if (item.type == DownloadViewModel.Type.audio) {
+ if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music)
+ } else {
+ if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video)
}
if (btn.hasOnClickListeners()) btn.setOnClickListener(null)
if (checkedItems.contains(item.id)) {
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/adapter/HomeAdapter.kt b/app/src/main/java/com/deniscerri/ytdlnis/adapter/HomeAdapter.kt
index 47ddf347..efe070a5 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/adapter/HomeAdapter.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/adapter/HomeAdapter.kt
@@ -16,6 +16,7 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.database.models.ResultItem
+import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.google.android.material.button.MaterialButton
import com.google.android.material.card.MaterialCardView
import com.google.android.material.progressindicator.LinearProgressIndicator
@@ -84,11 +85,11 @@ class HomeAdapter(onItemClickListener: OnItemClickListener, activity: Activity)
val musicBtn = buttonLayout.findViewById(R.id.download_music)
musicBtn.tag = "$videoURL##audio"
musicBtn.setTag(R.id.cancelDownload, "false")
- musicBtn.setOnClickListener { onItemClickListener.onButtonClick(videoURL, "audio") }
+ musicBtn.setOnClickListener { onItemClickListener.onButtonClick(videoURL, DownloadViewModel.Type.audio) }
val videoBtn = buttonLayout.findViewById(R.id.download_video)
videoBtn.tag = "$videoURL##video"
videoBtn.setTag(R.id.cancelDownload, "false")
- videoBtn.setOnClickListener { onItemClickListener.onButtonClick(videoURL, "video") }
+ videoBtn.setOnClickListener { onItemClickListener.onButtonClick(videoURL, DownloadViewModel.Type.video) }
// PROGRESS BAR ----------------------------------------------------
@@ -159,7 +160,7 @@ class HomeAdapter(onItemClickListener: OnItemClickListener, activity: Activity)
}
interface OnItemClickListener {
- fun onButtonClick(videoURL: String, type: String?)
+ fun onButtonClick(videoURL: String, type: DownloadViewModel.Type?)
fun onCardClick(videoURL: String, add: Boolean)
}
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/adapter/QueuedDownloadAdapter.kt b/app/src/main/java/com/deniscerri/ytdlnis/adapter/QueuedDownloadAdapter.kt
index 270e542a..a2264328 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/adapter/QueuedDownloadAdapter.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/adapter/QueuedDownloadAdapter.kt
@@ -20,6 +20,7 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.database.models.HistoryItem
+import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.google.android.material.button.MaterialButton
import com.google.android.material.card.MaterialCardView
import com.squareup.picasso.Picasso
@@ -120,12 +121,10 @@ class QueuedDownloadAdapter(onItemClickListener: OnItemClickListener, activity:
})
thumbnail.alpha = 0.7f
}
- if (item.type.isNotEmpty()) {
- if (item.type == "audio") {
- if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music)
- } else {
- if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video)
- }
+ if (item.type == DownloadViewModel.Type.audio) {
+ if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_music)
+ } else {
+ if (filePresent) btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video_downloaded) else btn.icon = ContextCompat.getDrawable(activity, R.drawable.ic_video)
}
if (btn.hasOnClickListeners()) btn.setOnClickListener(null)
if (checkedItems.contains(item.id)) {
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/Converters.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/Converters.kt
index 850a1698..2c464728 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/database/Converters.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/database/Converters.kt
@@ -2,6 +2,7 @@ package com.deniscerri.ytdlnis.database
import androidx.room.TypeConverter
import com.deniscerri.ytdlnis.database.models.Format
+import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import java.lang.reflect.Type
@@ -26,4 +27,15 @@ class Converters {
@TypeConverter
fun stringToFormat(string: String): Format = Gson().fromJson(string, Format::class.java)
+
+ @TypeConverter
+ fun typeToString(type: DownloadViewModel.Type) : String = type.toString()
+ @TypeConverter
+ fun stringToType(string: String) : DownloadViewModel.Type {
+ return when(string){
+ "audio" -> DownloadViewModel.Type.audio
+ "video" -> DownloadViewModel.Type.video
+ else -> DownloadViewModel.Type.command
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/models/DownloadItem.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/models/DownloadItem.kt
index 60554571..bb505639 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/database/models/DownloadItem.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/database/models/DownloadItem.kt
@@ -3,6 +3,7 @@ package com.deniscerri.ytdlnis.database.models
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
+import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
@Entity(tableName = "downloads")
data class DownloadItem(
@@ -13,10 +14,10 @@ data class DownloadItem(
var author: String,
val thumb: String,
val duration: String,
- var type: String,
+ var type: DownloadViewModel.Type,
var format: Format,
@ColumnInfo(defaultValue = "0")
- val removeAudio: Boolean,
+ var removeAudio: Boolean,
var downloadPath: String,
val website: String,
val downloadSize: String,
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/models/HistoryItem.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/models/HistoryItem.kt
index d55dde3d..40b128f7 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/database/models/HistoryItem.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/database/models/HistoryItem.kt
@@ -2,6 +2,7 @@ package com.deniscerri.ytdlnis.database.models
import androidx.room.Entity
import androidx.room.PrimaryKey
+import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
@Entity(tableName = "history")
data class HistoryItem(
@@ -12,7 +13,7 @@ data class HistoryItem(
val author: String,
val duration: String,
val thumb: String,
- val type: String,
+ val type: DownloadViewModel.Type,
val time: Long,
val downloadPath: String,
val website: String,
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt
index 63909a91..aa31388a 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt
@@ -3,7 +3,6 @@ package com.deniscerri.ytdlnis.database.viewmodel
import android.app.Activity
import android.app.Application
import android.content.SharedPreferences
-import android.util.Log
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
@@ -35,7 +34,7 @@ class DownloadViewModel(application: Application) : AndroidViewModel(application
private var bestVideoFormat: Format
private var bestAudioFormat: Format
enum class Type {
- AUDIO, VIDEO, COMMAND
+ audio, video, command
}
init {
@@ -79,7 +78,7 @@ class DownloadViewModel(application: Application) : AndroidViewModel(application
return repository.getItemByID(id)
}
- fun createDownloadItemFromResult(resultItem: ResultItem, type: String) : DownloadItem {
+ fun createDownloadItemFromResult(resultItem: ResultItem, type: Type) : DownloadItem {
val embedSubs = sharedPreferences.getBoolean("embed_subtitles", false)
val addChapters = sharedPreferences.getBoolean("add_chapters", false)
val saveThumb = sharedPreferences.getBoolean("write_thumbnail", false)
@@ -97,16 +96,16 @@ class DownloadViewModel(application: Application) : AndroidViewModel(application
}
- private fun getFormat(resultItem: ResultItem, type: String) : Format {
+ private fun getFormat(resultItem: ResultItem, type: Type) : Format {
when(type) {
- "audio" -> {
+ Type.audio -> {
return try {
resultItem.formats.last { it.format_note.contains("audio", ignoreCase = true) }
}catch (e: Exception){
bestAudioFormat
}
}
- "video" -> {
+ Type.video -> {
return try {
resultItem.formats.last { !it.format_note.contains("audio", ignoreCase = true) }
}catch (e: Exception){
@@ -119,10 +118,10 @@ class DownloadViewModel(application: Application) : AndroidViewModel(application
}
}
- fun turnResultItemstoDownloadItems(items: List) : List {
+ fun turnResultItemsToDownloadItems(items: List) : List {
val list : MutableList = mutableListOf()
items.forEach {
- list.add(createDownloadItemFromResult(it!!, "video"))
+ list.add(createDownloadItemFromResult(it!!, Type.video))
}
return list
}
@@ -150,10 +149,6 @@ class DownloadViewModel(application: Application) : AndroidViewModel(application
return result
}
- fun deleteSingleProcessing(item: DownloadItem) = viewModelScope.launch(Dispatchers.IO) {
- repository.deleteSingleProcessing(item)
- }
-
fun deleteProcessing() = viewModelScope.launch(Dispatchers.IO) {
repository.deleteProcessing()
}
@@ -167,7 +162,10 @@ class DownloadViewModel(application: Application) : AndroidViewModel(application
val context = getApplication().applicationContext
items.forEach {
it.status = DownloadRepository.Status.Queued.toString()
- repository.update(it)
+ if (it.id == 0L){
+ val id = repository.insert(it)
+ it.id = id
+ }else repository.update(it)
val workRequest = OneTimeWorkRequestBuilder()
.setInputData(Data.Builder().putLong("id", it.id).build())
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/HistoryViewModel.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/HistoryViewModel.kt
index 5a0ae1cf..dbe78d47 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/HistoryViewModel.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/HistoryViewModel.kt
@@ -1,14 +1,7 @@
package com.deniscerri.ytdlnis.database.viewmodel
import android.app.Application
-import android.util.Log
-import android.widget.Toast
-import androidx.lifecycle.AndroidViewModel
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.MediatorLiveData
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.Observer
-import androidx.lifecycle.viewModelScope
+import androidx.lifecycle.*
import com.deniscerri.ytdlnis.database.DBManager
import com.deniscerri.ytdlnis.database.models.HistoryItem
import com.deniscerri.ytdlnis.database.repository.HistoryRepository
@@ -31,26 +24,26 @@ class HistoryViewModel(application: Application) : AndroidViewModel(application)
repository = HistoryRepository(dao)
allItems = repository.items
- _items.addSource(allItems, Observer {
+ _items.addSource(allItems){
filter(queryFilter.value!!, formatFilter.value!!, websiteFilter.value!!, sortType.value!!)
- })
- _items.addSource(formatFilter, Observer {
+ }
+ _items.addSource(formatFilter){
filter(queryFilter.value!!, formatFilter.value!!, websiteFilter.value!!, sortType.value!!)
- })
- _items.addSource(sortType, Observer {
+ }
+ _items.addSource(sortType){
filter(queryFilter.value!!, formatFilter.value!!, websiteFilter.value!!, sortType.value!!)
- })
- _items.addSource(websiteFilter, Observer {
+ }
+ _items.addSource(websiteFilter){
filter(queryFilter.value!!, formatFilter.value!!, websiteFilter.value!!, sortType.value!!)
- })
- _items.addSource(queryFilter, Observer {
+ }
+ _items.addSource(queryFilter){
filter(queryFilter.value!!, formatFilter.value!!, websiteFilter.value!!, sortType.value!!)
- })
+ }
}
fun getFilteredList() : LiveData>{
- return _items;
+ return _items
}
fun setSorting(sort: HistorySort){
@@ -69,7 +62,7 @@ class HistoryViewModel(application: Application) : AndroidViewModel(application)
formatFilter.value = filter
}
- fun filter(query : String, format : String, site : String, sort: HistorySort) = viewModelScope.launch(Dispatchers.IO){
+ private fun filter(query : String, format : String, site : String, sort: HistorySort) = viewModelScope.launch(Dispatchers.IO){
_items.postValue(repository.getFiltered(query, format, site, sort))
}
@@ -94,7 +87,7 @@ class HistoryViewModel(application: Application) : AndroidViewModel(application)
}
fun update(item: HistoryItem) = viewModelScope.launch(Dispatchers.IO){
- repository.update(item);
+ repository.update(item)
}
fun clearDeleted() = viewModelScope.launch(Dispatchers.IO) {
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt
new file mode 100644
index 00000000..89164c9c
--- /dev/null
+++ b/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareActivity.kt
@@ -0,0 +1,100 @@
+package com.deniscerri.ytdlnis.receiver
+
+import android.content.Context
+import android.content.Intent
+import android.graphics.drawable.ColorDrawable
+import android.net.Uri
+import android.os.Bundle
+import android.util.Log
+import android.view.WindowManager
+import androidx.fragment.app.FragmentManager
+import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
+import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel
+import com.deniscerri.ytdlnis.databinding.ActivityMainBinding
+import com.deniscerri.ytdlnis.ui.MoreFragment
+import java.io.BufferedReader
+import java.io.InputStreamReader
+import java.io.Reader
+import java.nio.charset.Charset
+import java.nio.charset.StandardCharsets
+import java.util.*
+import kotlin.system.exitProcess
+import androidx.activity.ComponentActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowCompat
+
+class ShareActivity : ComponentActivity() {
+
+ private lateinit var binding: ActivityMainBinding
+ lateinit var context: Context
+ private lateinit var resultViewModel: ResultViewModel
+ private lateinit var downloadViewModel: DownloadViewModel
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ WindowCompat.setDecorFitsSystemWindows(window, false)
+ ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { v, insets ->
+ v.setPadding(0, 0, 0, 0)
+ insets
+ }
+ window.setBackgroundDrawable(ColorDrawable(0))
+ window.setLayout(
+ WindowManager.LayoutParams.MATCH_PARENT,
+ WindowManager.LayoutParams.MATCH_PARENT
+ )
+
+ handleIntents(intent)
+ }
+
+ override fun onNewIntent(intent: Intent) {
+ super.onNewIntent(intent)
+ handleIntents(intent)
+ }
+
+ private fun handleIntents(intent: Intent) {
+ val action = intent.action
+ val type = intent.type
+ if (Intent.ACTION_SEND == action && type != null) {
+ Log.e(TAG, action)
+ moreFragment = MoreFragment()
+ if (type.equals("application/txt", ignoreCase = true)) {
+ try {
+ val uri = intent.getParcelableExtra(Intent.EXTRA_STREAM)
+ val `is` = contentResolver.openInputStream(uri!!)
+ val textBuilder = StringBuilder()
+ val reader: Reader = BufferedReader(
+ InputStreamReader(
+ `is`, Charset.forName(
+ StandardCharsets.UTF_8.name()
+ )
+ )
+ )
+ var c: Int
+ while (reader.read().also { c = it } != -1) {
+ textBuilder.append(c.toChar())
+ }
+ val l = listOf(*textBuilder.toString().split("\n").toTypedArray())
+ val lines = LinkedList(l)
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ } else {
+ //TODO
+ }
+ }
+ }
+
+
+
+ private fun exit() {
+ finishAffinity()
+ exitProcess(0)
+ }
+
+
+ companion object {
+ private const val TAG = "ShareActivity"
+ private lateinit var moreFragment: MoreFragment
+ private lateinit var fm: FragmentManager
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt
index 199f964d..a87487a9 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt
@@ -130,9 +130,11 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
}else{
downloadAllFabCoordinator!!.visibility = GONE
}
- }else if (sharedPreferences!!.getBoolean("download_card", true)){
- if(it.size == 1 && !firstBoot && parentFragmentManager.findFragmentByTag("downloadSingleSheet") == null){
- showSingleDownloadSheet(it[0], "audio")
+ }else if (it.size == 1){
+ if (sharedPreferences!!.getBoolean("download_card", true)){
+ if(it.size == 1 && !firstBoot && parentFragmentManager.findFragmentByTag("downloadSingleSheet") == null){
+ showSingleDownloadSheet(it[0], DownloadViewModel.Type.video)
+ }
}
}
firstBoot = false
@@ -321,8 +323,8 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
}
@SuppressLint("ResourceType")
- override fun onButtonClick(videoURL: String, type: String?) {
- Log.e(TAG, type!! + " " + videoURL)
+ override fun onButtonClick(videoURL: String, type: DownloadViewModel.Type?) {
+ Log.e(TAG, type.toString() + " " + videoURL)
val item = resultsList!!.find { it?.url == videoURL }
Log.e(TAG, resultsList!![0].toString() + " " + videoURL)
val btn = recyclerView!!.findViewWithTag("""${item?.url}##$type""")
@@ -339,7 +341,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
// selectedObjects!!.clear()
// selectedObjects!!.add(item!!)
//showConfigureSingleDownloadCard(createDownloadItem(item!!, type), item)
- showSingleDownloadSheet(item!!, type)
+ showSingleDownloadSheet(item!!, type!!)
} else {
// downloadQueue!!.add(vid)
// updateDownloadingStatusOnResult(vid, type, true)
@@ -350,13 +352,9 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
}
}
- private fun showSingleDownloadSheet(resultItem : ResultItem, type: String){
- val downloadItem = downloadViewModel.createDownloadItemFromResult(resultItem, type)
- downloadViewModel.putDownloadsForProcessing(listOf(resultItem), listOf(downloadItem)).observe(viewLifecycleOwner) {
- downloadItem.id = it[0]
- val bottomSheet = DownloadBottomSheetDialog(downloadItem)
- bottomSheet.show(parentFragmentManager, "downloadSingleSheet")
- }
+ private fun showSingleDownloadSheet(resultItem : ResultItem, type: DownloadViewModel.Type){
+ val bottomSheet = DownloadBottomSheetDialog(resultItem, type)
+ bottomSheet.show(parentFragmentManager, "downloadSingleSheet")
}
@@ -393,7 +391,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
downloadFabs!!.visibility = VISIBLE
} else {
downloadFabs!!.visibility = GONE
- if (resultsList!!.size > 1 && resultsList!![1]!!.playlistTitle.isNotEmpty()) {
+ if (resultsList!!.size > 1 && resultsList!![1]!!.playlistTitle != getString(R.string.trendingPlaylist)) {
downloadAllFabCoordinator!!.visibility = VISIBLE
}
}
@@ -405,7 +403,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
} catch (e: Exception) {""}
if (viewIdName.isNotEmpty()) {
if (viewIdName == "downloadSelected") {
- val downloadList = downloadViewModel.turnResultItemstoDownloadItems(selectedObjects!!)
+ val downloadList = downloadViewModel.turnResultItemsToDownloadItems(selectedObjects!!)
downloadViewModel.putDownloadsForProcessing(selectedObjects!!, downloadList).observe(viewLifecycleOwner) {
it.forEachIndexed { i, itemID ->
downloadList[i].id = itemID
@@ -415,7 +413,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
}
}
if (viewIdName == "downloadAll") {
- val downloadList = downloadViewModel.turnResultItemstoDownloadItems(resultsList!!)
+ val downloadList = downloadViewModel.turnResultItemsToDownloadItems(resultsList!!)
downloadViewModel.putDownloadsForProcessing(resultsList!!, downloadList).observe(viewLifecycleOwner) {
it.forEachIndexed { i, itemID ->
downloadList[i].id = itemID
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/ConfigureDownloadBottomSheetDialog.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/ConfigureDownloadBottomSheetDialog.kt
index 1472db06..076deca5 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/ConfigureDownloadBottomSheetDialog.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/ConfigureDownloadBottomSheetDialog.kt
@@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.viewpager2.widget.ViewPager2
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.database.models.DownloadItem
+import com.deniscerri.ytdlnis.database.models.ResultItem
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel
import com.google.android.material.bottomsheet.BottomSheetBehavior
@@ -24,23 +25,17 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type
-class ConfigureDownloadBottomSheetDialog(private val downloadItem: DownloadItem) : BottomSheetDialogFragment() {
+class ConfigureDownloadBottomSheetDialog(private val resultItem: ResultItem, private val type: Type) : BottomSheetDialogFragment() {
private lateinit var tabLayout: TabLayout
private lateinit var viewPager2: ViewPager2
private lateinit var fragmentAdapter : DownloadFragmentAdapter
- private lateinit var currentItem : DownloadItem
private lateinit var downloadViewModel: DownloadViewModel
private lateinit var resultViewModel: ResultViewModel
- private val audioDownloadItem =clone(downloadItem)
- private val videoDownloadItem = clone(downloadItem)
- private val commandDownloadItem = clone(downloadItem)
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
resultViewModel = ViewModelProvider(this)[ResultViewModel::class.java]
- currentItem = downloadViewModel.cloneDownloadItem(downloadItem)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -61,23 +56,23 @@ class ConfigureDownloadBottomSheetDialog(private val downloadItem: DownloadItem)
val fragmentManager = parentFragmentManager
fragmentAdapter = DownloadFragmentAdapter(
- audioDownloadItem,videoDownloadItem,commandDownloadItem,
+ resultItem,
fragmentManager,
lifecycle
)
viewPager2.adapter = fragmentAdapter
viewPager2.isSaveFromParentEnabled = false
- when(downloadItem.type) {
- "audio" -> {
+ when(type) {
+ Type.audio -> {
tabLayout.selectTab(tabLayout.getTabAt(0))
viewPager2.setCurrentItem(0, false)
}
- "video" -> {
+ Type.video -> {
tabLayout.selectTab(tabLayout.getTabAt(1))
viewPager2.setCurrentItem(1, false)
}
- "command" -> {
+ Type.command -> {
tabLayout.selectTab(tabLayout.getTabAt(2))
viewPager2.setCurrentItem(2, false)
}
@@ -110,18 +105,29 @@ class ConfigureDownloadBottomSheetDialog(private val downloadItem: DownloadItem)
val ok = view.findViewById