1a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk/*
2a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * Copyright (C) 2011 The Android Open Source Project
3a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *
4a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * Licensed under the Apache License, Version 2.0 (the "License");
5a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * you may not use this file except in compliance with the License.
6a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * You may obtain a copy of the License at
7a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *
8a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *      http://www.apache.org/licenses/LICENSE-2.0
9a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *
10a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * Unless required by applicable law or agreed to in writing, software
11a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * distributed under the License is distributed on an "AS IS" BASIS,
12a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * See the License for the specific language governing permissions and
14a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * limitations under the License.
15a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk */
16a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
17d4cb9c587c23e3c24d928b0ac1a4de5679846f93Alex Sakhartchoukpackage com.android.testapp;
18a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
19a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.RSSurfaceView;
20a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.RenderScript;
21a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
22a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.app.Activity;
23a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.content.res.Configuration;
24a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.content.Intent;
25a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.os.Bundle;
26a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.os.Handler;
27a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.os.Looper;
28a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.os.Message;
29a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.provider.Settings.System;
30a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.util.Log;
31a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.view.Menu;
32a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.view.MenuItem;
33a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.view.View;
34a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.view.Window;
35a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.widget.Button;
36a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.widget.ListView;
37a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.view.MenuInflater;
38a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.view.Window;
39a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.net.Uri;
40a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
41a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport java.lang.Runtime;
42a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
433fc86ec3d03bb4a0ae61e41d0cfba43595ecc23dAlex Sakhartchoukpublic class TestApp extends Activity {
44a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
453fc86ec3d03bb4a0ae61e41d0cfba43595ecc23dAlex Sakhartchouk    private TestAppView mView;
46a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
47a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    @Override
48a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    public void onCreate(Bundle icicle) {
49a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        super.onCreate(icicle);
50a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
51a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        // Create our Preview view and set it as the content of our
52a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        // Activity
533fc86ec3d03bb4a0ae61e41d0cfba43595ecc23dAlex Sakhartchouk        mView = new TestAppView(this);
54a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        setContentView(mView);
55a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
56a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
57a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    @Override
58a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    protected void onResume() {
59a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        // Ideally a game should implement onResume() and onPause()
60a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        // to take appropriate action when the activity looses focus
61a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        super.onResume();
62a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        mView.resume();
63a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
64a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
65a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    @Override
66a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    protected void onPause() {
67a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        // Ideally a game should implement onResume() and onPause()
68a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        // to take appropriate action when the activity looses focus
69a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        super.onPause();
70a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        mView.pause();
71a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
72a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
73a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    @Override
74a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    public boolean onCreateOptionsMenu(Menu menu) {
75a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        MenuInflater inflater = getMenuInflater();
76a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        inflater.inflate(R.menu.loader_menu, menu);
77a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        return true;
78a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
79a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
80a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    @Override
81a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    public boolean onOptionsItemSelected(MenuItem item) {
82a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        // Handle item selection
83a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        switch (item.getItemId()) {
84a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        case R.id.load_model:
85a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk            loadModel();
86a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk            return true;
87a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        case R.id.use_blur:
88a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk            mView.mRender.toggleBlur();
89a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk            return true;
90a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        default:
91a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk            return super.onOptionsItemSelected(item);
92a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        }
93a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
94a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
95a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    private static final int FIND_DAE_MODEL = 10;
96a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    public void onActivityResult(int requestCode, int resultCode, Intent data) {
97a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        if (resultCode == RESULT_OK) {
98a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk            if (requestCode == FIND_DAE_MODEL) {
99a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk                Uri selectedImageUri = data.getData();
100a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk                Log.e("Selected Path: ", selectedImageUri.getPath());
101a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk                mView.mRender.loadModel(selectedImageUri.getPath());
102a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk            }
103a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        }
104a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
105a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
106a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    public void loadModel() {
107a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        Intent intent = new Intent();
108a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        intent.setAction(Intent.ACTION_PICK);
109a18d676edefbafc0b745ab98edab8f50b1c81c61Alex Sakhartchouk        intent.setClassName("com.android.testapp",
110a18d676edefbafc0b745ab98edab8f50b1c81c61Alex Sakhartchouk                            "com.android.testapp.FileSelector");
111a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        startActivityForResult(intent, FIND_DAE_MODEL);
112a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
113a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
114a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk}
115a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
116