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 dc098234..8b75b15e 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt @@ -268,6 +268,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi R.id.delete_results -> { resultViewModel.getTrending() selectedObjects = ArrayList() + searchBar!!.text = "" downloadAllFabCoordinator!!.visibility = GONE downloadFabs!!.visibility = GONE } @@ -287,9 +288,10 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi } private fun initSearch(searchView: com.google.android.material.search.SearchView){ + val inputQuery = searchView.text!!.trim { it <= ' '} + if (inputQuery.isEmpty()) return searchBar!!.text = searchView.text searchView.hide() - val inputQuery = searchView.text!!.trim { it <= ' '} if(!sharedPreferences!!.getBoolean("incognito", false)){ resultViewModel.addSearchQueryToHistory(inputQuery.toString()) } 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 5dbbfb05..880d37e3 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 @@ -116,10 +116,12 @@ class DownloadVideoFragment(private val resultItem: ResultItem, private var curr var formats = mutableListOf() formats.addAll(resultItem.formats.filter { !it.format_note.contains("audio", ignoreCase = true) }) + val videoFormats = resources.getStringArray(R.array.video_formats) + val containerPreference = sharedPreferences.getString("video_format", "Default") + if (formats.isEmpty()) { - val videoFormats = resources.getStringArray(R.array.video_formats) - val container = sharedPreferences.getString("video_format", "Default") - videoFormats.forEach { formats.add(Format(it, container!!,"","", "",0, it)) } + + videoFormats.forEach { formats.add(Format(it, containerPreference!!,"","", "",0, it)) } } val containers = requireContext().resources.getStringArray(R.array.video_containers) @@ -136,14 +138,14 @@ class DownloadVideoFragment(private val resultItem: ResultItem, private var curr containers ) ) + downloadItem.format.container = containerPreference!! (container!!.editText as AutoCompleteTextView?)!!.onItemClickListener = AdapterView.OnItemClickListener { _: AdapterView<*>?, _: View?, index: Int, _: Long -> downloadItem.format.container = containers[index] } - val selectedContainer: String = downloadItem.format.container - containerAutoCompleteTextView!!.setText(selectedContainer, false) + containerAutoCompleteTextView!!.setText(downloadItem.format.container, false) val formatCard = view.findViewById(R.id.format_card_constraintLayout) val chosenFormat = downloadItem.format diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt index 02388884..5b827547 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt @@ -4,6 +4,8 @@ import android.app.Activity import android.content.Context import android.content.DialogInterface import android.content.res.Configuration +import android.graphics.ColorMatrix +import android.graphics.ColorMatrixColorFilter import android.os.Bundle import android.os.Handler import android.os.Looper @@ -13,6 +15,7 @@ import android.view.* import android.view.View.* import android.widget.* import androidx.appcompat.widget.SearchView +import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager @@ -24,6 +27,7 @@ import com.deniscerri.ytdlnis.adapter.HistoryAdapter import com.deniscerri.ytdlnis.database.models.HistoryItem import com.deniscerri.ytdlnis.database.repository.HistoryRepository import com.deniscerri.ytdlnis.database.repository.HistoryRepository.HistorySort +import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel import com.deniscerri.ytdlnis.database.viewmodel.HistoryViewModel import com.deniscerri.ytdlnis.databinding.FragmentHistoryBinding import com.deniscerri.ytdlnis.util.FileUtil @@ -32,6 +36,7 @@ import com.facebook.shimmer.ShimmerFrameLayout import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.bottomsheet.BottomSheetDialog +import com.google.android.material.button.MaterialButton import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipGroup import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -385,13 +390,22 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{ val author = bottomSheet!!.findViewById(R.id.bottom_sheet_author) author!!.text = item.author - val type = bottomSheet!!.findViewById(R.id.type) + // BUTTON ---------------------------------- + val buttonLayout = bottomSheet!!.findViewById(R.id.downloads_download_button_layout) + val btn = buttonLayout!!.findViewById(R.id.downloads_download_button_type) + + if (item.type == DownloadViewModel.Type.audio) { + if (isPresent) btn.icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_music_downloaded) else btn.icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_music) + } else if (item.type == DownloadViewModel.Type.video) { + if (isPresent) btn.icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_video_downloaded) else btn.icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_video) + }else{ + btn.icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_terminal) + } + val formatNote = bottomSheet!!.findViewById(R.id.format_note) val codec = bottomSheet!!.findViewById(R.id.codec) val fileSize = bottomSheet!!.findViewById(R.id.file_size) - type!!.text = item.type.toString().uppercase() - if (item.format.format_note == "?" || item.format.format_note == "") formatNote!!.visibility = View.GONE else formatNote!!.text = item.format.format_note diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt index b95f2ce5..bedd8690 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt @@ -8,6 +8,7 @@ import android.provider.DocumentsContract import android.webkit.MimeTypeMap import com.deniscerri.ytdlnis.R import okhttp3.internal.closeQuietly +import okhttp3.internal.format import java.io.File import java.net.URLDecoder import java.nio.charset.StandardCharsets @@ -78,8 +79,10 @@ class FileUtil() { @Throws(Exception::class) fun moveFile(originDir: File, context: Context, destDir: String, progress: (p: Int) -> Unit) : String { val fileList = mutableListOf() + val dir = File(formatPath(destDir)) + if (!dir.exists()) dir.mkdirs() originDir.listFiles()?.forEach { - val destFile = File(formatPath(destDir) + "/${it.name}") + val destFile = File(dir.absolutePath + "/${it.name}") try { if (it.name.equals("rList")){ diff --git a/app/src/main/res/layout/history_card.xml b/app/src/main/res/layout/history_card.xml index 373e39c1..0547d5b4 100644 --- a/app/src/main/res/layout/history_card.xml +++ b/app/src/main/res/layout/history_card.xml @@ -111,6 +111,7 @@ android:layout_width="55dp" android:layout_height="55dp" app:cornerRadius="10dp" + android:clickable="false" android:layout_marginStart="10dp" /> diff --git a/app/src/main/res/layout/history_item_details_bottom_sheet.xml b/app/src/main/res/layout/history_item_details_bottom_sheet.xml index e7d95fe9..175760ec 100644 --- a/app/src/main/res/layout/history_item_details_bottom_sheet.xml +++ b/app/src/main/res/layout/history_item_details_bottom_sheet.xml @@ -1,5 +1,6 @@ - - + android:padding="20dp"> - + android:orientation="vertical" + app:layout_constraintEnd_toStartOf="@+id/downloads_download_button_layout" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - + + + + + + + android:layout_height="match_parent" + android:orientation="horizontal" + android:paddingVertical="20dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent"> - + + + + + - - + app:icon="@drawable/ic_link" /> - -