WorktimeEntry.java :  » UnTagged » myworktime » ch » dulce » myworktime » Android Open Source

Android Open Source » UnTagged » myworktime 
myworktime » ch » dulce » myworktime » WorktimeEntry.java
package ch.dulce.myworktime;

import java.util.Date;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import ch.dulce.myworktime.util.TimeUtil;

public class WorktimeEntry extends Activity {

  private static final String TAG = "WorktimeEntry";
  private WorktimeDbAdapter mDbHelper;
  private Button startStopButton;
  private TextView statusText;
  private TimeUtil tu;
  private long wtid;
  private long starttime;
  private long pausetime;
  private int defPauseTime;

  

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.worktime_entry);
    tu = new TimeUtil(this);
    mDbHelper = new WorktimeDbAdapter(this);
    mDbHelper.open();
    bindResources();
    loadFields();
    updateDisplay();
  }

  private void updateDisplay() {
    if (wtid == -1) {
      statusText.setText(R.string.notWorkingText);
      startStopButton.setText(R.string.startBtnText);
    } else {
      statusText.setText(getString(R.string.atWorkSinceText)
          + ": " + tu.getFormatedDateTime(starttime));
      startStopButton.setText(R.string.stopBtnText);
    }
  }
  
  private void loadFields() {
    Cursor wt = mDbHelper.fetchLastOpenWorktime();
    startManagingCursor(wt);
    defPauseTime = Prefs.getDefaultPauseTime(this);
    if (wt.getCount() != 0) {
      wtid = wt.getLong(wt.getColumnIndex(WorktimeDbAdapter.KEY_ROWID));
      starttime = wt.getLong(wt.getColumnIndex(WorktimeDbAdapter.KEY_STARTTIME));
      pausetime = wt.getLong(wt.getColumnIndex(WorktimeDbAdapter.KEY_PAUSETIME));
    } else {
      wtid = -1;
    }
  }
  
  private void bindResources() {
    startStopButton = (Button) findViewById(R.id.StartStopButton);
    startStopButton.setOnClickListener(startStopButtonListener);
    statusText = (TextView) findViewById(R.id.statusText);
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.worktime_menu, menu);
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.settings:
      startActivity(new Intent(this, Prefs.class));
      return true;
    case R.id.report:
      startActivity(new Intent(this, WorktimeReport.class));
      return true;
    case R.id.list:
      startActivity(new Intent(this, WorktimeList.class));
      return true;
    case R.id.about:
      startActivity(new Intent(this, WorktimeAbout.class));
      return true;
    }
    return super.onOptionsItemSelected(item);
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    if (mDbHelper != null) {
      mDbHelper.close();
      mDbHelper = null;
    }
  }

  private OnClickListener startStopButtonListener = new OnClickListener() {
    public void onClick(View v) {
      if (wtid == -1) {
        mDbHelper.createWorktime(new Date(), defPauseTime);
        showToastAndFinish(getString(R.string.startWorktimeText));
      } else {
        Date enddate = new Date();
        long endtime = enddate.getTime();
        long subtotal = (endtime - starttime) - pausetime;
        mDbHelper.updateWorktime(wtid, enddate);
        if (subtotal <= 0) {
          mDbHelper.updatePausetime(wtid, 0);
          showToastAndFinish(getString(R.string.endWorktimeLongPauseText));
        } else {
          showToastAndFinish(getString(R.string.endWorktimeText));  
        }
      }
    }
  };

  private void showToastAndFinish(String text) {
    Toast.makeText(WorktimeEntry.this, text, Toast.LENGTH_SHORT).show();
    finish();
  }

  public long getWtid() {
    return wtid;
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.