Improve viewbinding - [2/3]
This commit is contained in:
committed by
Aayush Gupta
parent
47760b7407
commit
4919fbd4db
@@ -36,19 +36,15 @@ import com.aurora.store.data.providers.BlacklistProvider
|
||||
import com.aurora.store.databinding.SheetAppMenuBinding
|
||||
import com.aurora.store.util.PackageUtil
|
||||
import com.aurora.store.viewmodel.sheets.SheetsViewModel
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class AppMenuSheet : BottomSheetDialogFragment(R.layout.sheet_app_menu) {
|
||||
class AppMenuSheet : BaseDialogSheet<SheetAppMenuBinding>() {
|
||||
|
||||
companion object {
|
||||
const val TAG = "APP_MENU_SHEET"
|
||||
}
|
||||
|
||||
private var _binding: SheetAppMenuBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
private val viewModel: SheetsViewModel by viewModels()
|
||||
private val args: AppMenuSheetArgs by navArgs()
|
||||
|
||||
@@ -66,7 +62,6 @@ class AppMenuSheet : BottomSheetDialogFragment(R.layout.sheet_app_menu) {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetAppMenuBinding.bind(view)
|
||||
|
||||
val blacklistProvider = BlacklistProvider.with(requireContext())
|
||||
val isBlacklisted: Boolean = blacklistProvider.isBlacklisted(args.app.packageName)
|
||||
@@ -122,9 +117,4 @@ class AppMenuSheet : BottomSheetDialogFragment(R.layout.sheet_app_menu) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,20 +27,14 @@ import coil.transform.RoundedCornersTransformation
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.SheetAppPeekBinding
|
||||
import com.aurora.store.util.CommonUtil
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class AppPeekDialogSheet : BottomSheetDialogFragment(R.layout.sheet_app_peek) {
|
||||
|
||||
private var _binding: SheetAppPeekBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
class AppPeekDialogSheet : BaseDialogSheet<SheetAppPeekBinding>() {
|
||||
private val args: AppPeekDialogSheetArgs by navArgs()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetAppPeekBinding.bind(view)
|
||||
|
||||
binding.txtLine1.text = args.app.displayName
|
||||
binding.imgIcon.load(args.app.iconArtwork.url) {
|
||||
@@ -54,9 +48,4 @@ class AppPeekDialogSheet : BottomSheetDialogFragment(R.layout.sheet_app_peek) {
|
||||
if (args.app.isFree) "Free" else "Paid"
|
||||
)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Aurora Store
|
||||
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
|
||||
* Copyright (C) 2022, The Calyx Institute
|
||||
*
|
||||
* Aurora Store is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Aurora Store is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
package com.aurora.store.view.ui.sheets
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import java.lang.reflect.ParameterizedType
|
||||
|
||||
abstract class BaseDialogSheet<ViewBindingType : ViewBinding> : BottomSheetDialogFragment() {
|
||||
|
||||
private var _binding: ViewBindingType? = null
|
||||
protected val binding get() = _binding!!
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
val type =
|
||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class<ViewBindingType>
|
||||
val method = type.getMethod(
|
||||
"inflate",
|
||||
LayoutInflater::class.java,
|
||||
ViewGroup::class.java,
|
||||
Boolean::class.java
|
||||
)
|
||||
_binding = method.invoke(null, inflater, container, false) as ViewBindingType
|
||||
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
_binding = null
|
||||
super.onDestroyView()
|
||||
}
|
||||
}
|
||||
@@ -28,18 +28,13 @@ import coil.transform.CircleCropTransformation
|
||||
import com.aurora.extensions.toast
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.SheetDeviceMiuiBinding
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DeviceMiuiSheet : BottomSheetDialogFragment(R.layout.sheet_device_miui) {
|
||||
|
||||
private var _binding: SheetDeviceMiuiBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
class DeviceMiuiSheet : BaseDialogSheet<SheetDeviceMiuiBinding>() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetDeviceMiuiBinding.bind(view)
|
||||
|
||||
binding.imgIcon.load(R.drawable.ic_xiaomi_logo) {
|
||||
transformations(CircleCropTransformation())
|
||||
@@ -57,9 +52,4 @@ class DeviceMiuiSheet : BottomSheetDialogFragment(R.layout.sheet_device_miui) {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,20 +36,15 @@ import com.aurora.store.databinding.SheetDownloadMenuBinding
|
||||
import com.aurora.store.util.DownloadWorkerUtil
|
||||
import com.aurora.store.util.PathUtil
|
||||
import com.aurora.store.viewmodel.sheets.SheetsViewModel
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.NonCancellable
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DownloadMenuSheet : BottomSheetDialogFragment(R.layout.sheet_download_menu) {
|
||||
class DownloadMenuSheet : BaseDialogSheet<SheetDownloadMenuBinding>() {
|
||||
|
||||
private val TAG = DownloadMenuSheet::class.java.simpleName
|
||||
|
||||
private var _binding: SheetDownloadMenuBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
private val viewModel: SheetsViewModel by viewModels()
|
||||
private val args: DownloadMenuSheetArgs by navArgs()
|
||||
private val playStoreURL = "https://play.google.com/store/apps/details?id="
|
||||
@@ -74,7 +69,6 @@ class DownloadMenuSheet : BottomSheetDialogFragment(R.layout.sheet_download_menu
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetDownloadMenuBinding.bind(view)
|
||||
|
||||
with(binding.navigationView) {
|
||||
val downloadCompleted = args.download.downloadStatus == DownloadStatus.COMPLETED
|
||||
@@ -96,6 +90,7 @@ class DownloadMenuSheet : BottomSheetDialogFragment(R.layout.sheet_download_menu
|
||||
install()
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
R.id.action_copy -> {
|
||||
requireContext().copyToClipBoard(
|
||||
"${playStoreURL}${args.download.packageName}"
|
||||
@@ -103,12 +98,14 @@ class DownloadMenuSheet : BottomSheetDialogFragment(R.layout.sheet_download_menu
|
||||
requireContext().toast(requireContext().getString(R.string.toast_clipboard_copied))
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
R.id.action_cancel -> {
|
||||
findViewTreeLifecycleOwner()?.lifecycleScope?.launch(NonCancellable) {
|
||||
downloadWorkerUtil.cancelDownload(args.download.packageName)
|
||||
}
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
R.id.action_clear -> {
|
||||
findViewTreeLifecycleOwner()?.lifecycleScope?.launch(NonCancellable) {
|
||||
downloadWorkerUtil.clearDownload(
|
||||
@@ -118,6 +115,7 @@ class DownloadMenuSheet : BottomSheetDialogFragment(R.layout.sheet_download_menu
|
||||
}
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
R.id.action_local -> {
|
||||
requestDocumentCreation.launch("${args.download.packageName}.zip")
|
||||
}
|
||||
@@ -127,11 +125,6 @@ class DownloadMenuSheet : BottomSheetDialogFragment(R.layout.sheet_download_menu
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun install() {
|
||||
try {
|
||||
appInstaller.getPreferredInstaller().install(args.download)
|
||||
|
||||
@@ -15,9 +15,8 @@ import com.aurora.store.data.work.UpdateWorker
|
||||
import com.aurora.store.databinding.SheetDozeWarningBinding
|
||||
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO
|
||||
import com.aurora.store.util.save
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
|
||||
class DozeWarningSheet : BottomSheetDialogFragment(R.layout.sheet_doze_warning) {
|
||||
class DozeWarningSheet : BaseDialogSheet<SheetDozeWarningBinding>() {
|
||||
|
||||
private val args: DozeWarningSheetArgs by navArgs()
|
||||
|
||||
@@ -38,12 +37,8 @@ class DozeWarningSheet : BottomSheetDialogFragment(R.layout.sheet_doze_warning)
|
||||
}
|
||||
}
|
||||
|
||||
private var _binding: SheetDozeWarningBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetDozeWarningBinding.bind(view)
|
||||
|
||||
binding.btnSecondary.setOnClickListener { dismissAllowingStateLoss() }
|
||||
binding.btnPrimary.setOnClickListener {
|
||||
@@ -55,9 +50,4 @@ class DozeWarningSheet : BottomSheetDialogFragment(R.layout.sheet_doze_warning)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,16 +25,12 @@ import com.aurora.store.R
|
||||
import com.aurora.store.data.model.Filter
|
||||
import com.aurora.store.data.providers.FilterProvider
|
||||
import com.aurora.store.databinding.SheetFilterBinding
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.google.android.material.chip.Chip
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class FilterSheet : BottomSheetDialogFragment(R.layout.sheet_filter) {
|
||||
|
||||
private var _binding: SheetFilterBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
class FilterSheet : BaseDialogSheet<SheetFilterBinding>() {
|
||||
|
||||
@Inject
|
||||
lateinit var filterProvider: FilterProvider
|
||||
@@ -43,7 +39,6 @@ class FilterSheet : BottomSheetDialogFragment(R.layout.sheet_filter) {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetFilterBinding.bind(view)
|
||||
filter = filterProvider.getSavedFilter()
|
||||
|
||||
attachSingleChips()
|
||||
@@ -51,11 +46,6 @@ class FilterSheet : BottomSheetDialogFragment(R.layout.sheet_filter) {
|
||||
attachActions()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun attachActions() {
|
||||
binding.btnPositive.setOnClickListener {
|
||||
filterProvider.saveFilter(filter)
|
||||
|
||||
@@ -28,20 +28,15 @@ import com.aurora.extensions.copyToClipBoard
|
||||
import com.aurora.extensions.toast
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.SheetInstallErrorBinding
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class InstallErrorDialogSheet : BottomSheetDialogFragment(R.layout.sheet_install_error) {
|
||||
|
||||
private var _binding: SheetInstallErrorBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
class InstallErrorDialogSheet : BaseDialogSheet<SheetInstallErrorBinding>() {
|
||||
|
||||
private val args: InstallErrorDialogSheetArgs by navArgs()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetInstallErrorBinding.bind(view)
|
||||
|
||||
binding.imgIcon.load(args.app.iconArtwork.url) {
|
||||
transformations(CircleCropTransformation())
|
||||
@@ -60,9 +55,4 @@ class InstallErrorDialogSheet : BottomSheetDialogFragment(R.layout.sheet_install
|
||||
requireContext().toast(R.string.toast_clipboard_copied)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,23 +31,17 @@ import com.aurora.extensions.toast
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.SheetManualDownloadBinding
|
||||
import com.aurora.store.viewmodel.sheets.SheetsViewModel
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class ManualDownloadSheet : BottomSheetDialogFragment(R.layout.sheet_manual_download) {
|
||||
|
||||
private var _binding: SheetManualDownloadBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
class ManualDownloadSheet : BaseDialogSheet<SheetManualDownloadBinding>() {
|
||||
private val viewModel: SheetsViewModel by viewModels()
|
||||
private val args: ManualDownloadSheetArgs by navArgs()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetManualDownloadBinding.bind(view)
|
||||
isCancelable = false
|
||||
|
||||
inflateData()
|
||||
@@ -65,11 +59,6 @@ class ManualDownloadSheet : BottomSheetDialogFragment(R.layout.sheet_manual_down
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
this.lifecycleScope.launch {
|
||||
viewModel.purchaseStatus.collectLatest {
|
||||
|
||||
@@ -26,19 +26,14 @@ import android.provider.Settings
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import com.aurora.extensions.isQAndAbove
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.SheetNetworkBinding
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NetworkDialogSheet : BottomSheetDialogFragment(R.layout.sheet_network) {
|
||||
class NetworkDialogSheet : BaseDialogSheet<SheetNetworkBinding>() {
|
||||
|
||||
private val TAG = NetworkDialogSheet::class.java.simpleName
|
||||
|
||||
private var _binding: SheetNetworkBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
companion object {
|
||||
|
||||
const val TAG = "NetworkDialogSheet"
|
||||
@@ -53,8 +48,6 @@ class NetworkDialogSheet : BottomSheetDialogFragment(R.layout.sheet_network) {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetNetworkBinding.bind(view)
|
||||
|
||||
binding.btnAction.setOnClickListener {
|
||||
if (isQAndAbove()) {
|
||||
startActivity(Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY))
|
||||
@@ -68,9 +61,4 @@ class NetworkDialogSheet : BottomSheetDialogFragment(R.layout.sheet_network) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,14 +31,10 @@ import com.aurora.store.R
|
||||
import com.aurora.store.data.model.PermissionGroupInfo
|
||||
import com.aurora.store.databinding.SheetPermissionsBinding
|
||||
import com.aurora.store.view.custom.layouts.PermissionGroup
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class PermissionBottomSheet : BottomSheetDialogFragment(R.layout.sheet_permissions) {
|
||||
|
||||
private var _binding: SheetPermissionsBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
class PermissionBottomSheet : BaseDialogSheet<SheetPermissionsBinding>() {
|
||||
|
||||
private lateinit var packageManager: PackageManager
|
||||
private lateinit var currentPerms: List<String>
|
||||
@@ -47,7 +43,6 @@ class PermissionBottomSheet : BottomSheetDialogFragment(R.layout.sheet_permissio
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = SheetPermissionsBinding.bind(view)
|
||||
|
||||
packageManager = requireContext().packageManager
|
||||
currentPerms = try {
|
||||
@@ -95,11 +90,6 @@ class PermissionBottomSheet : BottomSheetDialogFragment(R.layout.sheet_permissio
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun getPermissionInfo(permissionName: String): PermissionInfo? {
|
||||
return try {
|
||||
packageManager.getPermissionInfo(permissionName, 0)
|
||||
|
||||
Reference in New Issue
Block a user