From 22fbbd3341001b0f68810eb013124cfba66ed167 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sat, 26 Dec 2020 19:05:18 -0500 Subject: [PATCH] Migrate preferences to AndroidX --- app/build.gradle | 3 +- .../protect/card_locker/AboutActivity.java | 2 +- .../card_locker/preferences/Settings.java | 2 +- .../preferences/SettingsActivity.java | 38 +++++++++++--- app/src/main/res/xml/preferences.xml | 52 +++++++++++-------- .../LoyaltyCardCursorAdapterTest.java | 2 +- .../LoyaltyCardViewActivityTest.java | 2 +- 7 files changed, 67 insertions(+), 34 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 672504f5f..17601c3eb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,6 +55,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.preference:preference:1.1.1' implementation 'com.google.android.material:material:1.2.1' // Third-party @@ -63,7 +64,7 @@ dependencies { implementation 'org.apache.commons:commons-csv:1.8' implementation 'com.jaredrummler:colorpicker:1.1.0' implementation 'com.google.guava:guava:30.1-jre' - implementation 'com.vanniktech:vntnumberpickerpreference:1.0.0' + implementation 'com.github.invissvenska:NumberPickerPreference:1.0.1' // Testing testImplementation 'junit:junit:4.13.1' diff --git a/app/src/main/java/protect/card_locker/AboutActivity.java b/app/src/main/java/protect/card_locker/AboutActivity.java index 1c3efad38..0367ad75b 100644 --- a/app/src/main/java/protect/card_locker/AboutActivity.java +++ b/app/src/main/java/protect/card_locker/AboutActivity.java @@ -41,7 +41,7 @@ public class AboutActivity extends AppCompatActivity .put("ZXing", "https://github.com/zxing/zxing") .put("ZXing Android Embedded", "https://github.com/journeyapps/zxing-android-embedded") .put("Color Picker", "https://github.com/jaredrummler/ColorPicker") - .put("VNTNumberPickerPreference", "https://github.com/vanniktech/VNTNumberPickerPreference") + .put("NumberPickerPreference", "https://github.com/invissvenska/NumberPickerPreference") .build(); final Map USED_ASSETS = ImmutableMap.of diff --git a/app/src/main/java/protect/card_locker/preferences/Settings.java b/app/src/main/java/protect/card_locker/preferences/Settings.java index 8be423b17..b6808f352 100644 --- a/app/src/main/java/protect/card_locker/preferences/Settings.java +++ b/app/src/main/java/protect/card_locker/preferences/Settings.java @@ -2,7 +2,7 @@ package protect.card_locker.preferences; import android.content.Context; import android.content.SharedPreferences; -import android.preference.PreferenceManager; +import androidx.preference.PreferenceManager; import androidx.annotation.IntegerRes; import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatDelegate; diff --git a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java index 485626742..5ba0b9b2a 100644 --- a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java +++ b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java @@ -1,13 +1,16 @@ package protect.card_locker.preferences; import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceFragment; +import androidx.fragment.app.DialogFragment; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatDelegate; import android.view.MenuItem; +import nl.invissvenska.numberpickerpreference.NumberDialogPreference; +import nl.invissvenska.numberpickerpreference.NumberPickerPreferenceDialogFragment; import protect.card_locker.R; public class SettingsActivity extends AppCompatActivity @@ -24,7 +27,7 @@ public class SettingsActivity extends AppCompatActivity } // Display the fragment as the main content. - getFragmentManager().beginTransaction() + getSupportFragmentManager().beginTransaction() .replace(android.R.id.content, new SettingsFragment()) .commit(); } @@ -43,13 +46,12 @@ public class SettingsActivity extends AppCompatActivity return super.onOptionsItemSelected(item); } - public static class SettingsFragment extends PreferenceFragment + public static class SettingsFragment extends PreferenceFragmentCompat { + private static final String DIALOG_FRAGMENT_TAG = "SettingsFragment"; @Override - public void onCreate(final Bundle savedInstanceState) + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - super.onCreate(savedInstanceState); - // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); @@ -76,6 +78,28 @@ public class SettingsActivity extends AppCompatActivity } }); } + + @Override + public void onDisplayPreferenceDialog(Preference preference) + { + if (preference instanceof NumberDialogPreference) + { + NumberDialogPreference dialogPreference = (NumberDialogPreference) preference; + DialogFragment dialogFragment = NumberPickerPreferenceDialogFragment + .newInstance( + dialogPreference.getKey(), + dialogPreference.getMinValue(), + dialogPreference.getMaxValue(), + dialogPreference.getUnitText() + ); + dialogFragment.setTargetFragment(this, 0); + dialogFragment.show(getParentFragmentManager(), DIALOG_FRAGMENT_TAG); + } + else + { + super.onDisplayPreferenceDialog(preference); + } + } } } diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 54a2a9397..b176a17a7 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -4,52 +4,60 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + android:title="@string/settings_category_title_ui" + app:iconSpaceReserved="false"> + android:entryValues="@array/theme_values" + app:iconSpaceReserved="false" /> - + app:defaultValue="@integer/settings_card_title_list_font_size_sp" + app:numberPickerPreference_maxValue="@integer/settings_card_title_list_max_font_size_sp" + app:numberPickerPreference_minValue="@integer/settings_card_title_list_min_font_size_sp" + app:iconSpaceReserved="false" /> - + app:defaultValue="@integer/settings_card_note_list_font_size_sp" + app:numberPickerPreference_maxValue="@integer/settings_card_note_list_max_font_size_sp" + app:numberPickerPreference_minValue="@integer/settings_card_note_list_min_font_size_sp" + app:iconSpaceReserved="false" /> - + app:defaultValue="@integer/settings_card_title_font_size_sp" + app:numberPickerPreference_maxValue="@integer/settings_card_title_max_font_size_sp" + app:numberPickerPreference_minValue="@integer/settings_card_title_min_font_size_sp" + app:iconSpaceReserved="false" /> - + app:defaultValue="@integer/settings_card_id_font_size_sp" + app:numberPickerPreference_maxValue="@integer/settings_card_id_max_font_size_sp" + app:numberPickerPreference_minValue="@integer/settings_card_id_min_font_size_sp" + app:iconSpaceReserved="false" /> - + android:title="@string/settings_display_barcode_max_brightness" + app:iconSpaceReserved="false" /> - + android:title="@string/settings_lock_barcode_orientation" + app:iconSpaceReserved="false" /> \ No newline at end of file diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java index 2aee8e2a0..c21f0f623 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java @@ -4,7 +4,7 @@ import android.app.Activity; import android.content.SharedPreferences; import android.database.Cursor; import android.graphics.Color; -import android.preference.PreferenceManager; +import androidx.preference.PreferenceManager; import android.view.View; import android.widget.ImageView; import android.widget.TextView; diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java index 232ffde41..bb79f75a2 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java @@ -17,7 +17,7 @@ import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; -import android.preference.PreferenceManager; +import androidx.preference.PreferenceManager; import android.view.Menu; import android.view.MenuItem; import android.view.View;