package cy.agorise.crystalwallet.activities; import android.arch.lifecycle.LiveData; import android.arch.lifecycle.Observer; import android.arch.lifecycle.ViewModelProviders; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.text.Editable; import android.widget.EditText; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnTextChanged; import cy.agorise.crystalwallet.R; import cy.agorise.crystalwallet.models.GeneralSetting; import cy.agorise.crystalwallet.util.PasswordManager; import cy.agorise.crystalwallet.viewmodels.GeneralSettingListViewModel; public class PinRequestActivity extends AppCompatActivity { private String passwordEncrypted; @Override public void onBackPressed() { //Do nothing to prevent the user to use the back button } @BindView(R.id.etPassword) EditText etPassword; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pin_request); ButterKnife.bind(this); GeneralSettingListViewModel generalSettingListViewModel = ViewModelProviders.of(this).get(GeneralSettingListViewModel.class); LiveData> generalSettingsLiveData = generalSettingListViewModel.getGeneralSettingList(); generalSettingsLiveData.observe(this, new Observer>() { @Override public void onChanged(@Nullable List generalSettings) { passwordEncrypted = ""; if (generalSettings != null){ for (GeneralSetting generalSetting:generalSettings) { if (generalSetting.getName().equals(GeneralSetting.SETTING_PASSWORD)){ if (!generalSetting.getValue().isEmpty()){ passwordEncrypted = generalSetting.getValue(); } break; } } } } }); } @OnTextChanged(value = R.id.etPassword, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED) void afterPasswordChanged(Editable editable) { if (PasswordManager.checkPassword(passwordEncrypted, etPassword.getText().toString())) { this.finish(); } } }