diff options
author | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-08-28 13:13:34 +0100 |
---|---|---|
committer | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-08-28 13:13:34 +0100 |
commit | d92897d39fb9734cf2fd8c74ff1f6f3233933086 (patch) | |
tree | 25c6d86bbed45c0ddbbe1baa0fef1a1918c060f2 /src/com/android/settings/DeviceAdminSettings.java | |
parent | e58fda7997fd2313f0592e4bb0477d22fe5b6fb4 (diff) | |
download | packages_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.java | 7 |
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)) { |