Example #1
0
 void setKeyboardVisibility(Configuration c) {
   boolean landscape = (c.orientation == Configuration.ORIENTATION_LANDSCAPE);
   if (landscape != prevLandscape || keyboard == null) {
     // Must recreate KeyboardView on orientation change because it
     // caches the x,y for its preview popups
     // http://code.google.com/p/android/issues/detail?id=4559
     if (keyboard != null) mainLayout.removeView(keyboard);
     keyboard = new SmallKeyboard(this, undoEnabled, redoEnabled);
     keyboard.setId(R.id.keyboard);
     RelativeLayout.LayoutParams lp =
         new RelativeLayout.LayoutParams(
             RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
     RelativeLayout.LayoutParams glp =
         new RelativeLayout.LayoutParams(
             RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
     if (landscape) {
       lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
       lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
       lp.addRule(RelativeLayout.ABOVE, R.id.statusBar);
       glp.addRule(RelativeLayout.ABOVE, R.id.statusBar);
       glp.addRule(RelativeLayout.LEFT_OF, R.id.keyboard);
     } else {
       lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
       lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
       lp.addRule(RelativeLayout.ABOVE, R.id.statusBar);
       glp.addRule(RelativeLayout.ABOVE, R.id.keyboard);
     }
     mainLayout.updateViewLayout(gameView, glp);
     mainLayout.addView(keyboard, lp);
   }
   keyboard.setKeys(
       (c.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO)
           ? (maybeUndoRedo + maybeMenu)
           : lastKeys,
       lastArrowMode);
   prevLandscape = landscape;
   mainLayout.requestLayout();
 }