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
This commit is contained in:
Zoltan Szatmary-Ban
2014-08-28 13:13:34 +01:00
parent e58fda7997
commit d92897d39f

View File

@@ -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)) {