package org.witness.informacam.app; import net.hockeyapp.android.CrashManager; import org.witness.informacam.InformaCam; import org.witness.informacam.app.utils.Constants; import org.witness.informacam.app.utils.UIHelpers; import android.app.Activity; import android.app.Notification; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; import android.support.v4.app.NotificationCompat; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; public class LoginActivity extends Activity { private final static String LOG = Constants.App.Login.LOG; private String packageName; View rootView; EditText password; // Button commit; ProgressBar waiter; Handler h = new Handler(); InformaCam informaCam = InformaCam.getInstance(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); packageName = this.getPackageName(); setContentView(R.layout.activity_login); rootView = findViewById(R.id.llRoot); boolean prefStealthIcon = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("prefStealthIcon",false); if (prefStealthIcon) { ImageView iv = (ImageView)findViewById(R.id.loginLogo); iv.setImageResource(R.drawable.ic_launcher_alt); } password = (EditText) findViewById(R.id.login_password); password.setImeOptions(EditorInfo.IME_ACTION_DONE); password.setOnEditorActionListener(new OnEditorActionListener () { @Override public boolean onEditorAction(TextView arg0, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { doLogin (); } return true; } }); /** commit = (Button) findViewById(R.id.login_commit); commit.setOnClickListener(this); */ waiter = (ProgressBar) findViewById(R.id.login_waiter); checkForCrashes(); checkForUpdates(); } private void toggleStatus(boolean showButton) { if(showButton) { waiter.setVisibility(View.GONE); // commit.setVisibility(View.VISIBLE); } else { //commit.setVisibility(View.GONE); waiter.setVisibility(View.VISIBLE); } } public void doLogin () { InputMethodManager imm = (InputMethodManager)getSystemService( Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(password.getWindowToken(), 0); if(password.getText().length() > 0) { h.post(new Runnable() { @Override public void run() { toggleStatus(false); } }); new Thread(new Runnable() { @Override public void run() { char[] charPass = new char[password.length()]; password.getText().getChars(0, password.length(), charPass, 0); if(informaCam.attemptLogin(charPass)) { setResult(Activity.RESULT_OK); finish(); } else { h.post(new Runnable() { @Override public void run() { password.setText(""); toggleStatus(true); Toast.makeText(LoginActivity.this, getString(R.string.we_could_not_log), Toast.LENGTH_LONG).show(); } }); } } }).start(); } } @Override public boolean onTouchEvent(MotionEvent event) { boolean handled = super.onTouchEvent(event); if (!handled && event.getAction() == MotionEvent.ACTION_UP) { rootView.requestFocus(); UIHelpers.hideSoftKeyboard(this); } return handled; } private void checkForCrashes() { CrashManager.register(this, InformaActivity.HOCKEY_APP_ID); } private void checkForUpdates() { // XXX: Remove this for store builds! //UpdateManager.register(this, InformaActivity.HOCKEY_APP_ID); } }