/**
   * Called when application is first created. <b>Set up:</b>
   *
   * <ol>
   *   <li>Create and open the main space and put the primary user (the user that started this
   *       application) into the space
   *   <li>Initialize button functionality: main button
   * </ol>
   *
   * <b>Assumptions:</b>
   *
   * <ul>
   *   <li>The main space is created by the primary user
   *   <li>XMPPConnection is established and authorized before this Activity is called
   * </ul>
   */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    if (D) Log.d(TAG, "onCreate - Started the MainApplication activity");
    super.onCreate(savedInstanceState);
    ContextTracker.setContext(this);

    // Open up the layout specified by the main XML
    setContentView(R.layout.main);
    // Change the parameters of the appearance according to screen size
    // adjustLayoutParams();
    // This spaceview already created for you in the XML file, so retrieve
    // it
    screen = (SpaceView) findViewById(R.id.space_view);
    // Check if the mainspace was already created
    if (Space.getMainSpace() == null) {
      // Obtain username used to log into the application
      Intent start_intent = getIntent();
      username = start_intent.getStringExtra(Network.KEY_USERNAME);
      // Create instance of primary user
      if (userPrimary == null) {
        userPrimary = new User(username, username.split("@")[0], R.drawable.question);
      }
      try {
        // create the mainspace
        SpaceController.createMainSpace(this);

        // create an empty private space
        // SpaceController.addSpace(this);

        // TODO add private space preview
      } catch (XMPPException e) {
        // Log.e(TAG, "onCreate - Error (" + e.getXMPPError().getCode()
        // + ") " + e.getXMPPError().getMessage());
        e.printStackTrace();
      }
      screen.setSpace(Space.getMainSpace());
      // screen.getSpaceViewController().changeSpace(Space.getMainSpace());
      Space.getMainSpace().setScreenOn(true);
      // Space.getMainSpace().setEntered(true);

      font = Typeface.createFromAsset(getAssets(), Values.font);
      // Button mainButtonText = (Button) findViewById(R.id.main_button);
      // mainButtonText.setTypeface(font);

    }
    // this.plusButtonSetUp(0);
    initializeButtons();

    // Initializes the onKeyListener to record keypad events
    screen.setOnKeyListener(onKeyListener);

    // DEBUG: create User object to test invitations and kickouts
    debug = new User("opencommsec@" + Network.DEFAULT_HOSTNAME, "opencommsec", 0);
    // for (Space s : Space.allSpaces) Log.v(TAG, s.getRoomID());
    debug1 = new User("mucopencomm@" + Network.DEFAULT_HOSTNAME, "mucopencomm", 0);

    // Change screen dimensions to 480x800
    Values.setValues(480, 800);
  }
 /**
  * Removes all UI traces of a privatespace/sidechat 1) Removes space from hashmap of all spaces 2)
  * Removes the corresponding privatespaceButton 3) Changes the space to the Mainspace (but only if
  * wasn't a mainspace) However, if you are leaving the mainspace, then start a new activity and go
  * ack to the dashboard
  */
 public void delPrivateSpaceUI(Space space, boolean isMainSpace) {
   if (isMainSpace) {
     Intent i = new Intent(MainApplication.screen.getSpace().getContext(), DashboardView.class);
     MainApplication.screen.getSpace().getContext().startActivity(i);
   } else {
     // 1
     Space.allSpaces.remove(space.getRoomID());
     // 2
     PrivateSpaceIconView foundIcon = null;
     for (PrivateSpaceIconView ps : PrivateSpaceIconView.allPSIcons) {
       if (ps.getSpace() == space) foundIcon = ps;
     }
     if (foundIcon != null) delPrivateSpaceButton(foundIcon);
     // 3
     screen.getSpaceViewController().changeSpace(Space.getMainSpace());
   }
 }