diff --git a/api/current.txt b/api/current.txt index d25ae966d9079..f6c3c17e2c97b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -34459,6 +34459,7 @@ package android.view { method public final android.content.Context getContext(); method public abstract android.view.View getCurrentFocus(); method public abstract android.view.View getDecorView(); + method public static int getDefaultFeatures(android.content.Context); method public android.transition.Transition getEnterTransition(); method public android.transition.Transition getExitTransition(); method protected final int getFeatures(); @@ -34560,7 +34561,7 @@ package android.view { method public abstract void takeKeyEvents(boolean); method public abstract void takeSurface(android.view.SurfaceHolder.Callback2); method public abstract void togglePanel(int, android.view.KeyEvent); - field protected static final int DEFAULT_FEATURES = 65; // 0x41 + field protected static final deprecated int DEFAULT_FEATURES = 65; // 0x41 field public static final int FEATURE_ACTION_BAR = 8; // 0x8 field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9 field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index 0076abff2f094..2e5c1e0a4b42c 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; +import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; @@ -155,6 +156,7 @@ public abstract class Window { "android:navigation:background"; /** The default features enabled */ + @Deprecated @SuppressWarnings({"PointlessBitwiseExpression"}) protected static final int DEFAULT_FEATURES = (1 << FEATURE_OPTIONS_PANEL) | (1 << FEATURE_CONTEXT_MENU); @@ -183,8 +185,8 @@ public abstract class Window { private boolean mSetCloseOnTouchOutside = false; private int mForcedWindowFlags = 0; - private int mFeatures = DEFAULT_FEATURES; - private int mLocalFeatures = DEFAULT_FEATURES; + private int mFeatures; + private int mLocalFeatures; private boolean mHaveWindowFormat = false; private boolean mHaveDimAmount = false; @@ -442,6 +444,7 @@ public abstract class Window { public Window(Context context) { mContext = context; + mFeatures = mLocalFeatures = getDefaultFeatures(context); } /** @@ -1269,6 +1272,25 @@ public abstract class Window { return mFeatures; } + /** + * Return the feature bits set by default on a window. + * @param context The context used to access resources + */ + public static int getDefaultFeatures(Context context) { + int features = 0; + + final Resources res = context.getResources(); + if (res.getBoolean(com.android.internal.R.bool.config_defaultWindowFeatureOptionsPanel)) { + features |= 1 << FEATURE_OPTIONS_PANEL; + } + + if (res.getBoolean(com.android.internal.R.bool.config_defaultWindowFeatureContextMenu)) { + features |= 1 << FEATURE_CONTEXT_MENU; + } + + return features; + } + /** * Query for the availability of a certain feature. * diff --git a/core/res/res/values-watch/config.xml b/core/res/res/values-watch/config.xml index 6052fb0f33ffc..3eede32bd344c 100644 --- a/core/res/res/values-watch/config.xml +++ b/core/res/res/values-watch/config.xml @@ -40,4 +40,7 @@ Reduced intentionally for watches to retain minimal memory footprint --> 1 + + false + false diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 6e635f310d6c1..bb2ee48e82a78 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1927,6 +1927,10 @@ 12 + + true + true +