Loading src/com/android/settings/MainClear.java +16 −0 Original line number Diff line number Diff line Loading @@ -23,10 +23,12 @@ import android.accounts.AccountManager; import android.accounts.AuthenticatorDescription; import android.app.ActionBar; import android.app.Activity; import android.app.AlertDialog; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; Loading @@ -39,6 +41,7 @@ import android.os.Environment; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.os.image.DynamicSystemManager; import android.provider.Settings; import android.sysprop.VoldProperties; import android.telephony.euicc.EuiccManager; Loading Loading @@ -262,6 +265,19 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis return; } final DynamicSystemManager dsuManager = (DynamicSystemManager) getActivity().getSystemService(Context.DYNAMIC_SYSTEM_SERVICE); if (dsuManager.isInUse()) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.dsu_is_running); builder.setPositiveButton(R.string.okay, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) {} }); AlertDialog dsuAlertdialog = builder.create(); dsuAlertdialog.show(); return; } if (runKeyguardConfirmation(KEYGUARD_REQUEST)) { return; } Loading src/com/android/settings/notification/NotificationAccessConfirmationActivity.java +30 −20 Original line number Diff line number Diff line Loading @@ -29,12 +29,14 @@ import android.app.NotificationManager; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageItemInfo; import android.content.pm.PackageManager; import android.content.pm.ServiceInfo; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.os.UserHandle; import android.service.notification.NotificationListenerService; import android.text.TextUtils; import android.util.Slog; import android.view.WindowManager; Loading @@ -44,6 +46,8 @@ import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertController; import com.android.settings.R; import java.util.List; /** @hide */ public class NotificationAccessConfirmationActivity extends Activity implements DialogInterface { Loading Loading @@ -92,6 +96,31 @@ public class NotificationAccessConfirmationActivity extends Activity return; } // Check NLS service info. String requiredPermission = Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE; Intent NLSIntent = new Intent(NotificationListenerService.SERVICE_INTERFACE); List<ResolveInfo> matchedServiceList = getPackageManager().queryIntentServicesAsUser( NLSIntent, /* flags */ 0, mUserId); boolean hasNLSIntentFilter = false; for (ResolveInfo service : matchedServiceList) { if (service.serviceInfo.packageName.equals(mComponentName.getPackageName())) { if (!requiredPermission.equals(service.serviceInfo.permission)) { Slog.e(LOG_TAG, "Service " + mComponentName + " lacks permission " + requiredPermission); finish(); return; } hasNLSIntentFilter = true; break; } } if (!hasNLSIntentFilter) { Slog.e(LOG_TAG, "Service " + mComponentName + " lacks an intent-filter action " + "for android.service.notification.NotificationListenerService."); finish(); return; } AlertController.AlertParams p = new AlertController.AlertParams(this); p.mTitle = getString( R.string.notification_listener_security_warning_title, Loading Loading @@ -126,19 +155,6 @@ public class NotificationAccessConfirmationActivity extends Activity } private void onAllow() { String requiredPermission = Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE; try { ServiceInfo serviceInfo = getPackageManager().getServiceInfo(mComponentName, 0); if (!requiredPermission.equals(serviceInfo.permission)) { Slog.e(LOG_TAG, "Service " + mComponentName + " lacks permission " + requiredPermission); return; } } catch (PackageManager.NameNotFoundException e) { Slog.e(LOG_TAG, "Failed to get service info for " + mComponentName, e); return; } mNm.setNotificationListenerAccessGranted(mComponentName, true); finish(); Loading @@ -149,12 +165,6 @@ public class NotificationAccessConfirmationActivity extends Activity return AlertActivity.dispatchPopulateAccessibilityEvent(this, event); } @Override public void onBackPressed() { // Suppress finishing the activity on back button press, // consistently with the permission dialog behavior } @Override public void cancel() { finish(); Loading Loading
src/com/android/settings/MainClear.java +16 −0 Original line number Diff line number Diff line Loading @@ -23,10 +23,12 @@ import android.accounts.AccountManager; import android.accounts.AuthenticatorDescription; import android.app.ActionBar; import android.app.Activity; import android.app.AlertDialog; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; Loading @@ -39,6 +41,7 @@ import android.os.Environment; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.os.image.DynamicSystemManager; import android.provider.Settings; import android.sysprop.VoldProperties; import android.telephony.euicc.EuiccManager; Loading Loading @@ -262,6 +265,19 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis return; } final DynamicSystemManager dsuManager = (DynamicSystemManager) getActivity().getSystemService(Context.DYNAMIC_SYSTEM_SERVICE); if (dsuManager.isInUse()) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.dsu_is_running); builder.setPositiveButton(R.string.okay, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) {} }); AlertDialog dsuAlertdialog = builder.create(); dsuAlertdialog.show(); return; } if (runKeyguardConfirmation(KEYGUARD_REQUEST)) { return; } Loading
src/com/android/settings/notification/NotificationAccessConfirmationActivity.java +30 −20 Original line number Diff line number Diff line Loading @@ -29,12 +29,14 @@ import android.app.NotificationManager; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageItemInfo; import android.content.pm.PackageManager; import android.content.pm.ServiceInfo; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.os.UserHandle; import android.service.notification.NotificationListenerService; import android.text.TextUtils; import android.util.Slog; import android.view.WindowManager; Loading @@ -44,6 +46,8 @@ import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertController; import com.android.settings.R; import java.util.List; /** @hide */ public class NotificationAccessConfirmationActivity extends Activity implements DialogInterface { Loading Loading @@ -92,6 +96,31 @@ public class NotificationAccessConfirmationActivity extends Activity return; } // Check NLS service info. String requiredPermission = Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE; Intent NLSIntent = new Intent(NotificationListenerService.SERVICE_INTERFACE); List<ResolveInfo> matchedServiceList = getPackageManager().queryIntentServicesAsUser( NLSIntent, /* flags */ 0, mUserId); boolean hasNLSIntentFilter = false; for (ResolveInfo service : matchedServiceList) { if (service.serviceInfo.packageName.equals(mComponentName.getPackageName())) { if (!requiredPermission.equals(service.serviceInfo.permission)) { Slog.e(LOG_TAG, "Service " + mComponentName + " lacks permission " + requiredPermission); finish(); return; } hasNLSIntentFilter = true; break; } } if (!hasNLSIntentFilter) { Slog.e(LOG_TAG, "Service " + mComponentName + " lacks an intent-filter action " + "for android.service.notification.NotificationListenerService."); finish(); return; } AlertController.AlertParams p = new AlertController.AlertParams(this); p.mTitle = getString( R.string.notification_listener_security_warning_title, Loading Loading @@ -126,19 +155,6 @@ public class NotificationAccessConfirmationActivity extends Activity } private void onAllow() { String requiredPermission = Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE; try { ServiceInfo serviceInfo = getPackageManager().getServiceInfo(mComponentName, 0); if (!requiredPermission.equals(serviceInfo.permission)) { Slog.e(LOG_TAG, "Service " + mComponentName + " lacks permission " + requiredPermission); return; } } catch (PackageManager.NameNotFoundException e) { Slog.e(LOG_TAG, "Failed to get service info for " + mComponentName, e); return; } mNm.setNotificationListenerAccessGranted(mComponentName, true); finish(); Loading @@ -149,12 +165,6 @@ public class NotificationAccessConfirmationActivity extends Activity return AlertActivity.dispatchPopulateAccessibilityEvent(this, event); } @Override public void onBackPressed() { // Suppress finishing the activity on back button press, // consistently with the permission dialog behavior } @Override public void cancel() { finish(); Loading