Skip to content

Commit

Permalink
Merge pull request rilling#54 from thanhpd/thanh/example2
Browse files Browse the repository at this point in the history
rilling#85: use PreferencesUtils for ski season start date
  • Loading branch information
thanhpd authored Apr 2, 2024
2 parents 708c245 + dbc019d commit 1eff4ae
Showing 1 changed file with 5 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import android.os.Bundle;
import android.view.View;
import android.widget.NumberPicker;
import android.widget.TextView;

import androidx.fragment.app.DialogFragment;
import androidx.preference.ListPreference;
Expand All @@ -13,8 +12,6 @@
import androidx.preference.PreferenceManager;

import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Locale;

Expand Down Expand Up @@ -83,16 +80,14 @@ public void onDisplayPreferenceDialog(Preference preference) {
}

private void showCustomDatePickerDialog() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext());
View dialogView = getLayoutInflater().inflate(R.layout.custom_date_picker_dialog, null);
builder.setView(dialogView);

NumberPicker monthPicker = dialogView.findViewById(R.id.monthPicker);
NumberPicker dayPicker = dialogView.findViewById(R.id.dayPicker);
Preference preference = findPreference(getString(R.string.ski_season_start_key));

String defaultStartDate = prefs.getString(getString(R.string.ski_season_start_key), "09-01");
String defaultStartDate = PreferencesUtils.getSkiSeasonStartDate();

// Initialize month picker
String[] months = new DateFormatSymbols().getMonths(); // Full months array
Expand Down Expand Up @@ -130,10 +125,8 @@ private void showCustomDatePickerDialog() {
int selectedMonth = monthPicker.getValue();
int selectedDay = dayPicker.getValue();
String selectedDate = String.format(Locale.getDefault(), "%02d-%02d", selectedMonth + 1, selectedDay);

SharedPreferences.Editor editor = prefs.edit();
editor.putString(getString(R.string.ski_season_start_key), selectedDate);
editor.apply();

PreferencesUtils.setSkiSeasonStartDate(selectedDate);

// Update the preference summary
updateSkiSeasonStartPreferenceSummary();
Expand All @@ -149,20 +142,17 @@ private void ensureDefaultSkiSeasonStartDate() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
if (!prefs.contains(getString(R.string.ski_season_start_key))) {
// Set the default date only if it hasn't been set before
SharedPreferences.Editor editor = prefs.edit();
editor.putString(getString(R.string.ski_season_start_key), "09-01");
editor.apply();
PreferencesUtils.setSkiSeasonStartDate("09-01");
}
}

private void updateSkiSeasonStartPreferenceSummary() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
Preference preference = findPreference(getString(R.string.ski_season_start_key));

// The ensureDefaultSkiSeasonStartDate() method makes sure that a default is always set
ensureDefaultSkiSeasonStartDate();

String date = prefs.getString(getString(R.string.ski_season_start_key), "09-01");
String date = PreferencesUtils.getSkiSeasonStartDate();
String[] dateParts = date.split("-");
int monthIndex = Integer.parseInt(dateParts[0]) - 1;
// Ensure the format is correctly applied to display as "Sep 1"
Expand Down

0 comments on commit 1eff4ae

Please sign in to comment.