Dialog notifying user of failure when media upload fails (#3135)

* First attempt at user notifications of failure when media upload fails

* Drafts alert displays alert

* ktLint

* Fix defaced 46.json, add 47.json

* Mock draftsNeedUserAlert in MainActivityTest to prevent spurious failure

* Friendlier posts-failed message

* Create DraftsAlert object

* DraftsAlert works

* Not the cleanest, but DraftsAlert works with multiple accounts

* Use plural strings

* KtLint

* Clean up debug prints

* Simplify DraftsAlert per Conny suggestions

* Text change suggested by Conny

* ktLint again

* Back out test changes

* Fix MainActivityTest for new approach

* Tweak debug log

* Do not use GlobalScope for coroutines
This commit is contained in:
mcclure 2023-01-27 14:50:45 -05:00 committed by GitHub
commit b2511d782d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 1138 additions and 2 deletions

View file

@ -61,6 +61,7 @@ import com.keylesspalace.tusky.components.compose.ComposeActivity
import com.keylesspalace.tusky.components.report.ReportActivity
import com.keylesspalace.tusky.databinding.ActivityAccountBinding
import com.keylesspalace.tusky.db.AccountEntity
import com.keylesspalace.tusky.db.DraftsAlert
import com.keylesspalace.tusky.di.ViewModelFactory
import com.keylesspalace.tusky.entity.Account
import com.keylesspalace.tusky.entity.Relationship
@ -99,6 +100,8 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Any>
@Inject
lateinit var viewModelFactory: ViewModelFactory
@Inject
lateinit var draftsAlert: DraftsAlert
private val viewModel: AccountViewModel by viewModels { viewModelFactory }
@ -386,6 +389,9 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
viewModel.noteSaved.observe(this) {
binding.saveNoteInfo.visible(it, View.INVISIBLE)
}
// "Post failed" dialog should display in this activity
draftsAlert.observeInContext(this, true)
}
/**