diff options
author | Tor Norbye <tnorbye@google.com> | 2017-12-09 15:10:47 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-12-09 15:10:47 +0000 |
commit | 60f1ee2df77d76fda49910959a6968d63de15d52 (patch) | |
tree | 5e3325ec4ec000d99bdee2c2e3d4bc81b8a06014 | |
parent | 096959932bb46f1d6e7c9c1b7344378a2229b0b1 (diff) | |
parent | f740c7ea0810c186e84e989b72012ed7152a7834 (diff) |
Merge "Switch @IntDef from long to int, and add @LongDef"
-rw-r--r-- | core/java/android/annotation/IntDef.java | 2 | ||||
-rw-r--r-- | core/java/android/annotation/LongDef.java | 62 | ||||
-rw-r--r-- | core/java/android/hardware/HardwareBuffer.java | 3 | ||||
-rw-r--r-- | core/java/android/view/FrameInfo.java | 4 | ||||
-rw-r--r-- | core/java/android/view/WindowManager.java | 3 | ||||
-rw-r--r-- | media/java/android/media/session/PlaybackState.java | 3 |
6 files changed, 71 insertions, 6 deletions
diff --git a/core/java/android/annotation/IntDef.java b/core/java/android/annotation/IntDef.java index 3f9064e4dd73..637fc1e6afe2 100644 --- a/core/java/android/annotation/IntDef.java +++ b/core/java/android/annotation/IntDef.java @@ -55,7 +55,7 @@ public @interface IntDef { String[] prefix() default ""; /** Defines the allowed constants for this element */ - long[] value() default {}; + int[] value() default {}; /** Defines whether the constants can be used as a flag, or just as an enum (the default) */ boolean flag() default false; diff --git a/core/java/android/annotation/LongDef.java b/core/java/android/annotation/LongDef.java new file mode 100644 index 000000000000..8723eef86328 --- /dev/null +++ b/core/java/android/annotation/LongDef.java @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.ANNOTATION_TYPE; +import static java.lang.annotation.RetentionPolicy.SOURCE; + +/** + * Denotes that the annotated long element represents + * a logical type and that its value should be one of the explicitly + * named constants. If the {@link #flag()} attribute is set to true, + * multiple constants can be combined. + * <p> + * <pre><code> + * @Retention(SOURCE) + * @LongDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS}) + * public @interface NavigationMode {} + * public static final long NAVIGATION_MODE_STANDARD = 0; + * public static final long NAVIGATION_MODE_LIST = 1; + * public static final long NAVIGATION_MODE_TABS = 2; + * ... + * public abstract void setNavigationMode(@NavigationMode long mode); + * @NavigationMode + * public abstract long getNavigationMode(); + * </code></pre> + * For a flag, set the flag attribute: + * <pre><code> + * @LongDef( + * flag = true, + * value = {NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS}) + * </code></pre> + * + * @hide + */ +@Retention(SOURCE) +@Target({ANNOTATION_TYPE}) +public @interface LongDef { + /** Defines the constant prefix for this element */ + String[] prefix() default ""; + + /** Defines the allowed constants for this element */ + long[] value() default {}; + + /** Defines whether the constants can be used as a flag, or just as an enum (the default) */ + boolean flag() default false; +} diff --git a/core/java/android/hardware/HardwareBuffer.java b/core/java/android/hardware/HardwareBuffer.java index 7049628b3590..b111ad30f27d 100644 --- a/core/java/android/hardware/HardwareBuffer.java +++ b/core/java/android/hardware/HardwareBuffer.java @@ -17,6 +17,7 @@ package android.hardware; import android.annotation.IntDef; +import android.annotation.LongDef; import android.annotation.NonNull; import android.os.Parcel; import android.os.Parcelable; @@ -70,7 +71,7 @@ public final class HardwareBuffer implements Parcelable, AutoCloseable { /** @hide */ @Retention(RetentionPolicy.SOURCE) - @IntDef(flag = true, value = {USAGE_CPU_READ_RARELY, USAGE_CPU_READ_OFTEN, + @LongDef(flag = true, value = {USAGE_CPU_READ_RARELY, USAGE_CPU_READ_OFTEN, USAGE_CPU_WRITE_RARELY, USAGE_CPU_WRITE_OFTEN, USAGE_GPU_SAMPLED_IMAGE, USAGE_GPU_COLOR_OUTPUT, USAGE_PROTECTED_CONTENT, USAGE_VIDEO_ENCODE, USAGE_GPU_DATA_BUFFER, USAGE_SENSOR_DIRECT_DATA}) diff --git a/core/java/android/view/FrameInfo.java b/core/java/android/view/FrameInfo.java index c79547c8313e..6c5e048f05d2 100644 --- a/core/java/android/view/FrameInfo.java +++ b/core/java/android/view/FrameInfo.java @@ -16,7 +16,7 @@ package android.view; -import android.annotation.IntDef; +import android.annotation.LongDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -48,7 +48,7 @@ final class FrameInfo { // Is this the first-draw following a window layout? public static final long FLAG_WINDOW_LAYOUT_CHANGED = 1; - @IntDef(flag = true, value = { + @LongDef(flag = true, value = { FLAG_WINDOW_LAYOUT_CHANGED }) @Retention(RetentionPolicy.SOURCE) public @interface FrameInfoFlags {} diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 7c2c12f56e5f..500701de7f23 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -20,6 +20,7 @@ import static android.content.pm.ActivityInfo.COLOR_MODE_DEFAULT; import android.Manifest.permission; import android.annotation.IntDef; +import android.annotation.LongDef; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SystemApi; @@ -1270,7 +1271,7 @@ public interface WindowManager extends ViewManager { /** @hide */ @Retention(RetentionPolicy.SOURCE) - @IntDef( + @LongDef( flag = true, value = { LayoutParams.FLAG2_LAYOUT_IN_DISPLAY_CUTOUT_AREA, diff --git a/media/java/android/media/session/PlaybackState.java b/media/java/android/media/session/PlaybackState.java index 8283c8b967e8..17d16b896679 100644 --- a/media/java/android/media/session/PlaybackState.java +++ b/media/java/android/media/session/PlaybackState.java @@ -17,6 +17,7 @@ package android.media.session; import android.annotation.DrawableRes; import android.annotation.IntDef; +import android.annotation.LongDef; import android.annotation.Nullable; import android.media.RemoteControlClient; import android.os.Bundle; @@ -41,7 +42,7 @@ public final class PlaybackState implements Parcelable { /** * @hide */ - @IntDef(flag=true, value={ACTION_STOP, ACTION_PAUSE, ACTION_PLAY, ACTION_REWIND, + @LongDef(flag=true, value={ACTION_STOP, ACTION_PAUSE, ACTION_PLAY, ACTION_REWIND, ACTION_SKIP_TO_PREVIOUS, ACTION_SKIP_TO_NEXT, ACTION_FAST_FORWARD, ACTION_SET_RATING, ACTION_SEEK_TO, ACTION_PLAY_PAUSE, ACTION_PLAY_FROM_MEDIA_ID, ACTION_PLAY_FROM_SEARCH, ACTION_SKIP_TO_QUEUE_ITEM, ACTION_PLAY_FROM_URI, ACTION_PREPARE, |