X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2FDatePickerFragment.java;h=0c4a1c1b72c506167ce5a93cf978b218abe97b6e;hp=657946302970aefff01c4d4576b5ceff0f395004;hb=43bc848441ba0a7316269cfbf649675d07c99b0d;hpb=175d76e9e4473f2da2054c14c6bfc77bbf45844b diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/DatePickerFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/DatePickerFragment.java index 65794630..0c4a1c1b 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/DatePickerFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/DatePickerFragment.java @@ -17,10 +17,8 @@ package net.ktnx.mobileledger.ui; -import android.app.Activity; import android.app.Dialog; import android.os.Bundle; -import android.view.WindowManager; import android.widget.CalendarView; import android.widget.TextView; @@ -31,7 +29,6 @@ import net.ktnx.mobileledger.R; import java.util.Calendar; import java.util.GregorianCalendar; -import java.util.Locale; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -41,6 +38,7 @@ public class DatePickerFragment extends AppCompatDialogFragment static final Pattern reYMD = Pattern.compile("^\\s*(\\d+)\\d*/\\s*(\\d+)\\s*/\\s*(\\d+)\\s*$"); static final Pattern reMD = Pattern.compile("^\\s*(\\d+)\\s*/\\s*(\\d+)\\s*$"); static final Pattern reD = Pattern.compile("\\s*(\\d+)\\s*$"); + private DatePickedListener onDatePickedListener; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -87,30 +85,17 @@ public class DatePickerFragment extends AppCompatDialogFragment return dpd; } - private void updateDateInput(int year, int month, int day) { - TextView date = - Objects.requireNonNull(getActivity()).findViewById(R.id.new_transaction_date); - - final Calendar c = GregorianCalendar.getInstance(); - if (c.get(GregorianCalendar.YEAR) == year) { - if (c.get(GregorianCalendar.MONTH) == month) - date.setText(String.format(Locale.US, "%d", day)); - else date.setText(String.format(Locale.US, "%d/%d", month + 1, day)); - } - else date.setText(String.format(Locale.US, "%d/%d/%d", year, month + 1, day)); - - Activity activity = getActivity(); - if (activity == null) return; - - TextView description = activity.findViewById(R.id.new_transaction_description); - boolean tookFocus = description.requestFocus(); - if (tookFocus) activity.getWindow() - .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); - } @Override public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) { - updateDateInput(year, month, dayOfMonth); this.dismiss(); + if (onDatePickedListener != null) + onDatePickedListener.onDatePicked(year, month, dayOfMonth); + } + public void setOnDatePickedListener(DatePickedListener listener) { + onDatePickedListener = listener; + } + public interface DatePickedListener { + void onDatePicked(int year, int month, int day); } }