Skip to content

Commit dec8e44

Browse files
anhanh11001iamareebjamal
authored andcommitted
fix: pop message called multiple times (#2278)
1 parent ce78495 commit dec8e44

31 files changed

+64
-50
lines changed

app/src/fdroid/java/org/fossasia/openevent/general/search/location/GeoLocationViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class GeoLocationViewModel(private val locationService: LocationService) : ViewM
1111
private val mutableLocation = SingleLiveEvent<String>()
1212
val location: LiveData<String> = mutableLocation
1313
private val mutableErrorMessage = SingleLiveEvent<String>()
14-
val errorMessage: LiveData<String> = mutableErrorMessage
14+
val errorMessage: SingleLiveEvent<String> = mutableErrorMessage
1515
private val compositeDisposable = CompositeDisposable()
1616

1717
fun configure() {

app/src/main/java/org/fossasia/openevent/general/StartupViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class StartupViewModel(
3838
private val mutableResetPasswordEmail = MutableLiveData<String>()
3939
val resetPasswordEmail: LiveData<String> = mutableResetPasswordEmail
4040
private val mutableMessage = SingleLiveEvent<String>()
41-
val message: LiveData<String> = mutableMessage
41+
val message: SingleLiveEvent<String> = mutableMessage
4242

4343
fun isLoggedIn() = authHolder.isLoggedIn()
4444

app/src/main/java/org/fossasia/openevent/general/about/AboutEventViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class AboutEventViewModel(private val eventService: EventService, private val re
2222
private val mutableEvent = MutableLiveData<Event>()
2323
val event: LiveData<Event> = mutableEvent
2424
private val mutableError = SingleLiveEvent<String>()
25-
val error: LiveData<String> = mutableError
25+
val error: SingleLiveEvent<String> = mutableError
2626

2727
fun loadEvent(id: Long) {
2828
if (id == -1L) {
29-
mutableError.value = Resource().getString(R.string.error_fetching_event_message)
29+
mutableError.value = resource.getString(R.string.error_fetching_event_message)
3030
return
3131
}
3232
compositeDisposable += eventService.getEvent(id)

app/src/main/java/org/fossasia/openevent/general/attendees/AttendeeViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class AttendeeViewModel(
6363
private val mutableTicketSoldOut = MutableLiveData<Boolean>()
6464
val ticketSoldOut: LiveData<Boolean> = mutableTicketSoldOut
6565
private val mutableMessage = SingleLiveEvent<String>()
66-
val message: LiveData<String> = mutableMessage
66+
val message: SingleLiveEvent<String> = mutableMessage
6767
private val mutableEvent = MutableLiveData<Event>()
6868
val event: LiveData<Event> = mutableEvent
6969
private val mutableUser = MutableLiveData<User>()

app/src/main/java/org/fossasia/openevent/general/auth/AuthViewModel.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import androidx.lifecycle.ViewModel
66
import org.fossasia.openevent.general.R
77
import io.reactivex.disposables.CompositeDisposable
88
import io.reactivex.rxkotlin.plusAssign
9+
import org.fossasia.openevent.general.common.SingleLiveEvent
910
import org.fossasia.openevent.general.data.Network
1011
import org.fossasia.openevent.general.data.Resource
1112
import org.fossasia.openevent.general.utils.extensions.withDefaultSchedulers
@@ -20,10 +21,10 @@ class AuthViewModel(
2021
private val compositeDisposable = CompositeDisposable()
2122
private val mutableProgress = MutableLiveData<Boolean>()
2223
val progress: LiveData<Boolean> = mutableProgress
23-
val mutableStatus = MutableLiveData<Boolean>()
24+
val mutableStatus = SingleLiveEvent<Boolean>()
2425
val isUserExists: LiveData<Boolean> = mutableStatus
25-
private val mutableError = MutableLiveData<String>()
26-
val error: LiveData<String> = mutableError
26+
private val mutableError = SingleLiveEvent<String>()
27+
val error: SingleLiveEvent<String> = mutableError
2728

2829
fun checkUser(email: String) {
2930
if (!network.isNetworkConnected()) {

app/src/main/java/org/fossasia/openevent/general/auth/EditProfileViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class EditProfileViewModel(
2626
private val mutableUser = MutableLiveData<User>()
2727
val user: LiveData<User> = mutableUser
2828
private val mutableMessage = SingleLiveEvent<String>()
29-
val message: LiveData<String> = mutableMessage
29+
val message: SingleLiveEvent<String> = mutableMessage
3030
private var updatedImageTemp = MutableLiveData<File>()
3131
var avatarUpdated = false
3232
var encodedImage: String? = null

app/src/main/java/org/fossasia/openevent/general/auth/LoginViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class LoginViewModel(
2828
private val mutableUser = MutableLiveData<User>()
2929
val user: LiveData<User> = mutableUser
3030
private val mutableError = SingleLiveEvent<String>()
31-
val error: LiveData<String> = mutableError
31+
val error: SingleLiveEvent<String> = mutableError
3232
private val mutableShowNoInternetDialog = MutableLiveData<Boolean>()
3333
val showNoInternetDialog: LiveData<Boolean> = mutableShowNoInternetDialog
3434
private val mutableRequestTokenSuccess = MutableLiveData<Boolean>()

app/src/main/java/org/fossasia/openevent/general/auth/ProfileFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ class ProfileFragment : Fragment(), BottomIconDoubleClick {
118118
.nonNull()
119119
.observe(viewLifecycleOwner, Observer {
120120
rootView.snackbar(it)
121-
profileViewModel.mutableMessage.postValue(null)
122121
})
123122

124123
profileViewModel.accountDeleted

app/src/main/java/org/fossasia/openevent/general/auth/ProfileViewModel.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@ import io.reactivex.rxkotlin.plusAssign
99
import org.fossasia.openevent.general.utils.extensions.withDefaultSchedulers
1010
import org.fossasia.openevent.general.common.SingleLiveEvent
1111
import org.fossasia.openevent.general.data.Resource
12-
import org.fossasia.openevent.general.event.EventService
1312
import timber.log.Timber
1413

1514
class ProfileViewModel(
1615
private val authService: AuthService,
17-
private val resource: Resource,
18-
private val eventService: EventService
16+
private val resource: Resource
1917
) : ViewModel() {
2018

2119
private val compositeDisposable = CompositeDisposable()
@@ -24,8 +22,8 @@ class ProfileViewModel(
2422
val progress: LiveData<Boolean> = mutableProgress
2523
private val mutableUser = MutableLiveData<User>()
2624
val user: LiveData<User> = mutableUser
27-
val mutableMessage = SingleLiveEvent<String>()
28-
val message: LiveData<String> = mutableMessage
25+
private val mutableMessage = SingleLiveEvent<String>()
26+
val message: SingleLiveEvent<String> = mutableMessage
2927
private val mutableUpdatedUser = MutableLiveData<User>()
3028
val updatedUser: LiveData<User> = mutableUpdatedUser
3129
private val mutableUpdatedPassword = MutableLiveData<String>()
@@ -67,13 +65,13 @@ class ProfileViewModel(
6765
.withDefaultSchedulers()
6866
.subscribe({
6967
if (it.passwordChanged) {
70-
mutableMessage.value = "Password changed successfully!"
68+
mutableMessage.value = resource.getString(R.string.change_password_success_message)
7169
mutableUpdatedPassword.value = newPassword
7270
}
7371
}, {
7472
if (it.message.toString() == "HTTP 400 BAD REQUEST")
75-
mutableMessage.value = "Incorrect Old Password provided!"
76-
else mutableMessage.value = "Unable to change password!"
73+
mutableMessage.value = resource.getString(R.string.incorrect_old_password_message)
74+
else mutableMessage.value = resource.getString(R.string.change_password_fail_message)
7775
})
7876
}
7977

app/src/main/java/org/fossasia/openevent/general/auth/SignUpViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ class SignUpViewModel(
2424
private val mutableProgress = MutableLiveData<Boolean>()
2525
val progress: LiveData<Boolean> = mutableProgress
2626
private val mutableError = SingleLiveEvent<String>()
27-
val error: LiveData<String> = mutableError
27+
val error: SingleLiveEvent<String> = mutableError
2828
private val mutableShowNoInternetDialog = MutableLiveData<Boolean>()
2929
val showNoInternetDialog: LiveData<Boolean> = mutableShowNoInternetDialog
3030
private val mutableLoggedIn = SingleLiveEvent<Boolean>()
31-
var loggedIn: LiveData<Boolean> = mutableLoggedIn
31+
var loggedIn: SingleLiveEvent<Boolean> = mutableLoggedIn
3232

3333
var email: String? = null
3434
var password: String? = null

app/src/main/java/org/fossasia/openevent/general/di/Modules.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ val viewModelModule = module {
238238
viewModel { LoginViewModel(get(), get(), get(), get()) }
239239
viewModel { EventsViewModel(get(), get(), get(), get(), get(), get()) }
240240
viewModel { StartupViewModel(get(), get(), get(), get(), get(), get()) }
241-
viewModel { ProfileViewModel(get(), get(), get()) }
241+
viewModel { ProfileViewModel(get(), get()) }
242242
viewModel { SignUpViewModel(get(), get(), get()) }
243243
viewModel {
244244
EventDetailsViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get()) }
@@ -253,7 +253,7 @@ val viewModelModule = module {
253253
viewModel { AboutEventViewModel(get(), get()) }
254254
viewModel { EventFAQViewModel(get(), get()) }
255255
viewModel { FavoriteEventsViewModel(get(), get(), get()) }
256-
viewModel { SettingsViewModel(get(), get()) }
256+
viewModel { SettingsViewModel(get(), get(), get()) }
257257
viewModel { OrderCompletedViewModel(get(), get(), get(), get()) }
258258
viewModel { OrdersUnderUserViewModel(get(), get(), get(), get(), get()) }
259259
viewModel { OrderDetailsViewModel(get(), get(), get(), get()) }

app/src/main/java/org/fossasia/openevent/general/event/EventDetailsViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class EventDetailsViewModel(
6262
private val mutableUser = MutableLiveData<User>()
6363
val user: LiveData<User> = mutableUser
6464
private val mutablePopMessage = SingleLiveEvent<String>()
65-
val popMessage: LiveData<String> = mutablePopMessage
65+
val popMessage: SingleLiveEvent<String> = mutablePopMessage
6666
private val mutableEvent = MutableLiveData<Event>()
6767
val event: LiveData<Event> = mutableEvent
6868
private val mutableEventFeedback = MutableLiveData<List<Feedback>>()

app/src/main/java/org/fossasia/openevent/general/event/EventsViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class EventsViewModel(
4141
private val mutablePagedEvents = MutableLiveData<PagedList<Event>>()
4242
val pagedEvents: LiveData<PagedList<Event>> = mutablePagedEvents
4343
private val mutableMessage = SingleLiveEvent<String>()
44-
val message: LiveData<String> = mutableMessage
44+
val message: SingleLiveEvent<String> = mutableMessage
4545
var lastSearch = ""
4646
private val mutableSavedLocation = MutableLiveData<String>()
4747
val savedLocation: LiveData<String> = mutableSavedLocation

app/src/main/java/org/fossasia/openevent/general/event/faq/EventFAQViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class EventFAQViewModel(private val eventService: EventService, private val reso
1818
private val mutableEventFAQ = MutableLiveData<List<EventFAQ>>()
1919
val eventFAQ: LiveData<List<EventFAQ>> = mutableEventFAQ
2020
private val mutableError = SingleLiveEvent<String>()
21-
val error: LiveData<String> = mutableError
21+
val error: SingleLiveEvent<String> = mutableError
2222

2323
fun loadEventFaq(id: Long) {
2424
if (id == -1L) {

app/src/main/java/org/fossasia/openevent/general/favorite/FavoriteEventsViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class FavoriteEventsViewModel(
2626
private val mutableProgress = MutableLiveData<Boolean>()
2727
val progress: LiveData<Boolean> = mutableProgress
2828
private val mutableMessage = SingleLiveEvent<String>()
29-
val message: LiveData<String> = mutableMessage
29+
val message: SingleLiveEvent<String> = mutableMessage
3030
private val mutableEvents = MutableLiveData<List<Event>>()
3131
val events: LiveData<List<Event>> = mutableEvents
3232

app/src/main/java/org/fossasia/openevent/general/feedback/FeedbackViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class FeedbackViewModel(
1919
private val mutableFeedback = MutableLiveData<List<Feedback>>()
2020
val feedback: LiveData<List<Feedback>> = mutableFeedback
2121
private val mutableMessage = SingleLiveEvent<String>()
22-
val message: LiveData<String> = mutableMessage
22+
val message: SingleLiveEvent<String> = mutableMessage
2323
private val mutableProgress = MutableLiveData<Boolean>(false)
2424
val progress: LiveData<Boolean> = mutableProgress
2525

app/src/main/java/org/fossasia/openevent/general/notification/NotificationViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class NotificationViewModel(
3131
val noInternet: LiveData<Boolean> = mutableNoInternet
3232

3333
private val mutableError = SingleLiveEvent<String>()
34-
val error: LiveData<String> = mutableError
34+
val error: SingleLiveEvent<String> = mutableError
3535

3636
fun getId() = authHolder.getId()
3737

app/src/main/java/org/fossasia/openevent/general/order/OrderCompletedViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class OrderCompletedViewModel(
3232
private val compositeDisposable = CompositeDisposable()
3333

3434
private val mutableMessage = SingleLiveEvent<String>()
35-
val message: LiveData<String> = mutableMessage
35+
val message: SingleLiveEvent<String> = mutableMessage
3636
private val mutableEvent = MutableLiveData<Event>()
3737
val event: LiveData<Event> = mutableEvent
3838
private val mutableProgress = MutableLiveData<Boolean>()

app/src/main/java/org/fossasia/openevent/general/order/OrdersUnderUserViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class OrdersUnderUserViewModel(
2828

2929
val connection: LiveData<Boolean> = mutableConnectionLiveData
3030
private val mutableMessage = SingleLiveEvent<String>()
31-
val message: LiveData<String> = mutableMessage
31+
val message: SingleLiveEvent<String> = mutableMessage
3232
private val mutableEventAndOrderPaged = MutableLiveData<PagedList<Pair<Event, Order>>>()
3333
val eventAndOrderPaged: LiveData<PagedList<Pair<Event, Order>>> = mutableEventAndOrderPaged
3434
private val mutableShowShimmerResults = MutableLiveData<Boolean>()

app/src/main/java/org/fossasia/openevent/general/search/SearchResultsViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class SearchResultsViewModel(
4747
val pagedEvents: LiveData<PagedList<Event>> = mutablePagedEvents
4848
private val mutableEventTypes = MutableLiveData<List<EventType>>()
4949
private val mutableMessage = SingleLiveEvent<String>()
50-
val message: LiveData<String> = mutableMessage
50+
val message: SingleLiveEvent<String> = mutableMessage
5151
val eventTypes: LiveData<List<EventType>> = mutableEventTypes
5252
val connection: LiveData<Boolean> = mutableConnectionLiveData
5353

app/src/main/java/org/fossasia/openevent/general/sessions/SessionViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class SessionViewModel(
2626
private val mutableProgress = MutableLiveData<Boolean>(true)
2727
val progress: LiveData<Boolean> = mutableProgress
2828
private val mutableError = SingleLiveEvent<String>()
29-
val error: LiveData<String> = mutableError
29+
val error: SingleLiveEvent<String> = mutableError
3030
private val mutableSpeakers = MutableLiveData<List<Speaker>>()
3131
val speakersUnderSession: LiveData<List<Speaker>> = mutableSpeakers
3232

app/src/main/java/org/fossasia/openevent/general/settings/SettingsViewModel.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,25 @@ import androidx.lifecycle.ViewModel
66
import io.reactivex.disposables.CompositeDisposable
77
import io.reactivex.rxkotlin.plusAssign
88
import org.fossasia.openevent.general.BuildConfig
9+
import org.fossasia.openevent.general.R
910
import org.fossasia.openevent.general.utils.extensions.withDefaultSchedulers
1011
import org.fossasia.openevent.general.auth.AuthService
1112
import org.fossasia.openevent.general.common.SingleLiveEvent
1213
import org.fossasia.openevent.general.data.Preference
14+
import org.fossasia.openevent.general.data.Resource
1315
import timber.log.Timber
1416

1517
const val API_URL = "apiUrl"
1618

1719
class SettingsViewModel(
1820
private val authService: AuthService,
19-
private val preference: Preference
21+
private val preference: Preference,
22+
private val resource: Resource
2023
) : ViewModel() {
2124

2225
private val compositeDisposable = CompositeDisposable()
2326
private val mutableSnackBar = SingleLiveEvent<String>()
24-
val snackBar: LiveData<String> = mutableSnackBar
27+
val snackBar: SingleLiveEvent<String> = mutableSnackBar
2528
private val mutableUpdatedPassword = MutableLiveData<String>()
2629
val updatedPassword: LiveData<String> = mutableUpdatedPassword
2730

@@ -50,13 +53,13 @@ class SettingsViewModel(
5053
.withDefaultSchedulers()
5154
.subscribe({
5255
if (it.passwordChanged) {
53-
mutableSnackBar.value = "Password changed successfully!"
56+
mutableSnackBar.value = resource.getString(R.string.change_password_success_message)
5457
mutableUpdatedPassword.value = newPassword
5558
}
5659
}, {
5760
if (it.message.toString() == "HTTP 400 BAD REQUEST")
58-
mutableSnackBar.value = "Incorrect Old Password provided!"
59-
else mutableSnackBar.value = "Unable to change password!"
61+
mutableSnackBar.value = resource.getString(R.string.incorrect_old_password_message)
62+
else mutableSnackBar.value = resource.getString(R.string.change_password_fail_message)
6063
})
6164
}
6265

app/src/main/java/org/fossasia/openevent/general/speakercall/EditSpeakerViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class EditSpeakerViewModel(
2929
private val compositeDisposable = CompositeDisposable()
3030

3131
private val mutableMessage = SingleLiveEvent<String>()
32-
val message: LiveData<String> = mutableMessage
32+
val message: SingleLiveEvent<String> = mutableMessage
3333
private val mutableProgress = MutableLiveData<Boolean>(false)
3434
val progress: LiveData<Boolean> = mutableProgress
3535
private val mutableSpeaker = MutableLiveData<Speaker>()

app/src/main/java/org/fossasia/openevent/general/speakercall/SpeakersCallProposalFragment.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,12 @@ class SpeakersCallProposalFragment : Fragment(), ComplexBackPressFragment {
138138
.observe(viewLifecycleOwner, Observer {
139139
rootView.speakerProgressBar.isVisible = it
140140
})
141+
142+
speakersCallProposalViewModel.message
143+
.nonNull()
144+
.observe(viewLifecycleOwner, Observer {
145+
rootView.snackbar(it)
146+
})
141147
rootView.speakerInfoContainer.isExpanded = speakersCallProposalViewModel.isSpeakerInfoShown
142148

143149
rootView.titleLayout.setRequired()

app/src/main/java/org/fossasia/openevent/general/speakercall/SpeakersCallProposalViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class SpeakersCallProposalViewModel(
3030
private val compositeDisposable = CompositeDisposable()
3131

3232
private val mutableMessage = SingleLiveEvent<String>()
33-
val message: LiveData<String> = mutableMessage
33+
val message: SingleLiveEvent<String> = mutableMessage
3434
private val mutableSpeakerProgress = MutableLiveData(false)
3535
private val mutableProgress = MutableLiveData(false)
3636
val progress: LiveData<Boolean> = mutableProgress

app/src/main/java/org/fossasia/openevent/general/speakercall/SpeakersCallViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class SpeakersCallViewModel(
3535
private val mutableSessions = MutableLiveData<List<Session>>()
3636
val sessions: LiveData<List<Session>> = mutableSessions
3737
private val mutableMessage = SingleLiveEvent<String>()
38-
val message: LiveData<String> = mutableMessage
38+
val message: SingleLiveEvent<String> = mutableMessage
3939
private val mutableProgress = MutableLiveData(true)
4040
val progress: LiveData<Boolean> = mutableProgress
4141
private val mutableSpeaker = MutableLiveData<Speaker>()

app/src/main/java/org/fossasia/openevent/general/speakers/SpeakerViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class SpeakerViewModel(
2222
private val mutableSpeaker = MutableLiveData<Speaker>()
2323
val speaker: LiveData<Speaker> = mutableSpeaker
2424
private val mutableError = SingleLiveEvent<String>()
25-
val error: LiveData<String> = mutableError
25+
val error: SingleLiveEvent<String> = mutableError
2626

2727
fun loadSpeaker(id: Long) {
2828
if (id.equals(-1)) {
29-
mutableError.value = Resource().getString(R.string.error_fetching_event_message)
29+
mutableError.value = resource.getString(R.string.error_fetching_event_message)
3030
return
3131
}
3232
compositeDisposable += speakerService.fetchSpeaker(id)

app/src/main/java/org/fossasia/openevent/general/sponsor/SponsorsViewModel.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import io.reactivex.disposables.CompositeDisposable
77
import io.reactivex.rxkotlin.plusAssign
88
import org.fossasia.openevent.general.utils.extensions.withDefaultSchedulers
99
import org.fossasia.openevent.general.R
10+
import org.fossasia.openevent.general.common.SingleLiveEvent
1011
import org.fossasia.openevent.general.data.Resource
1112
import timber.log.Timber
1213

@@ -19,8 +20,8 @@ class SponsorsViewModel(
1920

2021
private val mutableSponsors = MutableLiveData<List<Sponsor>>()
2122
val sponsors: LiveData<List<Sponsor>> = mutableSponsors
22-
private val mutableError = MutableLiveData<String>()
23-
val error: LiveData<String> = mutableError
23+
private val mutableError = SingleLiveEvent<String>()
24+
val error: SingleLiveEvent<String> = mutableError
2425
private val mutableProgress = MutableLiveData<Boolean>()
2526
val progress: LiveData<Boolean> = mutableProgress
2627

app/src/main/java/org/fossasia/openevent/general/ticket/TicketsViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class TicketsViewModel(
3636
val tickets = MutableLiveData<List<Ticket>>()
3737
val connection: LiveData<Boolean> = mutableConnectionLiveData
3838
private val mutableError = SingleLiveEvent<String>()
39-
val error: LiveData<String> = mutableError
39+
val error: SingleLiveEvent<String> = mutableError
4040
private val mutableEvent = MutableLiveData<Event>()
4141
val event: LiveData<Event> = mutableEvent
4242
private val mutableDiscountCodes = MutableLiveData<DiscountCode>()

app/src/main/java/org/fossasia/openevent/general/utils/extensions/LiveDataExtensions.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.lifecycle.LifecycleOwner
44
import androidx.lifecycle.LiveData
55
import androidx.lifecycle.MediatorLiveData
66
import androidx.lifecycle.Observer
7+
import org.fossasia.openevent.general.common.SingleLiveEvent
78

89
class NonNullMediatorLiveData<T> : MediatorLiveData<T>()
910

@@ -13,6 +14,8 @@ fun <T> LiveData<T>.nonNull(): NonNullMediatorLiveData<T> {
1314
return mediator
1415
}
1516

17+
fun <T> SingleLiveEvent<T>.nonNull(): SingleLiveEvent<T> = this
18+
1619
fun <T> NonNullMediatorLiveData<T>.observe(owner: LifecycleOwner, observer: (t: T) -> Unit) {
1720
this.observe(owner, Observer {
1821
it?.let(observer)

0 commit comments

Comments
 (0)