/* ThetaFeatureActivity.java Copyright (c) 2015 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.theta.activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.view.KeyEvent; import org.deviceconnect.android.deviceplugin.theta.fragment.ThetaShootingFragment; import org.deviceconnect.android.deviceplugin.theta.fragment.ThetaVRModeFragment; /** * Activity for the transition from the gallery to the function screen of THETA. * * @author NTT DOCOMO, INC. */ public class ThetaFeatureActivity extends FragmentActivity { /** * Feature Mode. */ public static final String FEATURE_MODE = "org.deviceconnect.android.theta.feature.MODE"; /** * Theta Picture data. */ public static final String FEATURE_DATA = "org.deviceconnect.android.theta.feature.DATA"; /** * Theta Storage Flag.<br> * true:storage<br> * false:theta<br> */ public static final String FEATURE_IS_STORAGE = "org.deviceconnect.android.theta.feature.STORAGE"; /** * Mode VR. */ public static final int MODE_VR = 0; /** * Mode Shooting. */ public static final int MODE_SHOOTING = 1; /** mode. */ private int mMode = -1; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); mMode = getIntent().getIntExtra(FEATURE_MODE, -1); int dataId = getIntent().getIntExtra(FEATURE_DATA, -1); boolean isStorage = getIntent().getBooleanExtra(FEATURE_IS_STORAGE, false); startApp(mMode, dataId, isStorage); } @Override public boolean dispatchKeyEvent(final KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_BACK: finish(); break; default: break; } } return super.dispatchKeyEvent(event); } /** * Move Page. * @param pageId pageId * @param dataId Theta Data Id * @param isStorage true:storage false:theta */ public void startApp(final int pageId, final int dataId, final boolean isStorage) { if (pageId == MODE_SHOOTING) { ThetaShootingFragment f = new ThetaShootingFragment(); moveFragment(f); } else if (pageId == MODE_VR) { ThetaVRModeFragment f = ThetaVRModeFragment.newInstance(); Bundle args = new Bundle(); args.putInt(FEATURE_DATA, dataId); args.putBoolean(FEATURE_IS_STORAGE, isStorage); f.setArguments(args); moveFragment(f); } } /** * Fragment の遷移. * @param f Fragment */ private void moveFragment(final Fragment f) { FragmentTransaction t = getSupportFragmentManager().beginTransaction(); t.setTransition(FragmentTransaction.TRANSIT_NONE); t.replace(android.R.id.content, f); t.addToBackStack(null); t.commit(); } }