You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.8 KiB
76 lines
2.8 KiB
package com.community.pocket.ui.main.ui.visitor.appointment;
|
|
|
|
import android.os.Bundle;
|
|
import android.text.Editable;
|
|
|
|
import androidx.lifecycle.MutableLiveData;
|
|
|
|
import com.community.pocket.R;
|
|
import com.community.pocket.data.main.visitor.VisitorRequest;
|
|
import com.community.pocket.ui.main.ui.share.BaseViewModel;
|
|
import com.community.pocket.ui.main.ui.share.SearchViewModel;
|
|
import com.community.pocket.util.Param;
|
|
import com.community.pocket.util.ValidUtil;
|
|
|
|
/**
|
|
* 管理访客UI数据
|
|
*/
|
|
public class VisitorViewModel extends BaseViewModel<VisitorRequest> implements SearchViewModel {
|
|
|
|
//访客预约表单校验信息
|
|
private MutableLiveData<VisitorFormState> visitorFormState = new MutableLiveData<>();
|
|
|
|
//访客预约请求结果
|
|
private MutableLiveData<VisitorResponse> visitorResponse = new MutableLiveData<>();
|
|
|
|
//检索预约人
|
|
private MutableLiveData<VisitorPeopleResponse> searchPeopleReq = new MutableLiveData<>();
|
|
|
|
|
|
MutableLiveData<VisitorFormState> getVisitorFormState() {
|
|
return visitorFormState;
|
|
}
|
|
|
|
MutableLiveData<VisitorResponse> getVisitorResponse() {
|
|
return visitorResponse;
|
|
}
|
|
|
|
MutableLiveData<VisitorPeopleResponse> getSearchPeopleReq() {
|
|
return searchPeopleReq;
|
|
}
|
|
|
|
//访客预约
|
|
void appointment(String appointment, String chooseDate, String chooseTime, String notes, boolean checked) {
|
|
getRequest().appointment(visitorResponse, appointment, chooseDate, chooseTime, notes, checked);
|
|
}
|
|
|
|
//检索预约人
|
|
private void searchPeople(String name, Boolean isOutPeople) {
|
|
getRequest().searchPeople(searchPeopleReq, name, isOutPeople);
|
|
}
|
|
|
|
//校验访客预约表单
|
|
void appointmentDataChanged(Editable appointment, Editable chooseDate, String today, Editable notes) {
|
|
if (!ValidUtil.usernamevalid(appointment.toString())) {
|
|
visitorFormState.setValue(new VisitorFormState(R.string.invalid_username, null, null));
|
|
} else if (!ValidUtil.dateValid(chooseDate.toString())) {
|
|
visitorFormState.setValue(new VisitorFormState(null, R.string.invalid_date, null));
|
|
} else if (!ValidUtil.before(today, chooseDate.toString())) {
|
|
visitorFormState.setValue(new VisitorFormState(null, R.string.visitor_invalid_date, null));
|
|
} else if (!ValidUtil.notesValid(notes.toString())) {
|
|
visitorFormState.setValue(new VisitorFormState(null, null, R.string.invalid_notes));
|
|
} else {
|
|
visitorFormState.setValue(new VisitorFormState(true));
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void search(String content, Bundle data) {
|
|
searchPeople(content, data.getBoolean(Param.isOutPeople.name()));
|
|
}
|
|
|
|
@Override
|
|
protected VisitorRequest getRequest() {
|
|
return VisitorRequest.getInstance();
|
|
}
|
|
}
|
|
|