diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4f90acfff..9e04f9535 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -149,7 +149,6 @@ - diff --git a/app/src/main/java/com/aurora/store/MainActivity.kt b/app/src/main/java/com/aurora/store/MainActivity.kt index 0d98cebb7..cda687a61 100644 --- a/app/src/main/java/com/aurora/store/MainActivity.kt +++ b/app/src/main/java/com/aurora/store/MainActivity.kt @@ -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) diff --git a/app/src/main/java/com/aurora/store/data/service/NotificationService.kt b/app/src/main/java/com/aurora/store/data/service/NotificationService.kt index 27758b463..81db411ee 100644 --- a/app/src/main/java/com/aurora/store/data/service/NotificationService.kt +++ b/app/src/main/java/com/aurora/store/data/service/NotificationService.kt @@ -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 { diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt index 76051692a..27b1e0488 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt @@ -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 diff --git a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadActivity.kt b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt similarity index 63% rename from app/src/main/java/com/aurora/store/view/ui/downloads/DownloadActivity.kt rename to app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt index dc605d28f..b6ff92971 100644 --- a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt @@ -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) { - 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 ) } diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt index ede070adf..b12ac129c 100644 --- a/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt @@ -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) } } diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt index 868e7b565..d788b050f 100644 --- a/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt @@ -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) } } diff --git a/app/src/main/res/layout/activity_download.xml b/app/src/main/res/layout/fragment_download.xml similarity index 95% rename from app/src/main/res/layout/activity_download.xml rename to app/src/main/res/layout/fragment_download.xml index 3fda42dde..bd840ff36 100644 --- a/app/src/main/res/layout/activity_download.xml +++ b/app/src/main/res/layout/fragment_download.xml @@ -22,7 +22,8 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + tools:context=".view.ui.downloads.DownloadFragment"> - - diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 7ee0cbff3..b70490728 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -93,4 +93,9 @@ android:name="query" app:argType="string" /> + \ No newline at end of file diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index d6261e318..7c67f6564 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -1,5 +1,5 @@ - + ईमेल भीम - यूपीआई अक्षम करें @@ -190,7 +190,7 @@ इंस्टॉल करने का तरीका खाते ऐप छूट पर - रोके गए + रोके गए %1$d / %2$d डिवाइस पर नहीं काम करते ऐप लाइसेंस एपीके इंस्टॉल का मोड चुनें