diff options
| author | 2019-01-29 18:33:07 -0500 | |
|---|---|---|
| committer | 2019-01-29 18:33:07 -0500 | |
| commit | 873e19384cb538b77d003d99f202b73fc0d3963f (patch) | |
| tree | f86ba49c926cd06116115e81733810c50e718844 | |
| parent | 2d10bd04816b2931cc232602855a08f1c031de64 (diff) | |
Fixed NPE when passing intent to permissioncontroller
OngoingPrivacyDialog only assigns clickListeners to lines with a valid
package name.
Test: manual, Device Services is not clickable
Bug: 123581716
Change-Id: I7775cc39b7446fc93c53cbf0c70b9214e406cd74
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt index db5c244d95b2..e2688f13134c 100644 --- a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt @@ -19,6 +19,7 @@ import android.app.Dialog import android.content.Context import android.content.DialogInterface import android.content.Intent +import android.content.pm.PackageManager import android.content.res.ColorStateList import android.os.UserHandle import android.util.IconDrawableFactory @@ -157,16 +158,21 @@ class OngoingPrivacyDialog constructor( } else { icons.visibility = View.GONE } - item.setOnClickListener(object : View.OnClickListener { - val intent = Intent(Intent.ACTION_REVIEW_APP_PERMISSION_USAGE) - .putExtra(Intent.EXTRA_PACKAGE_NAME, app.packageName) - .putExtra(Intent.EXTRA_USER, UserHandle.getUserHandleForUid(app.uid)) - override fun onClick(v: View?) { - Dependency.get(ActivityStarter::class.java) - .postStartActivityDismissingKeyguard(intent, 0) - dismissDialog?.invoke() - } - }) + try { + // Check if package exists + context.packageManager.getPackageInfo(app.packageName, 0) + item.setOnClickListener(object : View.OnClickListener { + val intent = Intent(Intent.ACTION_REVIEW_APP_PERMISSION_USAGE) + .putExtra(Intent.EXTRA_PACKAGE_NAME, app.packageName) + .putExtra(Intent.EXTRA_USER, UserHandle.getUserHandleForUid(app.uid)) + override fun onClick(v: View?) { + Dependency.get(ActivityStarter::class.java) + .postStartActivityDismissingKeyguard(intent, 0) + dismissDialog?.invoke() + } + }) + } catch (e: PackageManager.NameNotFoundException) {} + itemList.addView(item) } } |