UpdatesFragment: Restore menu action sheet for quick actions
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
25
app/src/main/java/com/aurora/store/data/model/MinimalApp.kt
Normal file
25
app/src/main/java/com/aurora/store/data/model/MinimalApp.kt
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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())
|
||||
|
||||
@@ -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
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) }
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user