package com.pedrocarrillo.expensetracker.custom; import android.app.DatePickerDialog; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; import com.pedrocarrillo.expensetracker.R; import com.pedrocarrillo.expensetracker.interfaces.ISelectDateFragment; import com.pedrocarrillo.expensetracker.utils.DateManager; import com.pedrocarrillo.expensetracker.utils.DateUtils; import com.pedrocarrillo.expensetracker.utils.DialogManager; import com.pedrocarrillo.expensetracker.utils.Util; import java.util.Calendar; import java.util.Date; /** * Created by pcarrillo on 13/10/2015. */ public class SelectDateFragment extends Fragment implements View.OnClickListener{ private Button btnDateFrom; private Button btnDateTo; private TextView tvTotal; private ISelectDateFragment iSelectDateFragment; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.layout_date_range, container, false); btnDateFrom = (Button)rootView.findViewById(R.id.btn_date_from); btnDateTo = (Button)rootView.findViewById(R.id.btn_date_to); tvTotal = (TextView)rootView.findViewById(R.id.tv_total); return rootView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); btnDateFrom.setOnClickListener(this); btnDateTo.setOnClickListener(this); updateDate(btnDateFrom, DateManager.getInstance().getDateFrom()); updateDate(btnDateTo, DateManager.getInstance().getDateTo()); iSelectDateFragment.updateData(); } @Override public void onClick(View v) { if(v.getId() == R.id.btn_date_from || v.getId() == R.id.btn_date_to) { showDateDialog(v.getId()); } } private void showDateDialog(final int id) { final Calendar calendar = Calendar.getInstance(); calendar.setTime(id == R.id.btn_date_from ? DateManager.getInstance().getDateFrom() : DateManager.getInstance().getDateTo()); DialogManager.getInstance() .showDatePicker( getActivity(), new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker datePicker, int year, int month, int day) { calendar.set(year, month, day); DateUtils.setDateStartOfDay(calendar); if (id == R.id.btn_date_from) { DateManager.getInstance().setDateFrom(calendar.getTime()); updateDate(btnDateFrom, DateManager.getInstance().getDateFrom()); } else { DateManager.getInstance().setDateTo(calendar.getTime()); updateDate(btnDateTo, DateManager.getInstance().getDateTo()); } iSelectDateFragment.updateData(); } }, calendar, (R.id.btn_date_from == id) ? null : DateManager.getInstance().getDateFrom(), (R.id.btn_date_from == id) ? DateManager.getInstance().getDateTo() : null); } private void updateDate(Button btn, Date date) { btn.setText(Util.formatDateToString(date, Util.getCurrentDateFormat())); } public TextView getTextViewTotal() { return tvTotal; } public void setSelectDateFragment(ISelectDateFragment iSelectDateFragment) { this.iSelectDateFragment = iSelectDateFragment; } }