From bc10b8bb27bcbe4f2294526a5323abc6c68e15ac Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Thu, 1 Jun 2023 22:19:34 +0200 Subject: [PATCH] stuff Fixed app crashing when selecting a format from playlist formats and they dont have audio formats in them made the context app bar close when you invert a fully selected list added syntax highlight to logs --- app/src/main/AndroidManifest.xml | 16 ++++--- .../ytdlnis/receiver/ShareFileActivity.kt | 45 +++++++++++++++++++ .../ytdlnis/receiver/ShareFileService.kt | 26 ----------- .../com/deniscerri/ytdlnis/ui/HomeFragment.kt | 1 + .../FormatSelectionBottomSheetDialog.kt | 16 ++++++- .../downloads/CancelledDownloadsFragment.kt | 1 + .../ui/downloads/ErroredDownloadsFragment.kt | 1 + .../ytdlnis/ui/downloads/HistoryFragment.kt | 1 + .../ui/downloads/QueuedDownloadsFragment.kt | 1 + .../more/downloadLogs/DownloadLogFragment.kt | 25 +++++++++++ .../com/deniscerri/ytdlnis/util/InfoUtil.kt | 5 ++- .../ytdlnis/util/NotificationUtil.kt | 7 ++- .../deniscerri/ytdlnis/work/DownloadWorker.kt | 2 +- .../res/layout/fragment_download_audio.xml | 3 +- 14 files changed, 109 insertions(+), 41 deletions(-) create mode 100644 app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareFileActivity.kt delete mode 100644 app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareFileService.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ca37a6eb..c4795898 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,17 @@ + + + + + - - - + v.setPadding(0, 0, 0, 0) + insets + } + window.run { + setBackgroundDrawable(ColorDrawable(0)) + setLayout( + WindowManager.LayoutParams.MATCH_PARENT, + WindowManager.LayoutParams.MATCH_PARENT + ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY) + } else { + setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT) + } + } + + val paths = intent.getStringArrayExtra("path") + val notificationId = intent.getIntExtra("notificationID", 0) + NotificationUtil(this).cancelDownloadNotification(notificationId) + UiUtil.shareFileIntent(this, paths!!.toList()) + finishAffinity() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareFileService.kt b/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareFileService.kt deleted file mode 100644 index e0d04391..00000000 --- a/app/src/main/java/com/deniscerri/ytdlnis/receiver/ShareFileService.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.deniscerri.ytdlnis.receiver - -import android.app.Service -import android.content.Intent -import android.os.IBinder -import com.deniscerri.ytdlnis.util.NotificationUtil -import com.deniscerri.ytdlnis.util.UiUtil - -class ShareFileService : Service() { - override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { - val paths = intent.getStringArrayExtra("path") - val notificationId = intent.getIntExtra("notificationID", 0) - NotificationUtil(this).cancelDownloadNotification(notificationId) - UiUtil.shareFileIntent(this, paths!!.toList()) - return START_NOT_STICKY - } - - override fun onBind(intent: Intent): IBinder? { - return null - } - - override fun onDestroy() { - super.onDestroy() - stopForeground(true) - } -} \ 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 b03489c3..c9a8ca9d 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt @@ -658,6 +658,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, OnClickListene selectedObjects?.clear() selectedObjects?.addAll(invertedList) actionMode!!.title = "${selectedObjects!!.size} ${getString(R.string.selected)}" + if (invertedList.isEmpty()) actionMode?.finish() true } else -> false 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 84f14b10..b6c19f64 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 @@ -268,8 +268,20 @@ class FormatSelectionBottomSheetDialog(private val items: List, p (it as MaterialCardView).isChecked = selectedAudios.map { a -> "${a.format_id}${a.format_note}" }.contains(it.tag) } }else{ - //if its a simple audio format selection - listener.onFormatClick(List(items.size){chosenFormats}, listOf(FormatTuple(format, null))) + if (items.size == 1){ + listener.onFormatClick(List(items.size){chosenFormats}, listOf(FormatTuple(format, null))) + }else{ + val selectedFormats = mutableListOf() + formatCollection.forEach { + selectedFormats.add(it.first{ f -> f.format_id == format.format_id}) + } + if (selectedFormats.isEmpty()) { + items.forEach { + selectedFormats.add(format) + } + } + listener.onFormatClick(formatCollection, selectedFormats.map { FormatTuple(it, null) }) + } dismiss() } } diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt index 03d68442..c13849d5 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt @@ -299,6 +299,7 @@ class CancelledDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClic selectedObjects?.clear() selectedObjects?.addAll(invertedList) actionMode!!.title = "${selectedObjects!!.size} ${getString(R.string.selected)}" + if (invertedList.isEmpty()) actionMode?.finish() true } else -> false diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt index 3a236a87..51f0b306 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt @@ -306,6 +306,7 @@ class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickL selectedObjects?.clear() selectedObjects?.addAll(invertedList) actionMode!!.title = "${selectedObjects!!.size} ${getString(R.string.selected)}" + if (invertedList.isEmpty()) actionMode?.finish() true } else -> false 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 73cb11a9..f9116b62 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 @@ -606,6 +606,7 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{ selectedObjects?.clear() selectedObjects?.addAll(invertedList) actionMode!!.title = "${selectedObjects!!.size} ${getString(R.string.selected)}" + if (invertedList.isEmpty()) actionMode?.finish() true } else -> false diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt index 5358d280..e766e095 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt @@ -329,6 +329,7 @@ class QueuedDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickLi selectedObjects?.clear() selectedObjects?.addAll(invertedList) actionMode!!.title = "${selectedObjects!!.size} ${getString(R.string.selected)}" + if (invertedList.isEmpty()) actionMode?.finish() true } else -> false diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogFragment.kt index 6eae2635..33167ace 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogFragment.kt @@ -2,6 +2,7 @@ package com.deniscerri.ytdlnis.ui.more.downloadLogs import android.content.ClipboardManager import android.content.Context.CLIPBOARD_SERVICE +import android.graphics.Color import android.os.Build import android.os.Bundle import android.os.FileObserver @@ -15,7 +16,11 @@ import com.deniscerri.ytdlnis.MainActivity import com.deniscerri.ytdlnis.R import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton +import com.neo.highlight.core.Highlight +import com.neo.highlight.util.listener.HighlightTextWatcher +import com.neo.highlight.util.scheme.ColorScheme import java.io.File +import java.util.regex.Pattern class DownloadLogFragment : Fragment() { @@ -92,6 +97,26 @@ class DownloadLogFragment : Fragment() { } observer.startWatching(); } + + //init syntax highlighter + val highlight = Highlight() + val highlightWatcher = HighlightTextWatcher() + + val schemes = listOf( + ColorScheme(Pattern.compile("([\"'])(?:\\\\1|.)*?\\1"), Color.parseColor("#FC8500")), + ColorScheme(Pattern.compile("yt-dlp"), Color.parseColor("#00FF00")), + ColorScheme(Pattern.compile("(https?://(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?://(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})"), Color.parseColor("#b5942f")), + ColorScheme(Pattern.compile("\\d+(\\.\\d)?%"), Color.parseColor("#43a564")) + ) + + highlight.addScheme( + *schemes.map { it }.toTypedArray() + ) + highlightWatcher.addScheme( + *schemes.map { it }.toTypedArray() + ) + highlight.setSpan(content) + content.addTextChangedListener(highlightWatcher) } override fun onDestroy() { diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/InfoUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/InfoUtil.kt index dbebf68e..2e9f5fcb 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/InfoUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/InfoUtil.kt @@ -822,6 +822,9 @@ class InfoUtil(private val context: Context) { chapters = Gson().fromJson(chaptersInJSON.toString(), listType) } + var urls = ""; + if(jsonObject.has("urls")) urls = jsonObject.getString("urls"); + Log.e("aa", formats.toString()) items.add(ResultItem(0, url, @@ -832,7 +835,7 @@ class InfoUtil(private val context: Context) { website, playlistTitle!!, formats, - jsonObject.getString("urls") ?: "", + urls, chapters ) ) diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt index 6ce8ce97..030ef3c7 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt @@ -13,12 +13,11 @@ import android.os.Bundle import androidx.core.app.NotificationCompat import androidx.core.content.FileProvider import androidx.navigation.NavDeepLinkBuilder -import com.deniscerri.ytdlnis.MainActivity import com.deniscerri.ytdlnis.R import com.deniscerri.ytdlnis.receiver.CancelDownloadNotificationReceiver import com.deniscerri.ytdlnis.receiver.PauseDownloadNotificationReceiver import com.deniscerri.ytdlnis.receiver.ResumeActivity -import com.deniscerri.ytdlnis.receiver.ShareFileService +import com.deniscerri.ytdlnis.receiver.ShareFileActivity import java.io.File @@ -213,10 +212,10 @@ class NotificationUtil(var context: Context) { } //share intent - val shareIntent = Intent(context, ShareFileService::class.java) + val shareIntent = Intent(context, ShareFileActivity::class.java) shareIntent.putExtra("path", filepath.toTypedArray()) shareIntent.putExtra("notificationID", DOWNLOAD_FINISHED_NOTIFICATION_ID) - val shareNotificationPendingIntent: PendingIntent = PendingIntent.getService( + val shareNotificationPendingIntent: PendingIntent = PendingIntent.getActivity( context, 0, shareIntent, diff --git a/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt b/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt index 4be7c929..1bd303a9 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt @@ -132,7 +132,7 @@ class DownloadWorker( if (downloadItem.author.isNotBlank()){ request.addCommands(listOf("--replace-in-metadata","uploader",".*.",downloadItem.author.take(25))) } - request.addCommands(listOf("--replace-in-metadata","uploader"," - Topic","")) + request.addCommands(listOf("--replace-in-metadata","uploader"," - Topic$","")) if (downloadItem.customFileNameTemplate.isBlank()) downloadItem.customFileNameTemplate = "%(uploader)s - %(title)s" if (downloadItem.downloadSections.isNotBlank()){ diff --git a/app/src/main/res/layout/fragment_download_audio.xml b/app/src/main/res/layout/fragment_download_audio.xml index 7401324f..35a1fee4 100644 --- a/app/src/main/res/layout/fragment_download_audio.xml +++ b/app/src/main/res/layout/fragment_download_audio.xml @@ -4,8 +4,7 @@ android:scrollbars="none" xmlns:android="http://schemas.android.com/apk/res/android"> -