19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.statusbartest; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IPowerManager; 22d070e89396e250782c015bc993bcae6e7e03af7aJoe Onoratoimport android.content.ComponentName; 23d070e89396e250782c015bc993bcae6e7e03af7aJoe Onoratoimport android.content.pm.PackageManager; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ServiceManager; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.PowerManager; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class PowerTest extends TestActivity 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private final static String TAG = "PowerTest"; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IPowerManager mPowerManager; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mPokeState = 0; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder mPokeToken = new Binder(); 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler mHandler = new Handler(); 358274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato PowerManager mPm; 368274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato PowerManager.WakeLock mProx; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected String tag() { 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return TAG; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected Test[] tests() { 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPowerManager = IPowerManager.Stub.asInterface(ServiceManager.getService("power")); 468274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato mPm = (PowerManager)getSystemService("power"); 478274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato mProx = mPm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "PowerTest-prox"); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mTests; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Test[] mTests = new Test[] { 52d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato new Test("Enable settings widget") { 53d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato public void run() { 54d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato PackageManager pm = getPackageManager(); 55d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato pm.setComponentEnabledSetting(new ComponentName("com.android.settings", 56d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato "com.android.settings.widget.SettingsAppWidgetProvider"), 57d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0); 58d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato 59d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato } 60d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato }, 61d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato new Test("Disable settings widget") { 62d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato public void run() { 63d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato PackageManager pm = getPackageManager(); 64d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato pm.setComponentEnabledSetting(new ComponentName("com.android.settings", 65d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato "com.android.settings.widget.SettingsAppWidgetProvider"), 66d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); 67d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato 68d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato } 69d070e89396e250782c015bc993bcae6e7e03af7aJoe Onorato }, 708274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato new Test("Enable proximity") { 718274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato public void run() { 728274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato mProx.acquire(); 738274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato } 748274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato }, 758274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato new Test("Disable proximity") { 768274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato public void run() { 778274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato mProx.release(); 788274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato } 798274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato }, 801208e2718daeae538dc89c37198092ccb32798a2Michael Wright new Test("Disable proximity (RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY") { 818274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato public void run() { 821208e2718daeae538dc89c37198092ccb32798a2Michael Wright mProx.release(PowerManager.RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY); 838274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato } 848274a0e53630f80ab356f69ddad895ed9638574eJoe Onorato }, 859630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown new Test("Enable proximity, wait 5 seconds then disable") { 869630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown public void run() { 879630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown mProx.acquire(); 889630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown mHandler.postDelayed(new Runnable() { 899630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown @Override 909630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown public void run() { 919630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown mProx.release(); 929630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown } 939630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown }, 5000); 949630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown } 959630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown }, 961208e2718daeae538dc89c37198092ccb32798a2Michael Wright new Test("Enable proximity, wait 5 seconds then disable " + 971208e2718daeae538dc89c37198092ccb32798a2Michael Wright "(RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY)") { 989630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown public void run() { 999630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown mProx.acquire(); 1009630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown mHandler.postDelayed(new Runnable() { 1019630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown @Override 1029630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown public void run() { 1031208e2718daeae538dc89c37198092ccb32798a2Michael Wright mProx.release(PowerManager.RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY); 1049630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown } 1059630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown }, 5000); 1069630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown } 1079630704ed3b265f008a8f64ec60a33cf9dcd3345Jeff Brown }, 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 110