3535 * Created by YOGA on 11/6/2016.
3636 */
3737public class AddBillFragment extends Fragment implements OnDateSetListener , TimePickerDialog .OnTimeSetListener {
38- Spinner spinner_add_bill ;
39- Button button_add_bill_pickdate , button_add_bill_add , button_add_bill_picktime ;
40- EditText editText_add_bill ;
38+ private Spinner spinner_add_bill ;
39+ private Button button_add_bill_pickdate , button_add_bill_add , button_add_bill_picktime ;
40+ private EditText editText_add_bill ;
4141 private Date date = null , time = null ;
42- List <Person > personList ;
43- int payer_id = -1 ;
42+ private List <Person > personList ;
43+ private int payer_id = -1 , bill_id = -1 ;
44+
45+ public void setBill (Bill bill , Person payer ) {
46+ this .date = bill .getDate ();
47+ this .time = bill .getDate ();
48+ setPickDate (date );
49+ setPickTime (time );
50+ button_add_bill_add .setText ("Edit Bill" );
51+ editText_add_bill .setText (bill .getPlace ());
52+ spinner_add_bill .setSelection (personList .indexOf (payer ));
53+ bill_id = bill .getId ();
54+ }
4455
4556 public interface AddBillInterface {
4657 List <Person > getAllPeople ();
4758 long createBill (Bill bill );
59+ long editBill (Bill bill );
4860 }
4961
5062 AddBillInterface mListener ;
@@ -134,10 +146,8 @@ public void onClick(View v) {
134146 @ Override
135147 public void onClick (View v ) {
136148 // Check if no view has focus:
137- if (myView != null ) {
138- InputMethodManager imm = (InputMethodManager ) myView .getContext ().getSystemService (Context .INPUT_METHOD_SERVICE );
139- imm .hideSoftInputFromWindow (myView .getWindowToken (), 0 );
140- }
149+ InputMethodManager imm = (InputMethodManager ) myView .getContext ().getSystemService (Context .INPUT_METHOD_SERVICE );
150+ imm .hideSoftInputFromWindow (myView .getWindowToken (), 0 );
141151
142152 if (date == null || time == null || payer_id == -1 || editText_add_bill .getText ().toString ().equals ("" )) {
143153 Toast .makeText (myView .getContext (), "Please select date and payer." , Toast .LENGTH_SHORT ).show ();
@@ -149,32 +159,51 @@ public void onClick(View v) {
149159 date .setSeconds (time .getSeconds ());
150160 bill .setDate (date );
151161 bill .setPayer (payer_id );
152- if (mListener .createBill (bill ) == -1 ) {
153- Toast .makeText (myView .getContext (), "Error occurred when inserting into database." , Toast .LENGTH_SHORT ).show ();
162+ bill .setId (bill_id );
163+
164+ if (bill_id == -1 ) {
165+ if (mListener .createBill (bill ) == -1 ) {
166+ Toast .makeText (myView .getContext (), "Error occurred when inserting into database." , Toast .LENGTH_SHORT ).show ();
167+ } else {
168+ Toast .makeText (myView .getContext (), "Bill added." , Toast .LENGTH_SHORT ).show ();
169+ }
154170 } else {
155- Toast .makeText (myView .getContext (), "Bill added." , Toast .LENGTH_SHORT ).show ();
171+ if (mListener .editBill (bill ) == -1 ) {
172+ Toast .makeText (myView .getContext (), "Error occurred when inserting into database." , Toast .LENGTH_SHORT ).show ();
173+ } else {
174+ Toast .makeText (myView .getContext (), "Bill edited." , Toast .LENGTH_SHORT ).show ();
175+ }
156176 }
157-
158177 }
159178 }
160179 });
161180
162181 return myView ;
163182 }
164183
184+ private void setPickDate (Date date ) {
185+ SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd" , Locale .getDefault ());
186+ button_add_bill_pickdate .setText (dateFormat .format (date ));
187+ }
188+
189+ private void setPickTime (Date time ) {
190+ SimpleDateFormat dateFormat = new SimpleDateFormat ("HH:mm" , Locale .getDefault ());
191+ button_add_bill_picktime .setText (dateFormat .format (time ));
192+ }
193+
165194 @ Override
166195 public void onDateSet (DatePickerDialog view , int year , int monthOfYear , int dayOfMonth ) {
167196 Calendar c = new GregorianCalendar (year , monthOfYear , dayOfMonth );
168197 date = c .getTime ();
169- SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd" , Locale .getDefault ());
170- button_add_bill_pickdate .setText (dateFormat .format (date ));
198+ setPickDate (date );
171199 }
172200
173201 @ Override
174202 public void onTimeSet (TimePickerDialog view , int hourOfDay , int minute , int second ) {
175203 Calendar c = new GregorianCalendar (0 , 0 , 0 , hourOfDay , minute , second );
176204 time = c .getTime ();
177- SimpleDateFormat dateFormat = new SimpleDateFormat ("HH:mm" , Locale .getDefault ());
178- button_add_bill_picktime .setText (dateFormat .format (time ));
205+ setPickTime (time );
179206 }
207+
208+
180209}
0 commit comments