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() {