Skip to content

Commit 28fa5d9

Browse files
committed
User and IntDef for user and admin kinds.
This will help prevent passing the incorrect values such as trying to set an admin constraint with a user kind. Change-Id: Idb96c1e94f50563619c6a3fb50449ec75127f388
1 parent 6ced780 commit 28fa5d9

File tree

6 files changed

+27
-16
lines changed

6 files changed

+27
-16
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public void setMinSdkVersion(int version) {
7474
}
7575

7676
@Override
77-
public void setAdminConstraint(int adminConstraint) {
77+
public void setAdminConstraint(@DpcPreferenceHelper.AdminKind int adminConstraint) {
7878
mHelper.setAdminConstraint(adminConstraint);
7979
}
8080

@@ -84,7 +84,7 @@ public void clearAdminConstraint() {
8484
}
8585

8686
@Override
87-
public void setUserConstraint(int userConstraints) {
87+
public void setUserConstraint(@DpcPreferenceHelper.UserKind int userConstraints) {
8888
mHelper.setUserConstraint(userConstraints);
8989
}
9090

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public void setMinSdkVersion(int version) {
7474
}
7575

7676
@Override
77-
public void setAdminConstraint(int adminConstraint) {
77+
public void setAdminConstraint(@DpcPreferenceHelper.AdminKind int adminConstraint) {
7878
mHelper.setAdminConstraint(adminConstraint);
7979
}
8080

@@ -84,7 +84,7 @@ public void clearAdminConstraint() {
8484
}
8585

8686
@Override
87-
public void setUserConstraint(int userConstraints) {
87+
public void setUserConstraint(@DpcPreferenceHelper.UserKind int userConstraints) {
8888
mHelper.setUserConstraint(userConstraints);
8989
}
9090

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public void setMinSdkVersion(int version) {
7474
}
7575

7676
@Override
77-
public void setAdminConstraint(int adminConstraint) {
77+
public void setAdminConstraint(@DpcPreferenceHelper.AdminKind int adminConstraint) {
7878
mHelper.setAdminConstraint(adminConstraint);
7979
}
8080

@@ -84,7 +84,7 @@ public void clearAdminConstraint() {
8484
}
8585

8686
@Override
87-
public void setUserConstraint(int userConstraints) {
87+
public void setUserConstraint(@DpcPreferenceHelper.UserKind int userConstraints) {
8888
mHelper.setUserConstraint(userConstraints);
8989
}
9090

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
*/
2424
public interface DpcPreferenceBase {
2525
void setMinSdkVersion(int version);
26-
void setAdminConstraint(int adminConstraint);
26+
void setAdminConstraint(@DpcPreferenceHelper.AdminKind int adminConstraint);
2727
void clearAdminConstraint();
28-
void setUserConstraint(int userConstraints);
28+
void setUserConstraint(@DpcPreferenceHelper.UserKind int userConstraints);
2929
void clearUserConstraint();
3030
void clearNonCustomConstraints();
3131
void setCustomConstraint(CharSequence constraintSummary);

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

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.content.Context;
2121
import android.content.res.TypedArray;
2222
import android.os.Build;
23+
import android.support.annotation.IntDef;
2324
import android.support.v7.preference.Preference;
2425
import android.support.v7.preference.PreferenceViewHolder;
2526
import android.text.TextUtils;
@@ -31,6 +32,8 @@
3132
import com.afwsamples.testdpc.R;
3233
import com.afwsamples.testdpc.common.Util;
3334

35+
import java.lang.annotation.Retention;
36+
import java.lang.annotation.RetentionPolicy;
3437
import java.util.ArrayList;
3538
import java.util.List;
3639

@@ -50,15 +53,21 @@ public class DpcPreferenceHelper {
5053
private CharSequence mConstraintViolationSummary = null;
5154
private CharSequence mCustomConstraintSummary = null;
5255
private int mMinSdkVersion;
53-
private int mAdminConstraint;
54-
private int mUserConstraint;
56+
private @AdminKind int mAdminConstraint;
57+
private @UserKind int mUserConstraint;
5558

5659
private static final int NUM_ADMIN_KINDS = 2;
60+
@Retention(RetentionPolicy.SOURCE)
61+
@IntDef(flag = true, value = {ADMIN_DEVICE_OWNER, ADMIN_PROFILE_OWNER})
62+
public @interface AdminKind {}
5763
public static final int ADMIN_DEVICE_OWNER = 0x1;
5864
public static final int ADMIN_PROFILE_OWNER = 0x2;
5965
public static final int ADMIN_ANY = ADMIN_DEVICE_OWNER | ADMIN_PROFILE_OWNER;
6066

6167
private static final int NUM_USER_KINDS = 3;
68+
@Retention(RetentionPolicy.SOURCE)
69+
@IntDef(flag = true, value = {USER_PRIMARY_USER, USER_SECONDARY_USER, USER_MANAGED_PROFILE})
70+
public @interface UserKind {}
6271
public static final int USER_PRIMARY_USER = 0x1;
6372
public static final int USER_SECONDARY_USER = 0x2;
6473
public static final int USER_MANAGED_PROFILE = 0x4;
@@ -83,7 +92,9 @@ public DpcPreferenceHelper(Context context, Preference preference, AttributeSet
8392
throw new RuntimeException("testdpc:minSdkVersion must be specified.");
8493
}
8594

95+
// noinspection ResourceType
8696
mAdminConstraint = a.getInt(R.styleable.DpcPreference_admin, ADMIN_ANY);
97+
// noinspection ResourceType
8798
mUserConstraint = a.getInt(R.styleable.DpcPreference_user, USER_ANY);
8899

89100
a.recycle();
@@ -121,7 +132,7 @@ public void setMinSdkVersion(int version) {
121132
*
122133
* @param adminConstraint The admins for which the preference is enabled.
123134
*/
124-
public void setAdminConstraint(int adminConstraint) {
135+
public void setAdminConstraint(@AdminKind int adminConstraint) {
125136
mAdminConstraint = adminConstraint;
126137
disableIfConstraintsNotMet();
127138
}
@@ -138,7 +149,7 @@ public void clearAdminConstraint() {
138149
*
139150
* @param userConstraint The users for which the preference is enabled.
140151
*/
141-
public void setUserConstraint(int userConstraint) {
152+
public void setUserConstraint(@UserKind int userConstraint) {
142153
mUserConstraint = userConstraint;
143154
disableIfConstraintsNotMet();
144155
}
@@ -245,11 +256,11 @@ private int getCurrentUser() {
245256
return USER_SECONDARY_USER;
246257
}
247258

248-
private boolean isEnabledForAdmin(int admin) {
259+
private boolean isEnabledForAdmin(@AdminKind int admin) {
249260
return (mAdminConstraint & admin) == admin;
250261
}
251262

252-
private boolean isEnabledForUser(int user) {
263+
private boolean isEnabledForUser(@UserKind int user) {
253264
return (mUserConstraint & user) == user;
254265
}
255266

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public void setMinSdkVersion(int version) {
7474
}
7575

7676
@Override
77-
public void setAdminConstraint(int adminConstraint) {
77+
public void setAdminConstraint(@DpcPreferenceHelper.AdminKind int adminConstraint) {
7878
mHelper.setAdminConstraint(adminConstraint);
7979
}
8080

@@ -84,7 +84,7 @@ public void clearAdminConstraint() {
8484
}
8585

8686
@Override
87-
public void setUserConstraint(int userConstraints) {
87+
public void setUserConstraint(@DpcPreferenceHelper.UserKind int userConstraints) {
8888
mHelper.setUserConstraint(userConstraints);
8989
}
9090

0 commit comments

Comments
 (0)