Skip to content

Commit 248c366

Browse files
committed
BTB: fixed failactivity issues with refactored highscores, add debuggable to manifest
1 parent 441b455 commit 248c366

File tree

3 files changed

+49
-3
lines changed

3 files changed

+49
-3
lines changed

AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
package="net.nycjava.skylight1" android:versionCode="9"
44
android:versionName="1.52">
55
<application android:icon="@drawable/icon"
6-
android:label="@string/app_name">
6+
android:label="@string/app_name" android:debuggable="true">
77

88
<activity android:name=".WelcomeActivity" android:theme="@android:style/Theme.NoTitleBar" android:launchMode="singleInstance" android:screenOrientation="portrait" android:clearTaskOnLaunch="true" android:finishOnTaskLaunch="true" android:allowTaskReparenting="true">
99
<intent-filter>

src/net/nycjava/skylight1/FailActivity.java

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package net.nycjava.skylight1;
22

3+
import java.util.Locale;
4+
import java.util.concurrent.Executors;
5+
36
import net.nycjava.skylight1.dependencyinjection.Dependency;
47
import net.nycjava.skylight1.dependencyinjection.DependencyInjectingObjectFactory;
58
import skylight1.util.Assets;
69
import skylight1.util.HighScoreService;
10+
import skylight1.util.PhoneIdHasher;
711
import android.content.Intent;
812
import android.media.MediaPlayer;
913
import android.os.Bundle;
@@ -75,7 +79,49 @@ public void onCreate(final Bundle savedInstanceState) {
7579
}
7680

7781
final int failedLevel = getIntent().getIntExtra(DIFFICULTY_LEVEL, 0);
78-
new HighScoreService().recordScore(failedLevel, this);
82+
new HighScoreService().recordScore(failedLevel, false, this);
83+
84+
//TODO: review
85+
Executors.defaultThreadFactory().newThread(new Runnable() {
86+
@Override
87+
public void run() {
88+
final String hashedPhoneId = new PhoneIdHasher().getHashedPhoneId(FailActivity.this);
89+
final int azimuthVariance = calculateAzimuth();
90+
if(tracker!=null) {
91+
tracker.trackEvent("fail", "hashedPhoneId", hashedPhoneId, 0); //TODO: review
92+
tracker.trackEvent("fail", "locale", Locale.getDefault().toString(), 0); //TODO: review
93+
tracker.trackEvent("fail", "azimuthVariance", Integer.toString(azimuthVariance),azimuthVariance);
94+
}
95+
}
96+
private int calculateAzimuth() {
97+
final float compassReadings[] = getIntent().getFloatArrayExtra(COMPASS_READINGS);
98+
99+
// need at least two readings to get a variance
100+
if (compassReadings.length < 2) {
101+
Log.i(TAG, "returning az = 0");
102+
return 0;
103+
}
104+
105+
// using two-pass algorithm from http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
106+
float mean = 0f;
107+
for (float compassReading : compassReadings) {
108+
mean += compassReading;
109+
}
110+
mean = mean / (float) compassReadings.length;
111+
float sumOfSquares = 0f;
112+
for (float compassReading : compassReadings) {
113+
final float distance = compassReading - mean;
114+
sumOfSquares += distance * distance;
115+
}
116+
final double variance = sumOfSquares / (float) (compassReadings.length - 1);
117+
118+
final int standardDeviation = (int) Math.sqrt(variance);
119+
120+
Log.i(TAG, String.format("az sd is %d", standardDeviation));
121+
return standardDeviation;
122+
}
123+
}).start();
124+
79125
}
80126

81127
@Override

src/net/nycjava/skylight1/SuccessActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public void onCreate(final Bundle savedInstanceState) {
7676

7777
final int bestLevelCompleted = getIntent().getIntExtra(DIFFICULTY_LEVEL, 0);
7878

79-
new HighScoreService().recordScore(bestLevelCompleted, this);
79+
new HighScoreService().recordScore(bestLevelCompleted, true, this);
8080
}
8181

8282
@Override

0 commit comments

Comments
 (0)