/* * Copyright (C) 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.android.apps.santatracker.doodles; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.google.android.apps.santatracker.doodles.shared.DoodleConfig; import com.google.android.apps.santatracker.doodles.shared.GameFragment; import com.google.android.apps.santatracker.doodles.shared.LaunchDecisionMaker; import com.google.android.apps.santatracker.doodles.shared.PineappleDebugLogger; import com.google.android.apps.santatracker.invites.AppInvitesFragment; import com.google.android.apps.santatracker.util.MeasurementManager; import com.google.firebase.analytics.FirebaseAnalytics; /** * Main activity to route to the various doodle games. */ public class PineappleActivity extends FragmentActivity { private static final String TAG = PineappleActivity.class.getSimpleName(); private PineappleDebugLogger logger; private AppInvitesFragment appInvitesFragment; private FirebaseAnalytics mAnalytics; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view); // Check for game direct launch DoodleConfig config; if (getIntent() != null && getIntent().hasExtra(LaunchDecisionMaker.START_GAME_KEY)) { config = new DoodleConfig(getIntent().getExtras(), null); } else { throw new IllegalStateException("Extra START_GAME_KEY required"); } // [ANALYTICS] mAnalytics = FirebaseAnalytics.getInstance(this); String gameKey = getIntent().getStringExtra(LaunchDecisionMaker.START_GAME_KEY); switch (gameKey) { case LaunchDecisionMaker.WATERPOLO_GAME_VALUE: MeasurementManager.recordScreenView(mAnalytics, getString(R.string.analytics_screen_waterpolo)); break; case LaunchDecisionMaker.RUNNING_GAME_VALUE: MeasurementManager.recordScreenView(mAnalytics, getString(R.string.analytics_screen_running)); break; case LaunchDecisionMaker.SWIMMING_GAME_VALUE: MeasurementManager.recordScreenView(mAnalytics, getString(R.string.analytics_screen_swimming)); break; } appInvitesFragment = AppInvitesFragment.getInstance(this); logger = new PineappleDebugLogger(); Fragment fragment = LaunchDecisionMaker.makeFragment(this, config, logger); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.activity_wrapper, fragment, "menu"); fragmentTransaction.commit(); } @Override public void onBackPressed() { // Get the current game fragment final Fragment fragment = getFragmentManager().findFragmentById(R.id.activity_wrapper); if (fragment instanceof GameFragment) { GameFragment gameFragment = (GameFragment) fragment; // Pause the game, or go back to the home screen if the game is paused already if (gameFragment.isGamePaused() || !gameFragment.isFinishedLoading() || gameFragment.isGameOver()) { super.onBackPressed(); } else { gameFragment.onBackPressed(); } } else { super.onBackPressed(); } } public AppInvitesFragment getAppInvitesFragment() { return appInvitesFragment; } }