Skip to content

Commit a35fc0d

Browse files
authored
Use androidx.preference.Preference (#49)
* Enable MultiDex * Use PreferenceFragmentCompat Use PreferenceFragmentCompat instead of Preference. This will also make the library works with AppCompat and AndroidX
1 parent e2b5955 commit a35fc0d

File tree

8 files changed

+57
-20
lines changed

8 files changed

+57
-20
lines changed

ColorPickerPreference/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ android {
2828
compileSdkVersion 28
2929

3030
defaultConfig {
31-
minSdkVersion 7
31+
minSdkVersion 14
3232
targetSdkVersion 28
3333
versionCode 1
3434
versionName "1.0"
@@ -43,6 +43,7 @@ android {
4343

4444
dependencies {
4545
implementation fileTree(dir: 'libs', include: ['*.jar'])
46+
implementation "androidx.preference:preference:1.1.0"
4647
}
4748

4849
// Place it at the end of the file

ColorPickerPreference/src/main/java/net/margaritov/preference/colorpicker/ColorPickerPreference.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@
2424
import android.os.Bundle;
2525
import android.os.Parcel;
2626
import android.os.Parcelable;
27-
import android.preference.Preference;
2827
import android.util.AttributeSet;
2928
import android.view.View;
3029
import android.widget.ImageView;
3130
import android.widget.LinearLayout;
3231

32+
import androidx.preference.Preference;
33+
import androidx.preference.PreferenceViewHolder;
34+
3335
/**
3436
* A preference type that allows a user to choose a color
3537
*
@@ -97,9 +99,10 @@ private void init(Context context, AttributeSet attrs) {
9799
}
98100

99101
@Override
100-
protected void onBindView(View view) {
101-
super.onBindView(view);
102-
mView = view;
102+
public void onBindViewHolder(PreferenceViewHolder holder) {
103+
super.onBindViewHolder(holder);
104+
105+
mView = holder.itemView;
103106
setPreviewColor();
104107
}
105108

Sample/build.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@ android {
44
compileSdkVersion 28
55

66
defaultConfig {
7-
minSdkVersion 7
7+
minSdkVersion 14
88
targetSdkVersion 28
9+
multiDexEnabled true
910
}
1011

1112
}
1213

1314
dependencies {
1415
implementation project(':ColorPickerPreference')
16+
implementation "androidx.appcompat:appcompat:1.1.0"
17+
implementation "androidx.preference:preference:1.1.0"
18+
1519
}

Sample/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
android:icon="@drawable/icon"
77
android:label="@string/app_name">
88
<activity
9+
android:theme="@style/Theme.AppCompat"
910
android:name="net.margaritov.preference.colorpicker.Test"
1011
android:label="@string/app_name">
1112
<intent-filter>

Sample/src/main/java/net/margaritov/preference/colorpicker/Test.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,17 @@
1717
package net.margaritov.preference.colorpicker;
1818

1919
import android.os.Bundle;
20-
import android.preference.Preference;
21-
import android.preference.Preference.OnPreferenceChangeListener;
22-
import android.preference.PreferenceActivity;
2320

24-
public class Test extends PreferenceActivity {
21+
import androidx.appcompat.app.AppCompatActivity;
22+
23+
public class Test extends AppCompatActivity {
2524
/**
2625
* Called when the activity is first created.
2726
*/
2827
@Override
2928
public void onCreate(Bundle savedInstanceState) {
3029
super.onCreate(savedInstanceState);
31-
addPreferencesFromResource(R.xml.settings);
32-
((ColorPickerPreference) findPreference("color2")).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
33-
34-
@Override
35-
public boolean onPreferenceChange(Preference preference, Object newValue) {
36-
preference.setSummary(ColorPickerPreference.convertToARGB(Integer.valueOf(String.valueOf(newValue))));
37-
return true;
38-
}
3930

40-
});
41-
((ColorPickerPreference) findPreference("color2")).setAlphaSliderEnabled(true);
31+
setContentView(R.layout.test);
4232
}
4333
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package net.margaritov.preference.colorpicker;
2+
3+
import android.os.Bundle;
4+
5+
import androidx.preference.Preference;
6+
import androidx.preference.PreferenceFragmentCompat;
7+
8+
public class TestPreferenceFragment extends PreferenceFragmentCompat {
9+
10+
@Override
11+
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
12+
addPreferencesFromResource(R.xml.settings);
13+
14+
findPreference("color2").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
15+
16+
@Override
17+
public boolean onPreferenceChange(Preference preference, Object newValue) {
18+
preference.setSummary(ColorPickerPreference.convertToARGB(Integer.valueOf(String.valueOf(newValue))));
19+
return true;
20+
}
21+
22+
});
23+
((ColorPickerPreference) findPreference("color2")).setAlphaSliderEnabled(true);
24+
}
25+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:orientation="vertical" android:layout_width="match_parent"
4+
android:layout_height="match_parent">
5+
6+
<fragment
7+
android:id="@+id/fragment"
8+
android:name="net.margaritov.preference.colorpicker.TestPreferenceFragment"
9+
android:layout_width="match_parent"
10+
android:layout_height="match_parent"/>
11+
12+
</LinearLayout>

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,6 @@ buildscript {
1818
allprojects {
1919
repositories {
2020
jcenter()
21+
google()
2122
}
2223
}

0 commit comments

Comments
 (0)