Loading AndroidManifest.xml +2 −2 Original line number Original line Diff line number Diff line Loading @@ -2760,8 +2760,8 @@ <activity android:name="ShowAdminSupportDetailsDialog" <activity android:name="ShowAdminSupportDetailsDialog" android:theme="@style/Transparent" android:theme="@style/Transparent" android:excludeFromRecents="true"> android:excludeFromRecents="true" android:launchMode="singleTop"> <intent-filter> <intent-filter> <action android:name="android.settings.SHOW_ADMIN_SUPPORT_DETAILS" /> <action android:name="android.settings.SHOW_ADMIN_SUPPORT_DETAILS" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" /> Loading src/com/android/settings/ShowAdminSupportDetailsDialog.java +33 −14 Original line number Original line Diff line number Diff line Loading @@ -37,40 +37,59 @@ import android.view.View; import android.widget.ImageView; import android.widget.ImageView; import android.widget.TextView; import android.widget.TextView; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; public class ShowAdminSupportDetailsDialog extends Activity public class ShowAdminSupportDetailsDialog extends Activity implements DialogInterface.OnDismissListener { implements DialogInterface.OnDismissListener { private final String TAG = "AdminSupportDialog"; private static final String TAG = "AdminSupportDialog"; private DevicePolicyManager mDpm; private DevicePolicyManager mDpm; private EnforcedAdmin mEnforcedAdmin; private View mDialogView; @Override @Override protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.onCreate(savedInstanceState); mDpm = getSystemService(DevicePolicyManager.class); mDpm = getSystemService(DevicePolicyManager.class); ComponentName admin = null; mEnforcedAdmin = getAdminDetailsFromIntent(getIntent()); int userId = UserHandle.myUserId(); Intent intent = getIntent(); if (intent != null) { // Only allow apps with MANAGE_DEVICE_ADMINS permission to specify admin and user. if (checkIfCallerHasPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS)) { admin = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN); userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); } } View rootView = LayoutInflater.from(this).inflate( mDialogView = LayoutInflater.from(this).inflate( R.layout.admin_support_details_dialog, null); R.layout.admin_support_details_dialog, null); setAdminSupportDetails(rootView, admin, userId); setAdminSupportDetails(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId); new AlertDialog.Builder(this) new AlertDialog.Builder(this) .setView(rootView) .setView(mDialogView) .setPositiveButton(R.string.okay, null) .setPositiveButton(R.string.okay, null) .setOnDismissListener(this) .setOnDismissListener(this) .show(); .show(); } } @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); EnforcedAdmin admin = getAdminDetailsFromIntent(intent); if (!mEnforcedAdmin.equals(admin)) { mEnforcedAdmin = admin; setAdminSupportDetails(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId); } } private EnforcedAdmin getAdminDetailsFromIntent(Intent intent) { EnforcedAdmin admin = new EnforcedAdmin(null, UserHandle.myUserId()); if (intent == null) { return admin; } // Only allow apps with MANAGE_DEVICE_ADMINS permission to specify admin and user. if (checkIfCallerHasPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS)) { admin.component = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN); admin.userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); } return admin; } private boolean checkIfCallerHasPermission(String permission) { private boolean checkIfCallerHasPermission(String permission) { IActivityManager am = ActivityManagerNative.getDefault(); IActivityManager am = ActivityManagerNative.getDefault(); try { try { Loading Loading
AndroidManifest.xml +2 −2 Original line number Original line Diff line number Diff line Loading @@ -2760,8 +2760,8 @@ <activity android:name="ShowAdminSupportDetailsDialog" <activity android:name="ShowAdminSupportDetailsDialog" android:theme="@style/Transparent" android:theme="@style/Transparent" android:excludeFromRecents="true"> android:excludeFromRecents="true" android:launchMode="singleTop"> <intent-filter> <intent-filter> <action android:name="android.settings.SHOW_ADMIN_SUPPORT_DETAILS" /> <action android:name="android.settings.SHOW_ADMIN_SUPPORT_DETAILS" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" /> Loading
src/com/android/settings/ShowAdminSupportDetailsDialog.java +33 −14 Original line number Original line Diff line number Diff line Loading @@ -37,40 +37,59 @@ import android.view.View; import android.widget.ImageView; import android.widget.ImageView; import android.widget.TextView; import android.widget.TextView; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; public class ShowAdminSupportDetailsDialog extends Activity public class ShowAdminSupportDetailsDialog extends Activity implements DialogInterface.OnDismissListener { implements DialogInterface.OnDismissListener { private final String TAG = "AdminSupportDialog"; private static final String TAG = "AdminSupportDialog"; private DevicePolicyManager mDpm; private DevicePolicyManager mDpm; private EnforcedAdmin mEnforcedAdmin; private View mDialogView; @Override @Override protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.onCreate(savedInstanceState); mDpm = getSystemService(DevicePolicyManager.class); mDpm = getSystemService(DevicePolicyManager.class); ComponentName admin = null; mEnforcedAdmin = getAdminDetailsFromIntent(getIntent()); int userId = UserHandle.myUserId(); Intent intent = getIntent(); if (intent != null) { // Only allow apps with MANAGE_DEVICE_ADMINS permission to specify admin and user. if (checkIfCallerHasPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS)) { admin = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN); userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); } } View rootView = LayoutInflater.from(this).inflate( mDialogView = LayoutInflater.from(this).inflate( R.layout.admin_support_details_dialog, null); R.layout.admin_support_details_dialog, null); setAdminSupportDetails(rootView, admin, userId); setAdminSupportDetails(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId); new AlertDialog.Builder(this) new AlertDialog.Builder(this) .setView(rootView) .setView(mDialogView) .setPositiveButton(R.string.okay, null) .setPositiveButton(R.string.okay, null) .setOnDismissListener(this) .setOnDismissListener(this) .show(); .show(); } } @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); EnforcedAdmin admin = getAdminDetailsFromIntent(intent); if (!mEnforcedAdmin.equals(admin)) { mEnforcedAdmin = admin; setAdminSupportDetails(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId); } } private EnforcedAdmin getAdminDetailsFromIntent(Intent intent) { EnforcedAdmin admin = new EnforcedAdmin(null, UserHandle.myUserId()); if (intent == null) { return admin; } // Only allow apps with MANAGE_DEVICE_ADMINS permission to specify admin and user. if (checkIfCallerHasPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS)) { admin.component = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN); admin.userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); } return admin; } private boolean checkIfCallerHasPermission(String permission) { private boolean checkIfCallerHasPermission(String permission) { IActivityManager am = ActivityManagerNative.getDefault(); IActivityManager am = ActivityManagerNative.getDefault(); try { try { Loading