PermissionBottomSheet: Migrate to navigation components

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-08-07 11:18:10 +05:30
parent 7847a10007
commit f8da331da8
3 changed files with 21 additions and 33 deletions

View File

@@ -91,7 +91,6 @@ import com.aurora.store.view.epoxy.views.details.ScreenshotView
import com.aurora.store.view.epoxy.views.details.ScreenshotViewModel_ import com.aurora.store.view.epoxy.views.details.ScreenshotViewModel_
import com.aurora.store.view.ui.commons.BaseFragment import com.aurora.store.view.ui.commons.BaseFragment
import com.aurora.store.view.ui.sheets.InstallErrorDialogSheet import com.aurora.store.view.ui.sheets.InstallErrorDialogSheet
import com.aurora.store.view.ui.sheets.PermissionBottomSheet
import com.aurora.store.viewmodel.details.AppDetailsViewModel import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.DetailsClusterViewModel import com.aurora.store.viewmodel.details.DetailsClusterViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@@ -1163,8 +1162,11 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
private fun inflateAppPermission(B: LayoutDetailsPermissionsBinding, app: App) { private fun inflateAppPermission(B: LayoutDetailsPermissionsBinding, app: App) {
B.headerPermission.addClickListener { B.headerPermission.addClickListener {
if (app.permissions.size > 0) { if (app.permissions.size > 0) {
PermissionBottomSheet.newInstance(app) findNavController().navigate(
.show(childFragmentManager, PermissionBottomSheet.TAG) AppDetailsFragmentDirections.actionAppDetailsFragmentToPermissionBottomSheet(
app
)
)
} }
} }
B.txtPermissionCount.text = ("${app.permissions.size} permissions") B.txtPermissionCount.text = ("${app.permissions.size} permissions")

View File

@@ -27,10 +27,9 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
import com.aurora.Constants import androidx.navigation.fragment.navArgs
import com.aurora.extensions.hide import com.aurora.extensions.hide
import com.aurora.extensions.show import com.aurora.extensions.show
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetPermissionsBinding import com.aurora.store.databinding.SheetPermissionsBinding
import com.aurora.store.view.custom.layouts.PermissionGroup import com.aurora.store.view.custom.layouts.PermissionGroup
@@ -39,24 +38,9 @@ import java.util.*
class PermissionBottomSheet : BaseBottomSheet() { class PermissionBottomSheet : BaseBottomSheet() {
private lateinit var B: SheetPermissionsBinding private lateinit var B: SheetPermissionsBinding
private lateinit var app: App
private lateinit var packageManager: PackageManager private lateinit var packageManager: PackageManager
companion object { private val args: PermissionBottomSheetArgs by navArgs()
const val TAG = "PermissionBottomSheet"
@JvmStatic
fun newInstance(
app: App
): PermissionBottomSheet {
return PermissionBottomSheet().apply {
arguments = Bundle().apply {
putString(Constants.STRING_APP, gson.toJson(app))
}
}
}
}
override fun onCreateContentView( override fun onCreateContentView(
inflater: LayoutInflater, inflater: LayoutInflater,
@@ -69,16 +53,7 @@ class PermissionBottomSheet : BaseBottomSheet() {
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) { override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val bundle = arguments inflateData()
bundle?.let {
val rawApp = bundle.getString(Constants.STRING_APP, "{}")
app = gson.fromJson(rawApp, App::class.java)
if (app.packageName.isNotEmpty()) {
inflateData()
} else {
dismissAllowingStateLoss()
}
}
} }
private fun inflateData() { private fun inflateData() {
@@ -86,7 +61,7 @@ class PermissionBottomSheet : BaseBottomSheet() {
val permissionGroupWidgets: MutableMap<String, PermissionGroup?> = val permissionGroupWidgets: MutableMap<String, PermissionGroup?> =
HashMap<String, PermissionGroup?>() HashMap<String, PermissionGroup?>()
for (permissionName in app.permissions) { for (permissionName in args.app.permissions) {
val permissionInfo = getPermissionInfo(permissionName) ?: continue val permissionInfo = getPermissionInfo(permissionName) ?: continue
val permissionGroupInfo = getPermissionGroupInfo(permissionInfo) val permissionGroupInfo = getPermissionGroupInfo(permissionInfo)

View File

@@ -189,6 +189,9 @@
<action <action
android:id="@+id/action_appDetailsFragment_to_manualDownloadSheet" android:id="@+id/action_appDetailsFragment_to_manualDownloadSheet"
app:destination="@id/manualDownloadSheet" /> app:destination="@id/manualDownloadSheet" />
<action
android:id="@+id/action_appDetailsFragment_to_permissionBottomSheet"
app:destination="@id/permissionBottomSheet" />
</fragment> </fragment>
<fragment <fragment
android:id="@+id/categoryBrowseFragment" android:id="@+id/categoryBrowseFragment"
@@ -381,4 +384,12 @@
android:name="app" android:name="app"
app:argType="com.aurora.gplayapi.data.models.App" /> app:argType="com.aurora.gplayapi.data.models.App" />
</dialog> </dialog>
<dialog
android:id="@+id/permissionBottomSheet"
android:name="com.aurora.store.view.ui.sheets.PermissionBottomSheet"
tools:layout="@layout/sheet_permissions">
<argument
android:name="app"
app:argType="com.aurora.gplayapi.data.models.App" />
</dialog>
</navigation> </navigation>