From c28c2a6848dc204f90f0ee0e8727c9802e89b513 Mon Sep 17 00:00:00 2001
From: deniscerri <64997243+deniscerri@users.noreply.github.com>
Date: Tue, 16 May 2023 20:54:56 +0200
Subject: [PATCH] converted most activities to fragments and added animation of
hiding / showing bottom nav
---
app/src/main/AndroidManifest.xml | 58 ---------------
.../com/deniscerri/ytdlnis/MainActivity.kt | 66 +++++++++++++----
.../com/deniscerri/ytdlnis/ui/HomeFragment.kt | 1 +
.../ui/downloads/ActiveDownloadsFragment.kt | 14 ++--
...tivity.kt => DownloadQueueMainFragment.kt} | 40 ++++++-----
.../ui/downloads/ErroredDownloadsFragment.kt | 5 +-
.../ytdlnis/ui/downloads/HistoryFragment.kt | 6 +-
...ctivity.kt => CommandTemplatesFragment.kt} | 55 ++++++++------
...{CookiesActivity.kt => CookiesFragment.kt} | 54 ++++++++------
.../ytdlnis/ui/more/MoreFragment.kt | 17 ++---
...dLogActivity.kt => DownloadLogFragment.kt} | 48 ++++++++-----
...Activity.kt => DownloadLogListFragment.kt} | 59 ++++++++-------
.../ytdlnis/util/NotificationUtil.kt | 4 +-
...tes.xml => fragment_command_templates.xml} | 0
...ivity_cookies.xml => fragment_cookies.xml} | 0
...load_log.xml => fragment_download_log.xml} | 0
...ist.xml => fragment_download_log_list.xml} | 0
...> fragment_download_queue_main_screen.xml} | 0
.../main/res/menu/nav_menu_largescreen.xml | 8 +--
app/src/main/res/navigation/nav_graph.xml | 72 +++++++++++--------
20 files changed, 274 insertions(+), 233 deletions(-)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/{DownloadQueueActivity.kt => DownloadQueueMainFragment.kt} (81%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/more/{CommandTemplatesActivity.kt => CommandTemplatesFragment.kt} (79%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/more/{CookiesActivity.kt => CookiesFragment.kt} (82%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/{DownloadLogActivity.kt => DownloadLogFragment.kt} (63%)
rename app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/{DownloadLogListActivity.kt => DownloadLogListFragment.kt} (74%)
rename app/src/main/res/layout/{activity_command_templates.xml => fragment_command_templates.xml} (100%)
rename app/src/main/res/layout/{activity_cookies.xml => fragment_cookies.xml} (100%)
rename app/src/main/res/layout/{activity_download_log.xml => fragment_download_log.xml} (100%)
rename app/src/main/res/layout/{activity_download_log_list.xml => fragment_download_log_list.xml} (100%)
rename app/src/main/res/layout/{activity_download_queue.xml => fragment_download_queue_main_screen.xml} (100%)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 61ff6b25..66274e06 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -69,39 +69,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{
- val intent = Intent(context, DownloadQueueActivity::class.java)
- startActivity(intent)
+ navController.navigate(R.id.downloadQueueMainFragment)
}
R.id.moreFragment -> {
val intent = Intent(context, SettingsActivity::class.java)
@@ -175,20 +180,50 @@ class MainActivity : BaseActivity() {
}
}
cookieViewModel.updateCookiesFile()
-// lifecycleScope.launch(Dispatchers.IO){
-// val active = downloadViewModel.getActiveDownloads()
-// if (active.isNotEmpty()){
-// val wm = WorkManager.getInstance(this@MainActivity)
-// active.forEach {
-// if (wm.getWorkInfosByTag())
-// }
-// WorkManager.getInstance(this@MainActivity).get
-// }
-// }
val intent = intent
handleIntents(intent)
}
+ fun hideBottomNavigation(){
+ if(navigationView is NavigationBarView){
+ if (navigationView is BottomNavigationView){
+ findViewById(R.id.frame_layout).updateLayoutParams {
+ this.height = LayoutParams.MATCH_PARENT
+ }
+ navigationView.animate()?.translationY(navigationView.height.toFloat())?.setDuration(300)?.withEndAction {
+ navigationView.visibility = View.GONE
+ }?.start()
+ }else{
+ findViewById(R.id.frame_layout).updateLayoutParams {
+ this.width = LayoutParams.MATCH_PARENT
+ }
+ navigationView.animate()?.translationX(-navigationView.width.toFloat())?.setDuration(300)?.withEndAction {
+ navigationView.visibility = View.GONE
+ }?.start()
+ }
+ }
+ }
+
+ fun showBottomNavigation(){
+ if(navigationView is NavigationBarView){
+ if (navigationView is BottomNavigationView){
+ findViewById(R.id.frame_layout).updateLayoutParams {
+ this.height = 0
+ }
+ navigationView.animate()?.translationY(0F)?.setDuration(300)?.withEndAction {
+ navigationView.visibility = View.VISIBLE
+ }?.start()
+ }else{
+ findViewById(R.id.frame_layout).updateLayoutParams {
+ this.width = 0
+ }
+ navigationView.animate()?.translationX(0F)?.setDuration(300)?.withEndAction {
+ navigationView.visibility = View.VISIBLE
+ }?.start()
+ }
+ }
+ }
+
fun disableBottomNavigation(){
if (navigationView is NavigationBarView){
(navigationView as NavigationBarView).menu.forEach { it.isEnabled = false }
@@ -207,6 +242,7 @@ class MainActivity : BaseActivity() {
override fun onResume() {
super.onResume()
+ //incognito header
val incognitoHeader = findViewById(R.id.incognito_header)
if (preferences.getBoolean("incognito", false)){
incognitoHeader.visibility = View.VISIBLE
@@ -215,6 +251,10 @@ class MainActivity : BaseActivity() {
window.statusBarColor = getColor(android.R.color.transparent)
incognitoHeader.visibility = View.GONE
}
+ //check logs option
+ if (navigationView is NavigationView){
+ (navigationView as NavigationView).menu.findItem(R.id.downloadLogListFragment).isVisible = preferences.getBoolean("log_downloads", false)
+ }
}
override fun onNewIntent(intent: Intent) {
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 39cb10c5..5f28fd2e 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt
@@ -102,6 +102,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, OnClickListene
fragmentView = inflater.inflate(R.layout.fragment_home, container, false)
activity = getActivity()
mainActivity = activity as MainActivity?
+ mainActivity?.showBottomNavigation()
quickLaunchSheet = false
return fragmentView
}
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
index faffb54f..23941c01 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
@@ -2,9 +2,7 @@ package com.deniscerri.ytdlnis.ui.downloads
import android.app.Activity
import android.content.Intent
-import android.content.res.Configuration
import android.os.Bundle
-import android.util.DisplayMetrics
import android.view.LayoutInflater
import android.view.View
import android.view.View.OnClickListener
@@ -12,6 +10,7 @@ import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
+import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.work.WorkManager
@@ -21,7 +20,7 @@ import com.deniscerri.ytdlnis.database.models.DownloadItem
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
-import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogActivity
+import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogFragment
import com.deniscerri.ytdlnis.util.FileUtil
import com.deniscerri.ytdlnis.util.NotificationUtil
import com.google.android.material.progressindicator.LinearProgressIndicator
@@ -107,9 +106,12 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
override fun onOutputClick(item: DownloadItem) {
val logFile = fileUtil.getLogFile(requireContext(), item)
if (logFile.exists()) {
- val intent = Intent(requireContext(), DownloadLogActivity::class.java)
- intent.putExtra("logpath", logFile.absolutePath)
- startActivity(intent)
+ val bundle = Bundle()
+ bundle.putString("logpath", logFile.absolutePath)
+ findNavController().navigate(
+ R.id.downloadLogFragment,
+ bundle
+ )
}
}
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/DownloadQueueActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/DownloadQueueMainFragment.kt
similarity index 81%
rename from app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/DownloadQueueActivity.kt
rename to app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/DownloadQueueMainFragment.kt
index d9585244..b9b1a104 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/DownloadQueueActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/DownloadQueueMainFragment.kt
@@ -1,20 +1,22 @@
package com.deniscerri.ytdlnis.ui.downloads
-import android.content.Context
import android.content.DialogInterface
import android.os.Bundle
+import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
+import android.view.ViewGroup
import android.widget.Toast
+import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2
import androidx.work.WorkManager
+import com.deniscerri.ytdlnis.MainActivity
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
-import com.deniscerri.ytdlnis.ui.BaseActivity
import com.deniscerri.ytdlnis.util.NotificationUtil
import com.google.android.material.appbar.MaterialToolbar
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -25,25 +27,31 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
-class DownloadQueueActivity : BaseActivity(){
+class DownloadQueueMainFragment : Fragment(){
private lateinit var downloadViewModel: DownloadViewModel
private lateinit var topAppBar: MaterialToolbar
private lateinit var workManager: WorkManager
private lateinit var tabLayout: TabLayout
private lateinit var viewPager2: ViewPager2
private lateinit var fragmentAdapter : DownloadListFragmentAdapter
- var context: Context? = null
+ private lateinit var mainActivity: MainActivity
- public override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_download_queue)
- context = baseContext
- val view : View = window.decorView.findViewById(android.R.id.content)
- workManager = WorkManager.getInstance(this)
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ mainActivity = activity as MainActivity
+ return inflater.inflate(R.layout.fragment_download_queue_main_screen, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ workManager = WorkManager.getInstance(requireContext())
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
- topAppBar = findViewById(R.id.logs_toolbar)
- topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
+ topAppBar = view.findViewById(R.id.logs_toolbar)
+ topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
tabLayout = view.findViewById(R.id.download_tablayout)
viewPager2 = view.findViewById(R.id.download_viewpager)
@@ -56,7 +64,7 @@ class DownloadQueueActivity : BaseActivity(){
val fragments = mutableListOf(ActiveDownloadsFragment(), QueuedDownloadsFragment(), CancelledDownloadsFragment(), ErroredDownloadsFragment())
fragmentAdapter = DownloadListFragmentAdapter(
- supportFragmentManager,
+ childFragmentManager,
lifecycle,
fragments
)
@@ -81,7 +89,7 @@ class DownloadQueueActivity : BaseActivity(){
tabLayout.selectTab(tabLayout.getTabAt(position))
}
})
-
+ mainActivity.hideBottomNavigation()
initMenu()
}
@@ -115,7 +123,7 @@ class DownloadQueueActivity : BaseActivity(){
}
private fun showDeleteDialog (deleteClicked: (deleteClicked: Boolean) -> Unit){
- val deleteDialog = MaterialAlertDialogBuilder(this)
+ val deleteDialog = MaterialAlertDialogBuilder(requireContext())
deleteDialog.setTitle(getString(R.string.you_are_going_to_delete_multiple_items))
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
@@ -127,7 +135,7 @@ class DownloadQueueActivity : BaseActivity(){
private fun cancelAllDownloads() {
workManager.cancelAllWorkByTag("download")
lifecycleScope.launch {
- val notificationUtil = NotificationUtil(this@DownloadQueueActivity)
+ val notificationUtil = NotificationUtil(requireContext())
val activeAndQueued = withContext(Dispatchers.IO){
downloadViewModel.getActiveAndQueuedDownloads()
}
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 9227f277..c1c32974 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
@@ -3,7 +3,6 @@ package com.deniscerri.ytdlnis.ui.downloads
import android.app.Activity
import android.content.DialogInterface
import android.content.Intent
-import android.content.res.Configuration
import android.graphics.Canvas
import android.graphics.Color
import android.os.Bundle
@@ -32,7 +31,7 @@ import com.deniscerri.ytdlnis.database.models.DownloadItem
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
import com.deniscerri.ytdlnis.ui.downloadcard.DownloadBottomSheetDialog
-import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogActivity
+import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogFragment
import com.deniscerri.ytdlnis.util.FileUtil
import com.deniscerri.ytdlnis.util.UiUtil
import com.google.android.material.bottomsheet.BottomSheetDialog
@@ -97,7 +96,7 @@ class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickL
override fun onActionButtonClick(itemID: Long) {
val item = items.find { it.id == itemID } ?: return
val file = fileUtil.getLogFile(requireContext(), item)
- val intent = Intent(requireContext(), DownloadLogActivity::class.java)
+ val intent = Intent(requireContext(), DownloadLogFragment::class.java)
intent.putExtra("logpath", file.absolutePath)
startActivity(intent)
}
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 6b2785be..39f848a0 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
@@ -4,7 +4,6 @@ import android.app.Activity
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
-import android.content.res.Configuration
import android.graphics.Canvas
import android.graphics.Color
import android.os.Bundle
@@ -100,7 +99,7 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
fragmentView = inflater.inflate(R.layout.fragment_history, container, false)
activity = getActivity()
mainActivity = activity as MainActivity?
-
+ mainActivity?.showBottomNavigation()
return fragmentView
}
@@ -156,7 +155,6 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
}
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
-
initMenu()
initChips()
}
@@ -217,7 +215,7 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
}
}
R.id.download_queue -> {
- val intent = Intent(context, DownloadQueueActivity::class.java)
+ val intent = Intent(context, DownloadQueueMainFragment::class.java)
startActivity(intent)
}
R.id.remove_deleted_history -> {
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CommandTemplatesActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CommandTemplatesFragment.kt
similarity index 79%
rename from app/src/main/java/com/deniscerri/ytdlnis/ui/more/CommandTemplatesActivity.kt
rename to app/src/main/java/com/deniscerri/ytdlnis/ui/more/CommandTemplatesFragment.kt
index 11b93dd1..ae4926be 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CommandTemplatesActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CommandTemplatesFragment.kt
@@ -5,19 +5,22 @@ import android.content.DialogInterface
import android.graphics.Canvas
import android.graphics.Color
import android.os.Bundle
+import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
+import android.view.ViewGroup
import android.widget.RelativeLayout
+import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.deniscerri.ytdlnis.MainActivity
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.adapter.TemplatesAdapter
import com.deniscerri.ytdlnis.database.models.CommandTemplate
import com.deniscerri.ytdlnis.database.viewmodel.CommandTemplateViewModel
-import com.deniscerri.ytdlnis.ui.BaseActivity
import com.deniscerri.ytdlnis.util.FileUtil
import com.deniscerri.ytdlnis.util.UiUtil
import com.google.android.material.appbar.MaterialToolbar
@@ -30,7 +33,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
-class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickListener {
+class CommandTemplatesFragment : Fragment(), TemplatesAdapter.OnItemClickListener {
private lateinit var recyclerView: RecyclerView
private lateinit var templatesAdapter: TemplatesAdapter
private lateinit var topAppBar: MaterialToolbar
@@ -38,24 +41,32 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
private lateinit var uiUtil: UiUtil
private lateinit var templatesList: List
private lateinit var noResults: RelativeLayout
- var context: Context? = null
+ private lateinit var mainActivity: MainActivity
- public override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_command_templates)
- context = baseContext
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ mainActivity = activity as MainActivity
+ mainActivity.hideBottomNavigation()
+ return inflater.inflate(R.layout.fragment_command_templates, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
templatesList = listOf()
- topAppBar = findViewById(R.id.logs_toolbar)
- topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
- noResults = findViewById(R.id.no_results)
+ topAppBar = view.findViewById(R.id.logs_toolbar)
+ topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
+ noResults = view.findViewById(R.id.no_results)
templatesAdapter =
TemplatesAdapter(
this,
- this@CommandTemplatesActivity
+ mainActivity
)
- recyclerView = findViewById(R.id.template_recyclerview)
+ recyclerView = view.findViewById(R.id.template_recyclerview)
recyclerView.layoutManager = LinearLayoutManager(context)
recyclerView.adapter = templatesAdapter
val itemTouchHelper = ItemTouchHelper(simpleCallback)
@@ -64,7 +75,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
uiUtil = UiUtil(FileUtil())
commandTemplateViewModel = ViewModelProvider(this)[CommandTemplateViewModel::class.java]
- commandTemplateViewModel.items.observe(this) {
+ commandTemplateViewModel.items.observe(viewLifecycleOwner) {
if (it.isEmpty()) noResults.visibility = View.VISIBLE
else noResults.visibility = View.GONE
templatesList = it
@@ -88,7 +99,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
lifecycleScope.launch{
withContext(Dispatchers.IO){
val count = commandTemplateViewModel.importFromClipboard()
- runOnUiThread{
+ mainActivity.runOnUiThread{
Snackbar.make(recyclerView, "${getString(R.string.items_imported)} (${count})", Snackbar.LENGTH_LONG).show()
}
}
@@ -100,13 +111,13 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
}
private fun initChips() {
- val new = findViewById(R.id.newTemplate)
- new.setOnClickListener {
- uiUtil.showCommandTemplateCreationOrUpdatingSheet(null,this@CommandTemplatesActivity, this, commandTemplateViewModel) {}
+ val new = view?.findViewById(R.id.newTemplate)
+ new?.setOnClickListener {
+ uiUtil.showCommandTemplateCreationOrUpdatingSheet(null,mainActivity, this, commandTemplateViewModel) {}
}
- val shortcuts = findViewById(R.id.shortcuts)
- shortcuts.setOnClickListener {
- uiUtil.showShortcutsSheet(this@CommandTemplatesActivity,this, commandTemplateViewModel)
+ val shortcuts = view?.findViewById(R.id.shortcuts)
+ shortcuts?.setOnClickListener {
+ uiUtil.showShortcutsSheet(mainActivity,this, commandTemplateViewModel)
}
}
@@ -115,7 +126,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
}
override fun onItemClick(commandTemplate: CommandTemplate, index: Int) {
- uiUtil.showCommandTemplateCreationOrUpdatingSheet(commandTemplate,this@CommandTemplatesActivity, this, commandTemplateViewModel) {
+ uiUtil.showCommandTemplateCreationOrUpdatingSheet(commandTemplate,mainActivity, this, commandTemplateViewModel) {
templatesAdapter.notifyItemChanged(index)
}
@@ -126,7 +137,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
}
override fun onDelete(commandTemplate: CommandTemplate) {
- val deleteDialog = MaterialAlertDialogBuilder(this)
+ val deleteDialog = MaterialAlertDialogBuilder(requireContext())
deleteDialog.setTitle(getString(R.string.you_are_going_to_delete) + " \"" + commandTemplate.title + "\"!")
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CookiesActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CookiesFragment.kt
similarity index 82%
rename from app/src/main/java/com/deniscerri/ytdlnis/ui/more/CookiesActivity.kt
rename to app/src/main/java/com/deniscerri/ytdlnis/ui/more/CookiesFragment.kt
index 76afaab9..3caeeb81 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CookiesActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/CookiesFragment.kt
@@ -1,28 +1,32 @@
package com.deniscerri.ytdlnis.ui.more
import android.content.Context
+import android.content.Context.INPUT_METHOD_SERVICE
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Canvas
import android.graphics.Color
import android.os.Bundle
+import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
+import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.RelativeLayout
import androidx.appcompat.app.AlertDialog
import androidx.core.widget.doOnTextChanged
+import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.deniscerri.ytdlnis.MainActivity
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.adapter.CookieAdapter
import com.deniscerri.ytdlnis.database.models.CookieItem
import com.deniscerri.ytdlnis.database.viewmodel.CookieViewModel
-import com.deniscerri.ytdlnis.ui.BaseActivity
import com.deniscerri.ytdlnis.util.FileUtil
import com.deniscerri.ytdlnis.util.UiUtil
import com.google.android.material.appbar.MaterialToolbar
@@ -36,7 +40,7 @@ import kotlinx.coroutines.launch
import java.io.File
-class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
+class CookiesFragment : Fragment(), CookieAdapter.OnItemClickListener {
private lateinit var recyclerView: RecyclerView
private lateinit var listAdapter: CookieAdapter
private lateinit var topAppBar: MaterialToolbar
@@ -44,24 +48,30 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
private lateinit var uiUtil: UiUtil
private lateinit var cookiesList: List
private lateinit var noResults : RelativeLayout
- var context: Context? = null
+ private lateinit var mainActivity: MainActivity
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ mainActivity = activity as MainActivity
+ mainActivity.hideBottomNavigation()
+ return inflater.inflate(R.layout.fragment_cookies, container, false)
+ }
- public override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_cookies)
- context = baseContext
-
- topAppBar = findViewById(R.id.logs_toolbar)
- topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ topAppBar = view.findViewById(R.id.logs_toolbar)
+ topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
cookiesList = listOf()
- noResults = findViewById(R.id.no_results)
+ noResults = view.findViewById(R.id.no_results)
listAdapter =
CookieAdapter(
this,
- this@CookiesActivity
+ mainActivity
)
- recyclerView = findViewById(R.id.template_recyclerview)
+ recyclerView = view.findViewById(R.id.template_recyclerview)
recyclerView.layoutManager = LinearLayoutManager(context)
recyclerView.adapter = listAdapter
val itemTouchHelper = ItemTouchHelper(simpleCallback)
@@ -70,7 +80,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
uiUtil = UiUtil(FileUtil())
cookiesViewModel = ViewModelProvider(this)[CookieViewModel::class.java]
- cookiesViewModel.items.observe(this) {
+ cookiesViewModel.items.observe(viewLifecycleOwner) {
if (it.isEmpty()) noResults.visibility = View.VISIBLE
else noResults.visibility = View.GONE
cookiesList = it
@@ -84,14 +94,14 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
topAppBar.setOnMenuItemClickListener { m: MenuItem ->
when (m.itemId) {
R.id.delete_cookies -> {
- val deleteDialog = MaterialAlertDialogBuilder(this)
+ val deleteDialog = MaterialAlertDialogBuilder(requireContext())
deleteDialog.setTitle(getString(R.string.confirm_delete_history))
deleteDialog.setMessage(getString(R.string.confirm_delete_cookies_desc))
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
cookiesViewModel.deleteAll()
kotlin.runCatching {
- File(cacheDir, "cookies.txt").apply { writeText("") }
+ File(context?.cacheDir, "cookies.txt").apply { writeText("") }
}
}
deleteDialog.show()
@@ -111,14 +121,14 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
}
private fun initChips() {
- val new = findViewById(R.id.newCookie)
- new.setOnClickListener {
+ val new = view?.findViewById(R.id.newCookie)
+ new?.setOnClickListener {
showDialog("")
}
}
private fun showDialog(url: String){
- val builder = MaterialAlertDialogBuilder(this)
+ val builder = MaterialAlertDialogBuilder(requireContext())
builder.setTitle(getString(R.string.cookies))
val inputLayout = layoutInflater.inflate(R.layout.textinput, null)
val editText = inputLayout.findViewById(R.id.url_edittext)
@@ -130,7 +140,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
builder.setPositiveButton(
getString(R.string.get_cookies)
) { dialog: DialogInterface?, which: Int ->
- val myIntent = Intent(this, WebViewActivity::class.java)
+ val myIntent = Intent(requireContext(), WebViewActivity::class.java)
myIntent.putExtra("url", editText.text.toString())
startActivity(myIntent)
}
@@ -144,7 +154,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = editText.text.isNotEmpty()
}
dialog.show()
- val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
+ val imm = mainActivity.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
editText!!.postDelayed({
editText.requestFocus()
imm.showSoftInput(editText, 0)
@@ -165,7 +175,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
}
override fun onDelete(cookie: CookieItem) {
- val deleteDialog = MaterialAlertDialogBuilder(this)
+ val deleteDialog = MaterialAlertDialogBuilder(requireContext())
deleteDialog.setTitle(getString(R.string.you_are_going_to_delete) + " \"" + cookie.url + "\"!")
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt
index f13a7a31..71e0076c 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt
@@ -10,11 +10,11 @@ import android.view.ViewGroup
import android.widget.CheckBox
import android.widget.TextView
import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
import androidx.preference.PreferenceManager
import com.deniscerri.ytdlnis.MainActivity
import com.deniscerri.ytdlnis.R
-import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
-import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListActivity
+import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListFragment
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import kotlin.system.exitProcess
@@ -36,6 +36,7 @@ class MoreFragment : Fragment() {
savedInstanceState: Bundle?
): View? {
mainActivity = activity as MainActivity
+ mainActivity.showBottomNavigation()
return inflater.inflate(R.layout.fragment_more, container, false)
}
@@ -67,23 +68,19 @@ class MoreFragment : Fragment() {
}
logs.setOnClickListener {
- val intent = Intent(context, DownloadLogListActivity::class.java)
- startActivity(intent)
+ findNavController().navigate(R.id.downloadLogListFragment)
}
commandTemplates.setOnClickListener {
- val intent = Intent(context, CommandTemplatesActivity::class.java)
- startActivity(intent)
+ findNavController().navigate(R.id.commandTemplatesFragment)
}
downloadQueue.setOnClickListener {
- val intent = Intent(context, DownloadQueueActivity::class.java)
- startActivity(intent)
+ findNavController().navigate(R.id.downloadQueueMainFragment)
}
cookies.setOnClickListener {
- val intent = Intent(context, CookiesActivity::class.java)
- startActivity(intent)
+ findNavController().navigate(R.id.cookiesFragment)
}
terminateApp.setOnClickListener {
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogFragment.kt
similarity index 63%
rename from app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogActivity.kt
rename to app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogFragment.kt
index 16f32a2b..d6173897 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogFragment.kt
@@ -2,12 +2,17 @@ package com.deniscerri.ytdlnis.ui.more.downloadLogs
import android.content.ClipboardManager
import android.content.Context
+import android.content.Context.CLIPBOARD_SERVICE
import android.os.Build
import android.os.Bundle
import android.os.FileObserver
+import android.view.LayoutInflater
import android.view.View
+import android.view.ViewGroup
import android.widget.ScrollView
import android.widget.TextView
+import androidx.fragment.app.Fragment
+import com.deniscerri.ytdlnis.MainActivity
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.ui.BaseActivity
import com.google.android.material.appbar.MaterialToolbar
@@ -15,38 +20,49 @@ import com.google.android.material.floatingactionbutton.ExtendedFloatingActionBu
import java.io.File
-class DownloadLogActivity : BaseActivity() {
+class DownloadLogFragment : Fragment() {
private lateinit var content: TextView
private lateinit var contentScrollView : ScrollView
private lateinit var topAppBar: MaterialToolbar
private lateinit var observer: FileObserver
private lateinit var copyLog : ExtendedFloatingActionButton
- var context: Context? = null
+ private lateinit var mainActivity: MainActivity
- public override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_download_log)
- context = baseContext
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ mainActivity = activity as MainActivity
+ mainActivity.hideBottomNavigation()
+ return inflater.inflate(R.layout.fragment_download_log, container, false)
+ }
- topAppBar = findViewById(R.id.title)
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ topAppBar = view.findViewById(R.id.title)
topAppBar.setNavigationOnClickListener {
- onBackPressedDispatcher.onBackPressed()
+ mainActivity.onBackPressedDispatcher.onBackPressed()
}
- content = findViewById(R.id.content)
+ content = view.findViewById(R.id.content)
content.setTextIsSelectable(true)
- contentScrollView = findViewById(R.id.content_scrollview)
+ contentScrollView = view.findViewById(R.id.content_scrollview)
- copyLog = findViewById(R.id.copy_log)
+ copyLog = view.findViewById(R.id.copy_log)
copyLog.setOnClickListener {
val clipboard: ClipboardManager =
- getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
+ mainActivity.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
clipboard.setText(content.text)
}
- val path = intent.getStringExtra("logpath")
+ val path = arguments?.getString("logpath")
if (path == null) {
- onBackPressedDispatcher.onBackPressed()
+ mainActivity.onBackPressedDispatcher.onBackPressed()
+ }else{
+ arguments?.remove("logpath")
}
val file = File(path!!)
@@ -56,7 +72,7 @@ class DownloadLogActivity : BaseActivity() {
if(Build.VERSION.SDK_INT < 29){
observer = object : FileObserver(file.absolutePath, MODIFY) {
override fun onEvent(event: Int, p: String?) {
- runOnUiThread{
+ mainActivity.runOnUiThread{
val newText = File(path).readText()
content.text = newText
content.scrollTo(0, content.height)
@@ -68,7 +84,7 @@ class DownloadLogActivity : BaseActivity() {
}else{
observer = object : FileObserver(file, MODIFY) {
override fun onEvent(event: Int, p: String?) {
- runOnUiThread{
+ mainActivity.runOnUiThread{
val newText = File(path).readText()
content.text = newText
content.scrollTo(0, content.height)
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogListActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogListFragment.kt
similarity index 74%
rename from app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogListActivity.kt
rename to app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogListFragment.kt
index ad328e57..cabfb569 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogListActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/downloadLogs/DownloadLogListFragment.kt
@@ -1,54 +1,62 @@
package com.deniscerri.ytdlnis.ui.more.downloadLogs
-import android.content.Context
import android.content.DialogInterface
-import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.os.FileObserver
+import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
+import android.view.ViewGroup
import android.widget.RelativeLayout
import android.widget.Toast
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.deniscerri.ytdlnis.MainActivity
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.adapter.DownloadLogsAdapter
-import com.deniscerri.ytdlnis.ui.BaseActivity
import com.google.android.material.appbar.MaterialToolbar
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.io.File
-class DownloadLogListActivity : BaseActivity(), DownloadLogsAdapter.OnItemClickListener {
+class DownloadLogListFragment : Fragment(), DownloadLogsAdapter.OnItemClickListener {
private lateinit var recyclerView: RecyclerView
private lateinit var downloadLogAdapter: DownloadLogsAdapter
private lateinit var noResults: RelativeLayout
private lateinit var fileList: MutableList
private lateinit var topAppBar: MaterialToolbar
private lateinit var logFolder : File
- var context: Context? = null
+ private lateinit var mainActivity: MainActivity
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ mainActivity = activity as MainActivity
+ mainActivity.hideBottomNavigation()
+ return inflater.inflate(R.layout.fragment_download_log_list, container, false)
+ }
- public override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_download_log_list)
- context = baseContext
-
- topAppBar = findViewById(R.id.logs_toolbar)
- topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ topAppBar = view.findViewById(R.id.logs_toolbar)
+ topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
downloadLogAdapter =
DownloadLogsAdapter(
this,
- this@DownloadLogListActivity
+ mainActivity
)
- recyclerView = findViewById(R.id.logs_recyclerview)
+ recyclerView = view.findViewById(R.id.logs_recyclerview)
recyclerView.layoutManager = LinearLayoutManager(context)
recyclerView.adapter = downloadLogAdapter
- noResults = findViewById(R.id.no_results)
+ noResults = view.findViewById(R.id.no_results)
noResults.visibility = View.GONE
- logFolder = File(filesDir.absolutePath + "/logs")
+ logFolder = File(requireContext().filesDir.absolutePath + "/logs")
updateList(logFolder)
if(Build.VERSION.SDK_INT < 29){
@@ -78,7 +86,7 @@ class DownloadLogListActivity : BaseActivity(), DownloadLogsAdapter.OnItemClickL
val itemId = m.itemId
if (itemId == R.id.remove_logs) {
try{
- val deleteDialog = MaterialAlertDialogBuilder(this)
+ val deleteDialog = MaterialAlertDialogBuilder(requireContext())
deleteDialog.setTitle(getString(R.string.confirm_delete_history))
deleteDialog.setMessage(getString(R.string.confirm_delete_logs_desc))
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
@@ -107,7 +115,7 @@ class DownloadLogListActivity : BaseActivity(), DownloadLogsAdapter.OnItemClickL
e.printStackTrace()
}
downloadLogAdapter.submitList(fileList.toList())
- runOnUiThread{
+ mainActivity.runOnUiThread{
if (fileList.isNotEmpty()) {
noResults.visibility = View.GONE
topAppBar.menu.findItem(R.id.remove_logs).isVisible = true
@@ -118,18 +126,17 @@ class DownloadLogListActivity : BaseActivity(), DownloadLogsAdapter.OnItemClickL
}
}
- companion object {
- private const val TAG = "DownloadLogActivity"
- }
-
override fun onItemClick(file: File) {
- val intent = Intent(this, DownloadLogActivity::class.java)
- intent.putExtra("logpath", file.absolutePath)
- startActivity(intent)
+ val bundle = Bundle()
+ bundle.putString("logpath", file.absolutePath)
+ findNavController().navigate(
+ R.id.downloadLogFragment,
+ bundle
+ )
}
override fun onDeleteClick(file: File) {
- val deleteDialog = MaterialAlertDialogBuilder(this)
+ val deleteDialog = MaterialAlertDialogBuilder(requireContext())
deleteDialog.setTitle(getString(R.string.you_are_going_to_delete) + " \"" + file.name + "\"!")
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
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 c4689fea..05a5c2c3 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/util/NotificationUtil.kt
@@ -16,7 +16,7 @@ import com.deniscerri.ytdlnis.receiver.CancelDownloadNotificationReceiver
import com.deniscerri.ytdlnis.receiver.PauseDownloadNotificationReceiver
import com.deniscerri.ytdlnis.receiver.ResumeActivity
import com.deniscerri.ytdlnis.receiver.SharedDownloadNotificationReceiver
-import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogActivity
+import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogFragment
import java.io.File
@@ -228,7 +228,7 @@ class NotificationUtil(var context: Context) {
) {
val notificationBuilder = getBuilder(channel)
- val intent = Intent(context, DownloadLogActivity::class.java)
+ val intent = Intent(context, DownloadLogFragment::class.java)
intent.putExtra("logpath", logFile?.absolutePath)
val errorPendingIntent: PendingIntent = TaskStackBuilder.create(context).run {
diff --git a/app/src/main/res/layout/activity_command_templates.xml b/app/src/main/res/layout/fragment_command_templates.xml
similarity index 100%
rename from app/src/main/res/layout/activity_command_templates.xml
rename to app/src/main/res/layout/fragment_command_templates.xml
diff --git a/app/src/main/res/layout/activity_cookies.xml b/app/src/main/res/layout/fragment_cookies.xml
similarity index 100%
rename from app/src/main/res/layout/activity_cookies.xml
rename to app/src/main/res/layout/fragment_cookies.xml
diff --git a/app/src/main/res/layout/activity_download_log.xml b/app/src/main/res/layout/fragment_download_log.xml
similarity index 100%
rename from app/src/main/res/layout/activity_download_log.xml
rename to app/src/main/res/layout/fragment_download_log.xml
diff --git a/app/src/main/res/layout/activity_download_log_list.xml b/app/src/main/res/layout/fragment_download_log_list.xml
similarity index 100%
rename from app/src/main/res/layout/activity_download_log_list.xml
rename to app/src/main/res/layout/fragment_download_log_list.xml
diff --git a/app/src/main/res/layout/activity_download_queue.xml b/app/src/main/res/layout/fragment_download_queue_main_screen.xml
similarity index 100%
rename from app/src/main/res/layout/activity_download_queue.xml
rename to app/src/main/res/layout/fragment_download_queue_main_screen.xml
diff --git a/app/src/main/res/menu/nav_menu_largescreen.xml b/app/src/main/res/menu/nav_menu_largescreen.xml
index 9301e13a..54af1788 100644
--- a/app/src/main/res/menu/nav_menu_largescreen.xml
+++ b/app/src/main/res/menu/nav_menu_largescreen.xml
@@ -16,19 +16,19 @@
+ android:id="@+id/downloadLogListFragment"/>
+ android:id="@+id/commandTemplatesFragment"/>
+ android:id="@+id/downloadQueueMainFragment"/>
+ android:id="@+id/cookiesFragment"/>
-
+ android:id="@+id/action_historyFragment_to_downloadQueueMainFragment"
+ app:destination="@id/downloadQueueMainFragment" />
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file