Java tutorial
/** * eAdventure is a research project of the * e-UCM research group. * * Copyright 2005-2013 e-UCM research group. * * You can access a list of all the contributors to eAdventure at: * http://e-adventure.e-ucm.es/contributors * * e-UCM is a research group of the Department of Software Engineering * and Artificial Intelligence at the Complutense University of Madrid * (School of Computer Science). * * C Profesor Jose Garcia Santesmases sn, * 28040 Madrid (Madrid), Spain. * * For more info please visit: <http://e-adventure.e-ucm.es> or * <http://www.e-ucm.es> * * **************************************************************************** * * This file is part of eAdventure * * eAdventure is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * eAdventure is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with eAdventure. If not, see <http://www.gnu.org/licenses/>. */ package es.eucm.ead.mockup.android; import java.util.HashMap; import java.util.Map; import android.content.Intent; import android.content.pm.ActivityInfo; import android.graphics.PixelFormat; import android.os.Bundle; import android.view.SurfaceView; import android.view.Window; import android.view.WindowManager; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import es.eucm.ead.mockup.core.Mockup; public class MockupActivity extends AndroidApplication { private Map<Integer, ActivityResultListener> listeners; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); cfg.hideStatusBar = true; cfg.useGL20 = true; cfg.useAccelerometer = false; cfg.useCompass = false; cfg.useGLSurfaceViewAPI18 = false; cfg.useImmersiveMode = true; cfg.useWakelock = false; // we need to change the default pixel format - since it does not // include an alpha channel // we need the alpha channel so the camera preview will be seen behind // the GL scene cfg.r = 8; cfg.g = 8; cfg.b = 8; cfg.a = 8; Mockup mockup = new Mockup(); initialize(mockup, cfg); this.listeners = new HashMap<Integer, ActivityResultListener>(); if (this.graphics.getView() instanceof SurfaceView) { SurfaceView glView = (SurfaceView) graphics.getView(); // force alpha channel - I'm not sure we need this as the GL surface // is already using alpha channel glView.getHolder().setFormat(PixelFormat.TRANSLUCENT); // TODO check // if it's // needed } } @Override public void onBackPressed() { // We do nothing so we make sure we don't leave // the application when we're watching a video inside VideoView } public void post(Runnable r) { handler.post(r); } public void startActivityForResult(Intent intent, int requestCode, ActivityResultListener l) { listeners.put(requestCode, l); super.startActivityForResult(intent, requestCode); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != RESULT_OK) return; ActivityResultListener l = listeners.get(requestCode); if (l != null) { l.result(requestCode, resultCode, data); } super.onActivityResult(requestCode, resultCode, data); } public interface ActivityResultListener { void result(int requestCode, int resultCode, Intent data); } }