Saya mencoba mengikuti pola desain MVP menggunakan RxJava2. Saya baru dalam hal itu. Saat saya meminta data dari API, di Presenter saya memanggil Model saya seperti itu:
mModel.getDataFromAPI()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> {
// Do something with the data
}, throwable -> {
// A wild error appears!
// TODO: Display a dialog
});
Ketika ada kesalahan, saya ingin menampilkan dialog berisi pesan kepada pengguna.
Jadi yang saya pikirkan adalah membuat displayErrorDialog(String message)
pada Tampilan. Tapi masalahnya adalah: Saya memanggil API sedikit di mana saja di aplikasi, jadi itu berarti SEMUA pandangan saya harus mengimplementasikan metode ini!
Dialog perlu ditampilkan oleh Tampilan:
- untuk mengikuti pola desain MVP
- karena saya memerlukan Konteks saat ini untuk menampilkan dialog.
Saya mencari solusi yang lebih baik untuk tidak harus menerapkan metode yang sama setiap kali saya memiliki pandangan baru.