Skip to content

Instantly share code, notes, and snippets.

@Augusent
Last active May 17, 2017 18:27
Show Gist options
  • Save Augusent/0f3068257906fe678c5137c7149a3dae to your computer and use it in GitHub Desktop.
Save Augusent/0f3068257906fe678c5137c7149a3dae to your computer and use it in GitHub Desktop.
View (form) Example
public class MainRegistrationActivity
extends BaseMviActivity<MainRegistrationView, MainRegistrationModel, MainRegistrationPresenter>
implements MainRegistrationView {
private ActivityRegistrationMainBinding binding;
public static Intent getIntent(Context context) {
return new Intent(context, MainRegistrationActivity.class);
}
@NonNull @Override public MainRegistrationPresenter createPresenter() {
return new MainRegistrationPresenter();
}
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_registration_main);
binding.appBarLayout.collapsingLayout.setExpandedTitleTypeface(Typeface.DEFAULT_BOLD);
binding.phoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher("US"));
setTitle(R.string.registration);
setSupportActionBar(binding.appBarLayout.toolbar);
assert getSupportActionBar() != null;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override public void render(MainRegistrationModel model) {
super.render(model);
binding.setModel(model);
}
@Override public Observable<Boolean> loadUser() {
return Observable.just(true);
}
@Override public Observable<UpdateUserAction> confirmations() {
return RxView.clicks(binding.nextButton)
.map(click -> binding.getModel().userBuilder().build())
.map(UpdateUserAction::new);
}
@Override public Observable<String> email() {
return RxTextView.textChanges(binding.emailText).map(String::valueOf);
}
@Override public Observable<String> firstName() {
return RxTextView.textChanges(binding.firstName).map(String::valueOf);
}
@Override public Observable<String> lastName() {
return RxTextView.textChanges(binding.lastName).map(String::valueOf);
}
@Override public Observable<String> phone() {
return RxTextView.textChanges(binding.phoneText).map(String::valueOf);
}
@Override public Observable<String> address() {
return RxTextView.textChanges(binding.addressText).map(String::valueOf);
}
@Override public Observable<String> city() {
return RxTextView.textChanges(binding.cityText).map(String::valueOf);
}
@Override public Observable<String> state() {
return RxTextView.textChanges(binding.stateText).map(String::valueOf);
}
@Override public Observable<String> zipCode() {
return RxTextView.textChanges(binding.zipCodeText).map(String::valueOf);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment