Loading services/core/java/com/android/server/wm/AppWarnings.java +50 −3 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ package com.android.server.wm; import android.annotation.UiThread; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.os.Build; import android.os.Handler; Loading Loading @@ -305,21 +309,21 @@ class AppWarnings { private void hideDialogsForPackageUiThread(String name) { // Hides the "unsupported display" dialog if necessary. if (mUnsupportedDisplaySizeDialog != null && (name == null || name.equals( mUnsupportedDisplaySizeDialog.getPackageName()))) { mUnsupportedDisplaySizeDialog.mPackageName))) { mUnsupportedDisplaySizeDialog.dismiss(); mUnsupportedDisplaySizeDialog = null; } // Hides the "unsupported compile SDK" dialog if necessary. if (mUnsupportedCompileSdkDialog != null && (name == null || name.equals( mUnsupportedCompileSdkDialog.getPackageName()))) { mUnsupportedCompileSdkDialog.mPackageName))) { mUnsupportedCompileSdkDialog.dismiss(); mUnsupportedCompileSdkDialog = null; } // Hides the "deprecated target sdk version" dialog if necessary. if (mDeprecatedTargetSdkVersionDialog != null && (name == null || name.equals( mDeprecatedTargetSdkVersionDialog.getPackageName()))) { mDeprecatedTargetSdkVersionDialog.mPackageName))) { mDeprecatedTargetSdkVersionDialog.dismiss(); mDeprecatedTargetSdkVersionDialog = null; } Loading Loading @@ -431,6 +435,49 @@ class AppWarnings { } } static class BaseDialog { final AppWarnings mManager; final String mPackageName; AlertDialog mDialog; private BroadcastReceiver mCloseReceiver; BaseDialog(AppWarnings manager, String packageName) { mManager = manager; mPackageName = packageName; } @UiThread void show() { if (mDialog == null) return; if (mCloseReceiver == null) { mCloseReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) { mManager.mUiHandler.hideDialogsForPackage(mPackageName); } } }; mManager.mUiContext.registerReceiver(mCloseReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS), Context.RECEIVER_EXPORTED); } Slog.w(TAG, "Showing " + getClass().getSimpleName() + " for package " + mPackageName); mDialog.show(); } @UiThread void dismiss() { if (mDialog == null) return; if (mCloseReceiver != null) { mManager.mUiContext.unregisterReceiver(mCloseReceiver); mCloseReceiver = null; } mDialog.dismiss(); mDialog = null; } } /** * Handles messages on the ActivityTaskManagerService thread. */ Loading services/core/java/com/android/server/wm/DeprecatedTargetSdkVersionDialog.java +3 −24 Original line number Diff line number Diff line Loading @@ -16,31 +16,23 @@ package com.android.server.wm; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageItemInfo; import android.content.pm.PackageManager; import android.util.Log; import android.view.Window; import android.view.WindowManager; import com.android.internal.R; import com.android.server.utils.AppInstallerUtil; public class DeprecatedTargetSdkVersionDialog { private static final String TAG = TAG_WITH_CLASS_NAME ? "DeprecatedTargetSdkVersionDialog" : TAG_ATM; private final AlertDialog mDialog; private final String mPackageName; class DeprecatedTargetSdkVersionDialog extends AppWarnings.BaseDialog { public DeprecatedTargetSdkVersionDialog(final AppWarnings manager, Context context, DeprecatedTargetSdkVersionDialog(final AppWarnings manager, Context context, ApplicationInfo appInfo) { mPackageName = appInfo.packageName; super(manager, appInfo.packageName); final PackageManager pm = context.getPackageManager(); final CharSequence label = appInfo.loadSafeLabel(pm, Loading Loading @@ -75,17 +67,4 @@ public class DeprecatedTargetSdkVersionDialog { // DO NOT MODIFY. Used by CTS to verify the dialog is displayed. window.getAttributes().setTitle("DeprecatedTargetSdkVersionDialog"); } public String getPackageName() { return mPackageName; } public void show() { Log.w(TAG, "Showing SDK deprecation warning for package " + mPackageName); mDialog.show(); } public void dismiss() { mDialog.dismiss(); } } services/core/java/com/android/server/wm/UnsupportedCompileSdkDialog.java +3 −17 Original line number Diff line number Diff line Loading @@ -29,13 +29,11 @@ import android.widget.CheckBox; import com.android.internal.R; import com.android.server.utils.AppInstallerUtil; public class UnsupportedCompileSdkDialog { private final AlertDialog mDialog; private final String mPackageName; class UnsupportedCompileSdkDialog extends AppWarnings.BaseDialog { public UnsupportedCompileSdkDialog(final AppWarnings manager, Context context, UnsupportedCompileSdkDialog(final AppWarnings manager, Context context, ApplicationInfo appInfo) { mPackageName = appInfo.packageName; super(manager, appInfo.packageName); final PackageManager pm = context.getPackageManager(); final CharSequence label = appInfo.loadSafeLabel(pm, Loading Loading @@ -72,16 +70,4 @@ public class UnsupportedCompileSdkDialog { alwaysShow.setOnCheckedChangeListener((buttonView, isChecked) -> manager.setPackageFlag( mPackageName, AppWarnings.FLAG_HIDE_COMPILE_SDK, !isChecked)); } public String getPackageName() { return mPackageName; } public void show() { mDialog.show(); } public void dismiss() { mDialog.dismiss(); } } services/core/java/com/android/server/wm/UnsupportedDisplaySizeDialog.java +5 −19 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.server.wm; import com.android.internal.R; import android.app.AlertDialog; import android.content.Context; import android.content.pm.ApplicationInfo; Loading @@ -27,13 +25,13 @@ import android.view.Window; import android.view.WindowManager; import android.widget.CheckBox; public class UnsupportedDisplaySizeDialog { private final AlertDialog mDialog; private final String mPackageName; import com.android.internal.R; public UnsupportedDisplaySizeDialog(final AppWarnings manager, Context context, class UnsupportedDisplaySizeDialog extends AppWarnings.BaseDialog { UnsupportedDisplaySizeDialog(final AppWarnings manager, Context context, ApplicationInfo appInfo) { mPackageName = appInfo.packageName; super(manager, appInfo.packageName); final PackageManager pm = context.getPackageManager(); final CharSequence label = appInfo.loadSafeLabel(pm, Loading Loading @@ -63,16 +61,4 @@ public class UnsupportedDisplaySizeDialog { alwaysShow.setOnCheckedChangeListener((buttonView, isChecked) -> manager.setPackageFlag( mPackageName, AppWarnings.FLAG_HIDE_DISPLAY_SIZE, !isChecked)); } public String getPackageName() { return mPackageName; } public void show() { mDialog.show(); } public void dismiss() { mDialog.dismiss(); } } Loading
services/core/java/com/android/server/wm/AppWarnings.java +50 −3 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ package com.android.server.wm; import android.annotation.UiThread; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.os.Build; import android.os.Handler; Loading Loading @@ -305,21 +309,21 @@ class AppWarnings { private void hideDialogsForPackageUiThread(String name) { // Hides the "unsupported display" dialog if necessary. if (mUnsupportedDisplaySizeDialog != null && (name == null || name.equals( mUnsupportedDisplaySizeDialog.getPackageName()))) { mUnsupportedDisplaySizeDialog.mPackageName))) { mUnsupportedDisplaySizeDialog.dismiss(); mUnsupportedDisplaySizeDialog = null; } // Hides the "unsupported compile SDK" dialog if necessary. if (mUnsupportedCompileSdkDialog != null && (name == null || name.equals( mUnsupportedCompileSdkDialog.getPackageName()))) { mUnsupportedCompileSdkDialog.mPackageName))) { mUnsupportedCompileSdkDialog.dismiss(); mUnsupportedCompileSdkDialog = null; } // Hides the "deprecated target sdk version" dialog if necessary. if (mDeprecatedTargetSdkVersionDialog != null && (name == null || name.equals( mDeprecatedTargetSdkVersionDialog.getPackageName()))) { mDeprecatedTargetSdkVersionDialog.mPackageName))) { mDeprecatedTargetSdkVersionDialog.dismiss(); mDeprecatedTargetSdkVersionDialog = null; } Loading Loading @@ -431,6 +435,49 @@ class AppWarnings { } } static class BaseDialog { final AppWarnings mManager; final String mPackageName; AlertDialog mDialog; private BroadcastReceiver mCloseReceiver; BaseDialog(AppWarnings manager, String packageName) { mManager = manager; mPackageName = packageName; } @UiThread void show() { if (mDialog == null) return; if (mCloseReceiver == null) { mCloseReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) { mManager.mUiHandler.hideDialogsForPackage(mPackageName); } } }; mManager.mUiContext.registerReceiver(mCloseReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS), Context.RECEIVER_EXPORTED); } Slog.w(TAG, "Showing " + getClass().getSimpleName() + " for package " + mPackageName); mDialog.show(); } @UiThread void dismiss() { if (mDialog == null) return; if (mCloseReceiver != null) { mManager.mUiContext.unregisterReceiver(mCloseReceiver); mCloseReceiver = null; } mDialog.dismiss(); mDialog = null; } } /** * Handles messages on the ActivityTaskManagerService thread. */ Loading
services/core/java/com/android/server/wm/DeprecatedTargetSdkVersionDialog.java +3 −24 Original line number Diff line number Diff line Loading @@ -16,31 +16,23 @@ package com.android.server.wm; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageItemInfo; import android.content.pm.PackageManager; import android.util.Log; import android.view.Window; import android.view.WindowManager; import com.android.internal.R; import com.android.server.utils.AppInstallerUtil; public class DeprecatedTargetSdkVersionDialog { private static final String TAG = TAG_WITH_CLASS_NAME ? "DeprecatedTargetSdkVersionDialog" : TAG_ATM; private final AlertDialog mDialog; private final String mPackageName; class DeprecatedTargetSdkVersionDialog extends AppWarnings.BaseDialog { public DeprecatedTargetSdkVersionDialog(final AppWarnings manager, Context context, DeprecatedTargetSdkVersionDialog(final AppWarnings manager, Context context, ApplicationInfo appInfo) { mPackageName = appInfo.packageName; super(manager, appInfo.packageName); final PackageManager pm = context.getPackageManager(); final CharSequence label = appInfo.loadSafeLabel(pm, Loading Loading @@ -75,17 +67,4 @@ public class DeprecatedTargetSdkVersionDialog { // DO NOT MODIFY. Used by CTS to verify the dialog is displayed. window.getAttributes().setTitle("DeprecatedTargetSdkVersionDialog"); } public String getPackageName() { return mPackageName; } public void show() { Log.w(TAG, "Showing SDK deprecation warning for package " + mPackageName); mDialog.show(); } public void dismiss() { mDialog.dismiss(); } }
services/core/java/com/android/server/wm/UnsupportedCompileSdkDialog.java +3 −17 Original line number Diff line number Diff line Loading @@ -29,13 +29,11 @@ import android.widget.CheckBox; import com.android.internal.R; import com.android.server.utils.AppInstallerUtil; public class UnsupportedCompileSdkDialog { private final AlertDialog mDialog; private final String mPackageName; class UnsupportedCompileSdkDialog extends AppWarnings.BaseDialog { public UnsupportedCompileSdkDialog(final AppWarnings manager, Context context, UnsupportedCompileSdkDialog(final AppWarnings manager, Context context, ApplicationInfo appInfo) { mPackageName = appInfo.packageName; super(manager, appInfo.packageName); final PackageManager pm = context.getPackageManager(); final CharSequence label = appInfo.loadSafeLabel(pm, Loading Loading @@ -72,16 +70,4 @@ public class UnsupportedCompileSdkDialog { alwaysShow.setOnCheckedChangeListener((buttonView, isChecked) -> manager.setPackageFlag( mPackageName, AppWarnings.FLAG_HIDE_COMPILE_SDK, !isChecked)); } public String getPackageName() { return mPackageName; } public void show() { mDialog.show(); } public void dismiss() { mDialog.dismiss(); } }
services/core/java/com/android/server/wm/UnsupportedDisplaySizeDialog.java +5 −19 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.server.wm; import com.android.internal.R; import android.app.AlertDialog; import android.content.Context; import android.content.pm.ApplicationInfo; Loading @@ -27,13 +25,13 @@ import android.view.Window; import android.view.WindowManager; import android.widget.CheckBox; public class UnsupportedDisplaySizeDialog { private final AlertDialog mDialog; private final String mPackageName; import com.android.internal.R; public UnsupportedDisplaySizeDialog(final AppWarnings manager, Context context, class UnsupportedDisplaySizeDialog extends AppWarnings.BaseDialog { UnsupportedDisplaySizeDialog(final AppWarnings manager, Context context, ApplicationInfo appInfo) { mPackageName = appInfo.packageName; super(manager, appInfo.packageName); final PackageManager pm = context.getPackageManager(); final CharSequence label = appInfo.loadSafeLabel(pm, Loading Loading @@ -63,16 +61,4 @@ public class UnsupportedDisplaySizeDialog { alwaysShow.setOnCheckedChangeListener((buttonView, isChecked) -> manager.setPackageFlag( mPackageName, AppWarnings.FLAG_HIDE_DISPLAY_SIZE, !isChecked)); } public String getPackageName() { return mPackageName; } public void show() { mDialog.show(); } public void dismiss() { mDialog.dismiss(); } }