The key for release to market has been expired. Needs new key and package name.
[0xbench:0xbench.git] / src / org / zeroxlab / benchmark / ActivitySettings.java
1 /*
2  * Copyright (C) 2011 0xlab - http://0xlab.org/
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * Authored by Julian Chu <walkingice@0xlab.org>
17  */
18
19 package org.zeroxlab.zeroxbenchmark;
20
21 import android.util.Log;
22
23 import android.app.Activity;
24 import android.app.AlertDialog;
25 import android.content.Context;
26 import android.content.DialogInterface;
27 import android.content.Intent;
28 import android.os.Bundle;
29 import android.os.Environment;
30 import android.os.Handler;
31 import android.os.Message;
32 import android.view.MotionEvent;
33 import android.view.View;
34 import android.view.ViewGroup;
35 import android.widget.Button;
36 import android.widget.CheckBox;
37 import android.widget.EditText;
38 import android.widget.LinearLayout;
39 import android.widget.RadioButton;
40 import android.widget.ScrollView;
41 import android.widget.TextView;
42
43 import org.zeroxlab.utils.BenchUtil;
44
45 public class ActivitySettings extends Activity implements View.OnClickListener {
46
47     public final static String TAG = "Benchmark";
48     private Context mContext;
49     private Button mEdit;
50     private TextView mPathView;
51     private String mPath;
52     private RadioListener mRadioListener;
53
54     @Override
55     protected void onCreate(Bundle savedInstanceState) {
56         super.onCreate(savedInstanceState);
57         mContext = this;
58         initViews();
59     }
60
61     @Override
62     protected void onPause() {
63         super.onPause();
64         finish();
65     }
66
67     @Override
68     protected void onDestroy() {
69         super.onDestroy();
70     }
71
72     public void onClick(View v) {
73         if (v == mEdit) {
74             alertInput();
75         }
76     }
77
78     private void initViews() {
79         setContentView(R.layout.settings);
80         mRadioListener = new RadioListener();
81         RadioButton radio_sdcard = (RadioButton) findViewById(R.id.radio_sdcard);
82         RadioButton radio_custom = (RadioButton) findViewById(R.id.radio_custom);
83         mPathView = (TextView) findViewById(R.id.path_selection);
84         mEdit = (Button) findViewById(R.id.edit_dir);
85
86         mEdit.setOnClickListener(this);
87
88         radio_sdcard.setOnClickListener(mRadioListener);
89         radio_custom.setOnClickListener(mRadioListener);
90
91         radio_sdcard.setText(BenchUtil.DEFAULT_RESULT_DIR);
92
93         /* Retrieve preference of path selection */
94         int selection = BenchUtil.getResultSelection(this);
95         if (selection == BenchUtil.RESULT_SELECTION_SDCARD) {
96             radio_sdcard.performClick();
97         } else if (selection == BenchUtil.RESULT_SELECTION_CUSTOM) {
98             radio_custom.performClick();
99         } else {
100             Log.e(TAG, "Choosen an unknown radio button in Settings Activity");
101         }
102
103     }
104
105     private void alertInput() {
106         final AlertDialog.Builder alert = new AlertDialog.Builder(this);
107         final EditText edit = new EditText(this);
108         edit.setText(BenchUtil.getCustomDir(this));
109         alert.setView(edit);
110         alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
111             public void onClick(DialogInterface dialog, int whichButton) {
112                 BenchUtil.setCustomDir(mContext, edit.getText().toString());
113                 updateHint();
114             }
115         });
116         alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
117             public void onClick(DialogInterface dialog, int whichButton) {
118                 dialog.cancel();
119             }
120         });
121         alert.show();
122     }
123
124     private void updateHint() {
125         final int selection = BenchUtil.getResultSelection(this);
126         if (selection == BenchUtil.RESULT_SELECTION_SDCARD) {
127             mPath = BenchUtil.DEFAULT_RESULT_DIR;
128         } else if (selection == BenchUtil.RESULT_SELECTION_CUSTOM) {
129             mPath = BenchUtil.getCustomDir(mContext);
130         } else {
131             Log.e(TAG, "I don't understand what did you choose!");
132         }
133
134         mPathView.setText(mPath);
135     }
136
137     private class RadioListener implements View.OnClickListener {
138         public void onClick(View v) {
139             if (v.getId() == R.id.radio_sdcard) {
140                 BenchUtil.setResultSelection(mContext, BenchUtil.RESULT_SELECTION_SDCARD);
141             } else if (v.getId() == R.id.radio_custom) {
142                 BenchUtil.setResultSelection(mContext, BenchUtil.RESULT_SELECTION_CUSTOM);
143             } else {
144                 Log.e(TAG, "I don't know what did you click!");
145                 return;
146             }
147
148             updateHint();
149         }
150     }
151 }