Advertisement
Guest User

Untitled

a guest
Jul 14th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.07 KB | None | 0 0
  1. package com.bisongtechnologies.candysugarroll;
  2.  
  3. import java.io.IOException;
  4. import java.net.URL;
  5.  
  6. import org.andengine.engine.Engine;
  7. import org.andengine.engine.LimitedFPSEngine;
  8. import org.andengine.engine.camera.SmoothCamera;
  9. import org.andengine.engine.options.EngineOptions;
  10. import org.andengine.engine.options.ScreenOrientation;
  11. import org.andengine.engine.options.WakeLockOptions;
  12. import org.andengine.engine.options.resolutionpolicy.FillResolutionPolicy;
  13. import org.andengine.entity.scene.Scene;
  14. import org.andengine.ui.activity.BaseGameActivity;
  15.  
  16. import android.content.Intent;
  17. import android.content.IntentSender.SendIntentException;
  18. import android.os.AsyncTask;
  19. import android.os.Bundle;
  20. import android.util.Log;
  21. import android.view.KeyEvent;
  22.  
  23. import com.bisongtechnologies.candysugarroll.SceneManager.SceneType;
  24. import com.facebook.Session;
  25. import com.facebook.SessionState;
  26. import com.facebook.UiLifecycleHelper;
  27. import com.facebook.model.GraphUser;
  28. import com.facebook.widget.FacebookDialog;
  29. import com.flurry.android.FlurryAgent;
  30. import com.flurry.android.ads.FlurryAdErrorType;
  31. import com.flurry.android.ads.FlurryAdInterstitial;
  32. import com.flurry.android.ads.FlurryAdInterstitialListener;
  33. import com.flurry.android.ads.FlurryAdTargeting;
  34. import com.google.android.gms.common.ConnectionResult;
  35. import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
  36. import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
  37.  
  38. public class MainGameActivity extends BaseGameActivity implements
  39.         ConnectionCallbacks, OnConnectionFailedListener {
  40.  
  41.     private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
  42.     private static final String MY_FLURRY_APIKEY = "23TMFJ8GF35KRRTKWT4Z";
  43.     private static final String MY_ADSPACE_NAME = "Candy Sugar Roll Fullscreen";
  44.  
  45.     // The games camera
  46.     private SmoothCamera camera;
  47.  
  48.     // This is for Facebook integration.
  49.     public UiLifecycleHelper uiHelper;
  50.  
  51.     public GraphUser currentUser;
  52.     public Session mySession;
  53.  
  54.     public boolean isLoggedIn = false;
  55.     public boolean mainMenu = false;
  56.  
  57.     boolean connected;
  58.  
  59.     public boolean playServiceInstalled = false;
  60.  
  61.     FlurryAdInterstitialListener interstitialAdListener = new FlurryAdInterstitialListener() {
  62.  
  63.         @Override
  64.         public void onFetched(final FlurryAdInterstitial adInterstitial) {
  65.  
  66.             adInterstitial.displayAd();
  67.         }
  68.  
  69.         @Override
  70.         public void onError(final FlurryAdInterstitial adInterstitial,
  71.                 FlurryAdErrorType adErrorType, int errorCode) {
  72.             adInterstitial.destroy();
  73.         }
  74.  
  75.         @Override
  76.         public void onAppExit(FlurryAdInterstitial arg0) {
  77.             // TODO Auto-generated method stub
  78.         }
  79.  
  80.         @Override
  81.         public void onClicked(FlurryAdInterstitial arg0) {
  82.             // TODO Auto-generated method stub
  83.         }
  84.  
  85.         @Override
  86.         public void onClose(FlurryAdInterstitial arg0) {
  87.             // TODO Auto-generated method stub
  88.         }
  89.  
  90.         @Override
  91.         public void onDisplay(FlurryAdInterstitial arg0) {
  92.             // TODO Auto-generated method stub
  93.         }
  94.  
  95.         @Override
  96.         public void onRendered(FlurryAdInterstitial arg0) {
  97.             // TODO Auto-generated method stub
  98.         }
  99.  
  100.         @Override
  101.         public void onVideoCompleted(FlurryAdInterstitial arg0) {
  102.             // TODO Auto-generated method stub
  103.         }
  104.     };
  105.     private FlurryAdInterstitial mFlurryAdInterstitial = null;
  106.  
  107.     // Used for Facebook SDK
  108.     private Session.StatusCallback callback = new Session.StatusCallback() {
  109.         @Override
  110.         public void call(Session session, SessionState state,
  111.                 Exception exception) {
  112.  
  113.         }
  114.     };
  115.  
  116.     protected void onCreate(Bundle pSavedInstanceState) {
  117.         super.onCreate(pSavedInstanceState);
  118.  
  119.         // configure Flurry
  120.         FlurryAgent.setLogEnabled(false);
  121.  
  122.         // init Flurry
  123.         FlurryAgent.init(MainGameActivity.this, MY_FLURRY_APIKEY);
  124.  
  125.         mFlurryAdInterstitial = new FlurryAdInterstitial(MainGameActivity.this,
  126.                 MY_ADSPACE_NAME);
  127.  
  128.         FlurryAdTargeting adTargeting = new FlurryAdTargeting();
  129.         // enable test mode for this interstitial ad unit
  130.         adTargeting.setEnableTestAds(true);
  131.         mFlurryAdInterstitial.setTargeting(adTargeting);
  132.  
  133.         // allow us to get callbacks for ad events
  134.         mFlurryAdInterstitial.setListener(interstitialAdListener);
  135.  
  136.         mFlurryAdInterstitial.fetchAd();
  137.        
  138.     }
  139.  
  140.     @Override
  141.     public Engine onCreateEngine(EngineOptions pEngineOptions) {
  142.         return new LimitedFPSEngine(pEngineOptions, 200);
  143.     }
  144.  
  145.     // CREATING THE ENGINE OPTIONS.
  146.     public EngineOptions onCreateEngineOptions() {
  147.  
  148.         // CREATING OUR CAMERS HERE WITH A WIDTH OF 800 AND HEIGHT OF 480
  149.         camera = new SmoothCamera(0, 0, 800, 480, 200, 600, 30);
  150.  
  151.         // ENGINE OPTIONS
  152.         EngineOptions engineOptions = new EngineOptions(true,
  153.                 ScreenOrientation.LANDSCAPE_SENSOR, new FillResolutionPolicy(),
  154.                 this.camera);
  155.         engineOptions.getAudioOptions().setNeedsMusic(true).setNeedsSound(true);
  156.         engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
  157.  
  158.         return engineOptions;
  159.  
  160.     }
  161.  
  162.     @Override
  163.     public void onCreateResources(
  164.             OnCreateResourcesCallback pOnCreateResourcesCallback)
  165.             throws IOException {
  166.  
  167.         // HERE WE SET-UP AND INTITIALIZE OUR RESOURCES MANAGER CLASS THAT
  168.         // MANAGES ALL OF
  169.         // OUR SOUNDS, TEXTUES, AND OTHER RESOURCES.
  170.         ResourcesManager.prepareManager(mEngine, this, camera,
  171.                 getVertexBufferObjectManager());
  172.  
  173.         // HERE WE CREATE OUR UIHELPER OBJECT FOR OUR FACEBOOK
  174.         // WE USE FACEBOOK WHEN THE USER RUNS OUT OF MOVES ON A PARTICULAR
  175.         // LEVEL.
  176.         this.runOnUpdateThread(new Runnable() {
  177.  
  178.             @Override
  179.             public void run() {
  180.                 // TODO Auto-generated method stub
  181.  
  182.                 uiHelper = new UiLifecycleHelper(MainGameActivity.this,
  183.                         callback);
  184.             }
  185.  
  186.         });
  187.  
  188.         // ENABLING OUR VIBRATOR TO USE.
  189.         mEngine.enableVibrator(this);
  190.  
  191.         // TELLING OUR ENGINE THE RESOURCES METHOD IS NOW FINISHED RUNNING.
  192.         pOnCreateResourcesCallback.onCreateResourcesFinished();
  193.  
  194.     }
  195.  
  196.     @Override
  197.     public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
  198.             throws IOException {
  199.  
  200.         // CREATING OUR SCENE MANAGER HERE. AND INITIALIZING IT.
  201.         SceneManager.getInstance().createMainMenuScene(pOnCreateSceneCallback);
  202.  
  203.     }
  204.  
  205.     @Override
  206.     public void onPopulateScene(Scene pScene,
  207.             OnPopulateSceneCallback pOnPopulateSceneCallback)
  208.             throws IOException {
  209.  
  210.         // NO NEED TO UNDERSTAND THIS PART.
  211.         pOnPopulateSceneCallback.onPopulateSceneFinished();
  212.  
  213.     }
  214.  
  215.     @Override
  216.     public void onActivityResult(int requestCode, int resultCode, Intent data) {
  217.         super.onActivityResult(requestCode, resultCode, data);
  218.  
  219.         // WHEN FACEBOOK ACTIVITY IS OPENED SUCCESSFULLY AND THE USER RETURNS
  220.         // BACK TO OUR APP.
  221.         // THIS METHOD GETS CALLED AND WE CAN MAKE SOMETHING HAPPEN SINCE THE
  222.         // USER USED FACEBOOK.
  223.         uiHelper.onActivityResult(requestCode, resultCode, data,
  224.                 new FacebookDialog.Callback() {
  225.                     @Override
  226.                     public void onError(FacebookDialog.PendingCall pendingCall,
  227.                             Exception error, Bundle data) {
  228.                         Log.e("Activity",
  229.                                 String.format("Error: %s", error.toString()));
  230.                     }
  231.  
  232.                     @Override
  233.                     public void onComplete(
  234.                             FacebookDialog.PendingCall pendingCall, Bundle data) {
  235.                         Log.e("Activity", "Success!");
  236.                         // HERE WE INCREASE THE GAME MOVES IF THE USER
  237.                         // SUCCESSFULLY SHARE
  238.                         // THE GAME ON FACEBOOK! THIS WILL HELP DRIVE DOWNLOADS.
  239.                         SceneManager.getInstance().gameScene.increaseMoves();
  240.                     }
  241.                 });
  242.  
  243.     }
  244.  
  245.     @Override
  246.     protected void onResume() {
  247.         super.onResume();
  248.  
  249.         // HERE IS THE USER IS ON THE MAIN MENU AND THE RESUME OUR APP
  250.         // WE RESUME THE MUSIC IS IT WAS BEING PLAYED BEFORE THE LEFT.
  251.         if (mainMenu == true) {
  252.             if (ResourcesManager.getInstance().theme != null
  253.                     && ResourcesManager.database.getMusicSettings() == true) {
  254.  
  255.                 ResourcesManager.getInstance().theme.resume();
  256.             }
  257.  
  258.         }
  259.  
  260.     }
  261.  
  262.     @Override
  263.     protected void onStart() {
  264.         super.onStart();
  265.  
  266.         FlurryAgent.onStartSession(MainGameActivity.this);
  267.  
  268.     }
  269.  
  270.     @Override
  271.     protected void onStop() {
  272.         super.onStop();
  273.  
  274.         FlurryAgent.onEndSession(MainGameActivity.this);
  275.     }
  276.  
  277.     @Override
  278.     public void onDestroy() {
  279.         super.onDestroy();
  280.         mFlurryAdInterstitial.destroy();
  281.  
  282.     }
  283.  
  284.     @Override
  285.     public void onPause() {
  286.         super.onPause();
  287.  
  288.         // PAUSING OUR FACEBOOK HELPER CLASS.
  289.         // THIS WAY IT WONT USE CPU.
  290.         // uiHelper.onPause();
  291.  
  292.         // IF THE USER IS IN THE MIDDLE OF GAMEPLAY, WE DO SOME CHECKS AND
  293.         // DISPLAY A
  294.         // MENU SCENE TO PAUSE THE GAME.
  295.         if (SceneManager.getInstance().getCurrentSceneType() == SceneType.SCENE_GAME
  296.                 && SceneManager.getInstance().gameScene.gameOver == false) {
  297.  
  298.             SceneManager.getInstance().gameScene.showPauseScene();
  299.  
  300.         } else if (SceneManager.getInstance().getCurrentSceneType() == SceneType.SCENE_MENU) {
  301.  
  302.             ResourcesManager.getInstance().theme.pause();
  303.         }
  304.  
  305.     }
  306.  
  307.     @Override
  308.     public boolean onKeyDown(int keyCode, KeyEvent event) {
  309.         if (keyCode == KeyEvent.KEYCODE_BACK) {
  310.             // WHEN THE USER PRESSES THE BACK BUTTON WE TRIGGER THE
  311.             // "ONBACKPRESSED" FOR
  312.             // WHICHEVER SCENE IS CURRENT BEING SHOWN.
  313.  
  314.             SceneManager.getInstance().getCurrentScene().onBackKeyPressed();
  315.         }
  316.         return false;
  317.     }
  318.  
  319.     @Override
  320.     public synchronized void onWindowFocusChanged(boolean pHasWindowFocus) {
  321.         super.onWindowFocusChanged(pHasWindowFocus);
  322.         if (!pHasWindowFocus) {
  323.  
  324.             // IF OUR APP IS OUR OF FOCUS THEN WE PAUSE THE MUSIC, IF IT IS
  325.             // PLAYING.
  326.             // pause stuff here, except music pausing;
  327.             if (ResourcesManager.getInstance().theme != null
  328.                     && ResourcesManager.getInstance().theme.isPlaying()) {
  329.  
  330.                 ResourcesManager.getInstance().theme.pause();
  331.  
  332.             }
  333.  
  334.         }
  335.  
  336.     }
  337.  
  338.     // THIS METHOD IS FOR GOOGLE PLAY GAME SERVICES, YOU DONT NEED TO WORRY
  339.     // ABOUT IT.
  340.     @Override
  341.     public void onConnectionFailed(ConnectionResult result) {
  342.         // TODO Auto-generated method stub
  343.  
  344.         // The user clicked the sign-in button already. Start to resolve
  345.         // connection errors. Wait until onConnected() to dismiss the
  346.         // connection dialog.
  347.         if (result.hasResolution()) {
  348.             try {
  349.                 result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR);
  350.             } catch (SendIntentException e) {
  351.  
  352.             }
  353.  
  354.         }
  355.     }
  356.  
  357.     //
  358.     @Override
  359.     public void onConnected(Bundle arg0) {
  360.     }
  361.  
  362.     @Override
  363.     public void onConnectionSuspended(int arg0) {
  364.     }
  365.  
  366. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement