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