Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bisongtechnologies.candysugarroll;
- import java.io.IOException;
- import java.net.URL;
- import org.andengine.engine.Engine;
- import org.andengine.engine.LimitedFPSEngine;
- import org.andengine.engine.camera.SmoothCamera;
- import org.andengine.engine.options.EngineOptions;
- import org.andengine.engine.options.ScreenOrientation;
- import org.andengine.engine.options.WakeLockOptions;
- import org.andengine.engine.options.resolutionpolicy.FillResolutionPolicy;
- import org.andengine.entity.scene.Scene;
- import org.andengine.ui.activity.BaseGameActivity;
- import android.content.Intent;
- import android.content.IntentSender.SendIntentException;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.KeyEvent;
- import com.bisongtechnologies.candysugarroll.SceneManager.SceneType;
- import com.facebook.Session;
- import com.facebook.SessionState;
- import com.facebook.UiLifecycleHelper;
- import com.facebook.model.GraphUser;
- import com.facebook.widget.FacebookDialog;
- import com.flurry.android.FlurryAgent;
- import com.flurry.android.ads.FlurryAdErrorType;
- import com.flurry.android.ads.FlurryAdInterstitial;
- import com.flurry.android.ads.FlurryAdInterstitialListener;
- import com.flurry.android.ads.FlurryAdTargeting;
- import com.google.android.gms.common.ConnectionResult;
- import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
- import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
- public class MainGameActivity extends BaseGameActivity implements
- ConnectionCallbacks, OnConnectionFailedListener {
- private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
- private static final String MY_FLURRY_APIKEY = "23TMFJ8GF35KRRTKWT4Z";
- private static final String MY_ADSPACE_NAME = "Candy Sugar Roll Fullscreen";
- // The games camera
- private SmoothCamera camera;
- // This is for Facebook integration.
- public UiLifecycleHelper uiHelper;
- public GraphUser currentUser;
- public Session mySession;
- public boolean isLoggedIn = false;
- public boolean mainMenu = false;
- boolean connected;
- public boolean playServiceInstalled = false;
- FlurryAdInterstitialListener interstitialAdListener = new FlurryAdInterstitialListener() {
- @Override
- public void onFetched(final FlurryAdInterstitial adInterstitial) {
- adInterstitial.displayAd();
- }
- @Override
- public void onError(final FlurryAdInterstitial adInterstitial,
- FlurryAdErrorType adErrorType, int errorCode) {
- adInterstitial.destroy();
- }
- @Override
- public void onAppExit(FlurryAdInterstitial arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onClicked(FlurryAdInterstitial arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onClose(FlurryAdInterstitial arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onDisplay(FlurryAdInterstitial arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onRendered(FlurryAdInterstitial arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onVideoCompleted(FlurryAdInterstitial arg0) {
- // TODO Auto-generated method stub
- }
- };
- private FlurryAdInterstitial mFlurryAdInterstitial = null;
- // Used for Facebook SDK
- private Session.StatusCallback callback = new Session.StatusCallback() {
- @Override
- public void call(Session session, SessionState state,
- Exception exception) {
- }
- };
- protected void onCreate(Bundle pSavedInstanceState) {
- super.onCreate(pSavedInstanceState);
- // configure Flurry
- FlurryAgent.setLogEnabled(false);
- // init Flurry
- FlurryAgent.init(MainGameActivity.this, MY_FLURRY_APIKEY);
- mFlurryAdInterstitial = new FlurryAdInterstitial(MainGameActivity.this,
- MY_ADSPACE_NAME);
- FlurryAdTargeting adTargeting = new FlurryAdTargeting();
- // enable test mode for this interstitial ad unit
- adTargeting.setEnableTestAds(true);
- mFlurryAdInterstitial.setTargeting(adTargeting);
- // allow us to get callbacks for ad events
- mFlurryAdInterstitial.setListener(interstitialAdListener);
- mFlurryAdInterstitial.fetchAd();
- }
- @Override
- public Engine onCreateEngine(EngineOptions pEngineOptions) {
- return new LimitedFPSEngine(pEngineOptions, 200);
- }
- // CREATING THE ENGINE OPTIONS.
- public EngineOptions onCreateEngineOptions() {
- // CREATING OUR CAMERS HERE WITH A WIDTH OF 800 AND HEIGHT OF 480
- camera = new SmoothCamera(0, 0, 800, 480, 200, 600, 30);
- // ENGINE OPTIONS
- EngineOptions engineOptions = new EngineOptions(true,
- ScreenOrientation.LANDSCAPE_SENSOR, new FillResolutionPolicy(),
- this.camera);
- engineOptions.getAudioOptions().setNeedsMusic(true).setNeedsSound(true);
- engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
- return engineOptions;
- }
- @Override
- public void onCreateResources(
- OnCreateResourcesCallback pOnCreateResourcesCallback)
- throws IOException {
- // HERE WE SET-UP AND INTITIALIZE OUR RESOURCES MANAGER CLASS THAT
- // MANAGES ALL OF
- // OUR SOUNDS, TEXTUES, AND OTHER RESOURCES.
- ResourcesManager.prepareManager(mEngine, this, camera,
- getVertexBufferObjectManager());
- // HERE WE CREATE OUR UIHELPER OBJECT FOR OUR FACEBOOK
- // WE USE FACEBOOK WHEN THE USER RUNS OUT OF MOVES ON A PARTICULAR
- // LEVEL.
- this.runOnUpdateThread(new Runnable() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- uiHelper = new UiLifecycleHelper(MainGameActivity.this,
- callback);
- }
- });
- // ENABLING OUR VIBRATOR TO USE.
- mEngine.enableVibrator(this);
- // TELLING OUR ENGINE THE RESOURCES METHOD IS NOW FINISHED RUNNING.
- pOnCreateResourcesCallback.onCreateResourcesFinished();
- }
- @Override
- public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
- throws IOException {
- // CREATING OUR SCENE MANAGER HERE. AND INITIALIZING IT.
- SceneManager.getInstance().createMainMenuScene(pOnCreateSceneCallback);
- }
- @Override
- public void onPopulateScene(Scene pScene,
- OnPopulateSceneCallback pOnPopulateSceneCallback)
- throws IOException {
- // NO NEED TO UNDERSTAND THIS PART.
- pOnPopulateSceneCallback.onPopulateSceneFinished();
- }
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- // WHEN FACEBOOK ACTIVITY IS OPENED SUCCESSFULLY AND THE USER RETURNS
- // BACK TO OUR APP.
- // THIS METHOD GETS CALLED AND WE CAN MAKE SOMETHING HAPPEN SINCE THE
- // USER USED FACEBOOK.
- uiHelper.onActivityResult(requestCode, resultCode, data,
- new FacebookDialog.Callback() {
- @Override
- public void onError(FacebookDialog.PendingCall pendingCall,
- Exception error, Bundle data) {
- Log.e("Activity",
- String.format("Error: %s", error.toString()));
- }
- @Override
- public void onComplete(
- FacebookDialog.PendingCall pendingCall, Bundle data) {
- Log.e("Activity", "Success!");
- // HERE WE INCREASE THE GAME MOVES IF THE USER
- // SUCCESSFULLY SHARE
- // THE GAME ON FACEBOOK! THIS WILL HELP DRIVE DOWNLOADS.
- SceneManager.getInstance().gameScene.increaseMoves();
- }
- });
- }
- @Override
- protected void onResume() {
- super.onResume();
- // HERE IS THE USER IS ON THE MAIN MENU AND THE RESUME OUR APP
- // WE RESUME THE MUSIC IS IT WAS BEING PLAYED BEFORE THE LEFT.
- if (mainMenu == true) {
- if (ResourcesManager.getInstance().theme != null
- && ResourcesManager.database.getMusicSettings() == true) {
- ResourcesManager.getInstance().theme.resume();
- }
- }
- }
- @Override
- protected void onStart() {
- super.onStart();
- FlurryAgent.onStartSession(MainGameActivity.this);
- }
- @Override
- protected void onStop() {
- super.onStop();
- FlurryAgent.onEndSession(MainGameActivity.this);
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- mFlurryAdInterstitial.destroy();
- }
- @Override
- public void onPause() {
- super.onPause();
- // PAUSING OUR FACEBOOK HELPER CLASS.
- // THIS WAY IT WONT USE CPU.
- // uiHelper.onPause();
- // IF THE USER IS IN THE MIDDLE OF GAMEPLAY, WE DO SOME CHECKS AND
- // DISPLAY A
- // MENU SCENE TO PAUSE THE GAME.
- if (SceneManager.getInstance().getCurrentSceneType() == SceneType.SCENE_GAME
- && SceneManager.getInstance().gameScene.gameOver == false) {
- SceneManager.getInstance().gameScene.showPauseScene();
- } else if (SceneManager.getInstance().getCurrentSceneType() == SceneType.SCENE_MENU) {
- ResourcesManager.getInstance().theme.pause();
- }
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- // WHEN THE USER PRESSES THE BACK BUTTON WE TRIGGER THE
- // "ONBACKPRESSED" FOR
- // WHICHEVER SCENE IS CURRENT BEING SHOWN.
- SceneManager.getInstance().getCurrentScene().onBackKeyPressed();
- }
- return false;
- }
- @Override
- public synchronized void onWindowFocusChanged(boolean pHasWindowFocus) {
- super.onWindowFocusChanged(pHasWindowFocus);
- if (!pHasWindowFocus) {
- // IF OUR APP IS OUR OF FOCUS THEN WE PAUSE THE MUSIC, IF IT IS
- // PLAYING.
- // pause stuff here, except music pausing;
- if (ResourcesManager.getInstance().theme != null
- && ResourcesManager.getInstance().theme.isPlaying()) {
- ResourcesManager.getInstance().theme.pause();
- }
- }
- }
- // THIS METHOD IS FOR GOOGLE PLAY GAME SERVICES, YOU DONT NEED TO WORRY
- // ABOUT IT.
- @Override
- public void onConnectionFailed(ConnectionResult result) {
- // TODO Auto-generated method stub
- // The user clicked the sign-in button already. Start to resolve
- // connection errors. Wait until onConnected() to dismiss the
- // connection dialog.
- if (result.hasResolution()) {
- try {
- result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR);
- } catch (SendIntentException e) {
- }
- }
- }
- //
- @Override
- public void onConnected(Bundle arg0) {
- }
- @Override
- public void onConnectionSuspended(int arg0) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement