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" />
|
<data android:mimeType="text/plain" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</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
|
<activity
|
||||||
android:name=".ui.more.settings.SettingsActivity"
|
android:name=".ui.more.settings.SettingsActivity"
|
||||||
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
|
||||||
|
|
@ -131,31 +98,6 @@
|
||||||
<data android:mimeType="text/plain" />
|
<data android:mimeType="text/plain" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</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
|
<activity
|
||||||
android:name=".ui.more.WebViewActivity"
|
android:name=".ui.more.WebViewActivity"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.deniscerri.ytdlnis
|
package com.deniscerri.ytdlnis
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
|
import android.app.ActionBar.LayoutParams
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
|
@ -13,14 +14,18 @@ import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.drawerlayout.widget.DrawerLayout
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowInsets
|
import android.view.WindowInsets
|
||||||
import android.widget.CheckBox
|
import android.widget.CheckBox
|
||||||
|
import android.widget.FrameLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.forEach
|
import androidx.core.view.forEach
|
||||||
|
import androidx.core.view.updateLayoutParams
|
||||||
|
import androidx.fragment.app.FragmentContainerView
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
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.database.viewmodel.ResultViewModel
|
||||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
import com.deniscerri.ytdlnis.ui.BaseActivity
|
||||||
import com.deniscerri.ytdlnis.ui.HomeFragment
|
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.ui.more.settings.SettingsActivity
|
||||||
import com.deniscerri.ytdlnis.util.ThemeUtil
|
import com.deniscerri.ytdlnis.util.ThemeUtil
|
||||||
import com.deniscerri.ytdlnis.util.UpdateUtil
|
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.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.elevation.SurfaceColors
|
import com.google.android.material.elevation.SurfaceColors
|
||||||
import com.google.android.material.navigation.NavigationBarView
|
import com.google.android.material.navigation.NavigationBarView
|
||||||
|
|
@ -119,8 +125,7 @@ class MainActivity : BaseActivity() {
|
||||||
(navHostFragment.childFragmentManager.primaryNavigationFragment!! as HomeFragment).scrollToTop()
|
(navHostFragment.childFragmentManager.primaryNavigationFragment!! as HomeFragment).scrollToTop()
|
||||||
}
|
}
|
||||||
R.id.historyFragment -> {
|
R.id.historyFragment -> {
|
||||||
val intent = Intent(context, DownloadQueueActivity::class.java)
|
navController.navigate(R.id.downloadQueueMainFragment)
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
R.id.moreFragment -> {
|
R.id.moreFragment -> {
|
||||||
val intent = Intent(context, SettingsActivity::class.java)
|
val intent = Intent(context, SettingsActivity::class.java)
|
||||||
|
|
@ -175,20 +180,50 @@ class MainActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cookieViewModel.updateCookiesFile()
|
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
|
val intent = intent
|
||||||
handleIntents(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(){
|
fun disableBottomNavigation(){
|
||||||
if (navigationView is NavigationBarView){
|
if (navigationView is NavigationBarView){
|
||||||
(navigationView as NavigationBarView).menu.forEach { it.isEnabled = false }
|
(navigationView as NavigationBarView).menu.forEach { it.isEnabled = false }
|
||||||
|
|
@ -207,6 +242,7 @@ class MainActivity : BaseActivity() {
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
//incognito header
|
||||||
val incognitoHeader = findViewById<TextView>(R.id.incognito_header)
|
val incognitoHeader = findViewById<TextView>(R.id.incognito_header)
|
||||||
if (preferences.getBoolean("incognito", false)){
|
if (preferences.getBoolean("incognito", false)){
|
||||||
incognitoHeader.visibility = View.VISIBLE
|
incognitoHeader.visibility = View.VISIBLE
|
||||||
|
|
@ -215,6 +251,10 @@ class MainActivity : BaseActivity() {
|
||||||
window.statusBarColor = getColor(android.R.color.transparent)
|
window.statusBarColor = getColor(android.R.color.transparent)
|
||||||
incognitoHeader.visibility = View.GONE
|
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) {
|
override fun onNewIntent(intent: Intent) {
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, OnClickListene
|
||||||
fragmentView = inflater.inflate(R.layout.fragment_home, container, false)
|
fragmentView = inflater.inflate(R.layout.fragment_home, container, false)
|
||||||
activity = getActivity()
|
activity = getActivity()
|
||||||
mainActivity = activity as MainActivity?
|
mainActivity = activity as MainActivity?
|
||||||
|
mainActivity?.showBottomNavigation()
|
||||||
quickLaunchSheet = false
|
quickLaunchSheet = false
|
||||||
return fragmentView
|
return fragmentView
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,7 @@ package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.Configuration
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.DisplayMetrics
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.View.OnClickListener
|
import android.view.View.OnClickListener
|
||||||
|
|
@ -12,6 +10,7 @@ import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import androidx.work.WorkManager
|
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.repository.DownloadRepository
|
||||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||||
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
|
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.FileUtil
|
||||||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||||
|
|
@ -107,9 +106,12 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
|
||||||
override fun onOutputClick(item: DownloadItem) {
|
override fun onOutputClick(item: DownloadItem) {
|
||||||
val logFile = fileUtil.getLogFile(requireContext(), item)
|
val logFile = fileUtil.getLogFile(requireContext(), item)
|
||||||
if (logFile.exists()) {
|
if (logFile.exists()) {
|
||||||
val intent = Intent(requireContext(), DownloadLogActivity::class.java)
|
val bundle = Bundle()
|
||||||
intent.putExtra("logpath", logFile.absolutePath)
|
bundle.putString("logpath", logFile.absolutePath)
|
||||||
startActivity(intent)
|
findNavController().navigate(
|
||||||
|
R.id.downloadLogFragment,
|
||||||
|
bundle
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,22 @@
|
||||||
package com.deniscerri.ytdlnis.ui.downloads
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import androidx.viewpager2.widget.ViewPager2
|
import androidx.viewpager2.widget.ViewPager2
|
||||||
import androidx.work.WorkManager
|
import androidx.work.WorkManager
|
||||||
|
import com.deniscerri.ytdlnis.MainActivity
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
|
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
|
||||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
|
||||||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
@ -25,25 +27,31 @@ import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
|
|
||||||
class DownloadQueueActivity : BaseActivity(){
|
class DownloadQueueMainFragment : Fragment(){
|
||||||
private lateinit var downloadViewModel: DownloadViewModel
|
private lateinit var downloadViewModel: DownloadViewModel
|
||||||
private lateinit var topAppBar: MaterialToolbar
|
private lateinit var topAppBar: MaterialToolbar
|
||||||
private lateinit var workManager: WorkManager
|
private lateinit var workManager: WorkManager
|
||||||
private lateinit var tabLayout: TabLayout
|
private lateinit var tabLayout: TabLayout
|
||||||
private lateinit var viewPager2: ViewPager2
|
private lateinit var viewPager2: ViewPager2
|
||||||
private lateinit var fragmentAdapter : DownloadListFragmentAdapter
|
private lateinit var fragmentAdapter : DownloadListFragmentAdapter
|
||||||
var context: Context? = null
|
private lateinit var mainActivity: MainActivity
|
||||||
|
|
||||||
public override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreateView(
|
||||||
super.onCreate(savedInstanceState)
|
inflater: LayoutInflater,
|
||||||
setContentView(R.layout.activity_download_queue)
|
container: ViewGroup?,
|
||||||
context = baseContext
|
savedInstanceState: Bundle?
|
||||||
val view : View = window.decorView.findViewById(android.R.id.content)
|
): View? {
|
||||||
workManager = WorkManager.getInstance(this)
|
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]
|
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
|
||||||
|
|
||||||
topAppBar = findViewById(R.id.logs_toolbar)
|
topAppBar = view.findViewById(R.id.logs_toolbar)
|
||||||
topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
|
topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
|
||||||
|
|
||||||
tabLayout = view.findViewById(R.id.download_tablayout)
|
tabLayout = view.findViewById(R.id.download_tablayout)
|
||||||
viewPager2 = view.findViewById(R.id.download_viewpager)
|
viewPager2 = view.findViewById(R.id.download_viewpager)
|
||||||
|
|
@ -56,7 +64,7 @@ class DownloadQueueActivity : BaseActivity(){
|
||||||
val fragments = mutableListOf(ActiveDownloadsFragment(), QueuedDownloadsFragment(), CancelledDownloadsFragment(), ErroredDownloadsFragment())
|
val fragments = mutableListOf(ActiveDownloadsFragment(), QueuedDownloadsFragment(), CancelledDownloadsFragment(), ErroredDownloadsFragment())
|
||||||
|
|
||||||
fragmentAdapter = DownloadListFragmentAdapter(
|
fragmentAdapter = DownloadListFragmentAdapter(
|
||||||
supportFragmentManager,
|
childFragmentManager,
|
||||||
lifecycle,
|
lifecycle,
|
||||||
fragments
|
fragments
|
||||||
)
|
)
|
||||||
|
|
@ -81,7 +89,7 @@ class DownloadQueueActivity : BaseActivity(){
|
||||||
tabLayout.selectTab(tabLayout.getTabAt(position))
|
tabLayout.selectTab(tabLayout.getTabAt(position))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
mainActivity.hideBottomNavigation()
|
||||||
initMenu()
|
initMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -115,7 +123,7 @@ class DownloadQueueActivity : BaseActivity(){
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showDeleteDialog (deleteClicked: (deleteClicked: Boolean) -> Unit){
|
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.setTitle(getString(R.string.you_are_going_to_delete_multiple_items))
|
||||||
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
||||||
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
||||||
|
|
@ -127,7 +135,7 @@ class DownloadQueueActivity : BaseActivity(){
|
||||||
private fun cancelAllDownloads() {
|
private fun cancelAllDownloads() {
|
||||||
workManager.cancelAllWorkByTag("download")
|
workManager.cancelAllWorkByTag("download")
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
val notificationUtil = NotificationUtil(this@DownloadQueueActivity)
|
val notificationUtil = NotificationUtil(requireContext())
|
||||||
val activeAndQueued = withContext(Dispatchers.IO){
|
val activeAndQueued = withContext(Dispatchers.IO){
|
||||||
downloadViewModel.getActiveAndQueuedDownloads()
|
downloadViewModel.getActiveAndQueuedDownloads()
|
||||||
}
|
}
|
||||||
|
|
@ -3,7 +3,6 @@ package com.deniscerri.ytdlnis.ui.downloads
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.Configuration
|
|
||||||
import android.graphics.Canvas
|
import android.graphics.Canvas
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.os.Bundle
|
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.database.viewmodel.DownloadViewModel
|
||||||
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
|
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
|
||||||
import com.deniscerri.ytdlnis.ui.downloadcard.DownloadBottomSheetDialog
|
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.FileUtil
|
||||||
import com.deniscerri.ytdlnis.util.UiUtil
|
import com.deniscerri.ytdlnis.util.UiUtil
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
|
|
@ -97,7 +96,7 @@ class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickL
|
||||||
override fun onActionButtonClick(itemID: Long) {
|
override fun onActionButtonClick(itemID: Long) {
|
||||||
val item = items.find { it.id == itemID } ?: return
|
val item = items.find { it.id == itemID } ?: return
|
||||||
val file = fileUtil.getLogFile(requireContext(), item)
|
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)
|
intent.putExtra("logpath", file.absolutePath)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.Configuration
|
|
||||||
import android.graphics.Canvas
|
import android.graphics.Canvas
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
|
@ -100,7 +99,7 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
|
||||||
fragmentView = inflater.inflate(R.layout.fragment_history, container, false)
|
fragmentView = inflater.inflate(R.layout.fragment_history, container, false)
|
||||||
activity = getActivity()
|
activity = getActivity()
|
||||||
mainActivity = activity as MainActivity?
|
mainActivity = activity as MainActivity?
|
||||||
|
mainActivity?.showBottomNavigation()
|
||||||
return fragmentView
|
return fragmentView
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -156,7 +155,6 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
|
downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java]
|
||||||
|
|
||||||
initMenu()
|
initMenu()
|
||||||
initChips()
|
initChips()
|
||||||
}
|
}
|
||||||
|
|
@ -217,7 +215,7 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.download_queue -> {
|
R.id.download_queue -> {
|
||||||
val intent = Intent(context, DownloadQueueActivity::class.java)
|
val intent = Intent(context, DownloadQueueMainFragment::class.java)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
R.id.remove_deleted_history -> {
|
R.id.remove_deleted_history -> {
|
||||||
|
|
|
||||||
|
|
@ -5,19 +5,22 @@ import android.content.DialogInterface
|
||||||
import android.graphics.Canvas
|
import android.graphics.Canvas
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
import android.widget.RelativeLayout
|
import android.widget.RelativeLayout
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.ItemTouchHelper
|
import androidx.recyclerview.widget.ItemTouchHelper
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.deniscerri.ytdlnis.MainActivity
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
import com.deniscerri.ytdlnis.adapter.TemplatesAdapter
|
import com.deniscerri.ytdlnis.adapter.TemplatesAdapter
|
||||||
import com.deniscerri.ytdlnis.database.models.CommandTemplate
|
import com.deniscerri.ytdlnis.database.models.CommandTemplate
|
||||||
import com.deniscerri.ytdlnis.database.viewmodel.CommandTemplateViewModel
|
import com.deniscerri.ytdlnis.database.viewmodel.CommandTemplateViewModel
|
||||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
|
||||||
import com.deniscerri.ytdlnis.util.FileUtil
|
import com.deniscerri.ytdlnis.util.FileUtil
|
||||||
import com.deniscerri.ytdlnis.util.UiUtil
|
import com.deniscerri.ytdlnis.util.UiUtil
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
|
|
@ -30,7 +33,7 @@ import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
|
|
||||||
class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickListener {
|
class CommandTemplatesFragment : Fragment(), TemplatesAdapter.OnItemClickListener {
|
||||||
private lateinit var recyclerView: RecyclerView
|
private lateinit var recyclerView: RecyclerView
|
||||||
private lateinit var templatesAdapter: TemplatesAdapter
|
private lateinit var templatesAdapter: TemplatesAdapter
|
||||||
private lateinit var topAppBar: MaterialToolbar
|
private lateinit var topAppBar: MaterialToolbar
|
||||||
|
|
@ -38,24 +41,32 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
|
||||||
private lateinit var uiUtil: UiUtil
|
private lateinit var uiUtil: UiUtil
|
||||||
private lateinit var templatesList: List<CommandTemplate>
|
private lateinit var templatesList: List<CommandTemplate>
|
||||||
private lateinit var noResults: RelativeLayout
|
private lateinit var noResults: RelativeLayout
|
||||||
var context: Context? = null
|
private lateinit var mainActivity: MainActivity
|
||||||
|
|
||||||
public override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreateView(
|
||||||
super.onCreate(savedInstanceState)
|
inflater: LayoutInflater,
|
||||||
setContentView(R.layout.activity_command_templates)
|
container: ViewGroup?,
|
||||||
context = baseContext
|
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()
|
templatesList = listOf()
|
||||||
|
|
||||||
topAppBar = findViewById(R.id.logs_toolbar)
|
topAppBar = view.findViewById(R.id.logs_toolbar)
|
||||||
topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
|
topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
|
||||||
noResults = findViewById(R.id.no_results)
|
noResults = view.findViewById(R.id.no_results)
|
||||||
|
|
||||||
templatesAdapter =
|
templatesAdapter =
|
||||||
TemplatesAdapter(
|
TemplatesAdapter(
|
||||||
this,
|
this,
|
||||||
this@CommandTemplatesActivity
|
mainActivity
|
||||||
)
|
)
|
||||||
recyclerView = findViewById(R.id.template_recyclerview)
|
recyclerView = view.findViewById(R.id.template_recyclerview)
|
||||||
recyclerView.layoutManager = LinearLayoutManager(context)
|
recyclerView.layoutManager = LinearLayoutManager(context)
|
||||||
recyclerView.adapter = templatesAdapter
|
recyclerView.adapter = templatesAdapter
|
||||||
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
||||||
|
|
@ -64,7 +75,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
|
||||||
uiUtil = UiUtil(FileUtil())
|
uiUtil = UiUtil(FileUtil())
|
||||||
|
|
||||||
commandTemplateViewModel = ViewModelProvider(this)[CommandTemplateViewModel::class.java]
|
commandTemplateViewModel = ViewModelProvider(this)[CommandTemplateViewModel::class.java]
|
||||||
commandTemplateViewModel.items.observe(this) {
|
commandTemplateViewModel.items.observe(viewLifecycleOwner) {
|
||||||
if (it.isEmpty()) noResults.visibility = View.VISIBLE
|
if (it.isEmpty()) noResults.visibility = View.VISIBLE
|
||||||
else noResults.visibility = View.GONE
|
else noResults.visibility = View.GONE
|
||||||
templatesList = it
|
templatesList = it
|
||||||
|
|
@ -88,7 +99,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
|
||||||
lifecycleScope.launch{
|
lifecycleScope.launch{
|
||||||
withContext(Dispatchers.IO){
|
withContext(Dispatchers.IO){
|
||||||
val count = commandTemplateViewModel.importFromClipboard()
|
val count = commandTemplateViewModel.importFromClipboard()
|
||||||
runOnUiThread{
|
mainActivity.runOnUiThread{
|
||||||
Snackbar.make(recyclerView, "${getString(R.string.items_imported)} (${count})", Snackbar.LENGTH_LONG).show()
|
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() {
|
private fun initChips() {
|
||||||
val new = findViewById<Chip>(R.id.newTemplate)
|
val new = view?.findViewById<Chip>(R.id.newTemplate)
|
||||||
new.setOnClickListener {
|
new?.setOnClickListener {
|
||||||
uiUtil.showCommandTemplateCreationOrUpdatingSheet(null,this@CommandTemplatesActivity, this, commandTemplateViewModel) {}
|
uiUtil.showCommandTemplateCreationOrUpdatingSheet(null,mainActivity, this, commandTemplateViewModel) {}
|
||||||
}
|
}
|
||||||
val shortcuts = findViewById<Chip>(R.id.shortcuts)
|
val shortcuts = view?.findViewById<Chip>(R.id.shortcuts)
|
||||||
shortcuts.setOnClickListener {
|
shortcuts?.setOnClickListener {
|
||||||
uiUtil.showShortcutsSheet(this@CommandTemplatesActivity,this, commandTemplateViewModel)
|
uiUtil.showShortcutsSheet(mainActivity,this, commandTemplateViewModel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -115,7 +126,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onItemClick(commandTemplate: CommandTemplate, index: Int) {
|
override fun onItemClick(commandTemplate: CommandTemplate, index: Int) {
|
||||||
uiUtil.showCommandTemplateCreationOrUpdatingSheet(commandTemplate,this@CommandTemplatesActivity, this, commandTemplateViewModel) {
|
uiUtil.showCommandTemplateCreationOrUpdatingSheet(commandTemplate,mainActivity, this, commandTemplateViewModel) {
|
||||||
templatesAdapter.notifyItemChanged(index)
|
templatesAdapter.notifyItemChanged(index)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,7 +137,7 @@ class CommandTemplatesActivity : BaseActivity(), TemplatesAdapter.OnItemClickLis
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDelete(commandTemplate: CommandTemplate) {
|
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.setTitle(getString(R.string.you_are_going_to_delete) + " \"" + commandTemplate.title + "\"!")
|
||||||
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
||||||
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
||||||
|
|
@ -1,28 +1,32 @@
|
||||||
package com.deniscerri.ytdlnis.ui.more
|
package com.deniscerri.ytdlnis.ui.more
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Context.INPUT_METHOD_SERVICE
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.Canvas
|
import android.graphics.Canvas
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import android.widget.RelativeLayout
|
import android.widget.RelativeLayout
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.widget.doOnTextChanged
|
import androidx.core.widget.doOnTextChanged
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.ItemTouchHelper
|
import androidx.recyclerview.widget.ItemTouchHelper
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.deniscerri.ytdlnis.MainActivity
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
import com.deniscerri.ytdlnis.adapter.CookieAdapter
|
import com.deniscerri.ytdlnis.adapter.CookieAdapter
|
||||||
import com.deniscerri.ytdlnis.database.models.CookieItem
|
import com.deniscerri.ytdlnis.database.models.CookieItem
|
||||||
import com.deniscerri.ytdlnis.database.viewmodel.CookieViewModel
|
import com.deniscerri.ytdlnis.database.viewmodel.CookieViewModel
|
||||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
|
||||||
import com.deniscerri.ytdlnis.util.FileUtil
|
import com.deniscerri.ytdlnis.util.FileUtil
|
||||||
import com.deniscerri.ytdlnis.util.UiUtil
|
import com.deniscerri.ytdlnis.util.UiUtil
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
|
|
@ -36,7 +40,7 @@ import kotlinx.coroutines.launch
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
class CookiesFragment : Fragment(), CookieAdapter.OnItemClickListener {
|
||||||
private lateinit var recyclerView: RecyclerView
|
private lateinit var recyclerView: RecyclerView
|
||||||
private lateinit var listAdapter: CookieAdapter
|
private lateinit var listAdapter: CookieAdapter
|
||||||
private lateinit var topAppBar: MaterialToolbar
|
private lateinit var topAppBar: MaterialToolbar
|
||||||
|
|
@ -44,24 +48,30 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
||||||
private lateinit var uiUtil: UiUtil
|
private lateinit var uiUtil: UiUtil
|
||||||
private lateinit var cookiesList: List<CookieItem>
|
private lateinit var cookiesList: List<CookieItem>
|
||||||
private lateinit var noResults : RelativeLayout
|
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?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
setContentView(R.layout.activity_cookies)
|
topAppBar = view.findViewById(R.id.logs_toolbar)
|
||||||
context = baseContext
|
topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
|
||||||
|
|
||||||
topAppBar = findViewById(R.id.logs_toolbar)
|
|
||||||
topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
|
|
||||||
cookiesList = listOf()
|
cookiesList = listOf()
|
||||||
noResults = findViewById(R.id.no_results)
|
noResults = view.findViewById(R.id.no_results)
|
||||||
|
|
||||||
listAdapter =
|
listAdapter =
|
||||||
CookieAdapter(
|
CookieAdapter(
|
||||||
this,
|
this,
|
||||||
this@CookiesActivity
|
mainActivity
|
||||||
)
|
)
|
||||||
recyclerView = findViewById(R.id.template_recyclerview)
|
recyclerView = view.findViewById(R.id.template_recyclerview)
|
||||||
recyclerView.layoutManager = LinearLayoutManager(context)
|
recyclerView.layoutManager = LinearLayoutManager(context)
|
||||||
recyclerView.adapter = listAdapter
|
recyclerView.adapter = listAdapter
|
||||||
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
||||||
|
|
@ -70,7 +80,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
||||||
uiUtil = UiUtil(FileUtil())
|
uiUtil = UiUtil(FileUtil())
|
||||||
|
|
||||||
cookiesViewModel = ViewModelProvider(this)[CookieViewModel::class.java]
|
cookiesViewModel = ViewModelProvider(this)[CookieViewModel::class.java]
|
||||||
cookiesViewModel.items.observe(this) {
|
cookiesViewModel.items.observe(viewLifecycleOwner) {
|
||||||
if (it.isEmpty()) noResults.visibility = View.VISIBLE
|
if (it.isEmpty()) noResults.visibility = View.VISIBLE
|
||||||
else noResults.visibility = View.GONE
|
else noResults.visibility = View.GONE
|
||||||
cookiesList = it
|
cookiesList = it
|
||||||
|
|
@ -84,14 +94,14 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
||||||
topAppBar.setOnMenuItemClickListener { m: MenuItem ->
|
topAppBar.setOnMenuItemClickListener { m: MenuItem ->
|
||||||
when (m.itemId) {
|
when (m.itemId) {
|
||||||
R.id.delete_cookies -> {
|
R.id.delete_cookies -> {
|
||||||
val deleteDialog = MaterialAlertDialogBuilder(this)
|
val deleteDialog = MaterialAlertDialogBuilder(requireContext())
|
||||||
deleteDialog.setTitle(getString(R.string.confirm_delete_history))
|
deleteDialog.setTitle(getString(R.string.confirm_delete_history))
|
||||||
deleteDialog.setMessage(getString(R.string.confirm_delete_cookies_desc))
|
deleteDialog.setMessage(getString(R.string.confirm_delete_cookies_desc))
|
||||||
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
||||||
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
||||||
cookiesViewModel.deleteAll()
|
cookiesViewModel.deleteAll()
|
||||||
kotlin.runCatching {
|
kotlin.runCatching {
|
||||||
File(cacheDir, "cookies.txt").apply { writeText("") }
|
File(context?.cacheDir, "cookies.txt").apply { writeText("") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deleteDialog.show()
|
deleteDialog.show()
|
||||||
|
|
@ -111,14 +121,14 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initChips() {
|
private fun initChips() {
|
||||||
val new = findViewById<Chip>(R.id.newCookie)
|
val new = view?.findViewById<Chip>(R.id.newCookie)
|
||||||
new.setOnClickListener {
|
new?.setOnClickListener {
|
||||||
showDialog("")
|
showDialog("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showDialog(url: String){
|
private fun showDialog(url: String){
|
||||||
val builder = MaterialAlertDialogBuilder(this)
|
val builder = MaterialAlertDialogBuilder(requireContext())
|
||||||
builder.setTitle(getString(R.string.cookies))
|
builder.setTitle(getString(R.string.cookies))
|
||||||
val inputLayout = layoutInflater.inflate(R.layout.textinput, null)
|
val inputLayout = layoutInflater.inflate(R.layout.textinput, null)
|
||||||
val editText = inputLayout.findViewById<EditText>(R.id.url_edittext)
|
val editText = inputLayout.findViewById<EditText>(R.id.url_edittext)
|
||||||
|
|
@ -130,7 +140,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
||||||
builder.setPositiveButton(
|
builder.setPositiveButton(
|
||||||
getString(R.string.get_cookies)
|
getString(R.string.get_cookies)
|
||||||
) { dialog: DialogInterface?, which: Int ->
|
) { dialog: DialogInterface?, which: Int ->
|
||||||
val myIntent = Intent(this, WebViewActivity::class.java)
|
val myIntent = Intent(requireContext(), WebViewActivity::class.java)
|
||||||
myIntent.putExtra("url", editText.text.toString())
|
myIntent.putExtra("url", editText.text.toString())
|
||||||
startActivity(myIntent)
|
startActivity(myIntent)
|
||||||
}
|
}
|
||||||
|
|
@ -144,7 +154,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
||||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = editText.text.isNotEmpty()
|
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = editText.text.isNotEmpty()
|
||||||
}
|
}
|
||||||
dialog.show()
|
dialog.show()
|
||||||
val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
|
val imm = mainActivity.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
|
||||||
editText!!.postDelayed({
|
editText!!.postDelayed({
|
||||||
editText.requestFocus()
|
editText.requestFocus()
|
||||||
imm.showSoftInput(editText, 0)
|
imm.showSoftInput(editText, 0)
|
||||||
|
|
@ -165,7 +175,7 @@ class CookiesActivity : BaseActivity(), CookieAdapter.OnItemClickListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDelete(cookie: CookieItem) {
|
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.setTitle(getString(R.string.you_are_going_to_delete) + " \"" + cookie.url + "\"!")
|
||||||
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
||||||
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
||||||
|
|
@ -10,11 +10,11 @@ import android.view.ViewGroup
|
||||||
import android.widget.CheckBox
|
import android.widget.CheckBox
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.deniscerri.ytdlnis.MainActivity
|
import com.deniscerri.ytdlnis.MainActivity
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
|
import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListFragment
|
||||||
import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListActivity
|
|
||||||
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
|
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import kotlin.system.exitProcess
|
import kotlin.system.exitProcess
|
||||||
|
|
@ -36,6 +36,7 @@ class MoreFragment : Fragment() {
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View? {
|
||||||
mainActivity = activity as MainActivity
|
mainActivity = activity as MainActivity
|
||||||
|
mainActivity.showBottomNavigation()
|
||||||
return inflater.inflate(R.layout.fragment_more, container, false)
|
return inflater.inflate(R.layout.fragment_more, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,23 +68,19 @@ class MoreFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
logs.setOnClickListener {
|
logs.setOnClickListener {
|
||||||
val intent = Intent(context, DownloadLogListActivity::class.java)
|
findNavController().navigate(R.id.downloadLogListFragment)
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
commandTemplates.setOnClickListener {
|
commandTemplates.setOnClickListener {
|
||||||
val intent = Intent(context, CommandTemplatesActivity::class.java)
|
findNavController().navigate(R.id.commandTemplatesFragment)
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadQueue.setOnClickListener {
|
downloadQueue.setOnClickListener {
|
||||||
val intent = Intent(context, DownloadQueueActivity::class.java)
|
findNavController().navigate(R.id.downloadQueueMainFragment)
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cookies.setOnClickListener {
|
cookies.setOnClickListener {
|
||||||
val intent = Intent(context, CookiesActivity::class.java)
|
findNavController().navigate(R.id.cookiesFragment)
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
terminateApp.setOnClickListener {
|
terminateApp.setOnClickListener {
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,17 @@ package com.deniscerri.ytdlnis.ui.more.downloadLogs
|
||||||
|
|
||||||
import android.content.ClipboardManager
|
import android.content.ClipboardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Context.CLIPBOARD_SERVICE
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.FileObserver
|
import android.os.FileObserver
|
||||||
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
import android.widget.ScrollView
|
import android.widget.ScrollView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import com.deniscerri.ytdlnis.MainActivity
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
import com.deniscerri.ytdlnis.ui.BaseActivity
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
|
|
@ -15,38 +20,49 @@ import com.google.android.material.floatingactionbutton.ExtendedFloatingActionBu
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
class DownloadLogActivity : BaseActivity() {
|
class DownloadLogFragment : Fragment() {
|
||||||
private lateinit var content: TextView
|
private lateinit var content: TextView
|
||||||
private lateinit var contentScrollView : ScrollView
|
private lateinit var contentScrollView : ScrollView
|
||||||
private lateinit var topAppBar: MaterialToolbar
|
private lateinit var topAppBar: MaterialToolbar
|
||||||
private lateinit var observer: FileObserver
|
private lateinit var observer: FileObserver
|
||||||
private lateinit var copyLog : ExtendedFloatingActionButton
|
private lateinit var copyLog : ExtendedFloatingActionButton
|
||||||
var context: Context? = null
|
private lateinit var mainActivity: MainActivity
|
||||||
|
|
||||||
public override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreateView(
|
||||||
super.onCreate(savedInstanceState)
|
inflater: LayoutInflater,
|
||||||
setContentView(R.layout.activity_download_log)
|
container: ViewGroup?,
|
||||||
context = baseContext
|
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 {
|
topAppBar.setNavigationOnClickListener {
|
||||||
onBackPressedDispatcher.onBackPressed()
|
mainActivity.onBackPressedDispatcher.onBackPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
content = findViewById(R.id.content)
|
content = view.findViewById(R.id.content)
|
||||||
content.setTextIsSelectable(true)
|
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 {
|
copyLog.setOnClickListener {
|
||||||
val clipboard: ClipboardManager =
|
val clipboard: ClipboardManager =
|
||||||
getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
|
mainActivity.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
|
||||||
clipboard.setText(content.text)
|
clipboard.setText(content.text)
|
||||||
}
|
}
|
||||||
|
|
||||||
val path = intent.getStringExtra("logpath")
|
val path = arguments?.getString("logpath")
|
||||||
if (path == null) {
|
if (path == null) {
|
||||||
onBackPressedDispatcher.onBackPressed()
|
mainActivity.onBackPressedDispatcher.onBackPressed()
|
||||||
|
}else{
|
||||||
|
arguments?.remove("logpath")
|
||||||
}
|
}
|
||||||
|
|
||||||
val file = File(path!!)
|
val file = File(path!!)
|
||||||
|
|
@ -56,7 +72,7 @@ class DownloadLogActivity : BaseActivity() {
|
||||||
if(Build.VERSION.SDK_INT < 29){
|
if(Build.VERSION.SDK_INT < 29){
|
||||||
observer = object : FileObserver(file.absolutePath, MODIFY) {
|
observer = object : FileObserver(file.absolutePath, MODIFY) {
|
||||||
override fun onEvent(event: Int, p: String?) {
|
override fun onEvent(event: Int, p: String?) {
|
||||||
runOnUiThread{
|
mainActivity.runOnUiThread{
|
||||||
val newText = File(path).readText()
|
val newText = File(path).readText()
|
||||||
content.text = newText
|
content.text = newText
|
||||||
content.scrollTo(0, content.height)
|
content.scrollTo(0, content.height)
|
||||||
|
|
@ -68,7 +84,7 @@ class DownloadLogActivity : BaseActivity() {
|
||||||
}else{
|
}else{
|
||||||
observer = object : FileObserver(file, MODIFY) {
|
observer = object : FileObserver(file, MODIFY) {
|
||||||
override fun onEvent(event: Int, p: String?) {
|
override fun onEvent(event: Int, p: String?) {
|
||||||
runOnUiThread{
|
mainActivity.runOnUiThread{
|
||||||
val newText = File(path).readText()
|
val newText = File(path).readText()
|
||||||
content.text = newText
|
content.text = newText
|
||||||
content.scrollTo(0, content.height)
|
content.scrollTo(0, content.height)
|
||||||
|
|
@ -1,54 +1,62 @@
|
||||||
package com.deniscerri.ytdlnis.ui.more.downloadLogs
|
package com.deniscerri.ytdlnis.ui.more.downloadLogs
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.Intent
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.FileObserver
|
import android.os.FileObserver
|
||||||
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
import android.widget.RelativeLayout
|
import android.widget.RelativeLayout
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.deniscerri.ytdlnis.MainActivity
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
import com.deniscerri.ytdlnis.adapter.DownloadLogsAdapter
|
import com.deniscerri.ytdlnis.adapter.DownloadLogsAdapter
|
||||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
|
||||||
import com.google.android.material.appbar.MaterialToolbar
|
import com.google.android.material.appbar.MaterialToolbar
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
class DownloadLogListActivity : BaseActivity(), DownloadLogsAdapter.OnItemClickListener {
|
class DownloadLogListFragment : Fragment(), DownloadLogsAdapter.OnItemClickListener {
|
||||||
private lateinit var recyclerView: RecyclerView
|
private lateinit var recyclerView: RecyclerView
|
||||||
private lateinit var downloadLogAdapter: DownloadLogsAdapter
|
private lateinit var downloadLogAdapter: DownloadLogsAdapter
|
||||||
private lateinit var noResults: RelativeLayout
|
private lateinit var noResults: RelativeLayout
|
||||||
private lateinit var fileList: MutableList<File>
|
private lateinit var fileList: MutableList<File>
|
||||||
private lateinit var topAppBar: MaterialToolbar
|
private lateinit var topAppBar: MaterialToolbar
|
||||||
private lateinit var logFolder : File
|
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?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
setContentView(R.layout.activity_download_log_list)
|
topAppBar = view.findViewById(R.id.logs_toolbar)
|
||||||
context = baseContext
|
topAppBar.setNavigationOnClickListener { mainActivity.onBackPressedDispatcher.onBackPressed() }
|
||||||
|
|
||||||
topAppBar = findViewById(R.id.logs_toolbar)
|
|
||||||
topAppBar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
|
|
||||||
|
|
||||||
downloadLogAdapter =
|
downloadLogAdapter =
|
||||||
DownloadLogsAdapter(
|
DownloadLogsAdapter(
|
||||||
this,
|
this,
|
||||||
this@DownloadLogListActivity
|
mainActivity
|
||||||
)
|
)
|
||||||
recyclerView = findViewById(R.id.logs_recyclerview)
|
recyclerView = view.findViewById(R.id.logs_recyclerview)
|
||||||
recyclerView.layoutManager = LinearLayoutManager(context)
|
recyclerView.layoutManager = LinearLayoutManager(context)
|
||||||
recyclerView.adapter = downloadLogAdapter
|
recyclerView.adapter = downloadLogAdapter
|
||||||
noResults = findViewById(R.id.no_results)
|
noResults = view.findViewById(R.id.no_results)
|
||||||
noResults.visibility = View.GONE
|
noResults.visibility = View.GONE
|
||||||
|
|
||||||
logFolder = File(filesDir.absolutePath + "/logs")
|
logFolder = File(requireContext().filesDir.absolutePath + "/logs")
|
||||||
updateList(logFolder)
|
updateList(logFolder)
|
||||||
|
|
||||||
if(Build.VERSION.SDK_INT < 29){
|
if(Build.VERSION.SDK_INT < 29){
|
||||||
|
|
@ -78,7 +86,7 @@ class DownloadLogListActivity : BaseActivity(), DownloadLogsAdapter.OnItemClickL
|
||||||
val itemId = m.itemId
|
val itemId = m.itemId
|
||||||
if (itemId == R.id.remove_logs) {
|
if (itemId == R.id.remove_logs) {
|
||||||
try{
|
try{
|
||||||
val deleteDialog = MaterialAlertDialogBuilder(this)
|
val deleteDialog = MaterialAlertDialogBuilder(requireContext())
|
||||||
deleteDialog.setTitle(getString(R.string.confirm_delete_history))
|
deleteDialog.setTitle(getString(R.string.confirm_delete_history))
|
||||||
deleteDialog.setMessage(getString(R.string.confirm_delete_logs_desc))
|
deleteDialog.setMessage(getString(R.string.confirm_delete_logs_desc))
|
||||||
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
||||||
|
|
@ -107,7 +115,7 @@ class DownloadLogListActivity : BaseActivity(), DownloadLogsAdapter.OnItemClickL
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
}
|
}
|
||||||
downloadLogAdapter.submitList(fileList.toList())
|
downloadLogAdapter.submitList(fileList.toList())
|
||||||
runOnUiThread{
|
mainActivity.runOnUiThread{
|
||||||
if (fileList.isNotEmpty()) {
|
if (fileList.isNotEmpty()) {
|
||||||
noResults.visibility = View.GONE
|
noResults.visibility = View.GONE
|
||||||
topAppBar.menu.findItem(R.id.remove_logs).isVisible = true
|
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) {
|
override fun onItemClick(file: File) {
|
||||||
val intent = Intent(this, DownloadLogActivity::class.java)
|
val bundle = Bundle()
|
||||||
intent.putExtra("logpath", file.absolutePath)
|
bundle.putString("logpath", file.absolutePath)
|
||||||
startActivity(intent)
|
findNavController().navigate(
|
||||||
|
R.id.downloadLogFragment,
|
||||||
|
bundle
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDeleteClick(file: File) {
|
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.setTitle(getString(R.string.you_are_going_to_delete) + " \"" + file.name + "\"!")
|
||||||
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
||||||
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
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.PauseDownloadNotificationReceiver
|
||||||
import com.deniscerri.ytdlnis.receiver.ResumeActivity
|
import com.deniscerri.ytdlnis.receiver.ResumeActivity
|
||||||
import com.deniscerri.ytdlnis.receiver.SharedDownloadNotificationReceiver
|
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
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -228,7 +228,7 @@ class NotificationUtil(var context: Context) {
|
||||||
) {
|
) {
|
||||||
val notificationBuilder = getBuilder(channel)
|
val notificationBuilder = getBuilder(channel)
|
||||||
|
|
||||||
val intent = Intent(context, DownloadLogActivity::class.java)
|
val intent = Intent(context, DownloadLogFragment::class.java)
|
||||||
intent.putExtra("logpath", logFile?.absolutePath)
|
intent.putExtra("logpath", logFile?.absolutePath)
|
||||||
|
|
||||||
val errorPendingIntent: PendingIntent = TaskStackBuilder.create(context).run {
|
val errorPendingIntent: PendingIntent = TaskStackBuilder.create(context).run {
|
||||||
|
|
|
||||||
|
|
@ -16,19 +16,19 @@
|
||||||
<item android:title="@string/logs"
|
<item android:title="@string/logs"
|
||||||
android:icon="@drawable/ic_baseline_file_open_24"
|
android:icon="@drawable/ic_baseline_file_open_24"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:id="@+id/downloadLogListActivity"/>
|
android:id="@+id/downloadLogListFragment"/>
|
||||||
<item android:title="@string/command_templates"
|
<item android:title="@string/command_templates"
|
||||||
android:icon="@drawable/ic_baseline_keyboard_arrow_right_24"
|
android:icon="@drawable/ic_baseline_keyboard_arrow_right_24"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:id="@+id/commandTemplatesActivity"/>
|
android:id="@+id/commandTemplatesFragment"/>
|
||||||
<item android:title="@string/download_queue"
|
<item android:title="@string/download_queue"
|
||||||
android:icon="@drawable/baseline_downloading_24"
|
android:icon="@drawable/baseline_downloading_24"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:id="@+id/downloadQueueActivity"/>
|
android:id="@+id/downloadQueueMainFragment"/>
|
||||||
<item android:title="@string/cookies"
|
<item android:title="@string/cookies"
|
||||||
android:icon="@drawable/baseline_cookie_24"
|
android:icon="@drawable/baseline_cookie_24"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:id="@+id/cookiesActivity"/>
|
android:id="@+id/cookiesFragment"/>
|
||||||
<item android:title="@string/kill_app"
|
<item android:title="@string/kill_app"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:icon="@drawable/ic_power"
|
android:icon="@drawable/ic_power"
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@
|
||||||
android:label="@string/downloads"
|
android:label="@string/downloads"
|
||||||
tools:layout="@layout/fragment_history" >
|
tools:layout="@layout/fragment_history" >
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_historyFragment_to_downloadQueueActivity"
|
android:id="@+id/action_historyFragment_to_downloadQueueMainFragment"
|
||||||
app:destination="@id/downloadQueueActivity" />
|
app:destination="@id/downloadQueueMainFragment" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/moreFragment"
|
android:id="@+id/moreFragment"
|
||||||
|
|
@ -27,39 +27,22 @@
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_moreFragment_to_terminalActivity"
|
android:id="@+id/action_moreFragment_to_terminalActivity"
|
||||||
app:destination="@id/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
|
<action
|
||||||
android:id="@+id/action_moreFragment_to_settingsActivity2"
|
android:id="@+id/action_moreFragment_to_settingsActivity2"
|
||||||
app:destination="@id/activitySettings" />
|
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>
|
</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
|
<activity
|
||||||
android:id="@+id/terminalActivity"
|
android:id="@+id/terminalActivity"
|
||||||
android:name="com.deniscerri.ytdlnis.ui.more.TerminalActivity"
|
android:name="com.deniscerri.ytdlnis.ui.more.TerminalActivity"
|
||||||
|
|
@ -70,4 +53,31 @@
|
||||||
android:name="com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity"
|
android:name="com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity"
|
||||||
android:label="activity_settings"
|
android:label="activity_settings"
|
||||||
tools:layout="@layout/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>
|
</navigation>
|
||||||
Loading…
Reference in a new issue