UpdatesFragment: Restore menu action sheet for quick actions

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-07-18 12:31:36 +07:00
parent 14aa476313
commit 840c2f0b10
7 changed files with 39 additions and 5 deletions

View File

@@ -0,0 +1,25 @@
package com.aurora.store.data.model
import android.os.Parcelable
import com.aurora.gplayapi.data.models.App
import com.aurora.store.data.room.update.Update
import kotlinx.parcelize.Parcelize
@Parcelize
data class MinimalApp(
val packageName: String,
val versionCode: Int,
val displayName: String
) : Parcelable {
companion object {
fun fromApp(app: App): MinimalApp {
return MinimalApp(app.packageName, app.versionCode, app.displayName)
}
fun fromUpdate(update: Update): MinimalApp {
return MinimalApp(update.packageName, update.versionCode, update.displayName)
}
}
}

View File

@@ -14,6 +14,7 @@ import androidx.work.OutOfQuotaPolicy
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import com.aurora.gplayapi.data.models.App
import com.aurora.store.data.model.MinimalApp
import com.aurora.store.data.room.download.Download
import com.aurora.store.util.NotificationUtil
import com.aurora.store.util.PackageUtil.getPackageInfo
@@ -47,7 +48,7 @@ class ExportWorker @AssistedInject constructor(
* @param app App to export
* @see [ExportWorker]
*/
fun exportInstalledApp(context: Context, app: App, uri: Uri) {
fun exportInstalledApp(context: Context, app: MinimalApp, uri: Uri) {
val inputData = Data.Builder()
.putBoolean(IS_DOWNLOAD, false)
.putString(URI, uri.toString())

View File

@@ -27,6 +27,7 @@ import androidx.lifecycle.lifecycleScope
import com.aurora.gplayapi.data.models.App
import com.aurora.store.AuroraApp
import com.aurora.store.data.event.InstallerEvent
import com.aurora.store.data.model.MinimalApp
import com.aurora.store.databinding.FragmentAppsBinding
import com.aurora.store.view.epoxy.views.HeaderViewModel_
import com.aurora.store.view.epoxy.views.app.AppListViewModel_
@@ -97,7 +98,7 @@ class InstalledAppsFragment : BaseFragment<FragmentAppsBinding>() {
.app(app)
.click { _ -> openDetailsFragment(app.packageName, app) }
.longClick { _ ->
openAppMenuSheet(app)
openAppMenuSheet(MinimalApp.fromApp(app))
false
}
)

View File

@@ -30,6 +30,7 @@ import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.Category
import com.aurora.gplayapi.data.models.StreamCluster
import com.aurora.store.MobileNavigationDirections
import com.aurora.store.data.model.MinimalApp
import com.google.gson.Gson
import java.lang.reflect.ParameterizedType
import javax.inject.Inject
@@ -112,7 +113,7 @@ abstract class BaseFragment<ViewBindingType : ViewBinding> : Fragment() {
)
}
fun openAppMenuSheet(app: App) {
fun openAppMenuSheet(app: MinimalApp) {
findNavController().navigate(MobileNavigationDirections.actionGlobalAppMenuSheet(app))
}
}

View File

@@ -35,6 +35,7 @@ import com.aurora.extensions.isRAndAbove
import com.aurora.extensions.toast
import com.aurora.store.MobileNavigationDirections
import com.aurora.store.R
import com.aurora.store.data.model.MinimalApp
import com.aurora.store.data.room.download.Download
import com.aurora.store.data.room.update.Update
import com.aurora.store.databinding.FragmentUpdatesBinding
@@ -182,6 +183,10 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
openDetailsFragment(update.packageName)
}
}
.longClick { _ ->
openAppMenuSheet(MinimalApp.fromUpdate(update))
false
}
.positiveAction { _ -> updateSingle(update) }
.negativeAction { _ -> cancelSingle(update) }
)

View File

@@ -9,6 +9,7 @@ import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.helpers.PurchaseHelper
import com.aurora.store.AuroraApp
import com.aurora.store.data.event.BusEvent
import com.aurora.store.data.model.MinimalApp
import com.aurora.store.data.providers.AuthProvider
import com.aurora.store.data.room.download.Download
import com.aurora.store.data.work.ExportWorker
@@ -47,7 +48,7 @@ class SheetsViewModel @Inject constructor(
}
}
fun copyInstalledApp(context: Context, app: App, uri: Uri) {
fun copyInstalledApp(context: Context, app: MinimalApp, uri: Uri) {
ExportWorker.exportInstalledApp(context, app, uri)
}

View File

@@ -380,7 +380,7 @@
tools:layout="@layout/sheet_app_menu" >
<argument
android:name="app"
app:argType="com.aurora.gplayapi.data.models.App" />
app:argType="com.aurora.store.data.model.MinimalApp" />
</dialog>
<dialog
android:id="@+id/appPeekDialogSheet"