AppPeekDialogSheet: Migrate to navigation components
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -34,7 +34,6 @@ import com.aurora.store.databinding.ActivityGenericRecyclerBinding
|
|||||||
import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener
|
import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener
|
||||||
import com.aurora.store.view.epoxy.controller.CategoryCarouselController
|
import com.aurora.store.view.epoxy.controller.CategoryCarouselController
|
||||||
import com.aurora.store.view.epoxy.controller.GenericCarouselController
|
import com.aurora.store.view.epoxy.controller.GenericCarouselController
|
||||||
import com.aurora.store.view.ui.sheets.AppPeekDialogSheet
|
|
||||||
import com.aurora.store.viewmodel.subcategory.SubCategoryClusterViewModel
|
import com.aurora.store.viewmodel.subcategory.SubCategoryClusterViewModel
|
||||||
|
|
||||||
|
|
||||||
@@ -135,6 +134,8 @@ class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onAppLongClick(app: App) {
|
override fun onAppLongClick(app: App) {
|
||||||
AppPeekDialogSheet.newInstance(app).show(childFragmentManager, "APDS")
|
findNavController().navigate(
|
||||||
|
CategoryBrowseFragmentDirections.actionCategoryBrowseFragmentToAppPeekDialogSheet(app)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,71 +23,39 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import com.aurora.Constants
|
import androidx.navigation.fragment.navArgs
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.extensions.load
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.databinding.SheetAppPeekBinding
|
import com.aurora.store.databinding.SheetAppPeekBinding
|
||||||
import com.aurora.store.util.CommonUtil
|
import com.aurora.store.util.CommonUtil
|
||||||
import com.aurora.extensions.load
|
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
||||||
|
|
||||||
class AppPeekDialogSheet : BaseBottomSheet() {
|
class AppPeekDialogSheet : BaseBottomSheet() {
|
||||||
|
|
||||||
lateinit var B: SheetAppPeekBinding
|
lateinit var B: SheetAppPeekBinding
|
||||||
lateinit var app: App
|
|
||||||
|
|
||||||
private var rawApp = String()
|
private val args: AppPeekDialogSheetArgs by navArgs()
|
||||||
|
|
||||||
companion object {
|
|
||||||
@JvmStatic
|
|
||||||
fun newInstance(app: App): AppPeekDialogSheet {
|
|
||||||
return AppPeekDialogSheet().apply {
|
|
||||||
arguments = Bundle().apply {
|
|
||||||
putString(Constants.STRING_EXTRA, gson.toJson(app))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateContentView(
|
override fun onCreateContentView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup,
|
container: ViewGroup,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
B = SheetAppPeekBinding.inflate(inflater, container, false)
|
B = SheetAppPeekBinding.inflate(inflater, container, false)
|
||||||
val bundle = arguments
|
|
||||||
if (bundle != null) {
|
|
||||||
rawApp = bundle.getString(Constants.STRING_EXTRA, "")
|
|
||||||
if (rawApp.isNotEmpty()) {
|
|
||||||
app = gson.fromJson(rawApp, App::class.java)
|
|
||||||
if (app.packageName.isNotEmpty()) {
|
|
||||||
draw()
|
|
||||||
} else {
|
|
||||||
dismissAllowingStateLoss()
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
dismissAllowingStateLoss()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return B.root
|
return B.root
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
B.txtLine1.text = args.app.displayName
|
||||||
}
|
B.imgIcon.load(args.app.iconArtwork.url) {
|
||||||
|
|
||||||
private fun draw() {
|
|
||||||
B.txtLine1.text = app.displayName
|
|
||||||
B.imgIcon.load(app.iconArtwork.url) {
|
|
||||||
transform(RoundedCorners(25))
|
transform(RoundedCorners(25))
|
||||||
}
|
}
|
||||||
B.txtLine2.text = app.developerName
|
B.txtLine2.text = args.app.developerName
|
||||||
B.txtLine3.text = String.format(
|
B.txtLine3.text = String.format(
|
||||||
requireContext().getString(R.string.app_list_rating),
|
requireContext().getString(R.string.app_list_rating),
|
||||||
CommonUtil.addSiPrefix(app.size),
|
CommonUtil.addSiPrefix(args.app.size),
|
||||||
app.labeledRating,
|
args.app.labeledRating,
|
||||||
if (app.isFree)
|
if (args.app.isFree)
|
||||||
"Free"
|
"Free"
|
||||||
else
|
else
|
||||||
"Paid"
|
"Paid"
|
||||||
|
|||||||
@@ -197,6 +197,9 @@
|
|||||||
<argument
|
<argument
|
||||||
android:name="browseUrl"
|
android:name="browseUrl"
|
||||||
app:argType="string" />
|
app:argType="string" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_categoryBrowseFragment_to_appPeekDialogSheet"
|
||||||
|
app:destination="@id/appPeekDialogSheet" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/editorStreamBrowseFragment"
|
android:id="@+id/editorStreamBrowseFragment"
|
||||||
@@ -353,4 +356,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/appPeekDialogSheet"
|
||||||
|
android:name="com.aurora.store.view.ui.sheets.AppPeekDialogSheet"
|
||||||
|
android:label="AppPeekDialogSheet" >
|
||||||
|
<argument
|
||||||
|
android:name="app"
|
||||||
|
app:argType="com.aurora.gplayapi.data.models.App" />
|
||||||
|
</dialog>
|
||||||
</navigation>
|
</navigation>
|
||||||
|
|||||||
Reference in New Issue
Block a user