Skip to content
This repository was archived by the owner on Feb 25, 2022. It is now read-only.

Commit 970f07a

Browse files
author
Hisanobu Tomari
committed
Add JavaCounter(TM)
1 parent 1ba3399 commit 970f07a

File tree

5 files changed

+87
-5
lines changed

5 files changed

+87
-5
lines changed

res/values/strings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
<string name="dl_free_java">無料Javaのダウンロード</string>
1111
<string name="javayou_downloadtoday">あなたとJAVA,\n 今すぐダウンロー\nド</string>
1212

13+
<string name="pref_counters_title">カウンタ情報</string>
14+
<string name="pref_counter_press">ボタン押下回数</string>
15+
<string name="pref_counter_shake">振った回数</string>
16+
<string name="pref_counter_dj">スクラッチ回数</string>
17+
<string name="pref_counter_voice">音声認識回数</string>
1318
<string name="pref_shakeJava_title">振れ振れジャバジャバ</string>
1419
<string name="pref_djJava_title">DJジャバ</string>
1520
<string name="pref_shakeJava_min_title">第1ジャバ加速度</string>

res/xml/preferences.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
3+
<PreferenceCategory
4+
android:title="@string/pref_counters_title">
5+
<Preference
6+
android:title="@string/pref_counter_press"
7+
android:key="PressCounter" />
8+
<Preference
9+
android:title="@string/pref_counter_dj"
10+
android:key="DJJavaCounter" />
11+
<Preference
12+
android:title="@string/pref_counter_shake"
13+
android:key="ShakeCounter" />
14+
<Preference
15+
android:title="@string/pref_counter_voice"
16+
android:key="VoiceCounter" />
17+
</PreferenceCategory>
318
<PreferenceCategory
419
android:title="@string/pref_shakeJava_title"
520
android:key="pref_shakeJava_settings">

src/com/example/javabutton/JavaGestureListener.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public boolean onFling(MotionEvent evt0, MotionEvent evt1,
2929
float v2=Math.min(v_max, velocity);
3030
float pitch=(v2-v_min)/(v_max-v_min)*1.3f+0.7f;
3131
a.playJava(pitch);
32+
a.incrementDJCounter();
3233
//javaPool.play(javaSoundId, 1.0f, 1.0f, 1, 0, pitch);
3334
return true;
3435
}

src/com/example/javabutton/MainActivity.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class MainActivity extends Activity implements SensorEventListener, OnSha
4343
private boolean enableLucky=false;
4444
private java.util.Random random;
4545
private boolean enableShakeModulation=true;
46+
private long counterDJ, counterPress, counterShake, counterVoice;
4647

4748
@Override
4849
protected void onCreate(Bundle savedInstanceState) {
@@ -64,7 +65,6 @@ protected void onCreate(Bundle savedInstanceState) {
6465
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
6566
SharedPreferences shrPrefs=PreferenceManager.getDefaultSharedPreferences(this);
6667
shrPrefs.registerOnSharedPreferenceChangeListener(this);
67-
loadPreferences(shrPrefs);
6868
}
6969

7070
private void loadPreferences(SharedPreferences shrPrefs) {
@@ -96,20 +96,36 @@ private void loadPreferences(SharedPreferences shrPrefs) {
9696

9797
enableLucky=shrPrefs.getBoolean("pref_lucky_enable", false);
9898
enableShakeModulation=shrPrefs.getBoolean("pref_shakeJava_modulation_enable", true);
99+
100+
counterPress=shrPrefs.getLong(SettingsActivity.pref_counterPress, 0l);
101+
counterDJ=shrPrefs.getLong(SettingsActivity.pref_counterDJ, 0l);
102+
counterShake=shrPrefs.getLong(SettingsActivity.pref_counterShake, 0l);
103+
counterVoice=shrPrefs.getLong(SettingsActivity.pref_counterVoice, 0l);
99104
}
100105

101106
@Override
102107
protected void onResume() {
103108
super.onResume();
104109
sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_STATUS_ACCURACY_LOW);
110+
loadPreferences(PreferenceManager.getDefaultSharedPreferences(this));
105111
}
106112

107113
@Override
108114
protected void onPause() {
109-
super.onPause();
110115
sensorManager.unregisterListener(this);
111-
}
112-
116+
PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this);
117+
saveCounters();
118+
super.onPause();
119+
}
120+
private void saveCounters() {
121+
SharedPreferences.Editor e=PreferenceManager.getDefaultSharedPreferences(this).edit();
122+
e.putLong(SettingsActivity.pref_counterShake, counterShake);
123+
e.putLong(SettingsActivity.pref_counterDJ, counterDJ);
124+
e.putLong(SettingsActivity.pref_counterPress, counterPress);
125+
e.putLong(SettingsActivity.pref_counterVoice, counterVoice);
126+
e.commit();
127+
}
128+
113129
@Override
114130
protected void onDestroy() {
115131
super.onDestroy();
@@ -172,6 +188,7 @@ public boolean onMenuItemSelected(int featureId, MenuItem item) {
172188

173189
public void JavaButtonClick(View v) {
174190
playJava(1.f);
191+
counterPress++;
175192
}
176193

177194
@Override
@@ -192,6 +209,7 @@ public void onSensorChanged(SensorEvent event) {
192209
pitch=1.f;
193210
}
194211
playJava(pitch);
212+
counterShake++;
195213
}
196214
evenShake=!evenShake;
197215
}
@@ -229,6 +247,7 @@ public boolean onKeyDown(int keyCode, KeyEvent event) {
229247
keyCode==KeyEvent.KEYCODE_BUTTON_L2 ||
230248
keyCode==KeyEvent.KEYCODE_BUTTON_R1 ||
231249
keyCode==KeyEvent.KEYCODE_BUTTON_R2) {
250+
counterPress++;
232251
playJava(1.f);
233252
return true;
234253
} else {
@@ -256,6 +275,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
256275
try {
257276
String javaStr=matches.get(0).toLowerCase(java.util.Locale.US);
258277
if("java".equals(javaStr)) {
278+
counterVoice++;
259279
playJava(1.f);
260280
} else {
261281
Toast.makeText(this, javaStr, Toast.LENGTH_SHORT).show();
@@ -267,4 +287,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
267287
}
268288
super.onActivityResult(requestCode, resultCode, data);
269289
}
290+
public void incrementDJCounter() {
291+
counterDJ++;
292+
}
270293
}

src/com/example/javabutton/SettingsActivity.java

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
package com.example.javabutton;
22

3+
import java.text.NumberFormat;
4+
35
import android.annotation.TargetApi;
6+
import android.content.SharedPreferences;
7+
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
48
import android.os.Build;
59
import android.os.Bundle;
10+
import android.preference.Preference;
611
import android.preference.PreferenceActivity;
12+
import android.preference.PreferenceManager;
713
import android.view.MenuItem;
814

9-
public class SettingsActivity extends PreferenceActivity {
15+
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
16+
public static final String pref_counterDJ="DJJavaCounter",
17+
pref_counterPress="PressCounter",
18+
pref_counterShake="ShakeCounter",
19+
pref_counterVoice="VoiceCounter";
1020
@Override
1121
protected void onCreate(Bundle savedInstanceState) {
1222
super.onCreate(savedInstanceState);
@@ -29,4 +39,32 @@ public boolean onOptionsItemSelected(MenuItem item) {
2939
return super.onOptionsItemSelected(item);
3040
}
3141
}
42+
@Override
43+
public void onResume() {
44+
super.onResume();
45+
SharedPreferences shrP=PreferenceManager.getDefaultSharedPreferences(this);
46+
shrP.registerOnSharedPreferenceChangeListener(this);
47+
// Update summary fields
48+
final String[] prefFields={pref_counterDJ, pref_counterPress, pref_counterShake, pref_counterVoice};
49+
for(String p: prefFields) {
50+
onSharedPreferenceChanged(shrP,p);
51+
}
52+
}
53+
@Override
54+
public void onPause() {
55+
SharedPreferences shrP=PreferenceManager.getDefaultSharedPreferences(this);
56+
shrP.unregisterOnSharedPreferenceChangeListener(this);
57+
super.onPause();
58+
}
59+
@Override
60+
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
61+
String key) {
62+
if(pref_counterDJ.equals(key) || pref_counterPress.equals(key) ||
63+
pref_counterShake.equals(key) || pref_counterVoice.equals(key)) {
64+
NumberFormat nf=NumberFormat.getInstance();
65+
Preference p=findPreference(key);
66+
p.setSummary(nf.format(sharedPreferences.getLong(key,0l)));
67+
}
68+
}
69+
3270
}

0 commit comments

Comments
 (0)