diff --git a/app/src/apkFlavor/AndroidManifest.xml b/app/src/apkFlavor/AndroidManifest.xml
index 728d967..3721c5d 100644
--- a/app/src/apkFlavor/AndroidManifest.xml
+++ b/app/src/apkFlavor/AndroidManifest.xml
@@ -145,7 +145,7 @@
-
+
= 180 && Math.abs(dpt) >= 180 && Math.abs(drt) >= 180)
{
- Miscellaneous.messageBox(getResources().getString(R.string.warning), getResources().getString(R.string.toleranceOf180OnlyAllowedIn2Fields), ActivityManageTriggerDevicePosition.this).show();
+ Miscellaneous.messageBox(getResources().getString(R.string.warning), getResources().getString(R.string.toleranceOf180OnlyAllowedIn2Fields), ActivityManageTriggerDeviceOrientation.this).show();
return false;
}
}
@@ -251,14 +251,14 @@ public class ActivityManageTriggerDevicePosition extends Activity
protected void onResume()
{
super.onResume();
- DevicePositionListener.getInstance().startSensorFromConfigActivity(ActivityManageTriggerDevicePosition.this, this);
+ DeviceOrientationListener.getInstance().startSensorFromConfigActivity(ActivityManageTriggerDeviceOrientation.this, this);
}
@Override
protected void onPause()
{
super.onPause();
- DevicePositionListener.getInstance().stopSensorFromConfigActivity();
+ DeviceOrientationListener.getInstance().stopSensorFromConfigActivity();
}
public class InputFilterMinMax implements InputFilter
diff --git a/app/src/main/java/com/jens/automation2/ReceiverCoordinator.java b/app/src/main/java/com/jens/automation2/ReceiverCoordinator.java
index ef2f2d5..b11b52e 100644
--- a/app/src/main/java/com/jens/automation2/ReceiverCoordinator.java
+++ b/app/src/main/java/com/jens/automation2/ReceiverCoordinator.java
@@ -10,7 +10,7 @@ import com.jens.automation2.receivers.AutomationListenerInterface;
import com.jens.automation2.receivers.BatteryReceiver;
import com.jens.automation2.receivers.BluetoothReceiver;
import com.jens.automation2.receivers.ConnectivityReceiver;
-import com.jens.automation2.receivers.DevicePositionListener;
+import com.jens.automation2.receivers.DeviceOrientationListener;
import com.jens.automation2.receivers.HeadphoneJackListener;
import com.jens.automation2.receivers.NoiseListener;
import com.jens.automation2.receivers.PhoneStatusListener;
@@ -47,7 +47,7 @@ public class ReceiverCoordinator
BatteryReceiver.class,
BluetoothReceiver.class,
ConnectivityReceiver.class,
- DevicePositionListener.class,
+ DeviceOrientationListener.class,
HeadphoneJackListener.class,
//NfcReceiver.class,
NoiseListener.class,
@@ -63,7 +63,7 @@ public class ReceiverCoordinator
BatteryReceiver.class,
BluetoothReceiver.class,
ConnectivityReceiver.class,
- DevicePositionListener.class,
+ DeviceOrientationListener.class,
HeadphoneJackListener.class,
//NfcReceiver.class,
NoiseListener.class,
@@ -167,8 +167,8 @@ public class ReceiverCoordinator
if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.process_started_stopped))
ProcessListener.startProcessListener(AutomationService.getInstance());
- if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.devicePosition))
- DevicePositionListener.getInstance().startListener(AutomationService.getInstance());
+ if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.deviceOrientation))
+ DeviceOrientationListener.getInstance().startListener(AutomationService.getInstance());
try
{
@@ -220,7 +220,7 @@ public class ReceiverCoordinator
BluetoothReceiver.stopBluetoothReceiver();
HeadphoneJackListener.getInstance().stopListener(AutomationService.getInstance());
- DevicePositionListener.getInstance().stopListener(AutomationService.getInstance());
+ DeviceOrientationListener.getInstance().stopListener(AutomationService.getInstance());
}
catch(Exception e)
{
@@ -355,21 +355,21 @@ public class ReceiverCoordinator
}
}
- if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.devicePosition))
+ if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.deviceOrientation))
{
- if(!DevicePositionListener.getInstance().isListenerRunning())
+ if(!DeviceOrientationListener.getInstance().isListenerRunning())
{
Miscellaneous.logEvent("i", "DevicePositionListener", "Starting DevicePositionListener because used in a new/changed rule.", 4);
// if(DevicePositionListener.getInstance().haveAllPermission())
- DevicePositionListener.getInstance().startListener(AutomationService.getInstance());
+ DeviceOrientationListener.getInstance().startListener(AutomationService.getInstance());
}
}
else
{
- if(DevicePositionListener.getInstance().isListenerRunning())
+ if(DeviceOrientationListener.getInstance().isListenerRunning())
{
Miscellaneous.logEvent("i", "DevicePositionListener", "Shutting down DevicePositionListener because not used in any rule.", 4);
- DevicePositionListener.getInstance().stopListener(AutomationService.getInstance());
+ DeviceOrientationListener.getInstance().stopListener(AutomationService.getInstance());
}
}
diff --git a/app/src/main/java/com/jens/automation2/Settings.java b/app/src/main/java/com/jens/automation2/Settings.java
index 21d7a7b..d1941d7 100644
--- a/app/src/main/java/com/jens/automation2/Settings.java
+++ b/app/src/main/java/com/jens/automation2/Settings.java
@@ -56,7 +56,7 @@ public class Settings implements SharedPreferences
public static boolean rememberLastActivePoi;
public static int locationRingBufferSize;
public static long timeBetweenProcessMonitorings;
- public static long acceptDevicePositionSignalEveryX_MilliSeconds;
+ public static long acceptDeviceOrientationSignalEveryX_MilliSeconds;
public static int activityDetectionFrequency;
public static int activityDetectionRequiredProbability;
public static boolean privacyLocationing;
@@ -238,7 +238,7 @@ public class Settings implements SharedPreferences
lengthOfNoiseLevelMeasurements = Long.parseLong(prefs.getString("lengthOfNoiseLevelMeasurements", String.valueOf(default_lengthOfNoiseLevelMeasurements)));
referenceValueForNoiseLevelMeasurements = Long.parseLong(prefs.getString("referenceValueForNoiseLevelMeasurements", String.valueOf(default_referenceValueForNoiseLevelMeasurements)));
timeBetweenProcessMonitorings = Long.parseLong(prefs.getString("timeBetweenProcessMonitorings", String.valueOf(default_timeBetweenProcessMonitorings)));
- acceptDevicePositionSignalEveryX_MilliSeconds = Long.parseLong(prefs.getString("acceptDevicePositionSignalEveryX_MilliSeconds", String.valueOf(default_acceptDevicePositionSignalEveryX_MilliSeconds)));
+ acceptDeviceOrientationSignalEveryX_MilliSeconds = Long.parseLong(prefs.getString("acceptDevicePositionSignalEveryX_MilliSeconds", String.valueOf(default_acceptDevicePositionSignalEveryX_MilliSeconds)));
httpAcceptAllCertificates = prefs.getBoolean("httpAcceptAllCertificates", default_httpAcceptAllCertificates);
httpAttempts = Integer.parseInt(prefs.getString("httpAttempts", String.valueOf(default_httpAttempts)));
@@ -532,7 +532,7 @@ public class Settings implements SharedPreferences
editor.putString("httpAttemptGap", String.valueOf(httpAttemptGap));
editor.putString("locationRingBufferSize", String.valueOf(locationRingBufferSize));
editor.putString("timeBetweenProcessMonitorings", String.valueOf(timeBetweenProcessMonitorings));
- editor.putString("acceptDevicePositionSignalEveryX_MilliSeconds", String.valueOf(acceptDevicePositionSignalEveryX_MilliSeconds));
+ editor.putString("acceptDevicePositionSignalEveryX_MilliSeconds", String.valueOf(acceptDeviceOrientationSignalEveryX_MilliSeconds));
editor.putString("activityDetectionFrequency", String.valueOf(activityDetectionFrequency));
editor.putString("activityDetectionRequiredProbability", String.valueOf(activityDetectionRequiredProbability));
editor.putBoolean("privacyLocationing", privacyLocationing);
diff --git a/app/src/main/java/com/jens/automation2/Trigger.java b/app/src/main/java/com/jens/automation2/Trigger.java
index 1d8d8a1..fcf9f1b 100644
--- a/app/src/main/java/com/jens/automation2/Trigger.java
+++ b/app/src/main/java/com/jens/automation2/Trigger.java
@@ -1,10 +1,7 @@
package com.jens.automation2;
-import static android.content.Context.DEVICE_POLICY_SERVICE;
-
import android.bluetooth.BluetoothDevice;
import android.content.Context;
-import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.service.notification.StatusBarNotification;
@@ -18,7 +15,7 @@ import com.jens.automation2.location.WifiBroadcastReceiver;
import com.jens.automation2.receivers.BatteryReceiver;
import com.jens.automation2.receivers.BluetoothReceiver;
import com.jens.automation2.receivers.ConnectivityReceiver;
-import com.jens.automation2.receivers.DevicePositionListener;
+import com.jens.automation2.receivers.DeviceOrientationListener;
import com.jens.automation2.receivers.HeadphoneJackListener;
import com.jens.automation2.receivers.NfcReceiver;
import com.jens.automation2.receivers.NoiseListener;
@@ -112,8 +109,8 @@ public class Trigger
if(!checkNotification())
result = false;
break;
- case devicePosition:
- if(!checkDevicePosition())
+ case deviceOrientation:
+ if(!checkDeviceOrientation())
result = false;
break;
case activityDetection:
@@ -276,18 +273,18 @@ public class Trigger
return true;
}
- boolean checkDevicePosition()
+ boolean checkDeviceOrientation()
{
- String devicePositionPieces[] = getTriggerParameter2().split(Trigger.triggerParameter2Split);
- float desiredAzimuth = Float.parseFloat(devicePositionPieces[0]);
- float desiredAzimuthTolerance = Float.parseFloat(devicePositionPieces[1]);
- float desiredPitch = Float.parseFloat(devicePositionPieces[2]);
- float desiredPitchTolerance = Float.parseFloat(devicePositionPieces[3]);
- float desiredRoll = Float.parseFloat(devicePositionPieces[4]);
- float desiredRollTolerance = Float.parseFloat(devicePositionPieces[5]);
- float currentAzimuth = DevicePositionListener.getInstance().getAzimuth();
- float currentPitch = DevicePositionListener.getInstance().getPitch();
- float currentRoll = DevicePositionListener.getInstance().getRoll();
+ String deviceOrientationPieces[] = getTriggerParameter2().split(Trigger.triggerParameter2Split);
+ float desiredAzimuth = Float.parseFloat(deviceOrientationPieces[0]);
+ float desiredAzimuthTolerance = Float.parseFloat(deviceOrientationPieces[1]);
+ float desiredPitch = Float.parseFloat(deviceOrientationPieces[2]);
+ float desiredPitchTolerance = Float.parseFloat(deviceOrientationPieces[3]);
+ float desiredRoll = Float.parseFloat(deviceOrientationPieces[4]);
+ float desiredRollTolerance = Float.parseFloat(deviceOrientationPieces[5]);
+ float currentAzimuth = DeviceOrientationListener.getInstance().getAzimuth();
+ float currentPitch = DeviceOrientationListener.getInstance().getPitch();
+ float currentRoll = DeviceOrientationListener.getInstance().getRoll();
if(
desiredAzimuthTolerance < 180
@@ -299,7 +296,7 @@ public class Trigger
)
)
{
- Miscellaneous.logEvent("i", "DevicePosition", "Trigger doesn\'t apply. Azimuth outside of tolerance area.", 5);
+ Miscellaneous.logEvent("i", "DeviceOrientation", "Trigger doesn\'t apply. Azimuth outside of tolerance area.", 5);
if(getTriggerParameter())
return false;
else
@@ -316,7 +313,7 @@ public class Trigger
)
)
{
- Miscellaneous.logEvent("i", "DevicePosition", "Trigger doesn\'t apply. Pitch outside of tolerance area.", 5);
+ Miscellaneous.logEvent("i", "DeviceOrientation", "Trigger doesn\'t apply. Pitch outside of tolerance area.", 5);
if(getTriggerParameter())
return false;
else
@@ -333,7 +330,7 @@ public class Trigger
)
)
{
- Miscellaneous.logEvent("i", "DevicePosition", "Trigger doesn\'t apply. Roll outside of tolerance area.", 5);
+ Miscellaneous.logEvent("i", "DeviceOrientation", "Trigger doesn\'t apply. Roll outside of tolerance area.", 5);
if(getTriggerParameter())
return false;
else
@@ -982,7 +979,7 @@ public class Trigger
*/
public enum Trigger_Enum {
- pointOfInterest, timeFrame, charging, batteryLevel, usb_host_connection, speed, noiseLevel, wifiConnection, process_started_stopped, airplaneMode, roaming, nfcTag, activityDetection, bluetoothConnection, headsetPlugged, notification, devicePosition, phoneCall; //phoneCall always needs to be at the very end because of Google's shitty so called privacy
+ pointOfInterest, timeFrame, charging, batteryLevel, usb_host_connection, speed, noiseLevel, wifiConnection, process_started_stopped, airplaneMode, roaming, nfcTag, activityDetection, bluetoothConnection, headsetPlugged, notification, deviceOrientation, phoneCall; //phoneCall always needs to be at the very end because of Google's shitty so called privacy
public String getFullName(Context context)
{
@@ -1022,8 +1019,8 @@ public class Trigger
return context.getResources().getString(R.string.triggerHeadsetPlugged);
case notification:
return context.getResources().getString(R.string.notification);
- case devicePosition:
- return context.getResources().getString(R.string.devicePosition);
+ case deviceOrientation:
+ return context.getResources().getString(R.string.deviceOrientation);
default:
return "Unknown";
}
@@ -1493,8 +1490,8 @@ public class Trigger
setTriggerParameter2("-1" + triggerParameter2Split + directionEquals + triggerParameter2Split + triggerParameter2Split + directionEquals + triggerParameter2Split + triggerParameter2Split);
}
break;
- case devicePosition:
- returnString.append(Miscellaneous.getAnyContext().getString(R.string.deviceIsInCertainPosition));
+ case deviceOrientation:
+ returnString.append(Miscellaneous.getAnyContext().getString(R.string.deviceIsInCertainOrientation));
break;
default:
returnString.append("error");
diff --git a/app/src/main/java/com/jens/automation2/XmlFileInterface.java b/app/src/main/java/com/jens/automation2/XmlFileInterface.java
index cf33719..fb11428 100644
--- a/app/src/main/java/com/jens/automation2/XmlFileInterface.java
+++ b/app/src/main/java/com/jens/automation2/XmlFileInterface.java
@@ -891,6 +891,8 @@ public class XmlFileInterface
if(triggerEventString.equals("process_started_stopped") | triggerEventString.equals("process_running"))
newTrigger.setTriggerType(Trigger_Enum.process_started_stopped);
+ if(triggerEventString.equals("devicePosition"))
+ newTrigger.setTriggerType(Trigger_Enum.deviceOrientation);
else
newTrigger.setTriggerType(Trigger_Enum.valueOf(triggerEventString));
}
@@ -939,7 +941,6 @@ public class XmlFileInterface
}
else if(newTrigger.getTriggerType() == Trigger_Enum.wifiConnection)
{
-// newTrigger.setWifiName(triggerParameter2);
newTrigger.setTriggerParameter2(triggerParameter2);
}
else if(newTrigger.getTriggerType() == Trigger_Enum.process_started_stopped)
diff --git a/app/src/main/java/com/jens/automation2/receivers/DevicePositionListener.java b/app/src/main/java/com/jens/automation2/receivers/DeviceOrientationListener.java
similarity index 86%
rename from app/src/main/java/com/jens/automation2/receivers/DevicePositionListener.java
rename to app/src/main/java/com/jens/automation2/receivers/DeviceOrientationListener.java
index 316b2a3..435491b 100644
--- a/app/src/main/java/com/jens/automation2/receivers/DevicePositionListener.java
+++ b/app/src/main/java/com/jens/automation2/receivers/DeviceOrientationListener.java
@@ -7,9 +7,8 @@ import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
-import android.widget.TextView;
-import com.jens.automation2.ActivityManageTriggerDevicePosition;
+import com.jens.automation2.ActivityManageTriggerDeviceOrientation;
import com.jens.automation2.AutomationService;
import com.jens.automation2.Miscellaneous;
import com.jens.automation2.Rule;
@@ -19,15 +18,15 @@ import com.jens.automation2.Trigger;
import java.util.ArrayList;
import java.util.Calendar;
-public class DevicePositionListener implements SensorEventListener, AutomationListenerInterface
+public class DeviceOrientationListener implements SensorEventListener, AutomationListenerInterface
{
// https://developer.android.com/guide/topics/sensors/sensors_position#java
- ActivityManageTriggerDevicePosition activityManageTriggerDevicePositionInstance = null;
+ ActivityManageTriggerDeviceOrientation activityManageTriggerDeviceOrientationInstance = null;
//the Sensor Manager
private SensorManager sManager;
- static DevicePositionListener instance = null;
+ static DeviceOrientationListener instance = null;
boolean isRunning = false;
Calendar now = null;
@@ -51,10 +50,10 @@ public class DevicePositionListener implements SensorEventListener, AutomationLi
boolean toggable = false;
- public static DevicePositionListener getInstance()
+ public static DeviceOrientationListener getInstance()
{
if (instance == null)
- instance = new DevicePositionListener();
+ instance = new DeviceOrientationListener();
return instance;
}
@@ -74,9 +73,9 @@ public class DevicePositionListener implements SensorEventListener, AutomationLi
return roll;
}
- public void startSensorFromConfigActivity(Context context, ActivityManageTriggerDevicePosition activityManageTriggerDevicePositionInstance)
+ public void startSensorFromConfigActivity(Context context, ActivityManageTriggerDeviceOrientation activityManageTriggerDeviceOrientationInstance)
{
- this.activityManageTriggerDevicePositionInstance = activityManageTriggerDevicePositionInstance;
+ this.activityManageTriggerDeviceOrientationInstance = activityManageTriggerDeviceOrientationInstance;
if(!isRunning)
{
@@ -97,11 +96,11 @@ public class DevicePositionListener implements SensorEventListener, AutomationLi
public void stopSensorFromConfigActivity()
{
- activityManageTriggerDevicePositionInstance = null;
+ activityManageTriggerDeviceOrientationInstance = null;
if(isRunning)
{
- if(!Rule.isAnyRuleUsing(Trigger.Trigger_Enum.devicePosition))
+ if(!Rule.isAnyRuleUsing(Trigger.Trigger_Enum.deviceOrientation))
{
//unregister the sensor listener
sManager.unregisterListener(this);
@@ -146,16 +145,19 @@ public class DevicePositionListener implements SensorEventListener, AutomationLi
}
//else it will output the Roll, Pitch and Yawn values
- if(activityManageTriggerDevicePositionInstance != null)
- activityManageTriggerDevicePositionInstance.updateFields(azimuth, pitch, roll);
+ if(activityManageTriggerDeviceOrientationInstance != null)
+ activityManageTriggerDeviceOrientationInstance.updateFields(azimuth, pitch, roll);
now = Calendar.getInstance();
- if(lastTimeSignalArrived == null || now.getTimeInMillis() >= lastTimeSignalArrived.getTimeInMillis() + Settings.acceptDevicePositionSignalEveryX_MilliSeconds)
+ if(lastTimeSignalArrived == null || now.getTimeInMillis() >= lastTimeSignalArrived.getTimeInMillis() + Settings.acceptDeviceOrientationSignalEveryX_MilliSeconds)
{
lastTimeSignalArrived = now;
+
+ Miscellaneous.logEvent("i", "DeviceOrientation", "Got device orientation update: azimuth: " + String.valueOf(azimuth) + ", pitch: " + String.valueOf(pitch) + ", roll: " + String.valueOf(pitch), 4);
+
if (AutomationService.isMyServiceRunning(Miscellaneous.getAnyContext()))
{
- ArrayList ruleCandidates = Rule.findRuleCandidates(Trigger.Trigger_Enum.devicePosition);
+ ArrayList ruleCandidates = Rule.findRuleCandidates(Trigger.Trigger_Enum.deviceOrientation);
for (int i = 0; i < ruleCandidates.size(); i++)
{
if (ruleCandidates.get(i).getsGreenLight(Miscellaneous.getAnyContext()))
@@ -188,7 +190,7 @@ public class DevicePositionListener implements SensorEventListener, AutomationLi
@Override
public void stopListener(AutomationService automationService)
{
- this.activityManageTriggerDevicePositionInstance = null;
+ this.activityManageTriggerDeviceOrientationInstance = null;
if(isRunning)
{
@@ -207,7 +209,7 @@ public class DevicePositionListener implements SensorEventListener, AutomationLi
@Override
public Trigger.Trigger_Enum[] getMonitoredTrigger()
{
- return new Trigger.Trigger_Enum[] { Trigger.Trigger_Enum.devicePosition };
+ return new Trigger.Trigger_Enum[] { Trigger.Trigger_Enum.deviceOrientation};
}
/*
diff --git a/app/src/main/res/layout/activity_manage_trigger_device_position.xml b/app/src/main/res/layout/activity_manage_trigger_device_orientation.xml
similarity index 97%
rename from app/src/main/res/layout/activity_manage_trigger_device_position.xml
rename to app/src/main/res/layout/activity_manage_trigger_device_orientation.xml
index f9bb97f..b56d979 100644
--- a/app/src/main/res/layout/activity_manage_trigger_device_position.xml
+++ b/app/src/main/res/layout/activity_manage_trigger_device_orientation.xml
@@ -13,7 +13,7 @@
@@ -234,7 +234,7 @@
+ android:text="@string/explanationDeviceOrientationDirection" />