From 8eb0370c69b5c5d0cf0cbbfa73d056e18976fc64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20=C3=87erri?= <64997243+deniscerri@users.noreply.github.com> Date: Sun, 26 Feb 2023 14:46:03 +0100 Subject: [PATCH] made the logs not store if incognito is on and stopped log getting recreated if deleted --- .../downloadLogs/DownloadLogListActivity.kt | 36 +++++++++++++++++-- .../deniscerri/ytdlnis/work/DownloadWorker.kt | 10 +++--- .../res/layout/activity_download_log_list.xml | 1 + app/src/main/res/menu/download_logs_menu.xml | 9 +++++ app/src/main/res/values-sq-rAL/strings.xml | 13 +++++++ 5 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/menu/download_logs_menu.xml diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadLogs/DownloadLogListActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadLogs/DownloadLogListActivity.kt index d6034dc9..c092802a 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadLogs/DownloadLogListActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadLogs/DownloadLogListActivity.kt @@ -4,16 +4,27 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.os.FileObserver +import android.os.Handler +import android.os.Looper +import android.text.InputType import android.util.Log +import android.view.LayoutInflater +import android.view.MenuItem import android.view.View import android.widget.RelativeLayout +import android.widget.TextView +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.SearchView import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.deniscerri.ytdlnis.R import com.deniscerri.ytdlnis.adapter.DownloadLogsAdapter +import com.deniscerri.ytdlnis.util.InfoUtil import com.google.android.material.appbar.MaterialToolbar +import com.google.android.material.button.MaterialButton import java.io.File +import java.util.ArrayList class DownloadLogListActivity : AppCompatActivity(), DownloadLogsAdapter.OnItemClickListener { @@ -54,19 +65,38 @@ class DownloadLogListActivity : AppCompatActivity(), DownloadLogsAdapter.OnItemC } } observer.startWatching(); + initMenu(logFolder) + } - + private fun initMenu(logFolder: File) { + topAppBar.setOnMenuItemClickListener { m: MenuItem -> + val itemId = m.itemId + if (itemId == R.id.remove_logs) { + try{ + logFolder.listFiles()!!.forEach { + it.delete() + } + }catch (e: Exception){ + Toast.makeText(context, e.message, Toast.LENGTH_LONG).show() + } + } + true + } } private fun updateList(logFolder: File){ fileList = mutableListOf() - fileList.addAll(logFolder.listFiles()!!) - fileList.reverse() + try{ + fileList.addAll(logFolder.listFiles()!!) + fileList.reverse() + }catch (ignored: Exception){} downloadLogAdapter.submitList(fileList.toList()) runOnUiThread{ if (fileList.isNotEmpty()) { noResults.visibility = View.GONE + topAppBar.menu.findItem(R.id.remove_logs).isVisible = true }else{ + topAppBar.menu.findItem(R.id.remove_logs).isVisible = false noResults.visibility = View.VISIBLE } } 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 4304e6d8..5b488d76 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/work/DownloadWorker.kt @@ -197,11 +197,11 @@ class DownloadWorker( } runCatching { - val logDownloads = sharedPreferences.getBoolean("log_downloads", false) + val logDownloads = sharedPreferences.getBoolean("log_downloads", false) && !sharedPreferences.getBoolean("incognito", false) val logFolder = File(context.filesDir.absolutePath + "/logs") val logFile = File(context.filesDir.absolutePath + """/logs/${downloadItem.id} - ${downloadItem.title}##${downloadItem.type}##${downloadItem.format.format_id}.log""") if (logDownloads){ - logFolder.mkdir() + logFolder.mkdirs() logFile.createNewFile() logFile.writeText("Downloading:\n" + "URL: ${downloadItem.url}\n" + @@ -219,7 +219,7 @@ class DownloadWorker( line, progress.toInt(), 0, title, NotificationUtil.DOWNLOAD_SERVICE_CHANNEL_ID ) - if (logDownloads){ + if (logDownloads && logFile.exists()){ logFile.appendText("${line}\n") } } @@ -259,7 +259,9 @@ class DownloadWorker( val logDownloads = sharedPreferences.getBoolean("log_downloads", false) if (logDownloads){ val logFile = File(context.filesDir.absolutePath + """/logs/${downloadItem.id} - ${downloadItem.title}##${downloadItem.type}##${downloadItem.format.format_id}.log""") - logFile.appendText("${it.message}\n") + if (logFile.exists()){ + logFile.appendText("${it.message}\n") + } } tempFileDir.delete() diff --git a/app/src/main/res/layout/activity_download_log_list.xml b/app/src/main/res/layout/activity_download_log_list.xml index 9b3e0875..660f6fe2 100644 --- a/app/src/main/res/layout/activity_download_log_list.xml +++ b/app/src/main/res/layout/activity_download_log_list.xml @@ -18,6 +18,7 @@ android:elevation="0dp" app:title="@string/logs" android:layout_width="match_parent" + app:menu="@menu/download_logs_menu" app:navigationIcon="@drawable/ic_back" android:layout_height="match_parent"/> diff --git a/app/src/main/res/menu/download_logs_menu.xml b/app/src/main/res/menu/download_logs_menu.xml new file mode 100644 index 00000000..6ae61c40 --- /dev/null +++ b/app/src/main/res/menu/download_logs_menu.xml @@ -0,0 +1,9 @@ + +
\ No newline at end of file diff --git a/app/src/main/res/values-sq-rAL/strings.xml b/app/src/main/res/values-sq-rAL/strings.xml index 95df2c12..6665a404 100644 --- a/app/src/main/res/values-sq-rAL/strings.xml +++ b/app/src/main/res/values-sq-rAL/strings.xml @@ -71,6 +71,18 @@