package com.example.android.recipe020; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.widget.EditText; public class Login extends Activity { // デフォルトパスワード private static final String DEFAULT_PASSWORD = "1234"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override protected void onResume() { super.onResume(); // ホームボタンで戻ってから起動すると // 入力したパスワードが残って表示されてしまうので // 明示的に空文字をセットしてクリアする EditText text = (EditText)findViewById(R.id.EditText1); text.setText(""); } public void onClick(View v) { // プリファレンスを取得 SharedPreferences sp; sp = PreferenceManager.getDefaultSharedPreferences(this); // パスワードのキーを取得 String key = getResources() .getString(R.string.real_password_key); // パスワードを取得 // プリファレンスに保存されていない場合は // DEFAULT_PASSWORDが返る String password = sp.getString(key, DEFAULT_PASSWORD); // 入力されたパスワードを取得 EditText text = (EditText)findViewById(R.id.EditText1); String input = text.getText().toString(); // パスワードがデフォルトだったら暗号化しない if (!DEFAULT_PASSWORD.equals(password)) { // 入力されたパスワードを // SHA-256で暗号化 input = MyPreferenceActivity.sha256(input); } // パスワードをチェック if (password.equals(input)) { // パスワードが等しければ // 次の画面へ Intent intent = new Intent(this, Success.class); startActivity(intent); } else { // 等しくなければアラートダイアログを表示 new AlertDialog.Builder(this) .setTitle("Can't login.") .setMessage("Password Error...") .setPositiveButton("OK", null) .create() .show(); } } }