1
0
Fork 0

For #6436: Adds snackbar for failed download (#6648)

master
Sawyer Blatz 2019-11-22 12:46:57 -08:00 committed by GitHub
parent 5cc1ea951c
commit bcf80d0e0b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 4 deletions

View File

@ -271,7 +271,14 @@ abstract class BaseBrowserFragment : Fragment(), BackHandler, SessionManager.Obs
context = context,
didFail = downloadJobStatus == AbstractFetchDownloadService.DownloadJobStatus.FAILED,
download = download,
tryAgain = downloadFeature::tryAgain
tryAgain = downloadFeature::tryAgain,
onCannotOpenFile = {
FenixSnackbar.make(view, Snackbar.LENGTH_SHORT)
.setText(context.getString(R.string.mozac_feature_downloads_could_not_open_file))
.setAnchorView(browserToolbarView.view)
.show()
}
)
dialog.show()
}

View File

@ -24,7 +24,8 @@ class DownloadNotificationBottomSheetDialog(
context: Context,
private val download: DownloadState,
private val didFail: Boolean,
private val tryAgain: (Long) -> Unit
private val tryAgain: (Long) -> Unit,
private val onCannotOpenFile: () -> Unit
// We must pass in the BottomSheetDialog theme for the transparent window background to apply properly
) : BottomSheetDialog(context, R.style.Theme_MaterialComponents_BottomSheetDialog) {
override fun onCreate(savedInstanceState: Bundle?) {
@ -64,11 +65,16 @@ class DownloadNotificationBottomSheetDialog(
mozilla.components.feature.downloads.R.string.mozac_feature_downloads_button_open
)
setOnClickListener {
AbstractFetchDownloadService.openFile(
val fileWasOpened = AbstractFetchDownloadService.openFile(
context = context,
contentType = download.contentType,
filePath = download.filePath
)
if (!fileWasOpened) {
onCannotOpenFile()
}
context.metrics.track(Event.InAppNotificationDownloadOpen)
dismiss()
}
@ -83,7 +89,6 @@ class DownloadNotificationBottomSheetDialog(
setOnShowListener {
window?.apply {
// setBackgroundDrawableResource(android.R.color.transparent)
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,