Я пытаюсь позвонить в сеть по нажатию кнопки. Я использую оболочку singleLiveEvent, потому что данные нужно отправлять на сервер и получать ответ только по нажатию кнопки. Я использую залп для вызовов GET и POST. Я получаю ответ на репозиторий, но не на метод onChanged. Это становится нулевым из хранилища.
Класс представления модели
public void setResponseSingleLiveEvent(String url,Map param){
responseSingleLiveEvent.setValue(mRepository.changeUserPassword(url,param).getValue());
}
Репозиторий класса
public MutableLiveData<CommonServerResponse> changeUserPassword(String url, Map params) {
this.postParams = params;
final MutableLiveData<CommonServerResponse> responseMutableLiveData = new MutableLiveData<>();
VolleycustomRequest<CommonModel> volleycustomRequest = new VolleycustomRequest<CommonModel>(Request.Method.POST,
url, CommonModel.class,
(Response.Listener<CommonModel>)
response -> {
Log.d(TAG, "changeUserPassword: "+response);
responseMutableLiveData.setValue(new CommonServerResponse(response));
},
error -> {
responseMutableLiveData.setValue(new CommonServerResponse(VolleyErrorHelper.getMessage(error)));
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
};
AppController.getInstance().addToRequestque(volleycustomRequest);
return responseMutableLiveData;
}
Я хочу, чтобы данные отправлялись только при нажатии кнопки, а не в начале действия.