Loading packages/SystemUI/AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -266,7 +266,7 @@ <activity android:name=".media.MediaProjectionPermissionActivity" android:exported="true" android:theme="@style/Theme.SystemUI.Dialog.Alert" android:theme="@style/Theme.AlertDialogHost" android:finishOnCloseSystemDialogs="true" android:launchMode="singleTop" android:excludeFromRecents="true" /> Loading packages/SystemUI/res/values/styles.xml +10 −0 Original line number Diff line number Diff line Loading @@ -262,4 +262,14 @@ <style name="UserDetailView"> <item name="numColumns">3</item> </style> <style name="Theme.AlertDialogHost" parent="android:Theme.DeviceDefault"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:alertDialogTheme">@style/Theme.SystemUI.Dialog.Alert</item> </style> </resources> packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java +35 −19 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.media; import android.app.Activity; import android.app.AlertDialog; import android.app.PendingIntent; import android.content.Context; Loading @@ -32,6 +33,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; import android.view.LayoutInflater; import android.view.WindowManager; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; Loading @@ -39,9 +41,11 @@ import android.widget.TextView; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertController; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SystemUIDialog; public class MediaProjectionPermissionActivity extends AlertActivity implements DialogInterface.OnClickListener, CheckBox.OnCheckedChangeListener { public class MediaProjectionPermissionActivity extends Activity implements DialogInterface.OnClickListener, CheckBox.OnCheckedChangeListener, DialogInterface.OnCancelListener { private static final String TAG = "MediaProjectionPermissionActivity"; private boolean mPermanentGrant; Loading @@ -49,11 +53,12 @@ public class MediaProjectionPermissionActivity extends AlertActivity private int mUid; private IMediaProjectionManager mService; private AlertDialog mDialog; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Intent intent = getIntent(); mPackageName = getCallingPackage(); IBinder b = ServiceManager.getService(MEDIA_PROJECTION_SERVICE); mService = IMediaProjectionManager.Stub.asInterface(b); Loading Loading @@ -89,22 +94,27 @@ public class MediaProjectionPermissionActivity extends AlertActivity String appName = aInfo.loadLabel(packageManager).toString(); final AlertController.AlertParams ap = mAlertParams; ap.mIcon = aInfo.loadIcon(packageManager); ap.mMessage = getString(R.string.media_projection_dialog_text, appName); ap.mPositiveButtonText = getString(R.string.media_projection_action_text); ap.mNegativeButtonText = getString(android.R.string.cancel); ap.mPositiveButtonListener = this; ap.mNegativeButtonListener = this; // add "always use" checkbox LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); ap.mView = inflater.inflate(R.layout.remember_permission_checkbox, null); CheckBox rememberPermissionCheckbox = (CheckBox)ap.mView.findViewById(R.id.remember); rememberPermissionCheckbox.setOnCheckedChangeListener(this); setupAlert(); mDialog = new AlertDialog.Builder(this) .setIcon(aInfo.loadIcon(packageManager)) .setMessage(getString(R.string.media_projection_dialog_text, appName)) .setPositiveButton(R.string.media_projection_action_text, this) .setNegativeButton(android.R.string.cancel, this) .setView(R.layout.remember_permission_checkbox) .setOnCancelListener(this) .create(); mDialog.create(); ((CheckBox) mDialog.findViewById(R.id.remember)).setOnCheckedChangeListener(this); mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); mDialog.show(); } @Override protected void onDestroy() { super.onDestroy(); mDialog.dismiss(); } @Override Loading @@ -118,6 +128,7 @@ public class MediaProjectionPermissionActivity extends AlertActivity Log.e(TAG, "Error granting projection permission", e); setResult(RESULT_CANCELED); } finally { mDialog.dismiss(); finish(); } } Loading @@ -135,4 +146,9 @@ public class MediaProjectionPermissionActivity extends AlertActivity intent.putExtra(MediaProjectionManager.EXTRA_MEDIA_PROJECTION, projection.asBinder()); return intent; } @Override public void onCancel(DialogInterface dialog) { finish(); } } Loading
packages/SystemUI/AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -266,7 +266,7 @@ <activity android:name=".media.MediaProjectionPermissionActivity" android:exported="true" android:theme="@style/Theme.SystemUI.Dialog.Alert" android:theme="@style/Theme.AlertDialogHost" android:finishOnCloseSystemDialogs="true" android:launchMode="singleTop" android:excludeFromRecents="true" /> Loading
packages/SystemUI/res/values/styles.xml +10 −0 Original line number Diff line number Diff line Loading @@ -262,4 +262,14 @@ <style name="UserDetailView"> <item name="numColumns">3</item> </style> <style name="Theme.AlertDialogHost" parent="android:Theme.DeviceDefault"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:alertDialogTheme">@style/Theme.SystemUI.Dialog.Alert</item> </style> </resources>
packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java +35 −19 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.media; import android.app.Activity; import android.app.AlertDialog; import android.app.PendingIntent; import android.content.Context; Loading @@ -32,6 +33,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; import android.view.LayoutInflater; import android.view.WindowManager; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; Loading @@ -39,9 +41,11 @@ import android.widget.TextView; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertController; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SystemUIDialog; public class MediaProjectionPermissionActivity extends AlertActivity implements DialogInterface.OnClickListener, CheckBox.OnCheckedChangeListener { public class MediaProjectionPermissionActivity extends Activity implements DialogInterface.OnClickListener, CheckBox.OnCheckedChangeListener, DialogInterface.OnCancelListener { private static final String TAG = "MediaProjectionPermissionActivity"; private boolean mPermanentGrant; Loading @@ -49,11 +53,12 @@ public class MediaProjectionPermissionActivity extends AlertActivity private int mUid; private IMediaProjectionManager mService; private AlertDialog mDialog; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Intent intent = getIntent(); mPackageName = getCallingPackage(); IBinder b = ServiceManager.getService(MEDIA_PROJECTION_SERVICE); mService = IMediaProjectionManager.Stub.asInterface(b); Loading Loading @@ -89,22 +94,27 @@ public class MediaProjectionPermissionActivity extends AlertActivity String appName = aInfo.loadLabel(packageManager).toString(); final AlertController.AlertParams ap = mAlertParams; ap.mIcon = aInfo.loadIcon(packageManager); ap.mMessage = getString(R.string.media_projection_dialog_text, appName); ap.mPositiveButtonText = getString(R.string.media_projection_action_text); ap.mNegativeButtonText = getString(android.R.string.cancel); ap.mPositiveButtonListener = this; ap.mNegativeButtonListener = this; // add "always use" checkbox LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); ap.mView = inflater.inflate(R.layout.remember_permission_checkbox, null); CheckBox rememberPermissionCheckbox = (CheckBox)ap.mView.findViewById(R.id.remember); rememberPermissionCheckbox.setOnCheckedChangeListener(this); setupAlert(); mDialog = new AlertDialog.Builder(this) .setIcon(aInfo.loadIcon(packageManager)) .setMessage(getString(R.string.media_projection_dialog_text, appName)) .setPositiveButton(R.string.media_projection_action_text, this) .setNegativeButton(android.R.string.cancel, this) .setView(R.layout.remember_permission_checkbox) .setOnCancelListener(this) .create(); mDialog.create(); ((CheckBox) mDialog.findViewById(R.id.remember)).setOnCheckedChangeListener(this); mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); mDialog.show(); } @Override protected void onDestroy() { super.onDestroy(); mDialog.dismiss(); } @Override Loading @@ -118,6 +128,7 @@ public class MediaProjectionPermissionActivity extends AlertActivity Log.e(TAG, "Error granting projection permission", e); setResult(RESULT_CANCELED); } finally { mDialog.dismiss(); finish(); } } Loading @@ -135,4 +146,9 @@ public class MediaProjectionPermissionActivity extends AlertActivity intent.putExtra(MediaProjectionManager.EXTRA_MEDIA_PROJECTION, projection.asBinder()); return intent; } @Override public void onCancel(DialogInterface dialog) { finish(); } }