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 19e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roosimport android.app.Notification; 20f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onoratoimport android.content.Context; 210ad460b087abbd4b523a2e61ff27b0bf6fb5be92Daniel Sandlerimport android.content.res.Configuration; 22e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roosimport android.os.Bundle; 23f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 24de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlockimport java.io.FileDescriptor; 25de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlockimport java.io.PrintWriter; 26d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlockimport java.util.Map; 27de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlock 28f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onoratopublic abstract class SystemUI { 29f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato public Context mContext; 30d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock public Map<Class<?>, Object> mComponents; 31f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 32f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato public abstract void start(); 33209bede6b9edb9171e5bee4077b48e35004a37b4John Spurlock 340ad460b087abbd4b523a2e61ff27b0bf6fb5be92Daniel Sandler protected void onConfigurationChanged(Configuration newConfig) { 350ad460b087abbd4b523a2e61ff27b0bf6fb5be92Daniel Sandler } 36f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato 37f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { 38f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato } 39d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock 40dc5f16bf096796d2f822bce8a720fc26e898da5eDan Sandler protected void onBootCompleted() { 41dc5f16bf096796d2f822bce8a720fc26e898da5eDan Sandler } 42dc5f16bf096796d2f822bce8a720fc26e898da5eDan Sandler 43d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock @SuppressWarnings("unchecked") 44d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock public <T> T getComponent(Class<T> interfaceType) { 45d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock return (T) (mComponents != null ? mComponents.get(interfaceType) : null); 46d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock } 47d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock 48d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock public <T, C extends T> void putComponent(Class<T> interfaceType, C component) { 49d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock if (mComponents != null) { 50d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock mComponents.put(interfaceType, component); 51d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock } 52d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock } 53e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos 54e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos public static void overrideNotificationAppName(Context context, Notification.Builder n) { 55e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos final Bundle extras = new Bundle(); 56e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos extras.putString(Notification.EXTRA_SUBSTITUTE_APP_NAME, 57e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos context.getString(com.android.internal.R.string.android_system_label)); 58e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos 59e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos n.addExtras(extras); 60e25c18da7d2cc3e02620dadfcb976521821bc9d8Adrian Roos } 61f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dcJoe Onorato} 62