IPControlsJB.java revision 7a3e3aa4948ff4b2c19a62f0b5003b902db0ce24
1bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams/*
2bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * Copyright (C) 2013 The Android Open Source Project
3bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams *
4bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * you may not use this file except in compliance with the License.
6bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * You may obtain a copy of the License at
7bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams *
8bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams *
10bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * Unless required by applicable law or agreed to in writing, software
11bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * See the License for the specific language governing permissions and
14bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams * limitations under the License.
15bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams */
16bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
17bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samspackage com.android.rs.imagejb;
18bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
19bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.app.Activity;
20bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.os.Bundle;
21bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.os.Handler;
22bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.os.Message;
23bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.graphics.Canvas;
24bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.view.SurfaceView;
25bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.AdapterView;
26bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.ArrayAdapter;
27bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.ImageView;
28bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.SeekBar;
29bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.Spinner;
30bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.ToggleButton;
31bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.TextView;
32bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.CompoundButton;
33bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.widget.ListView;
34bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.view.View;
35bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport java.util.ArrayList;
36bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport java.util.ListIterator;
37bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.util.Log;
38bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.content.Intent;
39bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
40bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport android.os.Environment;
41bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport java.io.BufferedWriter;
42bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport java.io.File;
43bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport java.io.FileWriter;
44bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samsimport java.io.IOException;
45bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
46bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Samspublic class IPControlsJB extends Activity {
47bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private final String TAG = "Img";
48bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public final String RESULT_FILE = "image_processing_result.csv";
49bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
50bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private ToggleButton mIOButton;
51bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private Spinner mResSpinner;
52bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private ListView mTestListView;
53bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
54bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private ArrayAdapter<String> mTestListAdapter;
55bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private ArrayList<String> mTestList = new ArrayList<String>();
56bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
57bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private boolean mToggleIO = true;
58bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private boolean mToggleDVFS = true;
59bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private boolean mToggleLong = false;
60bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private boolean mTogglePause = false;
61bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
62bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
63bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public enum Resolutions {
64bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        RES_4K(3840, 2160, "4k (3840x2160)"),
65bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        RES_1080P(1920, 1080, "1080p (1920x1080)"),
66bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        RES_720P(1280, 720, "720p (1280x720)"),
67bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        RES_WVGA(800, 480, "WVGA (800x480)");
68bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
69bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        private final String name;
70bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        public final int width;
71bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        public final int height;
72bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
73bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        private Resolutions(int w, int h, String s) {
74bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            width = w;
75bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            height = h;
76bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            name = s;
77bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
78bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
79bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        // return quoted string as displayed test name
80bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        public String toString() {
81bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            return name;
82bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
83bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
847a3e3aa4948ff4b2c19a62f0b5003b902db0ce24Jason Sams    private Resolutions mRes;
85bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
86bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
87bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private AdapterView.OnItemSelectedListener mResSpinnerListener =
88bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            new AdapterView.OnItemSelectedListener() {
89bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
907a3e3aa4948ff4b2c19a62f0b5003b902db0ce24Jason Sams                    mRes = Resolutions.values()[pos];
91bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                }
92bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
93bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                public void onNothingSelected(AdapterView parent) {
94bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                }
95bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            };
96bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
97bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    void init() {
98bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mIOButton = (ToggleButton) findViewById(R.id.io_control);
99bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
100bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mResSpinner = (Spinner) findViewById(R.id.image_size);
101bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mResSpinner.setOnItemSelectedListener(mResSpinnerListener);
102bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mResSpinner.setAdapter(new ArrayAdapter<Resolutions>(
103bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            this, R.layout.spinner_layout, Resolutions.values()));
104bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
105bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        for (int i=0; i < IPTestListJB.TestName.values().length; i++) {
106bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            mTestList.add(IPTestListJB.TestName.values()[i].toString());
107bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
108bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
109bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mTestListView = (ListView) findViewById(R.id.test_list);
110bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mTestListAdapter = new ArrayAdapter(this,
111bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                android.R.layout.simple_list_item_activated_1,
112bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                mTestList);
113bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
114bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mTestListView.setAdapter(mTestListAdapter);
115bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mTestListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
116bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        mTestListAdapter.notifyDataSetChanged();
117bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
118bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        ToggleButton toggle;
119bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle = (ToggleButton) findViewById(R.id.io_control);
120bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
121bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
122bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                mToggleIO = isChecked;
123bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            }
124bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        });
125bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setChecked(mToggleIO);
126bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
127bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle = (ToggleButton) findViewById(R.id.length_control);
128bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
129bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
130bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                mToggleLong = isChecked;
131bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            }
132bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        });
133bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setChecked(mToggleLong);
134bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
135bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle = (ToggleButton) findViewById(R.id.background_work);
136bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
137bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
138bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                mToggleDVFS = isChecked;
139bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            }
140bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        });
141bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setChecked(mToggleDVFS);
142bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
143bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle = (ToggleButton) findViewById(R.id.pause);
144bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
145bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
146bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                mTogglePause = isChecked;
147bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            }
148bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        });
149bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        toggle.setChecked(mTogglePause);
150bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
151bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
152bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
153bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
154bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    @Override
155bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    protected void onCreate(Bundle savedInstanceState) {
156bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        super.onCreate(savedInstanceState);
157bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        setContentView(R.layout.controls);
158bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        init();
159bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
160bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
161bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    @Override
162bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    protected void onPause() {
163bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        super.onPause();
164bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
165bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        //cleanup();
166bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
167bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
168bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
169bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    @Override
170bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    protected void onResume() {
171bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        super.onResume();
172bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
173bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams       // init();
174bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
175bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
176bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    private void checkGroup(int group) {
177bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        IPTestListJB.TestName t[] = IPTestListJB.TestName.values();
178bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        for (int i=0; i < t.length; i++) {
179bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            mTestListView.setItemChecked(i, group == t[i].group);
180bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
181bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
182bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
183bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public void btnRun(View v) {
184bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        IPTestListJB.TestName t[] = IPTestListJB.TestName.values();
185bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
186bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        int count = 0;
187bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        for (int i = 0; i < t.length; i++) {
188bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            if (mTestListView.isItemChecked(i)) {
189bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                count++;
190bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            }
191bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
192bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        if (count == 0) {
193bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            return;
194bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
195bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
196bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        int testList[] = new int[count];
197bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        count = 0;
198bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        for (int i = 0; i < t.length; i++) {
199bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            if (mTestListView.isItemChecked(i)) {
200bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                testList[count++] = i;
201bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            }
202bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
203bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
204bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        Intent intent = new Intent(this, ImageProcessingActivityJB.class);
205bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        intent.putExtra("tests", testList);
206bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        intent.putExtra("enable io", mToggleIO);
207bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        intent.putExtra("enable dvfs", mToggleDVFS);
208bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        intent.putExtra("enable long", mToggleLong);
209bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        intent.putExtra("enable pause", mTogglePause);
2107a3e3aa4948ff4b2c19a62f0b5003b902db0ce24Jason Sams        intent.putExtra("resolution X", mRes.width);
2117a3e3aa4948ff4b2c19a62f0b5003b902db0ce24Jason Sams        intent.putExtra("resolution Y", mRes.height);
212bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        startActivityForResult(intent, 0);
213bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
214bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
215bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
216bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        if (requestCode == 0) {
217bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            if (resultCode == RESULT_OK) {
218bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                float r[] = data.getFloatArrayExtra("results");
219bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                int id[] = data.getIntArrayExtra("tests");
220bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
221bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                for (int ct=0; ct < id.length; ct++) {
222bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                    IPTestListJB.TestName t = IPTestListJB.TestName.values()[id[ct]];
223bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
224bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                    String s = IPTestListJB.TestName.values()[id[ct]].toString();
225bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                    s += "  " + r[ct] + "ms";
226bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                    mTestList.set(id[ct], s);
227bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                    mTestListAdapter.notifyDataSetChanged();
228bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                }
229bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
230bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams                android.util.Log.v("rs", "result " + r);
231bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            }
232bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
233bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
234bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
235bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public void btnSelAll(View v) {
236bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        IPTestListJB.TestName t[] = IPTestListJB.TestName.values();
237bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        for (int i=0; i < t.length; i++) {
238bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams            mTestListView.setItemChecked(i, true);
239bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        }
240bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
241bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
242bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public void btnSelNone(View v) {
243bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        checkGroup(-1);
244bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
245bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
246bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public void btnSelHp(View v) {
247bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        checkGroup(0);
248bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
249bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
250bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public void btnSelLp(View v) {
251bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        checkGroup(1);
252bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
253bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
254bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    public void btnSelIntrinsic(View v) {
255bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams        checkGroup(2);
256bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams    }
257bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
258bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
259bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams
260bde1a28e6652f25e4f74f018cb7d1dcba65a51e4Jason Sams}
261