diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1fb4bc07..63d789e1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -172,8 +172,29 @@ - - + + + + + + + + + + + + + , var writeSubs: Boolean = false, - var subsLanguages: String = "en.*,.*-orig" + var subsLanguages: String = "en.*,.*-orig", + var removeAudio: Boolean = false ) diff --git a/app/src/main/java/com/deniscerri/ytdlnis/receiver/BlankActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/receiver/BlankActivity.kt new file mode 100644 index 00000000..7235a476 --- /dev/null +++ b/app/src/main/java/com/deniscerri/ytdlnis/receiver/BlankActivity.kt @@ -0,0 +1,83 @@ +package com.deniscerri.ytdlnis.receiver + +import android.Manifest +import android.app.Activity +import android.content.Context +import android.content.DialogInterface +import android.content.Intent +import android.content.SharedPreferences +import android.content.pm.PackageManager +import android.content.res.Configuration +import android.graphics.drawable.ColorDrawable +import android.net.Uri +import android.os.Build +import android.os.Bundle +import android.provider.Settings +import android.util.Log +import android.view.Window +import android.view.WindowManager +import android.widget.FrameLayout +import android.widget.TextView +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import androidx.core.app.ActivityCompat +import androidx.core.view.ViewCompat +import androidx.core.view.WindowCompat +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope +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.viewmodel.CookieViewModel +import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel +import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel +import com.deniscerri.ytdlnis.ui.BaseActivity +import com.deniscerri.ytdlnis.ui.downloadcard.DownloadBottomSheetDialog +import com.deniscerri.ytdlnis.ui.downloadcard.SelectPlaylistItemsBottomSheetDialog +import com.deniscerri.ytdlnis.util.FileUtil +import com.deniscerri.ytdlnis.util.NotificationUtil +import com.deniscerri.ytdlnis.util.ThemeUtil +import com.deniscerri.ytdlnis.util.UiUtil +import com.google.android.material.bottomsheet.BottomSheetDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import java.io.File +import kotlin.properties.Delegates +import kotlin.system.exitProcess + +class BlankActivity : BaseActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.blank) + val intent = intent + handleIntents(intent) + } + + override fun onNewIntent(intent: Intent) { + super.onNewIntent(intent) + handleIntents(intent) + } + + private fun handleIntents(intent: Intent) { + val message = intent.getStringExtra("message") + val path = intent.getStringExtra("path") + val notificationId = intent.getIntExtra("notificationID", 0) + if (message != null && path != null) { + if (notificationId != 0) NotificationUtil(this).cancelDownloadNotification(notificationId) + val uiUtil = UiUtil(FileUtil()) + when(message) { + "share" -> { + uiUtil.shareFileIntent(this, listOf(path)) + } + "open" -> { + uiUtil.openFileIntent(this, path) + } + } + + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/deniscerri/ytdlnis/receiver/OpenDownloadNotificationReceiver.kt b/app/src/main/java/com/deniscerri/ytdlnis/receiver/OpenDownloadNotificationReceiver.kt deleted file mode 100644 index d3be13c7..00000000 --- a/app/src/main/java/com/deniscerri/ytdlnis/receiver/OpenDownloadNotificationReceiver.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.deniscerri.ytdlnis.receiver - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import androidx.work.WorkManager -import com.deniscerri.ytdlnis.util.FileUtil -import com.deniscerri.ytdlnis.util.NotificationUtil -import com.deniscerri.ytdlnis.util.UiUtil -import com.yausername.youtubedl_android.YoutubeDL - -class OpenDownloadNotificationReceiver : BroadcastReceiver() { - override fun onReceive(c: Context, intent: Intent) { - val message = intent.getStringExtra("open") - val path = intent.getStringExtra("path") - val notificationId = intent.getIntExtra("notificationID", 0) - if (message != null && path != null) { - if (notificationId != 0) NotificationUtil(c).cancelDownloadNotification(notificationId) - val uiUtil = UiUtil(FileUtil()) - uiUtil.openFileIntent(c, path) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/deniscerri/ytdlnis/receiver/SharedDownloadNotificationReceiver.kt b/app/src/main/java/com/deniscerri/ytdlnis/receiver/SharedDownloadNotificationReceiver.kt deleted file mode 100644 index 4c5fb25d..00000000 --- a/app/src/main/java/com/deniscerri/ytdlnis/receiver/SharedDownloadNotificationReceiver.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.deniscerri.ytdlnis.receiver - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import com.deniscerri.ytdlnis.util.FileUtil -import com.deniscerri.ytdlnis.util.NotificationUtil -import com.deniscerri.ytdlnis.util.UiUtil - -class SharedDownloadNotificationReceiver : BroadcastReceiver() { - override fun onReceive(c: Context, intent: Intent) { - val message = intent.getStringExtra("share") - val path = intent.getStringExtra("path") - val notificationId = intent.getIntExtra("notificationID", 0) - if (message != null && path != null) { - if (notificationId != 0) NotificationUtil(c).cancelDownloadNotification(notificationId) - val uiUtil = UiUtil(FileUtil()) - uiUtil.shareFileIntent(c, listOf(path)) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/deniscerri/ytdlnis/receiver/SharedNotificationReceiver.kt b/app/src/main/java/com/deniscerri/ytdlnis/receiver/SharedNotificationReceiver.kt new file mode 100644 index 00000000..488e42b6 --- /dev/null +++ b/app/src/main/java/com/deniscerri/ytdlnis/receiver/SharedNotificationReceiver.kt @@ -0,0 +1,25 @@ +package com.deniscerri.ytdlnis.receiver + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.deniscerri.ytdlnis.R +import com.deniscerri.ytdlnis.util.FileUtil +import com.deniscerri.ytdlnis.util.NotificationUtil +import com.deniscerri.ytdlnis.util.UiUtil + +class SharedDownloadNotificationReceiver : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.blank) + val intent = intent + val message = intent.getStringExtra("share") + val path = intent.getStringExtra("path") + val notificationId = intent.getIntExtra("notificationID", 0) + if (message != null && path != null) { + if (notificationId != 0) NotificationUtil(this).cancelDownloadNotification(notificationId) + val uiUtil = UiUtil(FileUtil()) + uiUtil.shareFileIntent(this, listOf(path)) + this.finishAffinity() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadMultipleBottomSheetDialog.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadMultipleBottomSheetDialog.kt index d56cc89e..d38b228c 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadMultipleBottomSheetDialog.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadMultipleBottomSheetDialog.kt @@ -148,7 +148,7 @@ class DownloadMultipleBottomSheetDialog(private var results: List, } items.forEachIndexed { index, it -> it.allFormats.clear() - it.allFormats.addAll(formatCollection[index]) + if (formatCollection.isNotEmpty() && formatCollection[index].isNotEmpty()) it.allFormats.addAll(formatCollection[index]) it.format = selectedFormats[index] } listAdapter.submitList(items.toList()) 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 03c7755f..ec5fbfd7 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 @@ -360,6 +360,11 @@ class DownloadVideoFragment(private val resultItem: ResultItem, private var curr dialog.getButton(AlertDialog.BUTTON_NEUTRAL).gravity = Gravity.START } + val removeAudio = view.findViewById(R.id.remove_audio) + removeAudio.setOnCheckedChangeListener { compoundButton, b -> + downloadItem.videoPreferences.removeAudio = removeAudio.isChecked + } + } catch (e: Exception) { e.printStackTrace() } 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 b239dacb..05272e0a 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 @@ -199,6 +199,11 @@ class FormatSelectionBottomSheetDialog(private val items: List, p 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) } dismiss() @@ -220,7 +225,7 @@ class FormatSelectionBottomSheetDialog(private val items: List, p else { formatIdParent?.findViewById(R.id.format_id_value)?.text = format.format_id formatIdParent?.setOnClickListener { - copyToClipboard(format.format_note) + copyToClipboard(format.format_id) } } diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/TerminalActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/TerminalActivity.kt index 07c8870e..7f27226f 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/TerminalActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/TerminalActivity.kt @@ -15,14 +15,12 @@ import android.view.View import android.view.ViewGroup import android.view.Window import android.view.inputmethod.InputMethodManager -import android.widget.EditText -import android.widget.LinearLayout -import android.widget.ScrollView -import android.widget.TextView +import android.widget.* import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.forEach +import androidx.core.view.get import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.work.* @@ -86,31 +84,49 @@ class TerminalActivity : BaseActivity() { bottomAppBar = findViewById(R.id.bottomAppBar) + var templateCount = 0 + var shortcutCount = 0 lifecycleScope.launch { - val templateCount = withContext(Dispatchers.IO){ + templateCount = withContext(Dispatchers.IO){ commandTemplateViewModel.getTotalNumber() } - if (templateCount == 0) bottomAppBar.menu.getItem(0).isEnabled = false + if (templateCount == 0){ + bottomAppBar.menu.getItem(0).icon?.alpha = 30 + }else{ + bottomAppBar.menu.getItem(0).icon?.alpha = 255 + } - val shortcutCount = withContext(Dispatchers.IO){ + shortcutCount = withContext(Dispatchers.IO){ commandTemplateViewModel.getTotalShortcutNumber() } - if (shortcutCount == 0) bottomAppBar.menu.getItem(1).isEnabled = false + if (shortcutCount == 0) { + bottomAppBar.menu.getItem(1).icon?.alpha = 30 + }else{ + bottomAppBar.menu.getItem(1).icon?.alpha = 255 + } } bottomAppBar.setOnMenuItemClickListener { when(it.itemId){ R.id.command_templates -> { - lifecycleScope.launch { - uiUtil.showCommandTemplates(this@TerminalActivity, commandTemplateViewModel){ template -> - input!!.text.insert(input!!.selectionStart, template.content + " ") - input!!.postDelayed({ - input!!.requestFocus() - imm.showSoftInput(input!!, 0) - }, 200) + if (templateCount == 0){ + Toast.makeText(context, getString(R.string.add_template_first), Toast.LENGTH_SHORT).show() + }else{ + lifecycleScope.launch { + uiUtil.showCommandTemplates(this@TerminalActivity, commandTemplateViewModel){ template -> + input!!.text.insert(input!!.selectionStart, template.content + " ") + input!!.postDelayed({ + input!!.requestFocus() + imm.showSoftInput(input!!, 0) + }, 200) + } } } } - R.id.shortcuts -> showShortcuts() + R.id.shortcuts -> { + if (shortcutCount > 0){ + showShortcuts() + } + } R.id.folder -> { val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION) 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 2a7b10a3..6080a5b8 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/InfoUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/InfoUtil.kt @@ -310,7 +310,23 @@ class InfoUtil(private val context: Context) { for (f in 0 until formatsInJSON.length()){ val format = formatsInJSON.getJSONObject(f) if(!format.has("container")) continue - formats.add(Gson().fromJson(format.toString(), Format::class.java)) + val formatObj = Gson().fromJson(format.toString(), Format::class.java) + try{ + if (!formatObj.format_note.contains("audio", ignoreCase = true)){ + val codecs = "\"([^\"]*)\"".toRegex().find(format.getString("type").split(";")[1])!!.value.split(",") + if (codecs.size > 1){ + formatObj.vcodec = codecs[0].replace("\"", "") + formatObj.acodec = codecs[1].replace("\"", "") + }else if (codecs.size == 1){ + formatObj.vcodec = codecs[0].replace("\"", "") + formatObj.acodec = "none" + } + } + }catch (e: Exception) { + e.printStackTrace() + } + + formats.add(formatObj) } } 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 bf48aea5..3c4a714b 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt @@ -6,14 +6,20 @@ import android.app.NotificationManager import android.app.PendingIntent import android.content.Context import android.content.Intent +import android.content.pm.PackageManager +import android.content.pm.ResolveInfo import android.graphics.BitmapFactory +import android.net.Uri import android.os.Build import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat.startActivity +import androidx.core.content.FileProvider import com.deniscerri.ytdlnis.R import com.deniscerri.ytdlnis.receiver.CancelDownloadNotificationReceiver -import com.deniscerri.ytdlnis.receiver.OpenDownloadNotificationReceiver import com.deniscerri.ytdlnis.receiver.SharedDownloadNotificationReceiver import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogActivity +import java.io.File + class NotificationUtil(var context: Context) { private val downloadNotificationBuilder: NotificationCompat.Builder = NotificationCompat.Builder(context, DOWNLOAD_SERVICE_CHANNEL_ID) @@ -108,41 +114,42 @@ class NotificationUtil(var context: Context) { ) { val notificationBuilder = getBuilder(channel) - val openIntent = Intent(context, OpenDownloadNotificationReceiver::class.java) - openIntent.putExtra("open", "") - openIntent.putExtra("path", filepath) - openIntent.putExtra("notificationID", DOWNLOAD_FINISHED_NOTIFICATION_ID) - val openNotificationPendingIntent = PendingIntent.getBroadcast( - context, - 1, - openIntent, - PendingIntent.FLAG_IMMUTABLE - ) - - val shareIntent = Intent(context, SharedDownloadNotificationReceiver::class.java) - shareIntent.putExtra("share", "") - shareIntent.putExtra("path", filepath) - openIntent.putExtra("notificationID", DOWNLOAD_FINISHED_NOTIFICATION_ID) - val shareNotificationPendingIntent = PendingIntent.getBroadcast( - context, - 1, - shareIntent, - PendingIntent.FLAG_IMMUTABLE - ) - notificationBuilder .setContentTitle("${context.getString(R.string.downloaded)} $title") - .setSmallIcon(R.drawable.ic_app_icon) + .setSmallIcon(R.drawable.ic_launcher_foreground_large) .setLargeIcon( BitmapFactory.decodeResource( context.resources, - R.drawable.ic_app_icon + R.drawable.ic_launcher_foreground_large ) ) .setPriority(NotificationCompat.PRIORITY_MAX) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .clearActions() if (filepath != null){ + val file = File(filepath) + val uri = FileProvider.getUriForFile( + context, + "com.deniscerri.ytdl.fileprovider", + file + ) + + //open intent + val intent = Intent() + intent.action = Intent.ACTION_VIEW + intent.setDataAndType(uri, "*/*") + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + val openNotificationPendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) + + //share intent + val shareIntent = Intent(context, SharedDownloadNotificationReceiver::class.java) + shareIntent.putExtra("share", "") + shareIntent.putExtra("path", filepath) + shareIntent.putExtra("notificationID", DOWNLOAD_FINISHED_NOTIFICATION_ID) + shareIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK + val shareNotificationPendingIntent = PendingIntent.getActivity(context, 0, shareIntent, PendingIntent.FLAG_IMMUTABLE) + + notificationBuilder.addAction(0, context.getString(R.string.Open_File), openNotificationPendingIntent) notificationBuilder.addAction(0, context.getString(R.string.share), shareNotificationPendingIntent) } 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 e1c775cf..39c701d7 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt @@ -18,6 +18,7 @@ import com.deniscerri.ytdlnis.database.repository.DownloadRepository import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogActivity import com.deniscerri.ytdlnis.util.FileUtil +import com.deniscerri.ytdlnis.util.InfoUtil import com.deniscerri.ytdlnis.util.NotificationUtil import com.yausername.youtubedl_android.YoutubeDL import com.yausername.youtubedl_android.YoutubeDLRequest @@ -25,6 +26,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext import java.io.File +import java.util.* +import kotlin.collections.ArrayList class DownloadWorker( @@ -37,6 +40,7 @@ class DownloadWorker( val notificationUtil = NotificationUtil(context) val fileUtil = FileUtil() + val infoUtil = InfoUtil(context) val dbManager = DBManager.getInstance(context) val dao = dbManager.downloadDao val repository = DownloadRepository(dao) @@ -209,12 +213,12 @@ class DownloadWorker( var videoFormatID = downloadItem.format.format_id Log.e(TAG, videoFormatID) - var formatArgument = "bestvideo+bestaudio/best" + var formatArgument = if (downloadItem.videoPreferences.removeAudio) "bestvideo" else "bestvideo+bestaudio/best" if (videoFormatID.isNotEmpty()) { if (videoFormatID == context.resources.getString(R.string.best_quality)) videoFormatID = "bestvideo" else if (videoFormatID == context.resources.getString(R.string.worst_quality)) videoFormatID = "worst" else if (defaultFormats.contains(videoFormatID)) videoFormatID = "bestvideo[height<="+videoFormatID.substring(0, videoFormatID.length -1)+"]" - formatArgument = "$videoFormatID+bestaudio/best/$videoFormatID" + if (!downloadItem.videoPreferences.removeAudio) formatArgument = "$videoFormatID+bestaudio/best/$videoFormatID" } Log.e(TAG, formatArgument) request.addOption("-f", formatArgument) @@ -237,6 +241,11 @@ class DownloadWorker( request.addOption("--sub-langs", downloadItem.videoPreferences.subsLanguages) } + if (downloadItem.videoPreferences.removeAudio && + (downloadItem.format.acodec.isNotEmpty() && downloadItem.format.acodec != "none")){ + request.addOption("--ppa", "ffmpeg:-an") + } + if (downloadItem.videoPreferences.splitByChapters && downloadItem.downloadSections.isBlank()){ request.addOption("--split-chapters") request.addOption("-P", tempFileDir.absolutePath) @@ -280,6 +289,7 @@ class DownloadWorker( if (downloadItem.title.isEmpty()) downloadItem.title = info.title.toString() if (downloadItem.author.isEmpty()) downloadItem.author = info.uploader.toString() if (downloadItem.thumb.isEmpty()) downloadItem.thumb = info.thumbnail.toString() + downloadItem.duration = infoUtil.formatIntegerDuration(info.duration, Locale.US) runBlocking { dao.update(downloadItem) } diff --git a/app/src/main/res/drawable/ic_launcher_foreground_large.xml b/app/src/main/res/drawable/ic_launcher_foreground_large.xml new file mode 100644 index 00000000..49c10894 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground_large.xml @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/active_download_card.xml b/app/src/main/res/layout/active_download_card.xml index 1d82499b..ec4882e8 100644 --- a/app/src/main/res/layout/active_download_card.xml +++ b/app/src/main/res/layout/active_download_card.xml @@ -38,6 +38,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_download_video.xml b/app/src/main/res/layout/fragment_download_video.xml index de48731d..8830bd8c 100644 --- a/app/src/main/res/layout/fragment_download_video.xml +++ b/app/src/main/res/layout/fragment_download_video.xml @@ -249,6 +249,19 @@ android:checked="false" android:text="@string/subtitle_languages"/> + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index bbd3e021..50ec8862 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -2,4 +2,5 @@ + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 50ec8862..bbd3e021 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -2,5 +2,4 @@ - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index 9e095cd9..9116b296 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index 9e095cd9..9116b296 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index dca1e264..2cf8c0de 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index dca1e264..2cf8c0de 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 3173af87..9e362b82 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 3173af87..9e362b82 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 6815665e..3be1c6d9 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index 6815665e..3be1c6d9 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 35d57100..c385f20c 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 35d57100..c385f20c 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 864b3c8e..28da3367 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -243,4 +243,5 @@ Notification for finished or faulty downloads Quick Download Don\'t fetch data beforehand + Remove Audio \ No newline at end of file diff --git a/app/src/main/res/xml/provider_paths.xml b/app/src/main/res/xml/provider_paths.xml index 20151e82..bce93183 100644 --- a/app/src/main/res/xml/provider_paths.xml +++ b/app/src/main/res/xml/provider_paths.xml @@ -1,7 +1,6 @@ - diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 207afdb3..7eba0278 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -55,7 +55,7 @@ app:title="@string/video_directory" />