159b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapackage jme3test.android; 259b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.app.Activity; 359b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.content.Intent; 459b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.content.pm.ActivityInfo; 559b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.os.Bundle; 659b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.view.View; 759b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.widget.AdapterView.OnItemClickListener; 859b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.widget.AdapterView.OnItemSelectedListener; 959b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport android.widget.*; 1059b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.util.ArrayList; 1159b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.util.List; 1259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 1359b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapublic class DemoMainActivity extends Activity { 1459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 1559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** Called when the activity is first created. */ 1659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta @Override 1759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void onCreate(Bundle savedInstanceState) { 1859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta super.onCreate(savedInstanceState); 1959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta setContentView(R.layout.main); 2059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 2159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 2259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 2359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta final Intent myIntent = new Intent(DemoMainActivity.this, DemoAndroidHarness.class); 2459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 2559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //Next create the bundle and initialize it 2659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta final Bundle bundle = new Bundle(); 2759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 2859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 2959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta final Spinner spinnerConfig = (Spinner) findViewById(R.id.spinnerConfig); 3059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta ArrayAdapter<CharSequence> adapterDropDownConfig = ArrayAdapter.createFromResource( 3159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta this, R.array.eglconfig_array, android.R.layout.simple_spinner_item); 3259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta adapterDropDownConfig.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 3359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta spinnerConfig.setAdapter(adapterDropDownConfig); 3459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 3559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 3659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta spinnerConfig.setOnItemSelectedListener(new OnItemSelectedListener() { 3759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 3859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta @Override 3959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void onItemSelected(AdapterView<?> parent, 4059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta View view, int pos, long id) { 4159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Toast.makeText(parent.getContext(), "Set EGLConfig " + 4259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); 4359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //Add the parameters to bundle as 4459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta bundle.putString("EGLCONFIG", parent.getItemAtPosition(pos).toString()); 4559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 4659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 4759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void onNothingSelected(AdapterView parent) { 4859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta // Do nothing. 4959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 5059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta }); 5159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 5259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 5359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta final Spinner spinnerLogging = (Spinner) findViewById(R.id.spinnerLogging); 5459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta ArrayAdapter<CharSequence> adapterDropDownLogging = ArrayAdapter.createFromResource( 5559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta this, R.array.logging_array, android.R.layout.simple_spinner_item); 5659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta adapterDropDownLogging.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 5759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta spinnerLogging.setAdapter(adapterDropDownLogging); 5859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 5959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 6059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta spinnerLogging.setOnItemSelectedListener(new OnItemSelectedListener() { 6159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 6259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta @Override 6359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void onItemSelected(AdapterView<?> parent, 6459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta View view, int pos, long id) { 6559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Toast.makeText(parent.getContext(), "Set Logging " + 6659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); 6759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 6859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //Add the parameters to bundle as 6959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta bundle.putBoolean("VERBOSE", parent.getItemAtPosition(pos).toString().equals("Verbose")); 7059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 7159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 7259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void onNothingSelected(AdapterView parent) { 7359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta // Do nothing. 7459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 7559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta }); 7659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 7759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 7859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta ListView list = (ListView) findViewById(R.id.ListView01); 7959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta list.setClickable(true); 8059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 8159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta final List<DemoLaunchEntry> listDemos = new ArrayList<DemoLaunchEntry>(); 8259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 8359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.SimpleTexturedTest", "An field of textured boxes rotating")); 8459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestSkyLoadingLagoon", "Sky box demonstration with jpg")); 8559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestSkyLoadingPrimitives", "Sky box demonstration with png")); 8659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestBumpModel", "Shows a bump mapped well with a moving light")); 8759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestNormalMapping", "Shows a normal mapped sphere")); 8859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestUnshadedModel", "Shows an unshaded model of the sphere")); 8959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestMovingParticle", "Demonstrates particle effects")); 9059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestAmbient", "Positional sound - You sit in a dark cave under a waterfall")); 9159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 9259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //listDemos.add(new DemoLaunchEntry("jme3test.effect.TestParticleEmitter", "")); 9359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //listDemos.add(new DemoLaunchEntry("jme3test.effect.TestPointSprite", "")); 9459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //listDemos.add(new DemoLaunchEntry("jme3test.light.TestLightRadius", "")); 9559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta listDemos.add(new DemoLaunchEntry("jme3test.android.TestMotionPath", "Shows cinematics - see a teapot on its journey - model loading needs a long time - just let it load, looks like freezed")); 9659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //listDemos.add(new DemoLaunchEntry("com.jme3.androiddemo.TestSimpleWater", "Post processors - not working correctly due to missing framebuffer support, looks interresting :)")); 9759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //listDemos.add(new DemoLaunchEntry("jme3test.model.TestHoverTank", "")); 9859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //listDemos.add(new DemoLaunchEntry("jme3test.niftygui.TestNiftyGui", "")); 9959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //listDemos.add(new DemoLaunchEntry("com.jme3.androiddemo.TestNiftyGui", "")); 10059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 10159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 10259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta DemoLaunchAdapter adapterList = new DemoLaunchAdapter(this, listDemos); 10359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 10459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta list.setOnItemClickListener(new OnItemClickListener() { 10559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 10659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta @Override 10759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void onItemClick(AdapterView<?> arg0, View view, int position, long index) { 10859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta System.out.println("onItemClick"); 10959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta showToast(listDemos.get(position).getName()); 11059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 11159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 11259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //Add the parameters to bundle as 11359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta bundle.putString("APPCLASSNAME", listDemos.get(position).getName()); 11459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 11559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //Add this bundle to the intent 11659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta myIntent.putExtras(bundle); 11759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 11859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta //Start the JME3 app harness activity 11959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta DemoMainActivity.this.startActivity(myIntent); 12059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 12159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 12259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta }); 12359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 12459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta list.setAdapter(adapterList); 12559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 12659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 12759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta private void showToast(String message) { 12859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Toast.makeText(this, message, Toast.LENGTH_LONG).show(); 12959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 13059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta} 13159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 132