summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DeviceAdminSettings.java
diff options
context:
space:
mode:
authorZoltan Szatmary-Ban <szatmz@google.com>2014-08-28 13:13:34 +0100
committerZoltan Szatmary-Ban <szatmz@google.com>2014-08-28 13:13:34 +0100
commitd92897d39fb9734cf2fd8c74ff1f6f3233933086 (patch)
tree25c6d86bbed45c0ddbbe1baa0fef1a1918c060f2 /src/com/android/settings/DeviceAdminSettings.java
parente58fda7997fd2313f0592e4bb0477d22fe5b6fb4 (diff)
downloadpackages_apps_Settings-d92897d39fb9734cf2fd8c74ff1f6f3233933086.zip
packages_apps_Settings-d92897d39fb9734cf2fd8c74ff1f6f3233933086.tar.gz
packages_apps_Settings-d92897d39fb9734cf2fd8c74ff1f6f3233933086.tar.bz2
Check for DeviceAdminInfo type before casting
Race conditions seem to cause disabled list adapter items to trigger an onListItemClick event. Type of item object needs to be checked therefore. Bug:17187120 Change-Id: I469004081c89c9ba24dfa95872b54648a26213f9
Diffstat (limited to 'src/com/android/settings/DeviceAdminSettings.java')
-rw-r--r--src/com/android/settings/DeviceAdminSettings.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/com/android/settings/DeviceAdminSettings.java b/src/com/android/settings/DeviceAdminSettings.java
index 1ea9859..2eb6f99 100644
--- a/src/com/android/settings/DeviceAdminSettings.java
+++ b/src/com/android/settings/DeviceAdminSettings.java
@@ -127,7 +127,12 @@ public class DeviceAdminSettings extends ListFragment {
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
- DeviceAdminInfo dpi = (DeviceAdminInfo) l.getAdapter().getItem(position);
+ Object o = l.getAdapter().getItem(position);
+ if (!(o instanceof DeviceAdminInfo)) {
+ // race conditions may cause this
+ return;
+ }
+ DeviceAdminInfo dpi = (DeviceAdminInfo) o;
final Activity activity = getActivity();
final int userId = getUserId(dpi);
if (userId == UserHandle.myUserId() || !isProfileOwner(dpi)) {