diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index 9f3e9f1..0000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/apkFlavor/java/com/jens/automation2/Rule.java b/app/src/apkFlavor/java/com/jens/automation2/Rule.java
index 8253480..23ed06f 100644
--- a/app/src/apkFlavor/java/com/jens/automation2/Rule.java
+++ b/app/src/apkFlavor/java/com/jens/automation2/Rule.java
@@ -348,7 +348,7 @@ public class Rule implements Comparable
public boolean getsGreenLight(Context context)
{
- return isRuleActive() && applies(context) && (hasNotAppliedSinceLastExecution() || isActuallyToggable());
+ return applies(context) && hasNotAppliedSinceLastExecution();
}
public boolean applies(Context context)
diff --git a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java
index 8ef83de..bb8229f 100644
--- a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java
+++ b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java
@@ -341,6 +341,11 @@ public class Rule implements Comparable
return false;
}
+
+ public boolean getsGreenLight(Context context)
+ {
+ return isRuleActive() && applies(context) && hasNotAppliedSinceLastExecution();
+ }
public boolean applies(Context context)
{
diff --git a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java
index 63d07eb..53a5311 100644
--- a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java
+++ b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java
@@ -345,6 +345,11 @@ public class Rule implements Comparable
return false;
}
+
+ public boolean getsGreenLight(Context context)
+ {
+ return isRuleActive() && applies(context) && hasNotAppliedSinceLastExecution();
+ }
public boolean applies(Context context)
{
diff --git a/app/src/main/java/com/jens/automation2/Actions.java b/app/src/main/java/com/jens/automation2/Actions.java
index 2437d70..14373fa 100644
--- a/app/src/main/java/com/jens/automation2/Actions.java
+++ b/app/src/main/java/com/jens/automation2/Actions.java
@@ -1094,23 +1094,48 @@ public class Actions
@Override
public void run()
{
- PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
- WakeLock wakeLock = pm.newWakeLock((WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "Automation:Wakelock");
- wakeLock.acquire();
-
try
{
- Thread.sleep(awakeTime);
+ PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+ WakeLock wakeLock = pm.newWakeLock((WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "Automation:Wakelock");
+ wakeLock.acquire();
+
+ try
+ {
+ Thread.sleep(awakeTime);
+ }
+ catch (InterruptedException e)
+ {
+ Miscellaneous.logEvent("w", context.getResources().getString(R.string.wakeupDevice), "Error keeping device awake: " + Log.getStackTraceString(e), 4);
+ }
+
+ wakeLock.release();
}
- catch (InterruptedException e)
+ catch(Exception e)
{
- Miscellaneous.logEvent("w", context.getResources().getString(R.string.wakeupDevice), "Error keeping device awake: " + Log.getStackTraceString(e), 4);
+ Miscellaneous.logEvent("e", "Wakeup device action", "Error while waking up device: " + Log.getStackTraceString(e), 1);
}
-
- wakeLock.release();
}
}
+ public void turnOnScreen()
+ {
+ // turn on screen
+ Log.v("ProximityActivity", "ON!");
+ PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+ WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
+ wakeLock.acquire();
+ }
+
+ @TargetApi(21) //Suppress lint error for PROXIMITY_SCREEN_OFF_WAKE_LOCK
+ public void turnOffScreen(){
+ // turn off screen
+ Log.v("ProximityActivity", "OFF!");
+ PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+ WakeLock wakeLock = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag");
+ wakeLock.acquire();
+ }
+
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
@SuppressLint("NewApi")
public static boolean setAirplaneMode(boolean desiredState, boolean toggleActionIfPossible)
diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java
index 30c0b94..d1e9190 100644
--- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java
+++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java
@@ -1375,8 +1375,7 @@ public class ActivityManageRule extends Activity
{
Trigger editedTrigger = new Trigger();
editedTrigger.setTriggerType(Trigger_Enum.devicePosition);
-// newTrigger.setTriggerParameter(data.getBooleanExtra("wifiState", false));
- newTrigger.setTriggerParameter2(data.getStringExtra(ActivityManageTriggerDevicePosition.vectorFieldName));
+ editedTrigger.setTriggerParameter2(data.getStringExtra(ActivityManageTriggerDevicePosition.vectorFieldName));
ruleToEdit.getTriggerSet().set(editIndex, editedTrigger);
this.refreshTriggerList();
}
diff --git a/app/src/main/java/com/jens/automation2/ActivityManageTriggerDevicePosition.java b/app/src/main/java/com/jens/automation2/ActivityManageTriggerDevicePosition.java
index b0a6b62..13b1c34 100644
--- a/app/src/main/java/com/jens/automation2/ActivityManageTriggerDevicePosition.java
+++ b/app/src/main/java/com/jens/automation2/ActivityManageTriggerDevicePosition.java
@@ -6,6 +6,7 @@ import android.graphics.Color;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
+import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
@@ -112,13 +113,21 @@ public class ActivityManageTriggerDevicePosition extends Activity
if(getIntent().hasExtra(vectorFieldName))
{
editMode = true;
- String values[] = getIntent().getStringExtra(vectorFieldName).split(Trigger.triggerParameter2Split);
- etDesiredAzimuth.setText(values[0]);
- etDesiredAzimuthTolerance.setText(values[1]);
- etDesiredPitch.setText(values[2]);
- etDesiredPitchTolerance.setText(values[3]);
- etDesiredRoll.setText(values[4]);
- etDesiredRollTolerance.setText(values[5]);
+ try
+ {
+ String values[] = getIntent().getStringExtra(vectorFieldName).split(Trigger.triggerParameter2Split);
+ etDesiredAzimuth.setText(values[0]);
+ etDesiredAzimuthTolerance.setText(values[1]);
+ etDesiredPitch.setText(values[2]);
+ etDesiredPitchTolerance.setText(values[3]);
+ etDesiredRoll.setText(values[4]);
+ etDesiredRollTolerance.setText(values[5]);
+ }
+ catch(Exception e)
+ {
+ Toast.makeText(ActivityManageTriggerDevicePosition.this, getResources().getString(R.string.triggerWrong), Toast.LENGTH_SHORT).show();
+ Miscellaneous.logEvent("e", "DevicePositionTrigger", "There\'s something wrong with a device position trigger. Content: " + getIntent().getStringExtra(vectorFieldName) + ", " + Log.getStackTraceString(e), 1);
+ }
}
bApplyPositionValues.setOnClickListener(new View.OnClickListener()
@@ -206,6 +215,8 @@ public class ActivityManageTriggerDevicePosition extends Activity
return false;
}
}
+
+ return true;
}
return false;
diff --git a/app/src/main/java/com/jens/automation2/PointOfInterest.java b/app/src/main/java/com/jens/automation2/PointOfInterest.java
index ed641d4..bbe8b0a 100644
--- a/app/src/main/java/com/jens/automation2/PointOfInterest.java
+++ b/app/src/main/java/com/jens/automation2/PointOfInterest.java
@@ -276,6 +276,7 @@ public class PointOfInterest implements Comparable
ActivityMainScreen.updateMainScreen();
}
}
+
public void deactivate(AutomationService parentService)
{
if(this.isActivated())
diff --git a/app/src/main/java/com/jens/automation2/Trigger.java b/app/src/main/java/com/jens/automation2/Trigger.java
index c86b03a..8ca4fda 100644
--- a/app/src/main/java/com/jens/automation2/Trigger.java
+++ b/app/src/main/java/com/jens/automation2/Trigger.java
@@ -290,6 +290,8 @@ public class Trigger
float currentRoll = DevicePositionListener.getInstance().getRoll();
if(
+ desiredAzimuthTolerance < 180
+ &&
!(
currentAzimuth <= desiredAzimuth + desiredAzimuthTolerance
&&
@@ -302,6 +304,8 @@ public class Trigger
}
if(
+ desiredPitchTolerance < 180
+ &&
!(
currentPitch <= desiredPitch + desiredPitchTolerance
&&
@@ -314,6 +318,8 @@ public class Trigger
}
if(
+ desiredRollTolerance < 180
+ &&
!(
currentRoll <= desiredRoll + desiredRollTolerance
&&
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 689963f..5258355 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -725,4 +725,5 @@
A tolerance of 180 is allowed for 2 tolerance fields only, not all 3. Otherwise the trigger would ALWAYS apply.
unknown
Position
+ " There's something wrong with this trigger. It could not be loaded correctly."
\ No newline at end of file