Here I think to transfer my activism so that it corresponds to the MVP approach.
M is where the data is,
V is self activation (buttons and views)
P is where the logic is
So in my case, I have no data in the activation ... There is just an activation in which the user fills in the data and they are checked, can I just make a VP without M ?
Or am I thinking wrong?
Here is the class
public final class ActivityUserDataScreen extends AppCompatActivity { private static String gender; private static int inputHeight; private static int inputWeight; private TextInputLayout tilUserName; private int backPressedQ = 0; private String avatarName; private static final String MEN = "men"; private static final String WOMEN = "men"; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fabric.with(this, new Crashlytics()); setContentView(R.layout.activity_user_data_screen); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setSupportActionBar((Toolbar) findViewById(R.id.tool_bar)); context = getApplicationContext(); initNumberPicker(); initVar(); } private void initNumberPicker() { NumberPicker pickerHeight = (NumberPicker) findViewById(R.id.pickerHeight); UtilClass.setDividerColor(pickerHeight, UtilClass.getMyColor(context, R.color.ntz_color_yellow)); pickerHeight.setOnValueChangedListener(changeListener); pickerHeight.setMaxValue(220); pickerHeight.setMinValue(130); pickerHeight.setValue(States.HEIGHT_DEFAULT); NumberPicker pickerWeight = (NumberPicker) findViewById(R.id.pickerWeight); UtilClass.setDividerColor(pickerWeight, UtilClass.getMyColor(context, R.color.ntz_color_yellow)); pickerWeight.setOnValueChangedListener(changeListener); pickerWeight.setMaxValue(120); pickerWeight.setMinValue(35); pickerWeight.setValue(States.WEIGHT_DEFAULT); } private void initVar() { tilUserName = (TextInputLayout) findViewById(R.id.tilUserName); SwitchButton switchButton = (SwitchButton) findViewById(R.id.sb_custom); switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){ gender = WOMEN; }else { gender = MEN; } } }); EditText etAvatarName = (EditText) findViewById(R.id.etAvatarName); etAvatarName.setText(getResources().getString(R.string.avatar)); } private NumberPicker.OnValueChangeListener changeListener = new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { switch (picker.getId()) { case R.id.pickerHeight: inputHeight = newVal; break; case R.id.pickerWeight: inputWeight = newVal; break; } } }; @Override public final void onBackPressed() { UtilClass.processClick(context); if (backPressedQ == 1) { backPressedQ = 0; super.onBackPressed(); overridePendingTransition(R.anim.open_main, R.anim.close_next); } else { backPressedQ++; Toast.makeText(this, "Press again to exit", Toast.LENGTH_SHORT).show(); } //Обнуление счётчика через 5 секунд final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { backPressedQ = 0; } }, 5000); } public final void goNext(View view) { UtilClass.processClick(context); EditText editText = tilUserName.getEditText(); Editable editable = null; if (editText != null) { editable = editText.getText(); } if (editable != null) { avatarName = editable.toString(); } if (!isValidAvatarName()) return; saveUserData(); MetadataSaver saver = new MetadataSaver(context); saver.saveFirstUserInfo(); saver.saveDeviceInfo(); PreferencesHelper.savePref(context, States.STILL_NOT_FINISH, true); UtilClass.goToNextActivity(ActivityUserDataScreen.this, ActivityVideo.class); } private void saveUserData(){ saveAvatarGender(); saveAvatarHeight(); saveAvatarWeight(); saveAvatarName(); } private void saveAvatarGender(){ if (gender == null){ gender = MEN; } PreferencesHelper.savePref(context, States.AVATAR_GENDER, gender); } private boolean isValidAvatarName() { if (UtilClass.isTextEmpty(avatarName)) { tilUserName.setErrorEnabled(true); tilUserName.setError(getResources().getString(R.string.fill_your_avatar_name)); return false; } if (avatarName.contains(" ")) { avatarName = avatarName.replace(" ", ""); } if (!UtilClass.isLatinAlphabet(avatarName)) { tilUserName.setErrorEnabled(true); tilUserName.setError(getResources().getString(R.string.avatar_name_in_english)); return false; } if (!UtilClass.isNameFree(context, avatarName)) { tilUserName.setErrorEnabled(true); tilUserName.setError(getResources().getString(R.string.avatar_name_already_in_use)); return false; } return true; } private void saveAvatarHeight() { int result; if (inputHeight == 0) { result = States.HEIGHT_DEFAULT; } else { result = inputHeight; } PreferencesHelper.savePref(context, States.AVATAR_HEIGHT, result); } private void saveAvatarWeight() { int result; if (inputWeight == 0) { result = States.WEIGHT_DEFAULT; } else { result = inputWeight; } PreferencesHelper.savePref(context, States.AVATAR_WEIGHT, result); } private void saveAvatarName() { PreferencesHelper.savePref(context, States.AVATAR_NAME, avatarName); } public final void switchManWoman(View view) { UtilClass.processClick(context); } }