mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Add AlertDialog displaying specific error message when categories search API call returns an error
This commit is contained in:
parent
ea7f0770c5
commit
0a6e7079b8
3 changed files with 22 additions and 2 deletions
|
|
@ -17,6 +17,11 @@ interface CategoriesContract {
|
||||||
|
|
||||||
fun showError(stringResourceId: Int)
|
fun showError(stringResourceId: Int)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a cancelable AlertDialog with a given message.
|
||||||
|
*/
|
||||||
|
fun showErrorDialog(message: String)
|
||||||
|
|
||||||
fun setCategories(categories: List<CategoryItem>?)
|
fun setCategories(categories: List<CategoryItem>?)
|
||||||
|
|
||||||
fun goToNextScreen()
|
fun goToNextScreen()
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.IO_THREAD
|
||||||
import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.MAIN_THREAD
|
import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.MAIN_THREAD
|
||||||
import fr.free.nrw.commons.repository.UploadRepository
|
import fr.free.nrw.commons.repository.UploadRepository
|
||||||
import fr.free.nrw.commons.upload.depicts.proxy
|
import fr.free.nrw.commons.upload.depicts.proxy
|
||||||
|
import fr.free.nrw.commons.wikidata.mwapi.MwIOException
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
import io.reactivex.Scheduler
|
import io.reactivex.Scheduler
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
|
|
@ -75,7 +76,12 @@ class CategoriesPresenter
|
||||||
},
|
},
|
||||||
{ t: Throwable? ->
|
{ t: Throwable? ->
|
||||||
view.showProgress(false)
|
view.showProgress(false)
|
||||||
view.showError(R.string.no_categories_found)
|
view.showError(R.string.error_loading_categories)
|
||||||
|
val mwException = t as? MwIOException
|
||||||
|
view.showErrorDialog(
|
||||||
|
if (mwException == null) ""
|
||||||
|
else "\n${mwException.error.title} / ${mwException.error.details}"
|
||||||
|
)
|
||||||
Timber.e(t)
|
Timber.e(t)
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.jakewharton.rxbinding2.view.RxView
|
import com.jakewharton.rxbinding2.view.RxView
|
||||||
|
|
@ -32,7 +33,6 @@ import io.reactivex.Notification
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.disposables.Disposable
|
import io.reactivex.disposables.Disposable
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.util.Objects
|
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
@ -199,6 +199,15 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
|
||||||
binding?.tilContainerSearch?.error = getString(stringResourceId)
|
binding?.tilContainerSearch?.error = getString(stringResourceId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun showErrorDialog(message: String) {
|
||||||
|
AlertDialog
|
||||||
|
.Builder(requireContext())
|
||||||
|
.setMessage(getString(R.string.error_loading_categories) + "\n" + message)
|
||||||
|
.setCancelable(false)
|
||||||
|
.setNegativeButton(R.string.ok){_,_ -> }
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
|
||||||
override fun setCategories(categories: List<CategoryItem>?) {
|
override fun setCategories(categories: List<CategoryItem>?) {
|
||||||
if (adapter == null) {
|
if (adapter == null) {
|
||||||
Timber.e("Adapter is null in setCategories")
|
Timber.e("Adapter is null in setCategories")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue