Drop installation error bottom sheet for notifications
Post user-readable error message in the notification as we already log the exception in the logcat. Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -220,7 +220,7 @@ class DownloadWorker @AssistedInject constructor(
|
||||
}
|
||||
|
||||
else -> {
|
||||
notifyStatus(DownloadStatus.FAILED)
|
||||
notifyStatus(status = DownloadStatus.FAILED, exception = exception)
|
||||
AuroraApp.events.send(
|
||||
InstallerEvent.Failed(
|
||||
packageName = download.packageName,
|
||||
@@ -390,7 +390,11 @@ class DownloadWorker @AssistedInject constructor(
|
||||
* Notifies the user of the current status of the download.
|
||||
* @param status Current [DownloadStatus]
|
||||
*/
|
||||
private suspend fun notifyStatus(status: DownloadStatus, isProgress: Boolean = false) {
|
||||
private suspend fun notifyStatus(
|
||||
status: DownloadStatus,
|
||||
isProgress: Boolean = false,
|
||||
exception: Exception? = null
|
||||
) {
|
||||
// Update status in database
|
||||
download.downloadStatus = status
|
||||
downloadDao.updateStatus(download.packageName, status)
|
||||
@@ -408,7 +412,9 @@ class DownloadWorker @AssistedInject constructor(
|
||||
else -> {}
|
||||
}
|
||||
|
||||
val notification = NotificationUtil.getDownloadNotification(context, download, icon)
|
||||
val notification = NotificationUtil.getDownloadNotification(
|
||||
context, download, icon, exception?.message
|
||||
)
|
||||
notificationManager.notify(
|
||||
if (isProgress) NOTIFICATION_ID else download.packageName.hashCode(),
|
||||
notification
|
||||
|
||||
@@ -90,7 +90,8 @@ object NotificationUtil {
|
||||
fun getDownloadNotification(
|
||||
context: Context,
|
||||
download: AuroraDownload,
|
||||
largeIcon: Bitmap? = null
|
||||
largeIcon: Bitmap? = null,
|
||||
message: String? = null
|
||||
): Notification {
|
||||
val builder = NotificationCompat.Builder(context, Constants.NOTIFICATION_CHANNEL_DOWNLOADS)
|
||||
builder.setSmallIcon(R.drawable.ic_notification_outlined)
|
||||
@@ -120,7 +121,7 @@ object NotificationUtil {
|
||||
|
||||
DownloadStatus.FAILED -> {
|
||||
builder.setSmallIcon(R.drawable.ic_download_fail)
|
||||
builder.setContentText(context.getString(R.string.download_failed))
|
||||
builder.setContentText(message ?: context.getString(R.string.download_failed))
|
||||
builder.color = Color.RED
|
||||
builder.setCategory(Notification.CATEGORY_ERROR)
|
||||
}
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
* Aurora Store
|
||||
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
|
||||
*
|
||||
* Aurora Store is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Aurora Store is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
package com.aurora.store.view.ui.sheets
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import coil3.load
|
||||
import coil3.request.transformations
|
||||
import coil3.transform.CircleCropTransformation
|
||||
import com.aurora.extensions.copyToClipBoard
|
||||
import com.aurora.extensions.toast
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.SheetInstallErrorBinding
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class InstallErrorDialogSheet : BaseDialogSheet<SheetInstallErrorBinding>() {
|
||||
|
||||
private val args: InstallErrorDialogSheetArgs by navArgs()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
binding.imgIcon.load(args.app.iconArtwork.url) {
|
||||
transformations(CircleCropTransformation())
|
||||
}
|
||||
|
||||
binding.txtLine1.text = args.app.displayName
|
||||
binding.txtLine2.text = args.error
|
||||
binding.txtLine3.text = args.extra
|
||||
|
||||
binding.btnPrimary.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
binding.btnSecondary.setOnClickListener {
|
||||
requireContext().copyToClipBoard(args.extra)
|
||||
requireContext().toast(R.string.toast_clipboard_copied)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user