1f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato/* 2f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * Copyright (C) 2010 The Android Open Source Project 3f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * 4f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 5f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * you may not use this file except in compliance with the License. 6f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * You may obtain a copy of the License at 7f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * 8f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * http://www.apache.org/licenses/LICENSE-2.0 9f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * 10f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * Unless required by applicable law or agreed to in writing, software 11f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 12f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * See the License for the specific language governing permissions and 14f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato * limitations under the License. 15f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato */ 16f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 17f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onoratopackage com.android.systemui; 18f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 19f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onoratoimport android.content.Context; 200ad460b087abbd4b523a2e61ff27b0bf6fb5be92Daniel Sandlerimport android.content.res.Configuration; 21f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 22de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlockimport java.io.FileDescriptor; 23de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlockimport java.io.PrintWriter; 24d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlockimport java.util.Map; 25de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlock 26f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onoratopublic abstract class SystemUI { 27f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato public Context mContext; 28d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock public Map<Class<?>, Object> mComponents; 29f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 30f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato public abstract void start(); 31209bede6b9edb9171e5bee4077b48e35004a37b4John Spurlock 320ad460b087abbd4b523a2e61ff27b0bf6fb5be92Daniel Sandler protected void onConfigurationChanged(Configuration newConfig) { 330ad460b087abbd4b523a2e61ff27b0bf6fb5be92Daniel Sandler } 34f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 35f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { 36f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato } 37d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock 38d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock @SuppressWarnings("unchecked") 39d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock public <T> T getComponent(Class<T> interfaceType) { 40d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock return (T) (mComponents != null ? mComponents.get(interfaceType) : null); 41d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock } 42d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock 43d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock public <T, C extends T> void putComponent(Class<T> interfaceType, C component) { 44d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock if (mComponents != null) { 45d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock mComponents.put(interfaceType, component); 46d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock } 47d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock } 48f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato} 49