package com.diandi.demo.ui.activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.diandi.demo.R;
import com.diandi.demo.db.PlanDao;
import com.diandi.demo.model.Plan;
import com.diandi.demo.util.FormatUtil;
import com.diandi.demo.widget.HeaderLayout;
import com.diandi.demo.widget.googledatetimepicker.date.DatePickerDialog;
import com.diandi.demo.widget.googledatetimepicker.time.RadialPickerLayout;
import com.diandi.demo.widget.googledatetimepicker.time.TimePickerDialog;
import java.util.Calendar;
import java.util.Date;
/**
* *******************************************************************************
* ********* Author : klob(kloblic@gmail.com) .
* ********* Date : 2014-11-29 .
* ********* Time : 11:46 .
* ********* Project name : Diandi1.18 .
* ********* Version : 1.0
* ********* Copyright @ 2014, klob, All Rights Reserved
* *******************************************************************************
*/
public class WritePlanActivity extends BaseActivity {
private final String TAG = "write";
private final Calendar mCalendar = Calendar.getInstance();
private Plan mPlan;
private EditText mTitleEdit;
private TextView mDateText;
private RelativeLayout mDateLayout;
private TextView mTimeText;
private RelativeLayout mTimeLayout;
private TextView mCategoryText;
private RelativeLayout mCategoryLayout;
private CheckBox mTopCheck;
private EditText mNoteEdit;
private int mTimeYear;
private int mTimeMonth;
private int mTimeDay;
private int mTimeHour;
private int mTimeMinute;
private PlanDao mPlanDao;
private int mPlanId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
findView();
initView();
}
void findView() {
setContentView(R.layout.activity_write_plan);
mTitleEdit = (EditText) findViewById(R.id.activity_write_plan_title_edit);
mDateText = (TextView) findViewById(R.id.activity_write_plan_date_text);
mDateLayout = (RelativeLayout) findViewById(R.id.activity_write_plan_date_rv);
mTimeText = (TextView) findViewById(R.id.activity_write_plan_time_text);
mTimeLayout = (RelativeLayout) findViewById(R.id.activity_write_plan_time_rv);
mCategoryText = (TextView) findViewById(R.id.activity_write_plan_category_text);
mCategoryLayout = (RelativeLayout) findViewById(R.id.activity_write_plan_category_rv);
mTopCheck = (CheckBox) findViewById(R.id.activity_write_plan_top_chk);
mNoteEdit = (EditText) findViewById(R.id.activity_write_plan_note_edit);
}
@Override
void initView() {
mPlanDao = new PlanDao(this);
initTopBarForBoth("写计划", R.drawable.base_action_bar_true_bg_selector, new HeaderLayout.onRightImageButtonClickListener() {
@Override
public void onClick() {
if (mTitleEdit.getText().toString().equals("")) {
ShowToast("标题不能为空");
return;
}
mCalendar.set(mTimeYear, mTimeMonth, mTimeDay, mTimeHour,
mTimeMinute, 0);
Date date = new Date(mCalendar.getTimeInMillis());
mPlan.setTitle(mTitleEdit.getText().toString());
mPlan.setPlanDate(date);
mPlan.setCategory(mCategoryText.getText().toString());
mPlan.setTop(String.valueOf(mTopCheck.isChecked()));
mPlan.setNote(mNoteEdit.getText().toString());
mPlanDao.createPlan(mPlan);
Log.e(TAG, mPlan.toString());
finish();
}
});
mPlanId = getIntent().getIntExtra(Plan.PLAN_ID, -1);
if (mPlanId == -1) {
mPlan = new Plan();
} else {
mPlan = mPlanDao.getPlanById(mPlanId);
mCalendar.setTime(mPlan.getPlanDate());
mTitleEdit.setText(mPlan.getTitle());
mCategoryText.setText(mPlan.getCategory());
mTopCheck.setChecked(Boolean.valueOf(mPlan.getTop()));
mNoteEdit.setText(mPlan.getNote());
}
mTimeYear = mCalendar.get(Calendar.YEAR);
mTimeMonth = mCalendar.get(Calendar.MONTH);
mTimeDay = mCalendar.get(Calendar.DAY_OF_MONTH);
mTimeHour = mCalendar.get(Calendar.HOUR_OF_DAY);
mTimeMinute = mCalendar.get(Calendar.MINUTE);
mDateText.setText(getDateString());
mTimeText.setText(getTimeString());
bindEvent();
}
void bindEvent() {
mDateLayout.setOnClickListener(new DateChangeListener());
mTimeLayout.setOnClickListener(new TimeChangeListener());
mCategoryLayout.setOnClickListener(new CategoryChangeListenr());
}
private void notifyDateTextView() {
mCalendar.set(mTimeYear, mTimeMonth, mTimeDay);
String date = getDateString();
mDateText.setText(date);
}
private void notifyTimeTextView() {
String time = getTimeString();
mTimeText.setText(time);
}
private String getDateString() {
String dateString = FormatUtil.pad(mTimeYear) + "-" + FormatUtil.pad(mTimeMonth + 1) + "-" + FormatUtil.pad(mTimeDay)
+ " 星期" + FormatUtil.week2String(mCalendar.get(Calendar.DAY_OF_WEEK));
return dateString;
}
private String getTimeString() {
String timeString = FormatUtil.padHour(mTimeHour) + ":" + FormatUtil.pad(mTimeMinute) + " "
+ FormatUtil.padAP(mTimeHour);
return timeString;
}
private class DateChangeListener implements View.OnClickListener {
@Override
public void onClick(View view) {
DatePickerDialog datePickerDialog = new DatePickerDialog().newInstance(dateSetListener, mTimeYear, mTimeMonth,
mTimeDay);
String tag = "";
datePickerDialog.show(getSupportFragmentManager(), tag);
}
private DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePickerDialog dialog, int year,
int monthOfYear, int dayOfMonth) {
mTimeYear = year;
mTimeMonth = monthOfYear;
mTimeDay = dayOfMonth;
mDateText.setTextColor(getResources().getColor(
android.R.color.holo_blue_light));
notifyDateTextView();
}
};
}
private class TimeChangeListener implements View.OnClickListener {
private String tag = "";
@Override
public void onClick(View view) {
TimePickerDialog timePickerDialog = TimePickerDialog.newInstance(
timeSetListener, mTimeHour, mTimeMinute, false);
timePickerDialog.show(getSupportFragmentManager(), tag);
}
private TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay,
int minute) {
mTimeHour = hourOfDay;
mTimeMinute = minute;
mTimeText.setTextColor(getResources().getColor(
android.R.color.holo_blue_light));
notifyTimeTextView();
}
};
}
private class CategoryChangeListenr implements View.OnClickListener {
@Override
public void onClick(View view) {
final View view1 = LayoutInflater.from(WritePlanActivity.this).inflate(R.layout.category_dialog, null);
final RadioGroup radioGroup = (RadioGroup) view1.findViewById(R.id.category_rdogp);
final AlertDialog dialog = new AlertDialog.Builder(WritePlanActivity.this).setTitle("分类选择").setView(view1).create();
dialog.show();
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
int radioButtonId = radioGroup.getCheckedRadioButtonId();
RadioButton rb = (RadioButton) view1.findViewById(radioButtonId);
String category = rb.getText().toString();
mCategoryText.setText(category);
dialog.dismiss();
}
});
}
}
}