Added featureId to DisplayAreaInfo

This is something clients will need if they register to listen to
DisplayAreas for several features. This will help distinguish the
DisplayAreaInfos.

Test: Builds
Bug: 152114574
Change-Id: If1d14aee070388274afb6a43bc1c631d79fb4b38
diff --git a/api/test-current.txt b/api/test-current.txt
index d693f03..b164496 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -5277,12 +5277,13 @@
 package android.window {
 
   public final class DisplayAreaInfo implements android.os.Parcelable {
-    ctor public DisplayAreaInfo(@NonNull android.window.WindowContainerToken, int);
+    ctor public DisplayAreaInfo(@NonNull android.window.WindowContainerToken, int, int);
     method public int describeContents();
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.window.DisplayAreaInfo> CREATOR;
     field @NonNull public final android.content.res.Configuration configuration;
     field public final int displayId;
+    field public final int featureId;
     field @NonNull public final android.window.WindowContainerToken token;
   }
 
diff --git a/core/java/android/window/DisplayAreaInfo.java b/core/java/android/window/DisplayAreaInfo.java
index 0d35bca..358467f 100644
--- a/core/java/android/window/DisplayAreaInfo.java
+++ b/core/java/android/window/DisplayAreaInfo.java
@@ -43,15 +43,19 @@
      */
     public final int displayId;
 
-    public DisplayAreaInfo(@NonNull WindowContainerToken token, int displayId) {
+    public final int featureId;
+
+    public DisplayAreaInfo(@NonNull WindowContainerToken token, int displayId, int featureId) {
         this.token = token;
         this.displayId = displayId;
+        this.featureId = featureId;
     }
 
     private DisplayAreaInfo(Parcel in) {
         token = WindowContainerToken.CREATOR.createFromParcel(in);
         configuration.readFromParcel(in);
         displayId = in.readInt();
+        featureId = in.readInt();
     }
 
     @Override
@@ -59,6 +63,7 @@
         token.writeToParcel(dest, flags);
         configuration.writeToParcel(dest, flags);
         dest.writeInt(displayId);
+        dest.writeInt(featureId);
     }
 
     @NonNull
diff --git a/services/core/java/com/android/server/wm/DisplayArea.java b/services/core/java/com/android/server/wm/DisplayArea.java
index 9b34bd1..0240a6b 100644
--- a/services/core/java/com/android/server/wm/DisplayArea.java
+++ b/services/core/java/com/android/server/wm/DisplayArea.java
@@ -171,7 +171,7 @@
 
     DisplayAreaInfo getDisplayAreaInfo() {
         DisplayAreaInfo info = new DisplayAreaInfo(mRemoteToken.toWindowContainerToken(),
-                getDisplayContent().getDisplayId());
+                getDisplayContent().getDisplayId(), mFeatureId);
         info.configuration.setTo(getConfiguration());
         return info;
     }