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.WorkManager
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.aurora.gplayapi.data.models.App
|
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.data.room.download.Download
|
||||||
import com.aurora.store.util.NotificationUtil
|
import com.aurora.store.util.NotificationUtil
|
||||||
import com.aurora.store.util.PackageUtil.getPackageInfo
|
import com.aurora.store.util.PackageUtil.getPackageInfo
|
||||||
@@ -47,7 +48,7 @@ class ExportWorker @AssistedInject constructor(
|
|||||||
* @param app App to export
|
* @param app App to export
|
||||||
* @see [ExportWorker]
|
* @see [ExportWorker]
|
||||||
*/
|
*/
|
||||||
fun exportInstalledApp(context: Context, app: App, uri: Uri) {
|
fun exportInstalledApp(context: Context, app: MinimalApp, uri: Uri) {
|
||||||
val inputData = Data.Builder()
|
val inputData = Data.Builder()
|
||||||
.putBoolean(IS_DOWNLOAD, false)
|
.putBoolean(IS_DOWNLOAD, false)
|
||||||
.putString(URI, uri.toString())
|
.putString(URI, uri.toString())
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.store.AuroraApp
|
import com.aurora.store.AuroraApp
|
||||||
import com.aurora.store.data.event.InstallerEvent
|
import com.aurora.store.data.event.InstallerEvent
|
||||||
|
import com.aurora.store.data.model.MinimalApp
|
||||||
import com.aurora.store.databinding.FragmentAppsBinding
|
import com.aurora.store.databinding.FragmentAppsBinding
|
||||||
import com.aurora.store.view.epoxy.views.HeaderViewModel_
|
import com.aurora.store.view.epoxy.views.HeaderViewModel_
|
||||||
import com.aurora.store.view.epoxy.views.app.AppListViewModel_
|
import com.aurora.store.view.epoxy.views.app.AppListViewModel_
|
||||||
@@ -97,7 +98,7 @@ class InstalledAppsFragment : BaseFragment<FragmentAppsBinding>() {
|
|||||||
.app(app)
|
.app(app)
|
||||||
.click { _ -> openDetailsFragment(app.packageName, app) }
|
.click { _ -> openDetailsFragment(app.packageName, app) }
|
||||||
.longClick { _ ->
|
.longClick { _ ->
|
||||||
openAppMenuSheet(app)
|
openAppMenuSheet(MinimalApp.fromApp(app))
|
||||||
false
|
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.Category
|
||||||
import com.aurora.gplayapi.data.models.StreamCluster
|
import com.aurora.gplayapi.data.models.StreamCluster
|
||||||
import com.aurora.store.MobileNavigationDirections
|
import com.aurora.store.MobileNavigationDirections
|
||||||
|
import com.aurora.store.data.model.MinimalApp
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import java.lang.reflect.ParameterizedType
|
import java.lang.reflect.ParameterizedType
|
||||||
import javax.inject.Inject
|
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))
|
findNavController().navigate(MobileNavigationDirections.actionGlobalAppMenuSheet(app))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import com.aurora.extensions.isRAndAbove
|
|||||||
import com.aurora.extensions.toast
|
import com.aurora.extensions.toast
|
||||||
import com.aurora.store.MobileNavigationDirections
|
import com.aurora.store.MobileNavigationDirections
|
||||||
import com.aurora.store.R
|
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.download.Download
|
||||||
import com.aurora.store.data.room.update.Update
|
import com.aurora.store.data.room.update.Update
|
||||||
import com.aurora.store.databinding.FragmentUpdatesBinding
|
import com.aurora.store.databinding.FragmentUpdatesBinding
|
||||||
@@ -182,6 +183,10 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
|
|||||||
openDetailsFragment(update.packageName)
|
openDetailsFragment(update.packageName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.longClick { _ ->
|
||||||
|
openAppMenuSheet(MinimalApp.fromUpdate(update))
|
||||||
|
false
|
||||||
|
}
|
||||||
.positiveAction { _ -> updateSingle(update) }
|
.positiveAction { _ -> updateSingle(update) }
|
||||||
.negativeAction { _ -> cancelSingle(update) }
|
.negativeAction { _ -> cancelSingle(update) }
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.aurora.gplayapi.data.models.App
|
|||||||
import com.aurora.gplayapi.helpers.PurchaseHelper
|
import com.aurora.gplayapi.helpers.PurchaseHelper
|
||||||
import com.aurora.store.AuroraApp
|
import com.aurora.store.AuroraApp
|
||||||
import com.aurora.store.data.event.BusEvent
|
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.providers.AuthProvider
|
||||||
import com.aurora.store.data.room.download.Download
|
import com.aurora.store.data.room.download.Download
|
||||||
import com.aurora.store.data.work.ExportWorker
|
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)
|
ExportWorker.exportInstalledApp(context, app, uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -380,7 +380,7 @@
|
|||||||
tools:layout="@layout/sheet_app_menu" >
|
tools:layout="@layout/sheet_app_menu" >
|
||||||
<argument
|
<argument
|
||||||
android:name="app"
|
android:name="app"
|
||||||
app:argType="com.aurora.gplayapi.data.models.App" />
|
app:argType="com.aurora.store.data.model.MinimalApp" />
|
||||||
</dialog>
|
</dialog>
|
||||||
<dialog
|
<dialog
|
||||||
android:id="@+id/appPeekDialogSheet"
|
android:id="@+id/appPeekDialogSheet"
|
||||||
|
|||||||
Reference in New Issue
Block a user