diff --git a/.idea/misc.xml b/.idea/misc.xml index b1ebb825..474d48eb 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -133,7 +133,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 454182a7..61ed0475 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -72,9 +72,8 @@ android { signingConfig signingConfigs.debug } - benchmark { + dev { initWith buildTypes.release - proguardFiles 'baseline-profiles-rules.pro' } debug { @@ -169,4 +168,7 @@ dependencies { implementation "com.squareup.okhttp3:logging-interceptor:4.7.2" implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1" + + + } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8e435fba..25fb8dc4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,9 +32,6 @@ - - @@ -47,6 +44,21 @@ + + + + + + + + + + + + + + (R.id.newest) - val oldest = sortSheet!!.findViewById(R.id.oldest) + val newest = sortSheet!!.findViewById(R.id.date) + val oldest = sortSheet!!.findViewById(R.id.title) newest!!.setOnClickListener { historyViewModel.setSorting(HistorySort.DESC) sortSheet!!.cancel() @@ -245,7 +245,7 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{ historyViewModel.setSorting(HistorySort.ASC) sortSheet!!.cancel() } - val cancel = sortSheet!!.findViewById(R.id.cancel) + val cancel = sortSheet!!.findViewById(R.id.author) cancel!!.setOnClickListener { sortSheet!!.cancel() } sortSheet!!.show() sortSheet!!.window!!.setLayout( 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 bb3c6763..e655a166 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt @@ -135,6 +135,8 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi showSingleDownloadSheet(it[0], DownloadViewModel.Type.video) } } + }else{ + downloadAllFabCoordinator!!.visibility = GONE } firstBoot = false } @@ -169,6 +171,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi inputQueriesLength = inputQueries!!.size Handler(Looper.getMainLooper()).post { scrollToTop() } val thread = Thread { + resultViewModel.parseQuery(inputQueries!!.pop()!!, true) while (!inputQueries!!.isEmpty()) { inputQuery = inputQueries!!.pop() resultViewModel.parseQuery(inputQuery!!, false) diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/BackgroundToForegroundPageTransformer.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/BackgroundToForegroundPageTransformer.kt new file mode 100644 index 00000000..a0398426 --- /dev/null +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/BackgroundToForegroundPageTransformer.kt @@ -0,0 +1,24 @@ +package com.deniscerri.ytdlnis.ui.downloadcard + +import android.view.View +import androidx.viewpager2.widget.ViewPager2 +import kotlin.math.abs + + +class BackgroundToForegroundPageTransformer : ViewPager2.PageTransformer { + override fun transformPage(page: View, pos: Float) { + val scale = if (pos < 0) pos + 1f else abs(1f - pos) + page.scaleX = scale + page.scaleY = scale + page.pivotX = page.width * 0.5f + page.pivotY = page.height * 0.5f + page.alpha = if (pos < -1f || pos > 1f) 0f else 1f - (scale - 1f) + + page.post { + val wMeasureSpec = View.MeasureSpec.makeMeasureSpec(page.width, View.MeasureSpec.EXACTLY) + val hMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED) + page.measure(wMeasureSpec, hMeasureSpec) + page.minimumHeight = hMeasureSpec + } + } +} \ 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 f070c247..b120bac1 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 @@ -9,7 +9,10 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.* +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.AutoCompleteTextView +import android.widget.TextView import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider @@ -18,16 +21,12 @@ import com.deniscerri.ytdlnis.MainActivity import com.deniscerri.ytdlnis.R import com.deniscerri.ytdlnis.database.models.DownloadItem import com.deniscerri.ytdlnis.database.models.ResultItem -import com.deniscerri.ytdlnis.database.repository.DownloadRepository import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel -import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel +import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding import com.deniscerri.ytdlnis.util.FileUtil import com.google.android.material.textfield.TextInputLayout -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() { @@ -44,6 +43,10 @@ class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() { lateinit var downloadItem: DownloadItem + override fun onResume() { + super.onResume() + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -168,12 +171,19 @@ class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() { containers ) ) - val selectedContainer: String = if (containers.contains(formats[formats.lastIndex].container)){ - formats[formats.lastIndex].container - }else{ + + val selectedContainer: String = try { + if (containers.contains(formats[formats.lastIndex].container)){ + formats[formats.lastIndex].container + }else{ + containers[0] + } + }catch (e: Exception){ containers[0] } + downloadItem.format.container = selectedContainer + Log.e("TAG", selectedContainer) containerAutoCompleteTextView!!.setText(selectedContainer, false) (container!!.editText as AutoCompleteTextView?)!!.onItemClickListener = AdapterView.OnItemClickListener { _: AdapterView<*>?, _: View?, index: Int, _: Long -> 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 cee0be48..44f98bce 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 @@ -8,7 +8,11 @@ import android.content.DialogInterface import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.widget.Adapter import android.widget.Button +import androidx.coordinatorlayout.widget.CoordinatorLayout +import androidx.core.view.get +import androidx.core.view.size import androidx.lifecycle.ViewModelProvider import androidx.viewpager2.widget.ViewPager2 import com.deniscerri.ytdlnis.R @@ -78,7 +82,7 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { override fun onTabSelected(tab: TabLayout.Tab?) { - viewPager2.currentItem = tab!!.position + viewPager2.setCurrentItem(tab!!.position, false) } override fun onTabUnselected(tab: TabLayout.Tab?) { @@ -93,16 +97,8 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val tabLayout.selectTab(tabLayout.getTabAt(position)) } }) - viewPager2.setPageTransformer { v, _ -> - v.post { - val wMeasureSpec = View.MeasureSpec.makeMeasureSpec(v.width, View.MeasureSpec.EXACTLY) - val hMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED) - v.measure(wMeasureSpec, hMeasureSpec) - - viewPager2.layoutParams = (viewPager2.layoutParams).also { lp -> lp.height = v.measuredHeight } - viewPager2.invalidate() - } - } + + viewPager2.setPageTransformer(BackgroundToForegroundPageTransformer()) val scheduleBtn = view.findViewById(R.id.bottomsheet_schedule_button) scheduleBtn.setOnClickListener{ diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt index 6b900488..918fdda9 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt @@ -24,7 +24,6 @@ import java.io.InputStreamReader import java.net.HttpURLConnection import java.net.URL import java.util.concurrent.atomic.AtomicReference -import java.io.File class UpdateUtil(var context: Context) { private val tag = "UpdateUtil" diff --git a/app/src/main/res/layout/download_bottom_sheet.xml b/app/src/main/res/layout/download_bottom_sheet.xml index 93c6a187..ec6c6e33 100644 --- a/app/src/main/res/layout/download_bottom_sheet.xml +++ b/app/src/main/res/layout/download_bottom_sheet.xml @@ -1,112 +1,127 @@ - - - - - - - - - - - + android:orientation="vertical"> - + - + + + + + + + + + - + - + - + -