Android Open Source - Fruity-Bang Main Activity






From Project

Back to project page Fruity-Bang.

License

The source code is released under:

MIT License

If you think the Android project Fruity-Bang listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package vn.edu.rmit.fruitybang;
/*  ww w. j a  va  2 s  . co m*/
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;

public class MainActivity extends FragmentActivity {
  private static final int SPLASH = 0;
  private static final int SELECTION = 1;
  private static final int SETTINGS = 2;
  private static final int FRAGMENT_COUNT = SETTINGS + 1;
  private MenuItem settings;

  private long score;
  private boolean isResumed = false;
  private Fragment[] fragments = new Fragment[FRAGMENT_COUNT];
  private UiLifecycleHelper uiHelper;

  private Session.StatusCallback callback = new Session.StatusCallback() {
    @Override
    public void call(Session session, SessionState state,
        Exception exception) {
      onSessionStateChange(session, state, exception);
    }
  };

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    score = intent.getLongExtra("score", -1);

    setContentView(R.layout.main);

    uiHelper = new UiLifecycleHelper(this, callback);
    uiHelper.onCreate(savedInstanceState);

    FragmentManager fm = getSupportFragmentManager();
    fragments[SPLASH] = fm.findFragmentById(R.id.splashFragment);
    fragments[SELECTION] = fm.findFragmentById(R.id.selectionFragment);
    fragments[SETTINGS] = fm.findFragmentById(R.id.userSettingsFragment);

    FragmentTransaction transaction = fm.beginTransaction();
    for (int i = 0; i < fragments.length; i++) {
      transaction.hide(fragments[i]);
    }
    transaction.commit();
  }

  public long getScore() {
    Log.i("Fruity", "MainActivity.getScore() = " + score);
    return score;
  }

  public void setScore(long score) {
    this.score = score;
  }

  private void showFragment(int fragmentIndex, boolean addToBackStack) {
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction transaction = fm.beginTransaction();
    for (int i = 0; i < fragments.length; i++) {
      if (i == fragmentIndex) {
        transaction.show(fragments[i]);
      } else {
        transaction.hide(fragments[i]);
      }
    }
    if (addToBackStack) {
      transaction.addToBackStack(null);
    }
    transaction.commit();
  }

  @Override
  public void onResume() {
    super.onResume();
    uiHelper.onResume();
    isResumed = true;
  }

  @Override
  public void onPause() {
    super.onPause();
    uiHelper.onPause();
    isResumed = false;
  }

  @Override
  public void onDestroy() {
    super.onDestroy();
    uiHelper.onDestroy();
  }

  @Override
  protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    uiHelper.onSaveInstanceState(outState);
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data);
  }

  private void onSessionStateChange(Session session, SessionState state,
      Exception exception) {
    // Only make changes if the activity is visible
    if (isResumed) {
      FragmentManager manager = getSupportFragmentManager();
      // Get the number of entries in the back stack
      int backStackSize = manager.getBackStackEntryCount();
      // Clear the back stack
      for (int i = 0; i < backStackSize; i++) {
        manager.popBackStack();
      }
      if (state.isOpened()) {
        // If the session state is open:
        // Show the authenticated fragment
        showFragment(SELECTION, false);
      } else if (state.isClosed()) {
        // If the session state is closed:
        // Show the login fragment
        showFragment(SPLASH, false);
      }
    }
  }

  @Override
  protected void onResumeFragments() {
    super.onResumeFragments();
    Session session = Session.getActiveSession();

    if (session != null && session.isOpened()) {
      // if the session is already open,
      // try to show the selection fragment
      showFragment(SELECTION, false);
    } else {
      // otherwise present the splash screen
      // and ask the user to login.
      showFragment(SPLASH, false);
    }
  }

  @Override
  public boolean onPrepareOptionsMenu(Menu menu) {
    // only add the menu when the selection fragment is showing
    if (fragments[SELECTION].isVisible()) {
      if (menu.size() == 0) {
        settings = menu.add(R.string.settings);
      }
      return true;
    } else {
      menu.clear();
      settings = null;
    }
    return false;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    if (item.equals(settings)) {
      showFragment(SETTINGS, true);
      return true;
    }
    return false;
  }
}




Java Source Code List

GameController.BushGhost.java
GameController.CharGhost.java
GameController.SaGhost.java
GameController.WormGhost.java
Game.GameConstant.java
Game.Game.java
Game.Home.java
Game.MapGenerator.java
GameModel.Bush.java
GameModel.Coin.java
GameModel.CuteModel.java
GameModel.Explosion.java
GameModel.Fruit.java
GameModel.Rock.java
GameModel.Ruby.java
GameModel.Sa.java
GameModel.Win.java
GameModel.Worm.java
Game.Scene.java
Game.Store.java
Model.Account.java
vn.edu.rmit.fruitybang.GameActivity.java
vn.edu.rmit.fruitybang.LoadingAsyncTask.java
vn.edu.rmit.fruitybang.MainActivity.java
vn.edu.rmit.fruitybang.SelectionFragment.java
vn.edu.rmit.fruitybang.SplashFragment.java