12c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang/* 22c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * Copyright (C) 2015 The Android Open Source Project 32c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * 42c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * Licensed under the Apache License, Version 2.0 (the "License"); 52c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * you may not use this file except in compliance with the License. 62c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * You may obtain a copy of the License at 72c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * 82c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * http://www.apache.org/licenses/LICENSE-2.0 92c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * 102c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * Unless required by applicable law or agreed to in writing, software 112c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * distributed under the License is distributed on an "AS IS" BASIS, 122c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * See the License for the specific language governing permissions and 142c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * limitations under the License. 152c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang */ 162c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 172c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangpackage com.example.android.rs.blasbenchmark; 182c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 192c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.view.Menu; 202c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.view.MenuItem; 212c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.view.MenuInflater; 222c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.text.method.ScrollingMovementMethod; 232c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 242c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.app.Activity; 252c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.os.Bundle; 262c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.os.Handler; 272c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.graphics.Point; 282c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.widget.AdapterView; 292c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.widget.ArrayAdapter; 302c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.widget.ToggleButton; 312c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.widget.TextView; 322c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.widget.CompoundButton; 332c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.widget.ListView; 342c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.view.View; 352c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport java.util.ArrayList; 362c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport java.util.ListIterator; 372c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.util.Log; 382c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.content.Intent; 392c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 402c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.os.Environment; 412c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport java.io.BufferedWriter; 422c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport java.io.File; 432c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport java.io.FileWriter; 442c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport java.io.IOException; 452c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 462c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangpublic class BlasControls extends Activity { 472c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private final String TAG = "BLAS"; 482c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang public final String RESULT_FILE = "blas_benchmark_result.csv"; 492c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 502c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private ListView mTestListView; 512c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private TextView mResultView; 522c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 532c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private ArrayAdapter<String> mTestListAdapter; 542c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private ArrayList<String> mTestList = new ArrayList<String>(); 552c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 562c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private boolean mSettings[] = {false, false}; 572c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private static final int SETTING_LONG_RUN = 0; 582c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private static final int SETTING_PAUSE = 1; 592c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 602c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private float mResults[]; 612c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private String mInfo[]; 622c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 632c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang @Override 642c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang public boolean onCreateOptionsMenu(Menu menu) { 652c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang // Inflate the menu items for use in the action bar 662c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang MenuInflater inflater = getMenuInflater(); 672c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang inflater.inflate(R.menu.main_activity_actions, menu); 682c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 692c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang return super.onCreateOptionsMenu(menu); 702c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 712c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 722c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang void init() { 732c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 742c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang for (int i=0; i < BlasTestList.TestName.values().length; i++) { 752c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestList.add(BlasTestList.TestName.values()[i].toString()); 762c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 772c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 782c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListView = (ListView) findViewById(R.id.test_list); 792c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListAdapter = new ArrayAdapter(this, 802c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang android.R.layout.simple_list_item_activated_1, 812c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestList); 822c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 832c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListView.setAdapter(mTestListAdapter); 842c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 852c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListAdapter.notifyDataSetChanged(); 862c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 872c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mResultView = (TextView) findViewById(R.id.results); 882c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mResultView.setMovementMethod(new ScrollingMovementMethod()); 892c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 902c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 912c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang @Override 922c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang protected void onCreate(Bundle savedInstanceState) { 932c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang super.onCreate(savedInstanceState); 942c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang setContentView(R.layout.controls); 952c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang init(); 962c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 972c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 982c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang @Override 992c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang protected void onPause() { 1002c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang super.onPause(); 1012c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1022c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1032c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang @Override 1042c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang protected void onResume() { 1052c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang super.onResume(); 1062c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1072c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1082c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang Intent makeBasicLaunchIntent() { 1092c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang Intent intent = new Intent(this, BlasBenchmark.class); 1102c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang intent.putExtra("enable long", mSettings[SETTING_LONG_RUN]); 1112c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang intent.putExtra("enable pause", mSettings[SETTING_PAUSE]); 1122c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang return intent; 1132c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1142c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1152c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang public void btnRun(View v) { 1162c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang BlasTestList.TestName t[] = BlasTestList.TestName.values(); 1172c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang int count = 0; 1182c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang for (int i = 0; i < t.length; i++) { 1192c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang if (mTestListView.isItemChecked(i)) { 1202c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang count++; 1212c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1222c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1232c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang if (count == 0) { 1242c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang return; 1252c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1262c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1272c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang int testList[] = new int[count]; 1282c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang count = 0; 1292c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang for (int i = 0; i < t.length; i++) { 1302c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang if (mTestListView.isItemChecked(i)) { 1312c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang testList[count++] = i; 1322c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1332c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1342c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1352c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang Intent intent = makeBasicLaunchIntent(); 1362c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang intent.putExtra("tests", testList); 1372c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang startActivityForResult(intent, 0); 1382c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1392c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1402c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang private void writeResults() { 1412c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang // write result into a file 1422c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang File externalStorage = Environment.getExternalStorageDirectory(); 1432c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang if (!externalStorage.canWrite()) { 1442c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang Log.v(TAG, "sdcard is not writable"); 1452c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang return; 1462c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1472c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang File resultFile = new File(externalStorage, RESULT_FILE); 1482c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang resultFile.setWritable(true, false); 1492c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang try { 1502c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang BufferedWriter rsWriter = new BufferedWriter(new FileWriter(resultFile)); 1512c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang Log.v(TAG, "Saved results in: " + resultFile.getAbsolutePath()); 1522c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang java.text.DecimalFormat df = new java.text.DecimalFormat("######.####"); 1532c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1542c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang for (int ct=0; ct < BlasTestList.TestName.values().length; ct++) { 1552c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang String t = BlasTestList.TestName.values()[ct].toString(); 1562c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang final float r = mResults[ct]; 1572c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang String s = new String("" + t + ", " + df.format(r)); 1582c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang rsWriter.write(s + "\n"); 1592c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1602c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang rsWriter.close(); 1612c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } catch (IOException e) { 1622c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang Log.v(TAG, "Unable to write result file " + e.getMessage()); 1632c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1642c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1652c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1662c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang protected void onActivityResult(int requestCode, int resultCode, Intent data) { 1672c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang if (requestCode == 0) { 1682c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang if (resultCode == RESULT_OK) { 1692c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang java.text.DecimalFormat df = new java.text.DecimalFormat("######.####"); 1702c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mResults = new float[BlasTestList.TestName.values().length]; 1712c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mInfo = new String[BlasTestList.TestName.values().length]; 1722c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1732c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang float r[] = data.getFloatArrayExtra("results"); 1742c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang String inf[] = data.getStringArrayExtra("testinfo"); 1752c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang int id[] = data.getIntArrayExtra("tests"); 1762c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1772c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang String mOutResult = ""; 1782c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang for (int ct=0; ct < id.length; ct++) { 1792c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang String t = inf[ct]; 1802c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang String sl = BlasTestList.TestName.values()[id[ct]].toString() + ": " + df.format(r[ct]) + "ms"; 1812c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang String s = t + ": " + df.format(r[ct]) + "ms"; 1822c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestList.set(id[ct], sl); 1832c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListAdapter.notifyDataSetChanged(); 1842c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mOutResult += s + '\n'; 1852c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mResults[id[ct]] = r[ct]; 1862c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1872c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1882c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mResultView.setText(mOutResult); 1892c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang writeResults(); 1902c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1912c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1922c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1932c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 1942c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang public void btnSelAll(View v) { 1952c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang BlasTestList.TestName t[] = BlasTestList.TestName.values(); 1962c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang for (int i=0; i < t.length; i++) { 1972c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListView.setItemChecked(i, true); 1982c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 1992c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 2002c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 2012c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang public boolean onOptionsItemSelected(MenuItem item) { 2022c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang // Handle presses on the action bar items 2032c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang switch(item.getItemId()) { 2042c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang case R.id.action_settings: 2052c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang BlasSettings newFragment = new BlasSettings(mSettings); 2062c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang newFragment.show(getFragmentManager(), "settings"); 2072c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang return true; 2082c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang default: 2092c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang return super.onOptionsItemSelected(item); 2102c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 2112c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 2122c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 2132c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang public void btnSelNone(View v) { 2142c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang BlasTestList.TestName t[] = BlasTestList.TestName.values(); 2152c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang for (int i=0; i < t.length; i++) { 2162c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang mTestListView.setItemChecked(i, false); 2172c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 2182c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 2192c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang 2202c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang public void btnSettings(View v) { 2212c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang BlasSettings newFragment = new BlasSettings(mSettings); 2222c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang newFragment.show(getFragmentManager(), "settings"); 2232c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang } 2242c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang} 225