DO NOT MERGE: Migrate DownloadActivity to fragment
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -41,7 +41,6 @@ import androidx.core.graphics.ColorUtils
|
||||
import androidx.core.view.GravityCompat
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.NavDestination
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import androidx.navigation.ui.setupWithNavController
|
||||
import com.aurora.Constants
|
||||
@@ -55,7 +54,6 @@ import com.aurora.store.util.CertUtil.isFDroidApp
|
||||
import com.aurora.store.util.Log
|
||||
import com.aurora.store.util.Preferences
|
||||
import com.aurora.store.view.ui.commons.BaseActivity
|
||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||
import com.aurora.store.view.ui.sheets.SelfUpdateSheet
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
@@ -190,7 +188,7 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
B.viewToolbar.imgActionSecondary.setOnClickListener {
|
||||
open(DownloadActivity::class.java)
|
||||
navController.navigate(R.id.downloadFragment)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,7 +245,8 @@ class MainActivity : BaseActivity() {
|
||||
B.drawerLayout.close()
|
||||
}
|
||||
R.id.menu_download_manager -> {
|
||||
open(DownloadActivity::class.java)
|
||||
navController.navigate(R.id.downloadFragment)
|
||||
B.drawerLayout.close()
|
||||
}
|
||||
R.id.menu_spoof_manager -> {
|
||||
navController.navigate(R.id.spoofFragment)
|
||||
|
||||
@@ -29,10 +29,12 @@ import android.util.ArrayMap
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.navigation.NavDeepLinkBuilder
|
||||
import com.aurora.Constants
|
||||
import com.aurora.extensions.getStyledAttributeColor
|
||||
import com.aurora.extensions.isMAndAbove
|
||||
import com.aurora.gplayapi.data.models.App
|
||||
import com.aurora.store.MainActivity
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.downloader.DownloadManager
|
||||
import com.aurora.store.data.downloader.RequestGroupIdBuilder
|
||||
@@ -45,7 +47,6 @@ import com.aurora.store.data.receiver.InstallReceiver
|
||||
import com.aurora.store.util.CommonUtil
|
||||
import com.aurora.store.util.Log
|
||||
import com.aurora.store.view.ui.details.AppDetailsActivity
|
||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import com.tonyodev.fetch2.*
|
||||
@@ -326,11 +327,11 @@ class NotificationService : Service() {
|
||||
}
|
||||
|
||||
private fun getContentIntentForDownloads(): PendingIntent {
|
||||
val intent = Intent(this, DownloadActivity::class.java)
|
||||
val flags = if (isMAndAbove())
|
||||
PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE
|
||||
else PendingIntent.FLAG_CANCEL_CURRENT
|
||||
return PendingIntent.getActivity(this, 0, intent, flags)
|
||||
return NavDeepLinkBuilder(this)
|
||||
.setGraph(R.navigation.mobile_navigation)
|
||||
.setDestination(R.id.downloadFragment)
|
||||
.setComponentName(MainActivity::class.java)
|
||||
.createPendingIntent()
|
||||
}
|
||||
|
||||
private fun getInstallIntent(packageName: String): PendingIntent {
|
||||
|
||||
@@ -57,7 +57,6 @@ import com.aurora.store.data.service.AppMetadataStatusListener
|
||||
import com.aurora.store.data.service.UpdateService
|
||||
import com.aurora.store.databinding.ActivityDetailsBinding
|
||||
import com.aurora.store.util.*
|
||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||
import com.aurora.store.view.ui.sheets.InstallErrorDialogSheet
|
||||
import com.aurora.store.view.ui.sheets.ManualDownloadSheet
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
||||
@@ -283,10 +282,6 @@ class AppDetailsActivity : BaseDetailsActivity() {
|
||||
sheet.show(supportFragmentManager, ManualDownloadSheet.TAG)
|
||||
return true
|
||||
}
|
||||
R.id.menu_download_manager -> {
|
||||
open(DownloadActivity::class.java)
|
||||
return true
|
||||
}
|
||||
R.id.action_playstore -> {
|
||||
browse("${Constants.SHARE_URL}${app.packageName}")
|
||||
return true
|
||||
|
||||
@@ -20,24 +20,34 @@
|
||||
package com.aurora.store.view.ui.downloads
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.Constants
|
||||
import com.aurora.gplayapi.data.models.App
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.downloader.DownloadManager
|
||||
import com.aurora.store.data.model.DownloadFile
|
||||
import com.aurora.store.databinding.ActivityDownloadBinding
|
||||
import com.aurora.store.databinding.FragmentDownloadBinding
|
||||
import com.aurora.store.util.Preferences
|
||||
import com.aurora.store.view.epoxy.views.DownloadViewModel_
|
||||
import com.aurora.store.view.epoxy.views.app.NoAppViewModel_
|
||||
import com.aurora.store.view.ui.commons.BaseActivity
|
||||
import com.aurora.store.view.ui.commons.BaseFragment
|
||||
import com.aurora.store.view.ui.sheets.DownloadMenuSheet
|
||||
import com.tonyodev.fetch2.*
|
||||
import com.tonyodev.fetch2.AbstractFetchListener
|
||||
import com.tonyodev.fetch2.BuildConfig
|
||||
import com.tonyodev.fetch2.Download
|
||||
import com.tonyodev.fetch2.Error
|
||||
import com.tonyodev.fetch2.Fetch
|
||||
import com.tonyodev.fetch2.FetchListener
|
||||
import com.tonyodev.fetch2.Status
|
||||
|
||||
class DownloadActivity : BaseActivity() {
|
||||
class DownloadFragment : BaseFragment(R.layout.fragment_download) {
|
||||
|
||||
private var _binding: FragmentDownloadBinding? = null
|
||||
private val binding: FragmentDownloadBinding
|
||||
get() = _binding!!
|
||||
|
||||
private lateinit var B: ActivityDownloadBinding
|
||||
private lateinit var fetch: Fetch
|
||||
|
||||
private var fetchListener: FetchListener = object : AbstractFetchListener() {
|
||||
@@ -86,30 +96,52 @@ class DownloadActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onConnected() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
}
|
||||
_binding = FragmentDownloadBinding.bind(view)
|
||||
|
||||
override fun onDisconnected() {
|
||||
// Toolbar
|
||||
binding.layoutToolbarAction.toolbar.apply {
|
||||
elevation = 0f
|
||||
title = getString(R.string.title_download_manager)
|
||||
navigationIcon = ContextCompat.getDrawable(view.context, R.drawable.ic_arrow_back)
|
||||
inflateMenu(R.menu.menu_download_main)
|
||||
setNavigationOnClickListener { findNavController().navigateUp() }
|
||||
setOnMenuItemClickListener {
|
||||
when (it.itemId) {
|
||||
R.id.action_pause_all -> {
|
||||
fetch.pauseAll()
|
||||
}
|
||||
|
||||
}
|
||||
R.id.action_resume_all -> {
|
||||
fetch.resumeAll()
|
||||
}
|
||||
|
||||
override fun onReconnected() {
|
||||
R.id.action_cancel_all -> {
|
||||
fetch.cancelAll()
|
||||
}
|
||||
|
||||
}
|
||||
R.id.action_clear_completed -> {
|
||||
fetch.removeAllWithStatus(Status.COMPLETED)
|
||||
Preferences.getPrefs(view.context).edit()
|
||||
.remove(Preferences.PREFERENCE_UNIQUE_GROUP_IDS).apply()
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
R.id.action_force_clear_all -> {
|
||||
fetch.deleteAll()
|
||||
Preferences.getPrefs(view.context).edit()
|
||||
.remove(Preferences.PREFERENCE_UNIQUE_GROUP_IDS).apply()
|
||||
}
|
||||
}
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
B = ActivityDownloadBinding.inflate(layoutInflater)
|
||||
setContentView(B.root)
|
||||
|
||||
attachToolbar()
|
||||
|
||||
fetch = DownloadManager.with(this).fetch
|
||||
fetch = DownloadManager.with(view.context).fetch
|
||||
updateDownloadsList()
|
||||
|
||||
B.swipeRefreshLayout.setOnRefreshListener {
|
||||
binding.swipeRefreshLayout.setOnRefreshListener {
|
||||
updateDownloadsList()
|
||||
}
|
||||
}
|
||||
@@ -126,58 +158,10 @@ class DownloadActivity : BaseActivity() {
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
if (::fetch.isInitialized)
|
||||
fetch.removeListener(fetchListener)
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
||||
menuInflater.inflate(R.menu.menu_download_main, menu)
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
onBackPressedDispatcher.onBackPressed()
|
||||
return true
|
||||
}
|
||||
R.id.action_pause_all -> {
|
||||
fetch.pauseAll()
|
||||
return true
|
||||
}
|
||||
R.id.action_resume_all -> {
|
||||
fetch.resumeAll()
|
||||
return true
|
||||
}
|
||||
R.id.action_cancel_all -> {
|
||||
fetch.cancelAll()
|
||||
return true
|
||||
}
|
||||
R.id.action_clear_completed -> {
|
||||
fetch.removeAllWithStatus(Status.COMPLETED)
|
||||
Preferences.getPrefs(this).edit().remove(Preferences.PREFERENCE_UNIQUE_GROUP_IDS).apply()
|
||||
return true
|
||||
}
|
||||
R.id.action_force_clear_all -> {
|
||||
fetch.deleteAll()
|
||||
Preferences.getPrefs(this).edit().remove(Preferences.PREFERENCE_UNIQUE_GROUP_IDS).apply()
|
||||
return true
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private fun attachToolbar() {
|
||||
setSupportActionBar(B.layoutToolbarAction.toolbar)
|
||||
val actionBar = supportActionBar
|
||||
if (actionBar != null) {
|
||||
actionBar.setDisplayShowCustomEnabled(true)
|
||||
actionBar.setDisplayHomeAsUpEnabled(true)
|
||||
actionBar.elevation = 0f
|
||||
actionBar.setTitle(R.string.title_download_manager)
|
||||
}
|
||||
override fun onDestroyView() {
|
||||
if (::fetch.isInitialized) fetch.removeListener(fetchListener)
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun updateDownloadsList() {
|
||||
@@ -193,7 +177,7 @@ class DownloadActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
private fun updateController(downloads: List<DownloadFile>) {
|
||||
B.recycler.withModels {
|
||||
binding.recycler.withModels {
|
||||
if (downloads.isEmpty()) {
|
||||
add(
|
||||
NoAppViewModel_()
|
||||
@@ -215,7 +199,7 @@ class DownloadActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
B.swipeRefreshLayout.isRefreshing = false
|
||||
binding.swipeRefreshLayout.isRefreshing = false
|
||||
}
|
||||
|
||||
private fun openDetailsActivity(downloadFile: DownloadFile) {
|
||||
@@ -228,9 +212,9 @@ class DownloadActivity : BaseActivity() {
|
||||
|
||||
private fun openDownloadMenuSheet(downloadFile: DownloadFile) {
|
||||
with(downloadFile) {
|
||||
val fragment = supportFragmentManager.findFragmentByTag(DownloadMenuSheet.TAG)
|
||||
val fragment = childFragmentManager.findFragmentByTag(DownloadMenuSheet.TAG)
|
||||
if (fragment != null)
|
||||
supportFragmentManager.beginTransaction().remove(fragment)
|
||||
childFragmentManager.beginTransaction().remove(fragment).commitAllowingStateLoss()
|
||||
|
||||
DownloadMenuSheet().apply {
|
||||
arguments = Bundle().apply {
|
||||
@@ -239,7 +223,7 @@ class DownloadActivity : BaseActivity() {
|
||||
putString(DownloadMenuSheet.DOWNLOAD_URL, download.url)
|
||||
}
|
||||
}.show(
|
||||
supportFragmentManager,
|
||||
childFragmentManager,
|
||||
DownloadMenuSheet.TAG
|
||||
)
|
||||
}
|
||||
@@ -35,8 +35,6 @@ import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.aurora.Constants
|
||||
import com.aurora.extensions.open
|
||||
import com.aurora.gplayapi.data.models.App
|
||||
import com.aurora.gplayapi.data.models.SearchBundle
|
||||
import com.aurora.store.R
|
||||
@@ -50,7 +48,6 @@ import com.aurora.store.view.epoxy.views.app.AppListViewModel_
|
||||
import com.aurora.store.view.epoxy.views.app.NoAppViewModel_
|
||||
import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_
|
||||
import com.aurora.store.view.ui.commons.BaseFragment
|
||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||
import com.aurora.store.view.ui.sheets.FilterSheet
|
||||
import com.aurora.store.viewmodel.search.SearchResultViewModel
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
@@ -98,7 +95,7 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
findNavController().navigateUp()
|
||||
}
|
||||
imgActionSecondary.setOnClickListener {
|
||||
activity?.open(DownloadActivity::class.java)
|
||||
findNavController().navigate(R.id.downloadFragment)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
|
||||
package com.aurora.store.view.ui.search
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
@@ -32,15 +31,12 @@ import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.Constants
|
||||
import com.aurora.extensions.browse
|
||||
import com.aurora.extensions.getEmptyActivityBundle
|
||||
import com.aurora.extensions.open
|
||||
import com.aurora.extensions.showKeyboard
|
||||
import com.aurora.gplayapi.SearchSuggestEntry
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.FragmentSearchSuggestionBinding
|
||||
import com.aurora.store.util.Preferences
|
||||
import com.aurora.store.view.epoxy.views.SearchSuggestionViewModel_
|
||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||
import com.aurora.store.viewmodel.search.SearchSuggestionViewModel
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
|
||||
@@ -69,7 +65,7 @@ class SearchSuggestionFragment : Fragment(R.layout.fragment_search_suggestion) {
|
||||
findNavController().navigateUp()
|
||||
}
|
||||
imgActionSecondary.setOnClickListener {
|
||||
activity?.open(DownloadActivity::class.java)
|
||||
findNavController().navigate(R.id.downloadFragment)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user