1cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar/* 2cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * Copyright (C) 2017 The Android Open Source Project 3cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * 4cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * Licensed under the Apache License, Version 2.0 (the "License"); 5cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * you may not use this file except in compliance with the License. 6cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * You may obtain a copy of the License at 7cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * 8cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * http://www.apache.org/licenses/LICENSE-2.0 9cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * 10cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * Unless required by applicable law or agreed to in writing, software 11cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * distributed under the License is distributed on an "AS IS" BASIS, 12cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * See the License for the specific language governing permissions and 14cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * limitations under the License. 15cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar */ 16cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 17cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankarpackage android.app; 18cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 19cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankarimport android.content.ComponentName; 20cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankarimport android.os.Parcel; 21cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankarimport android.os.Parcelable; 22cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 23cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankarimport java.io.PrintWriter; 24cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 25cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar/** 26cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * Display properties to be used by VR mode when creating a virtual display. 27cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * 28cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * @hide 29cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar */ 302b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankarpublic class Vr2dDisplayProperties implements Parcelable { 31cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 32cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar /** 33cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar * The actual width, height and dpi. 34cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar */ 35cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar private final int mWidth; 36cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar private final int mHeight; 37cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar private final int mDpi; 38cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 392b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar public Vr2dDisplayProperties(int width, int height, int dpi) { 40cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar mWidth = width; 41cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar mHeight = height; 42cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar mDpi = dpi; 43cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 44cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 45cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar @Override 46cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public int hashCode() { 47cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar int result = getWidth(); 48cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar result = 31 * result + getHeight(); 49cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar result = 31 * result + getDpi(); 50cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar return result; 51cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 52cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 53cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar @Override 54cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public String toString() { 552b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar return "Vr2dDisplayProperties{" + 56cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar "mWidth=" + mWidth + 57cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar ", mHeight=" + mHeight + 58cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar ", mDpi=" + mDpi + 59cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar "}"; 60cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 61cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 62cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar @Override 63cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public boolean equals(Object o) { 64cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar if (this == o) return true; 65cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar if (o == null || getClass() != o.getClass()) return false; 66cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 672b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar Vr2dDisplayProperties that = (Vr2dDisplayProperties) o; 68cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 69cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar if (getWidth() != that.getWidth()) return false; 70cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar if (getHeight() != that.getHeight()) return false; 71cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar return getDpi() == that.getDpi(); 72cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 73cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 74cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar @Override 75cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public int describeContents() { 76cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar return 0; 77cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 78cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 79cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar @Override 80cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public void writeToParcel(Parcel dest, int flags) { 81cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar dest.writeInt(mWidth); 82cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar dest.writeInt(mHeight); 83cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar dest.writeInt(mDpi); 84cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 85cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 862b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar public static final Parcelable.Creator<Vr2dDisplayProperties> CREATOR 872b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar = new Parcelable.Creator<Vr2dDisplayProperties>() { 88cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar @Override 892b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar public Vr2dDisplayProperties createFromParcel(Parcel source) { 902b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar return new Vr2dDisplayProperties(source); 91cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 92cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 93cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar @Override 942b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar public Vr2dDisplayProperties[] newArray(int size) { 952b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar return new Vr2dDisplayProperties[size]; 96cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 97cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar }; 98cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 992b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar private Vr2dDisplayProperties(Parcel source) { 100cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar mWidth = source.readInt(); 101cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar mHeight = source.readInt(); 102cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar mDpi = source.readInt(); 103cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 104cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 105cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public void dump(PrintWriter pw, String prefix) { 1062b9aaedf6310694de31301659ce604ff195b32eeKarthik Ravi Shankar pw.println(prefix + "Vr2dDisplayProperties:"); 107cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar pw.println(prefix + " width=" + mWidth); 108cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar pw.println(prefix + " height=" + mHeight); 109cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar pw.println(prefix + " dpi=" + mDpi); 110cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 111cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 112cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public int getWidth() { 113cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar return mWidth; 114cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 115cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 116cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public int getHeight() { 117cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar return mHeight; 118cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 119cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar 120cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar public int getDpi() { 121cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar return mDpi; 122cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar } 123cdf9ce7229e791fe345b0860fe32433f15c95db8Karthik Ravi Shankar} 124