EditTime.java :  » Clock » android-timetracker » net » ser1 » timetracker » Android Open Source

Android Open Source » Clock » android timetracker 
android timetracker » net » ser1 » timetracker » EditTime.java
/**
 * TimeTracker 
 * 2008, 2009 Sean Russell
 * @author Sean Russell <ser@germane-software.com>
 */
package net.ser1.timetracker;

import static net.ser1.timetracker.TimeRange.NULL;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.DatePicker;
import android.widget.TimePicker;

public class EditTime extends Activity implements OnClickListener {

    protected static final String END_DATE = "end-date";
    protected static final String START_DATE = "start-date";
    protected static final String CLEAR = "clear";
    private boolean editingRunning = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getIntent().getExtras().getLong(END_DATE) == NULL) {
            setContentView(R.layout.edit_running_time_range);
            editingRunning = true;
        } else {
            setContentView(R.layout.edit_time_range);
        }
        findViewById(R.id.accept).setOnClickListener(this);
        findViewById(R.id.time_edit_cancel).setOnClickListener(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        DatePicker startDate = (DatePicker)findViewById(R.id.start_date);
        TimePicker startTime = (TimePicker)findViewById(R.id.start_time);
        
        Calendar sd = Calendar.getInstance();
        sd.setFirstDayOfWeek( Calendar.MONDAY );
        if (!getIntent().getExtras().getBoolean(CLEAR)) {
            sd.setTimeInMillis(getIntent().getExtras().getLong(START_DATE));
        }
        startDate.updateDate(sd.get(Calendar.YEAR), sd.get(Calendar.MONTH),
                sd.get(Calendar.DAY_OF_MONTH));
        startTime.setCurrentHour(sd.get(Calendar.HOUR_OF_DAY));
        startTime.setCurrentMinute(sd.get(Calendar.MINUTE));

        if (!editingRunning) {
            DatePicker endDate = (DatePicker)findViewById(R.id.end_date);
            TimePicker endTime = (TimePicker)findViewById(R.id.end_time);
            Calendar ed = Calendar.getInstance();
            ed.setFirstDayOfWeek( Calendar.MONDAY );
            if (getIntent().getExtras().getBoolean(CLEAR)) {
                ed = sd;
            } else {
                ed.setTimeInMillis(getIntent().getExtras().getLong(END_DATE));
            }
            endDate.updateDate(ed.get(Calendar.YEAR), ed.get(Calendar.MONTH),
                    ed.get(Calendar.DAY_OF_MONTH));
            endTime.setCurrentHour(ed.get(Calendar.HOUR_OF_DAY));
            endTime.setCurrentMinute(ed.get(Calendar.MINUTE));
        }
    }

    public void onClick(View v) {
        DatePicker startDate = (DatePicker)findViewById(R.id.start_date);
        TimePicker startTime = (TimePicker)findViewById(R.id.start_time);
        Calendar s = Calendar.getInstance();
        s.setFirstDayOfWeek( Calendar.MONDAY );
        s.set(startDate.getYear(), startDate.getMonth(), startDate.getDayOfMonth(),
                startTime.getCurrentHour(), startTime.getCurrentMinute());
        getIntent().putExtra(START_DATE, s.getTime().getTime());

        if (!editingRunning) {
            DatePicker endDate = (DatePicker)findViewById(R.id.end_date);
            TimePicker endTime = (TimePicker)findViewById(R.id.end_time);
            Calendar e = Calendar.getInstance();
            e.setFirstDayOfWeek( Calendar.MONDAY );
            e.set(endDate.getYear(), endDate.getMonth(), endDate.getDayOfMonth(),
                    endTime.getCurrentHour(), endTime.getCurrentMinute());
            if (e.compareTo(s) < 1) {
                showDialog(0);
                return;
            }
            getIntent().putExtra(END_DATE, e.getTime().getTime());
        }
        
        setResult(Activity.RESULT_OK, getIntent());
        finish();
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        return new AlertDialog.Builder(this)
            .setTitle(R.string.range_error_title)
            .setIcon(android.R.drawable.stat_sys_warning)
            .setCancelable(true)
            .setMessage(R.string.end_not_greater_than_start)
            .setPositiveButton(android.R.string.ok, null)
            .create();
    }
}
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.