All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jogamp.opencl.os.android.JoclBaseActivity Maven / Gradle / Ivy

The newest version!
/**
 * Copyright 2014 JogAmp Community. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 *
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 *
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of JogAmp Community.
 */
package jogamp.opencl.os.android;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.WindowManager;

public class JoclBaseActivity extends Activity {
   boolean isDelegatedActivity;
   Activity rootActivity;
   boolean setThemeCalled = false;

   public JoclBaseActivity() {
       super();
       isDelegatedActivity = false;
       rootActivity = this;
   }

   public void setRootActivity(final Activity rootActivity) {
       this.rootActivity = rootActivity;
       this.isDelegatedActivity = this != rootActivity;
   }

   public final boolean isDelegatedActivity() {
       return isDelegatedActivity;
   }

   public final Activity getActivity() {
       return rootActivity;
   }

   /**
    * Convenient method to set the Android window's flags to fullscreen or size-layout depending on the given NEWT window.
    * 

* Must be called before creating the view and adding any content, i.e. setContentView() ! *

* @param androidWindow * @param newtWindow */ public void setFullscreenFeature(final android.view.Window androidWindow, final boolean fullscreen) { if(null == androidWindow) { throw new IllegalArgumentException("Android or Window null"); } if( fullscreen ) { androidWindow.requestFeature(android.view.Window.FEATURE_NO_TITLE); androidWindow.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); androidWindow.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } else { androidWindow.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); androidWindow.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } } /** * Convenient method to set this context's theme to transparency. *

* Must be called before creating the view and adding any content, i.e. setContentView() ! *

*

* Is normally issued by {@link #setContentView(android.view.Window, Window)} * if the requested NEWT Capabilities ask for transparency. *

*

* Can be called only once. *

*/ public void setTransparencyTheme() { if(!setThemeCalled) { setThemeCalled = true; final Context ctx = getActivity().getApplicationContext(); final String frn = ctx.getPackageName()+":style/Theme.Transparent"; final int resID = ctx.getResources().getIdentifier("Theme.Transparent", "style", ctx.getPackageName()); if(0 == resID) { Log.d(MD.TAG, "SetTransparencyTheme: Resource n/a: "+frn); } else { Log.d(MD.TAG, "SetTransparencyTheme: Setting style: "+frn+": 0x"+Integer.toHexString(resID)); ctx.setTheme(resID); } } } @Override public android.view.Window getWindow() { if( isDelegatedActivity() ) { return getActivity().getWindow(); } else { return super.getWindow(); } } @Override public void onCreate(final Bundle savedInstanceState) { Log.d(MD.TAG, "onCreate.0"); if(!isDelegatedActivity()) { super.onCreate(savedInstanceState); } jogamp.common.os.android.StaticContext.init(rootActivity.getApplicationContext()); Log.d(MD.TAG, "onCreate.X"); } @Override public void onStart() { Log.d(MD.TAG, "onStart.0"); if(!isDelegatedActivity()) { super.onStart(); } Log.d(MD.TAG, "onStart.X"); } @Override public void onRestart() { Log.d(MD.TAG, "onRestart.0"); if(!isDelegatedActivity()) { super.onRestart(); } Log.d(MD.TAG, "onRestart.X"); } @Override public void onResume() { Log.d(MD.TAG, "onResume.0"); if(!isDelegatedActivity()) { super.onResume(); } Log.d(MD.TAG, "onResume.X"); } @Override public void onPause() { Log.d(MD.TAG, "onPause.0"); if( !isDelegatedActivity() ) { super.onPause(); } Log.d(MD.TAG, "onPause.X"); } @Override public void onStop() { Log.d(MD.TAG, "onStop.0"); if( !isDelegatedActivity() ) { super.onStop(); } Log.d(MD.TAG, "onStop.X"); } @Override public void onDestroy() { Log.d(MD.TAG, "onDestroy.0"); if(!isDelegatedActivity()) { super.onDestroy(); } Log.d(MD.TAG, "onDestroy.X"); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy