converted most activities to fragments and added animation of hiding / showing bottom nav
This commit is contained in:
parent
d1e6cc1bef
commit
c28c2a6848
20 changed files with 274 additions and 233 deletions
|
|
@ -69,39 +69,6 @@
|
|||
<data android:mimeType="text/plain" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.more.downloadLogs.DownloadLogListActivity"
|
||||
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:parentActivityName=".MainActivity">
|
||||
<intent-filter>
|
||||
<action android:name="ytdlnis.downloadLogs.DownloadLogListActivity" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.downloads.DownloadQueueActivity"
|
||||
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:parentActivityName=".MainActivity">
|
||||
<intent-filter>
|
||||
<action android:name="ytdlnis.DownloadQueueActivity" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.more.downloadLogs.DownloadLogActivity"
|
||||
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:parentActivityName=".ui.more.downloadLogs.DownloadLogListActivity">
|
||||
<intent-filter>
|
||||
<action android:name="ytdlnis.downloadLogs.DownloadLogActivity" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.more.settings.SettingsActivity"
|
||||
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
||||
|
|
@ -131,31 +98,6 @@
|
|||
<data android:mimeType="text/plain" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.more.CommandTemplatesActivity"
|
||||
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:parentActivityName=".MainActivity"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="ytdlnis.CommandTemplatesActivity" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.more.CookiesActivity"
|
||||
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:parentActivityName=".MainActivity"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="ytdlnis.CookiesActivity" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.more.WebViewActivity"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.deniscerri.ytdlnis
|
||||
|
||||
import android.Manifest
|
||||
import android.app.ActionBar.LayoutParams
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
|
|
@ -13,14 +14,18 @@ import android.os.Build
|
|||
import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import android.util.Log
|
||||
import androidx.drawerlayout.widget.DrawerLayout
|
||||
import android.view.View
|
||||
import android.view.WindowInsets
|
||||
import android.widget.CheckBox
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.forEach
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.fragment.app.FragmentContainerView
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
|
|
@ -32,10 +37,11 @@ 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.HomeFragment
|
||||
import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
|
||||
import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueMainFragment
|
||||
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
|
||||
import com.deniscerri.ytdlnis.util.ThemeUtil
|
||||
import com.deniscerri.ytdlnis.util.UpdateUtil
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.elevation.SurfaceColors
|
||||
import com.google.android.material.navigation.NavigationBarView
|
||||
|
|
@ -119,8 +125,7 @@ class MainActivity : BaseActivity() {
|
|||
(navHostFragment.childFragmentManager.primaryNavigationFragment!! as HomeFragment).scrollToTop()
|
||||
}
|
||||
R.id.historyFragment -> {
|
||||
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<FragmentContainerView>(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<FragmentContainerView>(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<FragmentContainerView>(R.id.frame_layout).updateLayoutParams {
|
||||
this.height = 0
|
||||
}
|
||||
navigationView.animate()?.translationY(0F)?.setDuration(300)?.withEndAction {
|
||||
navigationView.visibility = View.VISIBLE
|
||||
}?.start()
|
||||
}else{
|
||||
findViewById<FragmentContainerView>(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<TextView>(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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 -> {
|
||||
|
|
|
|||
|
|
@ -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<CommandTemplate>
|
||||
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<Chip>(R.id.newTemplate)
|
||||
new.setOnClickListener {
|
||||
uiUtil.showCommandTemplateCreationOrUpdatingSheet(null,this@CommandTemplatesActivity, this, commandTemplateViewModel) {}
|
||||
val new = view?.findViewById<Chip>(R.id.newTemplate)
|
||||
new?.setOnClickListener {
|
||||
uiUtil.showCommandTemplateCreationOrUpdatingSheet(null,mainActivity, this, commandTemplateViewModel) {}
|
||||
}
|
||||
val shortcuts = findViewById<Chip>(R.id.shortcuts)
|
||||
shortcuts.setOnClickListener {
|
||||
uiUtil.showShortcutsSheet(this@CommandTemplatesActivity,this, commandTemplateViewModel)
|
||||
val shortcuts = view?.findViewById<Chip>(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 ->
|
||||
|
|
@ -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<CookieItem>
|
||||
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<Chip>(R.id.newCookie)
|
||||
new.setOnClickListener {
|
||||
val new = view?.findViewById<Chip>(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<EditText>(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 ->
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -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<File>
|
||||
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 ->
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -16,19 +16,19 @@
|
|||
<item android:title="@string/logs"
|
||||
android:icon="@drawable/ic_baseline_file_open_24"
|
||||
android:checkable="true"
|
||||
android:id="@+id/downloadLogListActivity"/>
|
||||
android:id="@+id/downloadLogListFragment"/>
|
||||
<item android:title="@string/command_templates"
|
||||
android:icon="@drawable/ic_baseline_keyboard_arrow_right_24"
|
||||
android:checkable="true"
|
||||
android:id="@+id/commandTemplatesActivity"/>
|
||||
android:id="@+id/commandTemplatesFragment"/>
|
||||
<item android:title="@string/download_queue"
|
||||
android:icon="@drawable/baseline_downloading_24"
|
||||
android:checkable="true"
|
||||
android:id="@+id/downloadQueueActivity"/>
|
||||
android:id="@+id/downloadQueueMainFragment"/>
|
||||
<item android:title="@string/cookies"
|
||||
android:icon="@drawable/baseline_cookie_24"
|
||||
android:checkable="true"
|
||||
android:id="@+id/cookiesActivity"/>
|
||||
android:id="@+id/cookiesFragment"/>
|
||||
<item android:title="@string/kill_app"
|
||||
android:checkable="true"
|
||||
android:icon="@drawable/ic_power"
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
android:label="@string/downloads"
|
||||
tools:layout="@layout/fragment_history" >
|
||||
<action
|
||||
android:id="@+id/action_historyFragment_to_downloadQueueActivity"
|
||||
app:destination="@id/downloadQueueActivity" />
|
||||
android:id="@+id/action_historyFragment_to_downloadQueueMainFragment"
|
||||
app:destination="@id/downloadQueueMainFragment" />
|
||||
</fragment>
|
||||
<fragment
|
||||
android:id="@+id/moreFragment"
|
||||
|
|
@ -27,39 +27,22 @@
|
|||
<action
|
||||
android:id="@+id/action_moreFragment_to_terminalActivity"
|
||||
app:destination="@id/terminalActivity" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_cookiesActivity"
|
||||
app:destination="@id/cookiesActivity" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_downloadQueueActivity"
|
||||
app:destination="@id/downloadQueueActivity" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_downloadLogListActivity"
|
||||
app:destination="@id/downloadLogListActivity" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_commandTemplatesActivity"
|
||||
app:destination="@id/commandTemplatesActivity" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_settingsActivity2"
|
||||
app:destination="@id/activitySettings" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_cookiesFragment"
|
||||
app:destination="@id/cookiesFragment" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_commandTemplatesFragment"
|
||||
app:destination="@id/commandTemplatesFragment" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_downloadQueueMainFragment"
|
||||
app:destination="@id/downloadQueueMainFragment" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_downloadLogListFragment2"
|
||||
app:destination="@id/downloadLogListFragment" />
|
||||
</fragment>
|
||||
<activity
|
||||
android:id="@+id/downloadQueueActivity"
|
||||
android:name="com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity"
|
||||
android:label="DownloadQueueActivity"
|
||||
tools:layout="@layout/activity_download_queue" />
|
||||
<activity
|
||||
android:id="@+id/downloadLogListActivity"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListActivity"
|
||||
android:label="DownloadLogListActivity" />
|
||||
<activity
|
||||
android:id="@+id/commandTemplatesActivity"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.CommandTemplatesActivity"
|
||||
android:label="CommandTemplatesActivity" />
|
||||
<activity
|
||||
android:id="@+id/cookiesActivity"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.CookiesActivity"
|
||||
android:label="CookiesActivity" />
|
||||
<activity
|
||||
android:id="@+id/terminalActivity"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.TerminalActivity"
|
||||
|
|
@ -70,4 +53,31 @@
|
|||
android:name="com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity"
|
||||
android:label="activity_settings"
|
||||
tools:layout="@layout/activity_settings" />
|
||||
<fragment
|
||||
android:id="@+id/cookiesFragment"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.CookiesFragment"
|
||||
tools:layout="@layout/fragment_cookies"
|
||||
android:label="CookiesFragment" />
|
||||
<fragment
|
||||
android:id="@+id/commandTemplatesFragment"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.CommandTemplatesFragment"
|
||||
tools:layout="@layout/fragment_command_templates"
|
||||
android:label="CommandTemplatesFragment" />
|
||||
<fragment
|
||||
android:id="@+id/downloadQueueMainFragment"
|
||||
android:name="com.deniscerri.ytdlnis.ui.downloads.DownloadQueueMainFragment"
|
||||
tools:layout="@layout/fragment_download_queue_main_screen"
|
||||
android:label="DownloadQueueMainFragment" />
|
||||
<fragment
|
||||
android:id="@+id/downloadLogListFragment"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListFragment"
|
||||
android:label="DownloadLogListFragment" >
|
||||
<action
|
||||
android:id="@+id/action_downloadLogListFragment2_to_downloadLogFragment2"
|
||||
app:destination="@id/downloadLogFragment" />
|
||||
</fragment>
|
||||
<fragment
|
||||
android:id="@+id/downloadLogFragment"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogFragment"
|
||||
android:label="DownloadLogFragment" />
|
||||
</navigation>
|
||||
Loading…
Reference in a new issue