Skip to content

Commit 42976f5

Browse files
committed
Allow DpcPerference minimum SDK version to be set.
Change-Id: I638a59fb5c59585b9532223366678f22f7ad1103
1 parent 5a4ed3e commit 42976f5

File tree

6 files changed

+36
-1
lines changed

6 files changed

+36
-1
lines changed

app/src/main/java/com/afwsamples/testdpc/common/preference/DpcEditTextPreference.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ public void setEnabled(boolean enabled) {
6868
super.setEnabled(enabled);
6969
}
7070

71+
@Override
72+
public void setMinSdkVersion(int version) {
73+
mHelper.setMinSdkVersion(version);
74+
}
75+
7176
@Override
7277
public void setAdminConstraint(int adminConstraint) {
7378
mHelper.setAdminConstraint(adminConstraint);

app/src/main/java/com/afwsamples/testdpc/common/preference/DpcListPreference.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ public void setEnabled(boolean enabled) {
6868
super.setEnabled(enabled);
6969
}
7070

71+
@Override
72+
public void setMinSdkVersion(int version) {
73+
mHelper.setMinSdkVersion(version);
74+
}
75+
7176
@Override
7277
public void setAdminConstraint(int adminConstraint) {
7378
mHelper.setAdminConstraint(adminConstraint);

app/src/main/java/com/afwsamples/testdpc/common/preference/DpcPreference.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ public void setEnabled(boolean enabled) {
6868
super.setEnabled(enabled);
6969
}
7070

71+
@Override
72+
public void setMinSdkVersion(int version) {
73+
mHelper.setMinSdkVersion(version);
74+
}
75+
7176
@Override
7277
public void setAdminConstraint(int adminConstraint) {
7378
mHelper.setAdminConstraint(adminConstraint);

app/src/main/java/com/afwsamples/testdpc/common/preference/DpcPreferenceBase.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
* Common base class for the DpcPreference family of classes.
2323
*/
2424
public interface DpcPreferenceBase {
25+
void setMinSdkVersion(int version);
2526
void setAdminConstraint(int adminConstraint);
2627
void clearAdminConstraint();
2728
void setUserConstraint(int userConstraints);

app/src/main/java/com/afwsamples/testdpc/common/preference/DpcPreferenceHelper.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public class DpcPreferenceHelper {
4949

5050
private CharSequence mConstraintViolationSummary = null;
5151
private CharSequence mCustomConstraintSummary = null;
52-
private final int mMinSdkVersion;
52+
private int mMinSdkVersion;
5353
private int mAdminConstraint;
5454
private int mUserConstraint;
5555

@@ -73,6 +73,10 @@ public DpcPreferenceHelper(Context context, Preference preference, AttributeSet
7373
final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DpcPreference);
7474

7575
mMinSdkVersion = a.getInt(R.styleable.DpcPreference_minSdkVersion, 0);
76+
if (attrs == null) {
77+
// Be more lenient when creating the preference from code
78+
mMinSdkVersion = Build.VERSION_CODES.LOLLIPOP;
79+
}
7680
if (mMinSdkVersion == 0) {
7781
throw new RuntimeException("testdpc:minSdkVersion must be specified.");
7882
}
@@ -100,6 +104,16 @@ public void onAttachedToHierarchy() {
100104
disableIfConstraintsNotMet();
101105
}
102106

107+
/**
108+
* Set the minimum required API level constraint.
109+
*
110+
* @param version The minimum required version.
111+
*/
112+
public void setMinSdkVersion(int version) {
113+
mMinSdkVersion = version;
114+
disableIfConstraintsNotMet();
115+
}
116+
103117
/**
104118
* Set constraints on the admin.
105119
*

app/src/main/java/com/afwsamples/testdpc/common/preference/DpcSwitchPreference.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ public void setEnabled(boolean enabled) {
6868
super.setEnabled(enabled);
6969
}
7070

71+
@Override
72+
public void setMinSdkVersion(int version) {
73+
mHelper.setMinSdkVersion(version);
74+
}
75+
7176
@Override
7277
public void setAdminConstraint(int adminConstraint) {
7378
mHelper.setAdminConstraint(adminConstraint);

0 commit comments

Comments
 (0)