@@ -286,6 +286,39 @@ public boolean showBeforeProvisioning() {
286286 mItems .add (mSilentModeAction );
287287 }
288288
289+ // one more thing: optionally add a list of users to switch to
290+ if (SystemProperties .getBoolean ("fw.power_user_switcher" , false )) {
291+ addUsersToMenu (mItems );
292+ }
293+
294+ mAdapter = new MyAdapter ();
295+
296+ AlertParams params = new AlertParams (mContext );
297+ params .mAdapter = mAdapter ;
298+ params .mOnClickListener = this ;
299+ params .mForceInverseBackground = true ;
300+
301+ GlobalActionsDialog dialog = new GlobalActionsDialog (mContext , params );
302+ dialog .setCanceledOnTouchOutside (false ); // Handled by the custom class.
303+
304+ dialog .getListView ().setItemsCanFocus (true );
305+ dialog .getListView ().setLongClickable (true );
306+ dialog .getListView ().setOnItemLongClickListener (
307+ new AdapterView .OnItemLongClickListener () {
308+ @ Override
309+ public boolean onItemLongClick (AdapterView <?> parent , View view , int position ,
310+ long id ) {
311+ return mAdapter .getItem (position ).onLongPress ();
312+ }
313+ });
314+ dialog .getWindow ().setType (WindowManager .LayoutParams .TYPE_SYSTEM_DIALOG );
315+
316+ dialog .setOnDismissListener (this );
317+
318+ return dialog ;
319+ }
320+
321+ private void addUsersToMenu (ArrayList <Action > items ) {
289322 List <UserInfo > users = ((UserManager ) mContext .getSystemService (Context .USER_SERVICE ))
290323 .getUsers ();
291324 if (users .size () > 1 ) {
@@ -320,35 +353,9 @@ public boolean showBeforeProvisioning() {
320353 return false ;
321354 }
322355 };
323- mItems .add (switchToUser );
356+ items .add (switchToUser );
324357 }
325358 }
326-
327- mAdapter = new MyAdapter ();
328-
329- AlertParams params = new AlertParams (mContext );
330- params .mAdapter = mAdapter ;
331- params .mOnClickListener = this ;
332- params .mForceInverseBackground = true ;
333-
334- GlobalActionsDialog dialog = new GlobalActionsDialog (mContext , params );
335- dialog .setCanceledOnTouchOutside (false ); // Handled by the custom class.
336-
337- dialog .getListView ().setItemsCanFocus (true );
338- dialog .getListView ().setLongClickable (true );
339- dialog .getListView ().setOnItemLongClickListener (
340- new AdapterView .OnItemLongClickListener () {
341- @ Override
342- public boolean onItemLongClick (AdapterView <?> parent , View view , int position ,
343- long id ) {
344- return mAdapter .getItem (position ).onLongPress ();
345- }
346- });
347- dialog .getWindow ().setType (WindowManager .LayoutParams .TYPE_SYSTEM_DIALOG );
348-
349- dialog .setOnDismissListener (this );
350-
351- return dialog ;
352359 }
353360
354361 private void prepareDialog () {
0 commit comments