package de.saxsys.android.projectiler.app; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import org.droidparts.activity.support.v7.ActionBarActivity; import org.droidparts.annotation.inject.InjectSystemService; import org.droidparts.annotation.inject.InjectView; import org.droidparts.concurrent.task.AsyncTaskResultListener; import java.util.Calendar; import de.keyboardsurfer.android.widget.crouton.Crouton; import de.keyboardsurfer.android.widget.crouton.Style; import de.saxsys.android.projectiler.app.asynctasks.LoginAsyncTask; import de.saxsys.android.projectiler.app.receiver.NotificationReceiver; import de.saxsys.android.projectiler.app.utils.BusinessProcess; import de.saxsys.android.projectiler.app.utils.WidgetUtils; public class LoginActivity extends ActionBarActivity implements View.OnClickListener{ private final String TAG = LoginActivity.class.getSimpleName(); @InjectView(id = R.id.btn_login, click = true) private Button btnLogin; @InjectView(id = R.id.et_name) private EditText username; @InjectView(id = R.id.et_password) private EditText password; @InjectSystemService private AlarmManager alarmManager; private BusinessProcess businessProcess; @Override public void onPreInject() { requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.activity_login); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); startNotificationService(); businessProcess = BusinessProcess.getInstance(getApplicationContext()); if(businessProcess.getAutoLogin()){ Log.i(TAG, "Login is saved"); Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); finish(); } } private void startNotificationService() { Log.d(TAG, "start notification Service"); Intent notification = new Intent(getApplicationContext(), NotificationReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, notification, 0); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000 * 60 * 3, pendingIntent); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.login, menu); return true; } @Override public void onClick(View view) { if(view == btnLogin){ Log.i(TAG, "click Login Button"); setProgressBarIndeterminateVisibility(true); new LoginAsyncTask(getApplicationContext(), username.getText().toString(),password.getText().toString(), true, loginTaskListener).execute(); } } private AsyncTaskResultListener<Void> loginTaskListener = new AsyncTaskResultListener<Void>() { @Override public void onAsyncTaskSuccess(Void aVoid) { Log.i(TAG, "Login was successfull"); setProgressBarIndeterminateVisibility(false); WidgetUtils.refreshWidget(getApplicationContext()); Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); finish(); } @Override public void onAsyncTaskFailure(Exception e) { Log.e(TAG, e.getMessage()); setProgressBarIndeterminateVisibility(false); Crouton.makeText(LoginActivity.this, e.getMessage(), Style.ALERT).show(); } }; }