This commit is contained in:
jens 2022-02-20 18:57:13 +01:00
parent c9d7399068
commit 72ccdd99f9
4 changed files with 126 additions and 146 deletions

View File

@ -436,7 +436,7 @@ public class Rule implements Comparable<Rule>
Thread.setDefaultUncaughtExceptionHandler(Miscellaneous.uncaughtExceptionHandler); Thread.setDefaultUncaughtExceptionHandler(Miscellaneous.uncaughtExceptionHandler);
// without this line debugger will - for some reason - skip all breakpoints in this class // without this line the debugger will - for some reason - skip all breakpoints in this class
if(android.os.Debug.isDebuggerConnected()) if(android.os.Debug.isDebuggerConnected())
android.os.Debug.waitForDebugger(); android.os.Debug.waitForDebugger();
@ -444,7 +444,7 @@ public class Rule implements Comparable<Rule>
Looper.prepare(); Looper.prepare();
setLastExecution(Calendar.getInstance()); setLastExecution(Calendar.getInstance());
wasActivated = activateInternally((AutomationService)params[0], (Boolean)params[1]); wasActivated = activateInternally((AutomationService)params[0]);
return null; return null;
} }
@ -479,24 +479,21 @@ public class Rule implements Comparable<Rule>
* Will activate the rule. Should be called by a separate execution thread * Will activate the rule. Should be called by a separate execution thread
* @param automationService * @param automationService
*/ */
protected boolean activateInternally(AutomationService automationService, boolean force) protected boolean activateInternally(AutomationService automationService)
{ {
boolean isActuallyToggable = isActuallyToggable(); boolean isActuallyToggleable = isActuallyToggable();
boolean notLastActive = getLastActivatedRule() == null || !getLastActivatedRule().equals(Rule.this); boolean notLastActive = getLastActivatedRule() == null || !getLastActivatedRule().equals(Rule.this);
boolean doToggle = ruleToggle && isActuallyToggable; boolean doToggle = ruleToggle && isActuallyToggleable;
//if(notLastActive || force || doToggle)
// if(force || doToggle)
// {
String message; String message;
if(!doToggle) if(!doToggle)
message = String.format(automationService.getResources().getString(R.string.ruleActivate), Rule.this.getName()); message = String.format(automationService.getResources().getString(R.string.ruleActivate), Rule.this.getName());
else else
message = String.format(automationService.getResources().getString(R.string.ruleActivateToggle), Rule.this.getName()); message = String.format(automationService.getResources().getString(R.string.ruleActivateToggle), Rule.this.getName());
Miscellaneous.logEvent("i", "Rule", message, 2); Miscellaneous.logEvent("i", "Rule", message, 2);
// automationService.speak(message);
// Toast.makeText(automationService, message, Toast.LENGTH_LONG).show();
if(Settings.startNewThreadForRuleActivation) if(Settings.startNewThreadForRuleActivation)
publishProgress(message); publishProgress(message);
@ -533,12 +530,6 @@ public class Rule implements Comparable<Rule>
} }
Miscellaneous.logEvent("i", "Rule", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.ruleActivationComplete), Rule.this.getName()), 2); Miscellaneous.logEvent("i", "Rule", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.ruleActivationComplete), Rule.this.getName()), 2);
// }
// else
// {
// Miscellaneous.logEvent("i", "Rule", "Request to activate rule " + Rule.this.getName() + ", but it is the last one that was activated. Won't do it again.", 3);
// return false;
// }
return true; return true;
} }

View File

@ -348,7 +348,10 @@ public class Rule implements Comparable<Rule>
if(applies(context)) if(applies(context))
{ {
if(hasNotAppliedSinceLastExecution()) if(hasNotAppliedSinceLastExecution())
{
Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " applies and has flipped since its last execution.", 4);
return true; return true;
}
else else
Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " has not flipped since its last execution.", 4); Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " has not flipped since its last execution.", 4);
} }
@ -414,7 +417,7 @@ public class Rule implements Comparable<Rule>
Looper.prepare(); Looper.prepare();
setLastExecution(Calendar.getInstance()); setLastExecution(Calendar.getInstance());
wasActivated = activateInternally((AutomationService)params[0], (Boolean)params[1]); wasActivated = activateInternally((AutomationService)params[0]);
return null; return null;
} }
@ -449,24 +452,21 @@ public class Rule implements Comparable<Rule>
* Will activate the rule. Should be called by a separate execution thread * Will activate the rule. Should be called by a separate execution thread
* @param automationService * @param automationService
*/ */
protected boolean activateInternally(AutomationService automationService, boolean force) protected boolean activateInternally(AutomationService automationService)
{ {
boolean isActuallyToggable = isActuallyToggable(); boolean isActuallyToggleable = isActuallyToggable();
boolean notLastActive = getLastActivatedRule() == null || !getLastActivatedRule().equals(Rule.this); boolean notLastActive = getLastActivatedRule() == null || !getLastActivatedRule().equals(Rule.this);
boolean doToggle = ruleToggle && isActuallyToggable; boolean doToggle = ruleToggle && isActuallyToggleable;
//if(notLastActive || force || doToggle)
// if(force || doToggle)
// {
String message; String message;
if(!doToggle) if(!doToggle)
message = String.format(automationService.getResources().getString(R.string.ruleActivate), Rule.this.getName()); message = String.format(automationService.getResources().getString(R.string.ruleActivate), Rule.this.getName());
else else
message = String.format(automationService.getResources().getString(R.string.ruleActivateToggle), Rule.this.getName()); message = String.format(automationService.getResources().getString(R.string.ruleActivateToggle), Rule.this.getName());
Miscellaneous.logEvent("i", "Rule", message, 2); Miscellaneous.logEvent("i", "Rule", message, 2);
// automationService.speak(message);
// Toast.makeText(automationService, message, Toast.LENGTH_LONG).show();
if(Settings.startNewThreadForRuleActivation) if(Settings.startNewThreadForRuleActivation)
publishProgress(message); publishProgress(message);
@ -503,12 +503,6 @@ public class Rule implements Comparable<Rule>
} }
Miscellaneous.logEvent("i", "Rule", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.ruleActivationComplete), Rule.this.getName()), 2); Miscellaneous.logEvent("i", "Rule", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.ruleActivationComplete), Rule.this.getName()), 2);
// }
// else
// {
// Miscellaneous.logEvent("i", "Rule", "Request to activate rule " + Rule.this.getName() + ", but it is the last one that was activated. Won't do it again.", 3);
// return false;
// }
return true; return true;
} }

View File

@ -351,7 +351,10 @@ public class Rule implements Comparable<Rule>
if(applies(context)) if(applies(context))
{ {
if(hasNotAppliedSinceLastExecution()) if(hasNotAppliedSinceLastExecution())
{
Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " applies and has flipped since its last execution.", 4);
return true; return true;
}
else else
Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " has not flipped since its last execution.", 4); Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " has not flipped since its last execution.", 4);
} }
@ -433,7 +436,7 @@ public class Rule implements Comparable<Rule>
Thread.setDefaultUncaughtExceptionHandler(Miscellaneous.uncaughtExceptionHandler); Thread.setDefaultUncaughtExceptionHandler(Miscellaneous.uncaughtExceptionHandler);
// without this line debugger will - for some reason - skip all breakpoints in this class // without this line the debugger will - for some reason - skip all breakpoints in this class
if(android.os.Debug.isDebuggerConnected()) if(android.os.Debug.isDebuggerConnected())
android.os.Debug.waitForDebugger(); android.os.Debug.waitForDebugger();
@ -441,7 +444,7 @@ public class Rule implements Comparable<Rule>
Looper.prepare(); Looper.prepare();
setLastExecution(Calendar.getInstance()); setLastExecution(Calendar.getInstance());
wasActivated = activateInternally((AutomationService)params[0], (Boolean)params[1]); wasActivated = activateInternally((AutomationService)params[0]);
return null; return null;
} }
@ -476,24 +479,21 @@ public class Rule implements Comparable<Rule>
* Will activate the rule. Should be called by a separate execution thread * Will activate the rule. Should be called by a separate execution thread
* @param automationService * @param automationService
*/ */
protected boolean activateInternally(AutomationService automationService, boolean force) protected boolean activateInternally(AutomationService automationService)
{ {
boolean isActuallyToggable = isActuallyToggable(); boolean isActuallyToggleable = isActuallyToggable();
boolean notLastActive = getLastActivatedRule() == null || !getLastActivatedRule().equals(Rule.this); boolean notLastActive = getLastActivatedRule() == null || !getLastActivatedRule().equals(Rule.this);
boolean doToggle = ruleToggle && isActuallyToggable; boolean doToggle = ruleToggle && isActuallyToggleable;
//if(notLastActive || force || doToggle)
// if(force || doToggle)
// {
String message; String message;
if(!doToggle) if(!doToggle)
message = String.format(automationService.getResources().getString(R.string.ruleActivate), Rule.this.getName()); message = String.format(automationService.getResources().getString(R.string.ruleActivate), Rule.this.getName());
else else
message = String.format(automationService.getResources().getString(R.string.ruleActivateToggle), Rule.this.getName()); message = String.format(automationService.getResources().getString(R.string.ruleActivateToggle), Rule.this.getName());
Miscellaneous.logEvent("i", "Rule", message, 2); Miscellaneous.logEvent("i", "Rule", message, 2);
// automationService.speak(message);
// Toast.makeText(automationService, message, Toast.LENGTH_LONG).show();
if(Settings.startNewThreadForRuleActivation) if(Settings.startNewThreadForRuleActivation)
publishProgress(message); publishProgress(message);
@ -530,12 +530,6 @@ public class Rule implements Comparable<Rule>
} }
Miscellaneous.logEvent("i", "Rule", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.ruleActivationComplete), Rule.this.getName()), 2); Miscellaneous.logEvent("i", "Rule", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.ruleActivationComplete), Rule.this.getName()), 2);
// }
// else
// {
// Miscellaneous.logEvent("i", "Rule", "Request to activate rule " + Rule.this.getName() + ", but it is the last one that was activated. Won't do it again.", 3);
// return false;
// }
return true; return true;
} }

View File

@ -199,6 +199,7 @@ public class ActivityMainRules extends ActivityGeneric
AutomationService runContext = AutomationService.getInstance(); AutomationService runContext = AutomationService.getInstance();
if(runContext != null) if(runContext != null)
{ {
Miscellaneous.logEvent("i", "ActivityMainRules", "Initiating manual execution of rule " + ruleThisIsAbout.getName(), 3);
ruleThisIsAbout.activate(runContext, true); ruleThisIsAbout.activate(runContext, true);
break; break;
} }