OSDN Git Service

Fix VR-related system APIs
authorPat Plunkett <patplunkett@google.com>
Wed, 10 Apr 2019 19:49:33 +0000 (12:49 -0700)
committerPatrick Plunkett <patplunkett@google.com>
Mon, 15 Apr 2019 23:13:42 +0000 (23:13 +0000)
This adds necessary nullness conditions on method arguments, and makes
a Builder class final.

Bug: 126700268
Bug: 126701891
Bug: 126701662
Test: Compiles
Change-Id: I4e825057b413fe22d1c2ebd228a5b76641b04868

api/system-current.txt
core/java/android/app/Vr2dDisplayProperties.java
core/java/android/app/VrManager.java

index 9e730db..387d276 100644 (file)
@@ -604,7 +604,7 @@ package android.app {
   public final class Vr2dDisplayProperties implements android.os.Parcelable {
     ctor public Vr2dDisplayProperties(int, int, int);
     method public int describeContents();
-    method public void dump(java.io.PrintWriter, String);
+    method public void dump(@NonNull java.io.PrintWriter, @NonNull String);
     method public int getAddedFlags();
     method public int getDpi();
     method public int getHeight();
@@ -615,26 +615,26 @@ package android.app {
     field public static final int FLAG_VIRTUAL_DISPLAY_ENABLED = 1; // 0x1
   }
 
-  public static class Vr2dDisplayProperties.Builder {
+  public static final class Vr2dDisplayProperties.Builder {
     ctor public Vr2dDisplayProperties.Builder();
-    method public android.app.Vr2dDisplayProperties.Builder addFlags(int);
-    method public android.app.Vr2dDisplayProperties build();
-    method public android.app.Vr2dDisplayProperties.Builder removeFlags(int);
-    method public android.app.Vr2dDisplayProperties.Builder setDimensions(int, int, int);
-    method public android.app.Vr2dDisplayProperties.Builder setEnabled(boolean);
+    method @NonNull public android.app.Vr2dDisplayProperties.Builder addFlags(int);
+    method @NonNull public android.app.Vr2dDisplayProperties build();
+    method @NonNull public android.app.Vr2dDisplayProperties.Builder removeFlags(int);
+    method @NonNull public android.app.Vr2dDisplayProperties.Builder setDimensions(int, int, int);
+    method @NonNull public android.app.Vr2dDisplayProperties.Builder setEnabled(boolean);
   }
 
   public class VrManager {
     method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public int getVr2dDisplayId();
     method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public boolean isPersistentVrModeEnabled();
     method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public boolean isVrModeEnabled();
-    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public void registerVrStateCallback(@NonNull java.util.concurrent.Executor, android.app.VrStateCallback);
+    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public void registerVrStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.app.VrStateCallback);
     method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setAndBindVrCompositor(android.content.ComponentName);
     method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setPersistentVrModeEnabled(boolean);
     method @RequiresPermission("android.permission.ACCESS_VR_MANAGER") public void setStandbyEnabled(boolean);
-    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setVr2dDisplayProperties(android.app.Vr2dDisplayProperties);
-    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setVrInputMethod(android.content.ComponentName);
-    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public void unregisterVrStateCallback(android.app.VrStateCallback);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setVr2dDisplayProperties(@NonNull android.app.Vr2dDisplayProperties);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setVrInputMethod(@Nullable android.content.ComponentName);
+    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public void unregisterVrStateCallback(@NonNull android.app.VrStateCallback);
   }
 
   public abstract class VrStateCallback {
index bcb8592..fc200bf 100644 (file)
@@ -17,6 +17,7 @@
 package android.app;
 
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -136,7 +137,7 @@ public final class Vr2dDisplayProperties implements Parcelable {
     /**
      * Prints out dump info.
      */
-    public void dump(PrintWriter pw, String prefix) {
+    public void dump(@NonNull PrintWriter pw, @NonNull String prefix) {
         pw.println(prefix + toString());
     }
 
@@ -188,7 +189,7 @@ public final class Vr2dDisplayProperties implements Parcelable {
     /**
      * Convenience class for creating Vr2dDisplayProperties.
      */
-    public static class Builder {
+    public static final class Builder {
         private int mAddedFlags = 0;
         private int mRemovedFlags = 0;
 
@@ -203,6 +204,7 @@ public final class Vr2dDisplayProperties implements Parcelable {
         /**
          * Sets the dimensions to use for the virtual display.
          */
+        @NonNull
         public Builder setDimensions(int width, int height, int dpi) {
             mWidth = width;
             mHeight = height;
@@ -213,6 +215,7 @@ public final class Vr2dDisplayProperties implements Parcelable {
         /**
          * Toggles the virtual display functionality for 2D activities in VR.
          */
+        @NonNull
         public Builder setEnabled(boolean enabled) {
             if (enabled) {
                 addFlags(FLAG_VIRTUAL_DISPLAY_ENABLED);
@@ -225,6 +228,7 @@ public final class Vr2dDisplayProperties implements Parcelable {
         /**
          * Adds property flags.
          */
+        @NonNull
         public Builder addFlags(@Vr2dDisplayFlag int flags) {
             mAddedFlags |= flags;
             mRemovedFlags &= ~flags;
@@ -234,6 +238,7 @@ public final class Vr2dDisplayProperties implements Parcelable {
         /**
          * Removes property flags.
          */
+        @NonNull
         public Builder removeFlags(@Vr2dDisplayFlag int flags) {
             mRemovedFlags |= flags;
             mAddedFlags &= ~flags;
@@ -243,6 +248,7 @@ public final class Vr2dDisplayProperties implements Parcelable {
         /**
          * Builds the Vr2dDisplayProperty instance.
          */
+        @NonNull
         public Vr2dDisplayProperties build() {
             return new Vr2dDisplayProperties(mWidth, mHeight, mDpi, mAddedFlags, mRemovedFlags);
         }
index 5f1a94c..c74f8c3 100644 (file)
@@ -2,6 +2,7 @@ package android.app;
 
 import android.annotation.CallbackExecutor;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.annotation.SystemService;
@@ -71,7 +72,7 @@ public class VrManager {
             android.Manifest.permission.ACCESS_VR_STATE
     })
     public void registerVrStateCallback(@NonNull @CallbackExecutor Executor executor,
-            VrStateCallback callback) {
+            @NonNull VrStateCallback callback) {
         if (callback == null || mCallbackMap.containsKey(callback)) {
             return;
         }
@@ -99,7 +100,7 @@ public class VrManager {
             android.Manifest.permission.RESTRICTED_VR_ACCESS,
             android.Manifest.permission.ACCESS_VR_STATE
     })
-    public void unregisterVrStateCallback(VrStateCallback callback) {
+    public void unregisterVrStateCallback(@NonNull VrStateCallback callback) {
         CallbackEntry entry = mCallbackMap.remove(callback);
         if (entry != null) {
             try {
@@ -175,7 +176,7 @@ public class VrManager {
      */
     @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS)
     public void setVr2dDisplayProperties(
-            Vr2dDisplayProperties vr2dDisplayProp) {
+            @NonNull Vr2dDisplayProperties vr2dDisplayProp) {
         try {
             mService.setVr2dDisplayProperties(vr2dDisplayProp);
         } catch (RemoteException e) {
@@ -220,7 +221,7 @@ public class VrManager {
      * @param componentName not used
      */
     @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS)
-    public void setVrInputMethod(ComponentName componentName) {
+    public void setVrInputMethod(@Nullable ComponentName componentName) {
     }
 
     /**