StatusBarTest.java revision 7bb8eeb90cf55f409a282c1f36ca08aa48c10543
1/* 2 * Copyright (C) 2007 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.statusbartest; 18 19import android.app.ListActivity; 20import android.app.Notification; 21import android.app.NotificationManager; 22import android.widget.ArrayAdapter; 23import android.view.View; 24import android.widget.ListView; 25import android.content.Intent; 26import android.app.PendingIntent; 27import android.app.Notification; 28import android.app.NotificationManager; 29import android.app.StatusBarManager; 30import android.content.Context; 31import android.util.AttributeSet; 32import android.os.Vibrator; 33import android.os.Bundle; 34import android.os.Handler; 35import android.util.Log; 36import android.net.Uri; 37import android.os.SystemClock; 38import android.widget.RemoteViews; 39import android.widget.Toast; 40import android.os.PowerManager; 41import android.view.View; 42import android.view.Window; 43import android.view.WindowManager; 44 45public class StatusBarTest extends TestActivity 46{ 47 private final static String TAG = "StatusBarTest"; 48 StatusBarManager mStatusBarManager; 49 NotificationManager mNotificationManager; 50 Handler mHandler = new Handler(); 51 52 View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener 53 = new View.OnSystemUiVisibilityChangeListener() { 54 public void onSystemUiVisibilityChange(int visibility) { 55 Log.d(TAG, "onSystemUiVisibilityChange visibility=" + visibility); 56 } 57 }; 58 59 @Override 60 protected String tag() { 61 return TAG; 62 } 63 64 @Override 65 protected Test[] tests() { 66 mStatusBarManager = (StatusBarManager)getSystemService(STATUS_BAR_SERVICE); 67 mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 68 69 return mTests; 70 } 71 72 private Test[] mTests = new Test[] { 73 new Test("DISABLE_NAVIGATION") { 74 public void run() { 75 View v = findViewById(android.R.id.list); 76 v.setSystemUiVisibility(View.STATUS_BAR_DISABLE_NAVIGATION); 77 } 78 }, 79 new Test("STATUS_BAR_HIDDEN") { 80 public void run() { 81 View v = findViewById(android.R.id.list); 82 v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); 83 v.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); 84 } 85 }, 86 new Test("no setSystemUiVisibility") { 87 public void run() { 88 View v = findViewById(android.R.id.list); 89 v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE); 90 v.setOnSystemUiVisibilityChangeListener(null); 91 } 92 }, 93 new Test("Double Remove") { 94 public void run() { 95 Log.d(TAG, "set 0"); 96 mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0); 97 Log.d(TAG, "remove 1"); 98 mStatusBarManager.removeIcon("tty"); 99 100 SystemClock.sleep(1000); 101 102 Log.d(TAG, "set 1"); 103 mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0); 104 if (false) { 105 Log.d(TAG, "set 2"); 106 mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0); 107 } 108 Log.d(TAG, "remove 2"); 109 mStatusBarManager.removeIcon("tty"); 110 Log.d(TAG, "set 3"); 111 mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0); 112 } 113 }, 114 new Test("Hide (FLAG_FULLSCREEN)") { 115 public void run() { 116 Window win = getWindow(); 117 win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 118 WindowManager.LayoutParams.FLAG_FULLSCREEN); 119 Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags)); 120 } 121 }, 122 new Test("Show (~FLAG_FULLSCREEN)") { 123 public void run() { 124 Window win = getWindow(); 125 win.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN); 126 Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags)); 127 } 128 }, 129 new Test("Immersive: Enter") { 130 public void run() { 131 setImmersive(true); 132 } 133 }, 134 new Test("Immersive: Exit") { 135 public void run() { 136 setImmersive(false); 137 } 138 }, 139 new Test("Priority notification") { 140 public void run() { 141 Notification not = new Notification(StatusBarTest.this, 142 R.drawable.stat_sys_phone, 143 "Incoming call from: Imperious Leader", 144 System.currentTimeMillis()-(1000*60*60*24), 145 "Imperious Leader", 146 "(888) 555-5038", 147 null 148 ); 149 not.flags |= Notification.FLAG_HIGH_PRIORITY; 150 Intent fullScreenIntent = new Intent(StatusBarTest.this, TestAlertActivity.class); 151 int id = (int)System.currentTimeMillis(); // XXX HAX 152 fullScreenIntent.putExtra("id", id); 153 not.fullScreenIntent = PendingIntent.getActivity( 154 StatusBarTest.this, 155 0, 156 fullScreenIntent, 157 PendingIntent.FLAG_CANCEL_CURRENT); 158 // if you tap on it you should get the original alert box 159 not.contentIntent = not.fullScreenIntent; 160 mNotificationManager.notify(id, not); 161 } 162 }, 163 new Test("Disable Alerts") { 164 public void run() { 165 mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS); 166 } 167 }, 168 new Test("Disable Ticker") { 169 public void run() { 170 mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_TICKER); 171 } 172 }, 173 new Test("Disable Expand in 3 sec.") { 174 public void run() { 175 mHandler.postDelayed(new Runnable() { 176 public void run() { 177 mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND); 178 } 179 }, 3000); 180 } 181 }, 182 new Test("Disable Notifications in 3 sec.") { 183 public void run() { 184 mHandler.postDelayed(new Runnable() { 185 public void run() { 186 mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS); 187 } 188 }, 3000); 189 } 190 }, 191 new Test("Disable Expand + Notifications in 3 sec.") { 192 public void run() { 193 mHandler.postDelayed(new Runnable() { 194 public void run() { 195 mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND 196 | StatusBarManager.DISABLE_NOTIFICATION_ICONS); 197 } 198 }, 3000); 199 } 200 }, 201 new Test("Disable Navigation") { 202 public void run() { 203 mStatusBarManager.disable(StatusBarManager.DISABLE_NAVIGATION); 204 } 205 }, 206 new Test("Disable Clock") { 207 public void run() { 208 mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK); 209 } 210 }, 211 new Test("Disable System Info") { 212 public void run() { 213 mStatusBarManager.disable(StatusBarManager.DISABLE_SYSTEM_INFO); 214 } 215 }, 216 new Test("Disable everything in 3 sec") { 217 public void run() { 218 mHandler.postDelayed(new Runnable() { 219 public void run() { 220 mStatusBarManager.disable(~StatusBarManager.DISABLE_NONE); 221 } 222 }, 3000); 223 } 224 }, 225 new Test("Enable everything") { 226 public void run() { 227 mStatusBarManager.disable(StatusBarManager.DISABLE_NONE); 228 } 229 }, 230 new Test("Enable everything in 3 sec.") { 231 public void run() { 232 mHandler.postDelayed(new Runnable() { 233 public void run() { 234 mStatusBarManager.disable(0); 235 } 236 }, 3000); 237 } 238 }, 239 new Test("Notify in 3 sec.") { 240 public void run() { 241 mHandler.postDelayed(new Runnable() { 242 public void run() { 243 mNotificationManager.notify(1, 244 new Notification(StatusBarTest.this, 245 R.drawable.ic_statusbar_missedcall, 246 "tick tick tick", 247 System.currentTimeMillis()-(1000*60*60*24), 248 "(453) 123-2328", 249 "", null 250 )); 251 } 252 }, 3000); 253 } 254 }, 255 new Test("Cancel Notification in 3 sec.") { 256 public void run() { 257 mHandler.postDelayed(new Runnable() { 258 public void run() { 259 mNotificationManager.cancel(1); 260 } 261 }, 3000); 262 } 263 }, 264 new Test("Expand") { 265 public void run() { 266 mStatusBarManager.expand(); 267 } 268 }, 269 new Test("Expand in 3 sec.") { 270 public void run() { 271 mHandler.postDelayed(new Runnable() { 272 public void run() { 273 mStatusBarManager.expand(); 274 } 275 }, 3000); 276 } 277 }, 278 new Test("Collapse in 3 sec.") { 279 public void run() { 280 mHandler.postDelayed(new Runnable() { 281 public void run() { 282 mStatusBarManager.collapse(); 283 } 284 }, 3000); 285 } 286 }, 287 new Test("More icons") { 288 public void run() { 289 for (String slot: new String[] { 290 "sync_failing", 291 "gps", 292 "bluetooth", 293 "tty", 294 "speakerphone", 295 "mute", 296 "wifi", 297 "alarm_clock", 298 "secure", 299 }) { 300 mStatusBarManager.setIconVisibility(slot, true); 301 } 302 } 303 }, 304 }; 305} 306