From a19bb7025445894b1fc4076235b530c23eec21ad Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Mon, 13 Mar 2023 18:32:58 +0100 Subject: [PATCH 1/6] Update README.md --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0aaeb02a..665aa052 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,13 @@
-![CI](https://github.com/deniscerri/ytdlnis/actions/workflows/android.yml/badge.svg?branch=main&event=pull) [![stable release](https://img.shields.io/github/release/deniscerri/ytdlnis.svg?maxAge=3600&label=download)](https://github.com/deniscerri/ytdlnis/releases/latest) [![downloads](https://img.shields.io/github/downloads/deniscerri/ytdlnis/total?style=flat-square)](https://github.com/deniscerri/ytdlnis/releases) [![Translation status](https://hosted.weblate.org/widgets/ytdlnis/-/svg-badge.svg)](https://hosted.weblate.org/engage/ytdlnis/?utm_source=widget) [![community](https://img.shields.io/badge/Discord-YTDLnis-blueviolet?style=flat-square&logo=discord)](https://discord.gg/WW3KYWxAPm) +![CI](https://github.com/deniscerri/ytdlnis/actions/workflows/android.yml/badge.svg?branch=main&event=pull) +[![stable release](https://img.shields.io/github/release/deniscerri/ytdlnis.svg?maxAge=3600&label=download)](https://github.com/deniscerri/ytdlnis/releases/latest) +[![preview release](https://img.shields.io/github/release/deniscerri/ytdlnis.svg?maxAge=3600&include_prereleases&label=preview)](https://github.com/deniscerri/ytdlnis/releases) +[![downloads](https://img.shields.io/github/downloads/deniscerri/ytdlnis/total?style=flat-square)](https://github.com/deniscerri/ytdlnis/releases) +[![Translation status](https://hosted.weblate.org/widgets/ytdlnis/-/svg-badge.svg)](https://hosted.weblate.org/engage/ytdlnis/?utm_source=widget) +[![community](https://img.shields.io/badge/Discord-YTDLnis-blueviolet?style=flat-square&logo=discord)](https://discord.gg/WW3KYWxAPm) +[![community](https://img.shields.io/badge/Telegram-YTDLnis-blue?style=flat-square&logo=telegram)](https://t.me/ytdlnis) From 69b1e55ebdbd47e101f33bb5336f5341bd68529b Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Mon, 13 Mar 2023 18:43:52 +0100 Subject: [PATCH 2/6] bye last java file --- .../com/deniscerri/ytdlnis/ExampleUnitTest.java | 17 ----------------- .../com/deniscerri/ytdlnis/ExampleUnitTest.kt | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 17 deletions(-) delete mode 100644 app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.java create mode 100644 app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.kt diff --git a/app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.java b/app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.java deleted file mode 100644 index 73a186e8..00000000 --- a/app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.deniscerri.ytdlnis; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.kt b/app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.kt new file mode 100644 index 00000000..36ef53a3 --- /dev/null +++ b/app/src/test/java/com/deniscerri/ytdlnis/ExampleUnitTest.kt @@ -0,0 +1,16 @@ +package com.deniscerri.ytdlnis + +import org.junit.Assert +import org.junit.Test + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see [Testing documentation](http://d.android.com/tools/testing) + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + Assert.assertEquals(4, (2 + 2).toLong()) + } +} \ No newline at end of file From 075dcf874dc9342ad39c0b7d9c5f9fa590c4b221 Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Mon, 13 Mar 2023 21:36:50 +0100 Subject: [PATCH 3/6] added themed icon for a12 and up & added ability to change scheduled time of a download --- .../ytdlnis/adapter/ActiveDownloadAdapter.kt | 2 + .../ytdlnis/adapter/GenericDownloadAdapter.kt | 4 +- .../downloadcard/DownloadBottomSheetDialog.kt | 46 ++---- .../FormatSelectionBottomSheetDialog.kt | 1 + .../downloads/CancelledDownloadsFragment.kt | 10 +- .../ui/downloads/ErroredDownloadsFragment.kt | 4 + .../ytdlnis/ui/downloads/HistoryFragment.kt | 9 ++ .../ui/downloads/QueuedDownloadsFragment.kt | 31 +++- .../com/deniscerri/ytdlnis/util/UiUtil.kt | 42 ++++++ .../drawable-v24/ic_launcher_foreground.xml | 2 +- .../res/drawable/image_gradient_shape.xml | 11 ++ .../main/res/layout/active_download_card.xml | 138 ++++++++---------- app/src/main/res/layout/history_card.xml | 2 +- .../history_item_details_bottom_sheet.xml | 14 ++ .../res/layout/search_suggestion_item.xml | 22 ++- app/src/main/res/values-night-v31/colors.xml | 9 ++ .../main/res/values-notnight-v31/colors.xml | 9 ++ app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 1 + 19 files changed, 224 insertions(+), 134 deletions(-) create mode 100644 app/src/main/res/drawable/image_gradient_shape.xml create mode 100644 app/src/main/res/values-night-v31/colors.xml create mode 100644 app/src/main/res/values-notnight-v31/colors.xml diff --git a/app/src/main/java/com/deniscerri/ytdlnis/adapter/ActiveDownloadAdapter.kt b/app/src/main/java/com/deniscerri/ytdlnis/adapter/ActiveDownloadAdapter.kt index cc82153b..327c50fb 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/adapter/ActiveDownloadAdapter.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/adapter/ActiveDownloadAdapter.kt @@ -20,6 +20,7 @@ import com.google.android.material.button.MaterialButton import com.google.android.material.card.MaterialCardView import com.google.android.material.progressindicator.LinearProgressIndicator import com.squareup.picasso.Picasso +import java.util.zip.GZIPOutputStream class ActiveDownloadAdapter(onItemClickListener: OnItemClickListener, activity: Activity) : ListAdapter(AsyncDifferConfig.Builder(DIFF_CALLBACK).build()) { private val onItemClickListener: OnItemClickListener @@ -103,6 +104,7 @@ class ActiveDownloadAdapter(onItemClickListener: OnItemClickListener, activity: val fileSize = card.findViewById(R.id.file_size) fileSize.text = fileUtil.convertFileSize(item.format.filesize) + if (fileSize.text == "?") fileSize.visibility = View.GONE //OUTPUT val output = card.findViewById(R.id.output) diff --git a/app/src/main/java/com/deniscerri/ytdlnis/adapter/GenericDownloadAdapter.kt b/app/src/main/java/com/deniscerri/ytdlnis/adapter/GenericDownloadAdapter.kt index 45eefe2f..2e9a69aa 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/adapter/GenericDownloadAdapter.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/adapter/GenericDownloadAdapter.kt @@ -74,7 +74,9 @@ class GenericDownloadAdapter(onItemClickListener: OnItemClickListener, activity: itemUrl.text = item.url val formatNote = card.findViewById(R.id.format_note) - formatNote!!.text = item.format.format_note.uppercase() + if (item.format.format_note == "?" || item.format.format_note == "") formatNote!!.visibility = + View.GONE + else formatNote!!.text = item.format.format_note.uppercase() val codec = card.findViewById(R.id.codec) val codecText = 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 2249b742..23c3b2e7 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 @@ -22,6 +22,8 @@ import com.deniscerri.ytdlnis.database.models.ResultItem import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type import com.deniscerri.ytdlnis.receiver.ShareActivity +import com.deniscerri.ytdlnis.util.FileUtil +import com.deniscerri.ytdlnis.util.UiUtil import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.button.MaterialButton @@ -34,6 +36,7 @@ import com.google.android.material.timepicker.TimeFormat import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import java.io.File import java.util.* @@ -44,11 +47,13 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val private lateinit var downloadViewModel: DownloadViewModel private lateinit var behavior: BottomSheetBehavior private lateinit var commandTemplateDao : CommandTemplateDao + private lateinit var uiUtil: UiUtil override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java] commandTemplateDao = DBManager.getInstance(requireContext()).commandTemplateDao + uiUtil = UiUtil(FileUtil()) } @SuppressLint("RestrictedApi") @@ -139,43 +144,12 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val val scheduleBtn = view.findViewById(R.id.bottomsheet_schedule_button) scheduleBtn.setOnClickListener{ - val currentDate = Calendar.getInstance() - val date = Calendar.getInstance() - - val datepicker = MaterialDatePicker.Builder.datePicker() - .setCalendarConstraints( - CalendarConstraints.Builder() - .setValidator(DateValidatorPointForward.now()) - .build() - ) - .setSelection(MaterialDatePicker.todayInUtcMilliseconds()) - .build() - - datepicker.addOnPositiveButtonClickListener{ - date.timeInMillis = it - - - val timepicker = MaterialTimePicker.Builder() - .setTimeFormat(TimeFormat.CLOCK_24H) - .setHour(currentDate.get(Calendar.HOUR_OF_DAY)) - .setMinute(currentDate.get(Calendar.MINUTE)) - .build() - - timepicker.addOnPositiveButtonClickListener{ - date[Calendar.HOUR_OF_DAY] = timepicker.hour - date[Calendar.MINUTE] = timepicker.minute - - - val item: DownloadItem = getDownloadItem(); - item.downloadStartTime = date.timeInMillis - downloadViewModel.queueDownloads(listOf(item)) - dismiss() - } - timepicker.show(fragmentManager, "timepicker") - + uiUtil.showDatePicker(fragmentManager) { + val item: DownloadItem = getDownloadItem(); + item.downloadStartTime = it.timeInMillis + downloadViewModel.queueDownloads(listOf(item)) + dismiss() } - datepicker.show(fragmentManager, "datepicker") - } val download = view.findViewById