Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package se.GameTimer;
- import java.util.*;
- import se.GameTimer.Views.AddActivityView;
- import se.GameTimer.Views.EditActivitiesView;
- import se.GameTimer.Views.EditActivityView;
- import se.GameTimer.Views.LoginView;
- import se.GameTimer.Views.MainView;
- import se.GameTimer.Views.SetPassword;
- import se.GameTimer.database.SimpleDatabase;
- import se.GameTimer.login.Login;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.app.Notification;
- import android.app.NotificationManager;
- import android.app.PendingIntent;
- import android.content.Context;
- import android.content.Intent;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.CountDownTimer;
- import android.os.Message;
- import android.widget.TextView;
- import android.os.Handler;
- import android.util.Log;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.Spinner;
- import android.widget.Toast;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.AdapterView.OnItemSelectedListener;
- public class GameTimer extends Activity {
- private Handler timerHandler;
- private MainTimer mainTimer;
- private Activities activities;
- private SimpleDatabase db;
- /**
- * Current chosen activity
- */
- private KidActivity currentActivity;
- public final int DEFAULT_INITIAL_TIME = 1000;
- public KidActivity DEFAULT_INITIAL_ACTIVITY;
- private int totalTime;
- private View currentView;
- public static GameTimer ThisActivity;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- ThisActivity = this;
- db = new SimpleDatabase(this);
- activities = new Activities(db);
- DEFAULT_INITIAL_ACTIVITY = activities.getActivities()[0];
- Login login = new Login(db);
- this.setInitialTime();
- this.setInitialActivity();
- if (login.isPasswordSet())
- this.setLoginView();
- else
- this.setPasswordView();
- }
- /**
- * Gets the MainTimer instance.
- */
- public MainTimer getMainTimer() {
- return this.mainTimer;
- }
- /**
- * Handle the onBackPressed events
- */
- @Override
- public void onBackPressed() {
- if (currentView instanceof AddActivityView ||
- currentView instanceof EditActivityView)
- setEditActivitiesView();
- else if (currentView instanceof EditActivitiesView){
- KidActivity temp = currentActivity;
- setMainView();
- ((MainView) currentView).getActivitySpinner().setSelection(activities.getPosition(temp, false));
- } else
- super.onBackPressed();
- }
- /**
- * The menu that appears when you press menu-button
- */
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.main_menu, menu);
- if (currentView instanceof LoginView || currentView instanceof SetPassword)
- return false;
- return true;
- }
- /**
- * The handling of menu events
- */
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle item selection
- switch (item.getItemId()) {
- case R.id.edit_activities:
- setEditActivitiesView();
- return true;
- case R.id.set_time:
- // TODO - Pier, set to Set Time here!
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
- /**
- * Sets to the view were we see the activities as well as have the
- * option to add and edit them
- */
- public void setEditActivitiesView(){
- OnClickListener clickListener = new View.OnClickListener() {
- public void onClick(View v) {
- setAddActivityView();
- }
- };
- OnItemClickListener clickListener2 = new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
- long arg3) {
- if (currentActivity.getActivity().equals(activities.getActivities()[arg2].getActivity()) && mainTimer.isRunning()){
- AlertDialog ad = new AlertDialog.Builder(GameTimer.this).create();
- ad.setTitle("GameTimer");
- ad.setMessage("The activity is currently running. Please go back and stop it before changing it.");
- ad.setButton("OK", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- return;
- } });
- ad.show();
- } else
- setEditActivity(activities.getActivities()[arg2]);
- }
- };
- // TODO dfhfg
- EditActivitiesView eav = new EditActivitiesView(this);
- eav.setAddBtnListener(clickListener);
- eav.setListViewBtnListener(clickListener2);
- setContentView(eav);
- }
- public void setEditActivity(KidActivity kd){
- EditActivityView aav = new EditActivityView(this);
- OnClickListener clickListener = new View.OnClickListener() {
- public void onClick(View v) {
- // Add activity here
- String actName = ((EditActivityView) currentView).getActivityName();
- int actWeight = ((EditActivityView) currentView).getActivityWeight();
- String oldActivityName = ((EditActivityView) currentView).getOldName();
- KidActivity kd2 = new KidActivity(actName,actWeight);
- if (actName == null || actName.trim() == ""){
- AlertDialog ad = new AlertDialog.Builder(GameTimer.this).create();
- ad.setTitle("GameTimer");
- ad.setMessage("You can not have an empty activity name!");
- ad.setButton("OK", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- return;
- } });
- ad.show();
- } else if (!actName.equals(oldActivityName) && activities.existsActivity(kd2)){
- AlertDialog ad = new AlertDialog.Builder(GameTimer.this).create();
- ad.setTitle("GameTimer");
- ad.setMessage("The activity name already exist!");
- ad.setButton("OK", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- return;
- } });
- ad.show();
- } else {
- Log.v("GameTimer", "Activity: " + actName + " was changed.");
- activities.changeActivity(oldActivityName, kd2);
- // If we changed the current activity
- if (currentActivity.getActivity().equals(oldActivityName))
- setCurrentActivity(kd2);
- setEditActivitiesView();
- }
- }
- };
- OnClickListener clickListener2 = new View.OnClickListener() {
- public void onClick(View v) {
- final String oldActivityName = ((EditActivityView) currentView).getOldName();
- AlertDialog.Builder builder = new AlertDialog.Builder(GameTimer.this);
- builder.setMessage("Are you sure you want to delete the activity "+ oldActivityName + "?")
- .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- activities.removeActivity(oldActivityName);
- setEditActivitiesView();
- }
- })
- .setNegativeButton("No", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- builder.create();
- builder.show();
- }
- };
- aav.setDeleteBtnListener(clickListener2);
- aav.setAddBtnListener(clickListener);
- aav.setNameText(kd.getActivity());
- aav.setSelectedActivity((int) kd.getWeight());
- setContentView(aav);
- }
- public void setAddActivityView(){
- AddActivityView aav = new AddActivityView(this);
- OnClickListener clickListener = new View.OnClickListener() {
- public void onClick(View v) {
- // Add activity here
- String actName = ((AddActivityView) currentView).getActivityName();
- int actWeight = ((AddActivityView) currentView).getActivityWeight();
- if(!activities.addActivity(new KidActivity(actName,actWeight))){
- AlertDialog ad = new AlertDialog.Builder(GameTimer.this).create();
- ad.setTitle("GameTimer");
- ad.setMessage("Activity already exist!");
- ad.setButton("OK", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- return;
- } });
- ad.show();
- } else {
- Log.v("GameTimer", "Activity: " + actName + " was added.");
- setEditActivitiesView();
- }
- }
- };
- aav.setAddBtnListener(clickListener);
- setContentView(aav);
- }
- public void setMainView() {
- MainView v = new MainView(this,activities.getActivities(),new ChangeActivity());
- //currentActivity = activities.getActivities()[0];
- timerHandler = new tHandler();
- if (mainTimer == null)
- mainTimer = new MainTimer(timerHandler,this);
- OnClickListener btn_start_clickListener = new View.OnClickListener() {
- public void onClick(View v) {
- mainTimer.togglePause();
- if (mainTimer.isRunning()){
- ((MainView) currentView).getStartActivityButton().setText("Pause");
- ((MainView) currentView).getActivitySpinner().setEnabled(false);
- }else
- ((MainView) currentView).getStartActivityButton().setText("Start");
- }
- };
- OnClickListener btn_stop_clickListener = new View.OnClickListener() {
- public void onClick(View v) {
- mainTimer.stop();
- ((MainView) currentView).getStartActivityButton().setText("Start");
- ((MainView) currentView).setTimeLabel(mainTimer.getSeconds());
- ((MainView) currentView).getActivitySpinner().setEnabled(true);
- }
- };
- v.setStartActivityListener(btn_start_clickListener);
- v.setStopActivityListener(btn_stop_clickListener);
- setContentView(v);
- if (mainTimer.isRunning()){
- ((MainView) currentView).getStartActivityButton().setText("Pause");
- ((MainView) currentView).getActivitySpinner().setEnabled(false);
- }
- ((MainView) currentView).getActivitySpinner().setSelection(activities.getPosition(currentActivity, false));
- mainTimer.updateUI();
- }
- public void setLoginView() {
- this.setContentView(new LoginView(this));
- }
- public void setPasswordView() {
- this.setContentView(new SetPassword(this));
- }
- /**
- * Override the setContentView method to store the view that is being set in the variable currentView.
- */
- @Override
- public void setContentView(View view) {
- super.setContentView(view);
- this.currentView = view;
- }
- public KidActivity getCurrentActivity() {
- return currentActivity;
- }
- public void setCurrentActivity(KidActivity ka){
- currentActivity = ka;
- }
- public int getTotalTime() {
- return totalTime;
- }
- public void setTotalTime(int totalTime) {
- this.totalTime = totalTime;
- }
- public void addTotalTime(int duration) {
- this.totalTime = totalTime + duration;
- }
- public Activities getActivities() {
- return activities;
- }
- final class tHandler extends Handler{
- @Override
- public void handleMessage(Message msg) {
- if (msg.what==-1){
- // Dialog alarm
- GameTimer GT= new GameTimer();
- GT.TimeisUp();
- } else {
- if (currentView instanceof MainView ){
- ((MainView) currentView).setTimeLabel(msg.what);
- }
- }
- }
- }
- private class ChangeActivity implements OnItemSelectedListener{
- public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
- setCurrentActivity(activities.getActivities()[(int) (id)]);
- }
- public void onNothingSelected(AdapterView<?> parentView) {
- // your code here
- }
- }
- public void TimeisUp()
- {
- try
- {
- String ns = Context.NOTIFICATION_SERVICE;
- NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
- int icon = R.drawable.icon;
- CharSequence tickerText = "Time is up!";
- long when = System.currentTimeMillis();
- Notification notification = new Notification(icon, tickerText, 200);
- Context context = getApplicationContext();
- CharSequence contentTitle = "My notification";
- CharSequence contentText = "Time Warning!";
- Intent notificationIntent = new Intent(this, GameTimer.class);
- PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
- notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
- notification.ledARGB = 0xff00ff00;
- notification.ledOnMS = 300;
- notification.ledOffMS = 1000;
- notification.flags |= Notification.FLAG_SHOW_LIGHTS;
- notification.defaults |= Notification.DEFAULT_SOUND;
- notification.vibrate = new long[] { 0, 300, 200, 300, 400, 300 };
- final int HELLO_ID = 1;
- mNotificationManager.notify(HELLO_ID, notification);
- Toast.makeText(getBaseContext(), "Time is up!",Toast.LENGTH_LONG).show();
- }
- catch(Exception e){
- Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_LONG).show();
- }
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- this.updateInitialTime();
- this.updateInitialActivity();
- this.getDB().close();
- }
- public boolean isCurrentBalanceTimeSet() {
- Cursor c = this.getDB().selectQuery("SELECT * FROM " +
- SimpleDatabase.getDatatable() +
- " WHERE name = 'currentBalanceTime'");
- return (c.getCount() > 0);
- }
- public void updateInitialTime() {
- this.getDB().executeQuery("UPDATE " + SimpleDatabase.getDatatable() +
- " SET value = '" + this.getTotalTime() + "' WHERE name='currentBalanceTime';");
- }
- public void setInitialTime() {
- if (this.isCurrentBalanceTimeSet()) {
- Cursor c = this.getDB().selectQuery("SELECT value FROM " +
- SimpleDatabase.getDatatable() +
- " WHERE name = 'currentBalanceTime'");
- if (c.moveToFirst()) this.setTotalTime(c.getInt(0));
- else /* any problem */ this.setTotalTime(this.DEFAULT_INITIAL_TIME);
- } else {
- this.setTotalTime(this.DEFAULT_INITIAL_TIME);
- this.getDB().executeQuery("INSERT INTO " + SimpleDatabase.getDatatable() +
- " (name, value) VALUES ('currentBalanceTime', '" +
- this.DEFAULT_INITIAL_TIME + "');");
- }
- }
- public void updateInitialActivity() {
- this.getDB().executeQuery("UPDATE " + SimpleDatabase.getDatatable() +
- " SET value = '" + this.getCurrentActivity() + "' WHERE name='currentActivity';");
- }
- public void setInitialActivity() {
- if (this.isCurrentActivitySet()) {
- Cursor c = this.getDB().selectQuery("SELECT value FROM " +
- SimpleDatabase.getDatatable() +
- " WHERE name = 'currentActivity'");
- if (c.moveToFirst())
- this.setCurrentActivity(activities.getActivity(c.getString(0)));
- else /* any problem */ this.setCurrentActivity(DEFAULT_INITIAL_ACTIVITY);
- } else {
- this.setCurrentActivity(DEFAULT_INITIAL_ACTIVITY);
- this.getDB().executeQuery("INSERT INTO " + SimpleDatabase.getDatatable() +
- " (name, value) VALUES ('currentActivity', '" +
- DEFAULT_INITIAL_ACTIVITY.getActivity() + "');");
- }
- }
- public boolean isCurrentActivitySet() {
- Cursor c = this.getDB().selectQuery("SELECT * FROM " +
- SimpleDatabase.getDatatable() +
- " WHERE name = 'currentActivity'");
- return (c.getCount() > 0);
- }
- public SimpleDatabase getDB() { return this.db;}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement