diff --git a/res/layout/card_generator_sensors_accelerometer.xml b/res/layout/card_generator_sensors_accelerometer.xml
index 3f80ec3..d7766b4 100755
--- a/res/layout/card_generator_sensors_accelerometer.xml
+++ b/res/layout/card_generator_sensors_accelerometer.xml
@@ -45,14 +45,17 @@
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:padding="0dp">
+ android:padding="0dp"
+ android:background="@android:color/black">
+ android:layout_marginBottom="0dp"
+ android:background="@android:color/black" />
-
+ android:padding="0dp"
+ android:background="@android:color/black">
+ android:layout_marginBottom="0dp"
+ android:background="@android:color/black" />
- #3F51B5
#303F9F
#FF4081
+
+ #E0E0E0
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3c77eb0..0c44cc9 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -29,5 +29,7 @@
Data Collection Description
Tap here to learn how this app uses your data.
+
+ Waiting for chart data…
diff --git a/src/com/audacious_software/passive_data_kit/PassiveDataKit.java b/src/com/audacious_software/passive_data_kit/PassiveDataKit.java
index 285f97e..6bff27b 100755
--- a/src/com/audacious_software/passive_data_kit/PassiveDataKit.java
+++ b/src/com/audacious_software/passive_data_kit/PassiveDataKit.java
@@ -16,12 +16,13 @@ public class PassiveDataKit {
private boolean mStarted = false;
public void start() {
- if (!this.mStarted)
- {
- Generators.getInstance(this.mContext).start();
- Logger.getInstance(this.mContext);
+ synchronized (this) {
+ if (!this.mStarted) {
+ this.mStarted = true;
- this.mStarted = true;
+ Generators.getInstance(this.mContext).start();
+ Logger.getInstance(this.mContext);
+ }
}
}
diff --git a/src/com/audacious_software/passive_data_kit/generators/Generators.java b/src/com/audacious_software/passive_data_kit/generators/Generators.java
index 059b44d..fa68cd9 100755
--- a/src/com/audacious_software/passive_data_kit/generators/Generators.java
+++ b/src/com/audacious_software/passive_data_kit/generators/Generators.java
@@ -35,49 +35,46 @@ public class Generators {
private HashMap mWakeLocks = new HashMap<>();
public void start() {
- if (!this.mStarted)
- {
- this.mGenerators.clear();
+ synchronized (this) {
+ if (!this.mStarted) {
+ this.mStarted = true;
- this.mGenerators.add(AppEvent.class.getCanonicalName());
+ this.mGenerators.clear();
- for (String className : this.mContext.getResources().getStringArray(R.array.pdk_available_generators))
- {
- this.mGenerators.add(className);
- }
-
- for (String className : this.mContext.getResources().getStringArray(R.array.pdk_app_generators))
- {
- this.mGenerators.add(className);
- }
-
- for (String className : this.mGenerators)
- {
- try {
- Class probeClass = (Class) Class.forName(className);
+ this.mGenerators.add(AppEvent.class.getCanonicalName());
- Method isEnabled = probeClass.getDeclaredMethod("isEnabled", Context.class);
+ for (String className : this.mContext.getResources().getStringArray(R.array.pdk_available_generators)) {
+ this.mGenerators.add(className);
+ }
- Boolean enabled = (Boolean) isEnabled.invoke(null, this.mContext);
+ for (String className : this.mContext.getResources().getStringArray(R.array.pdk_app_generators)) {
+ this.mGenerators.add(className);
+ }
- if (enabled) {
- this.startGenerator(className);
+ for (String className : this.mGenerators) {
+ try {
+ Class probeClass = (Class) Class.forName(className);
+
+ Method isEnabled = probeClass.getDeclaredMethod("isEnabled", Context.class);
+
+ Boolean enabled = (Boolean) isEnabled.invoke(null, this.mContext);
+
+ if (enabled) {
+ this.startGenerator(className);
+ } else {
+ this.stopGenerator(className);
+ }
+ } catch (ClassNotFoundException e) {
+ Logger.getInstance(this.mContext).logThrowable(e);
+ } catch (NoSuchMethodException e) {
+ Logger.getInstance(this.mContext).logThrowable(e);
+ } catch (InvocationTargetException e) {
+ Logger.getInstance(this.mContext).logThrowable(e);
+ } catch (IllegalAccessException e) {
+ Logger.getInstance(this.mContext).logThrowable(e);
}
- else {
- this.stopGenerator(className);
- }
- } catch (ClassNotFoundException e) {
- Logger.getInstance(this.mContext).logThrowable(e);
- } catch (NoSuchMethodException e) {
- Logger.getInstance(this.mContext).logThrowable(e);
- } catch (InvocationTargetException e) {
- Logger.getInstance(this.mContext).logThrowable(e);
- } catch (IllegalAccessException e) {
- Logger.getInstance(this.mContext).logThrowable(e);
}
}
-
- this.mStarted = true;
}
}
diff --git a/src/com/audacious_software/passive_data_kit/generators/device/Battery.java b/src/com/audacious_software/passive_data_kit/generators/device/Battery.java
index 56f7a1f..62a853f 100755
--- a/src/com/audacious_software/passive_data_kit/generators/device/Battery.java
+++ b/src/com/audacious_software/passive_data_kit/generators/device/Battery.java
@@ -114,10 +114,6 @@ public static void start(final Context context) {
private void startGenerator() {
final Battery me = this;
- final long now = System.currentTimeMillis();
-
- me.mLastTimestamp = now;
-
this.mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(final Context context, Intent intent) {
@@ -127,6 +123,10 @@ public void onReceive(final Context context, Intent intent) {
return;
}
+ long now = System.currentTimeMillis();
+
+ me.mLastTimestamp = now;
+
ContentValues values = new ContentValues();
values.put(Battery.HISTORY_OBSERVED, now);
diff --git a/src/com/audacious_software/passive_data_kit/generators/sensors/Accelerometer.java b/src/com/audacious_software/passive_data_kit/generators/sensors/Accelerometer.java
index 7f4f8a2..1930409 100755
--- a/src/com/audacious_software/passive_data_kit/generators/sensors/Accelerometer.java
+++ b/src/com/audacious_software/passive_data_kit/generators/sensors/Accelerometer.java
@@ -368,6 +368,10 @@ public static void bindViewHolder(final DataPointViewHolder holder) {
dateLabel.setText(Generator.formatTimestamp(context, Accelerometer.latestPointGenerated(generator.mContext) / 1000));
+ LineChart chart = (LineChart) holder.itemView.findViewById(R.id.accelerometer_chart);
+ chart.setNoDataText(context.getString(R.string.pdk_generator_chart_loading_data));
+ chart.setNoDataTextColor(0xFFE0E0E0);
+
Runnable r = new Runnable() {
@Override
public void run() {
@@ -593,6 +597,7 @@ public String getFormattedValue(float value, AxisBase axis) {
chart.getDescription().setEnabled(false);
chart.setVisibleYRange((float) Math.floor(finalMinValue) - 1, (float) Math.ceil(finalMaxValue) + 1, YAxis.AxisDependency.LEFT);
+ chart.setNoDataText(context.getString(R.string.pdk_generator_chart_loading_data));
chart.setData(chartData);
}
diff --git a/src/com/audacious_software/passive_data_kit/generators/sensors/AmbientLight.java b/src/com/audacious_software/passive_data_kit/generators/sensors/AmbientLight.java
index 5018de4..c603b9d 100755
--- a/src/com/audacious_software/passive_data_kit/generators/sensors/AmbientLight.java
+++ b/src/com/audacious_software/passive_data_kit/generators/sensors/AmbientLight.java
@@ -19,7 +19,6 @@
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.v4.content.ContextCompat;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -46,10 +45,6 @@
import java.util.Date;
import java.util.List;
-/**
- * Created by cjkarr on 4/17/2017.
- */
-
public class AmbientLight extends SensorGenerator implements SensorEventListener {
private static final String GENERATOR_IDENTIFIER = "pdk-sensor-light";
@@ -286,6 +281,10 @@ public static void bindViewHolder(final DataPointViewHolder holder) {
dateLabel.setText(Generator.formatTimestamp(context, AmbientLight.latestPointGenerated(context) / 1000));
+ LineChart chart = (LineChart) holder.itemView.findViewById(R.id.light_chart);
+ chart.setNoDataText(context.getString(R.string.pdk_generator_chart_loading_data));
+ chart.setNoDataTextColor(0xFFE0E0E0);
+
Runnable r = new Runnable() {
@Override
public void run() {