HeadlessDisplayAdapter.java revision 848c2dc93b6795e171f3dd6f64ea0be65e2762ca
1/* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.server.display; 18 19import android.content.Context; 20import android.util.DisplayMetrics; 21 22/** 23 * Provides a fake default display for headless systems. 24 */ 25public final class HeadlessDisplayAdapter extends DisplayAdapter { 26 private final Context mContext; 27 private final HeadlessDisplayDevice mDefaultDisplayDevice; 28 29 public HeadlessDisplayAdapter(Context context) { 30 mContext = context; 31 mDefaultDisplayDevice = new HeadlessDisplayDevice(); 32 } 33 34 @Override 35 public String getName() { 36 return "HeadlessDisplayAdapter"; 37 } 38 39 @Override 40 public void register(Listener listener) { 41 listener.onDisplayDeviceAdded(mDefaultDisplayDevice); 42 } 43 44 private final class HeadlessDisplayDevice extends DisplayDevice { 45 @Override 46 public DisplayAdapter getAdapter() { 47 return HeadlessDisplayAdapter.this; 48 } 49 50 @Override 51 public void getInfo(DisplayDeviceInfo outInfo) { 52 outInfo.name = mContext.getResources().getString( 53 com.android.internal.R.string.display_manager_built_in_display); 54 outInfo.width = 640; 55 outInfo.height = 480; 56 outInfo.refreshRate = 60; 57 outInfo.densityDpi = DisplayMetrics.DENSITY_DEFAULT; 58 outInfo.xDpi = 160; 59 outInfo.yDpi = 160; 60 } 61 } 62} 63