diff --git a/app/src/main/java/com/jens/automation2/Action.java b/app/src/main/java/com/jens/automation2/Action.java index bfd08097..4c2dd198 100644 --- a/app/src/main/java/com/jens/automation2/Action.java +++ b/app/src/main/java/com/jens/automation2/Action.java @@ -36,8 +36,7 @@ public class Action enableScreenRotation,disableScreenRotation, startOtherActivity, waitBeforeNextAction, - wakeupDevice, - turnScreenOnOrOff, + turnScreenOnOrOff, setAirplaneMode, setDataConnection, speakText, @@ -91,8 +90,6 @@ public class Action return context.getResources().getString(R.string.startOtherActivity); case waitBeforeNextAction: return context.getResources().getString(R.string.waitBeforeNextAction); - case wakeupDevice: - return context.getResources().getString(R.string.wakeupDevice); case turnScreenOnOrOff: return context.getResources().getString(R.string.turnScreenOnOrOff); case vibrate: @@ -233,10 +230,6 @@ public class Action { returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.sendTextMessage)); } - else if(this.getAction().equals(Action_Enum.wakeupDevice)) - { - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.wakeupDevice)); - } else if(this.getAction().equals(Action_Enum.turnScreenOnOrOff)) { if(getParameter1()) @@ -415,18 +408,6 @@ public class Action case waitBeforeNextAction: Actions.waitBeforeNextAction(Long.parseLong(this.getParameter2())); break; - case wakeupDevice: - Actions.wakeupDevice(Long.parseLong(this.getParameter2())); - // wakeupDevice() will create a separate thread. That'll take some time, we wait 100ms. - try - { - Thread.sleep(100); - } - catch (InterruptedException e) - { - e.printStackTrace(); - } - break; case turnScreenOnOrOff: if(getParameter1()) { diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java index 9644232a..d63211b5 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java @@ -1455,8 +1455,6 @@ public class ActivityManageRule extends Activity items.add(new Item(typesLong[i].toString(), R.drawable.wait)); else if(types[i].toString().equals(Action_Enum.setAirplaneMode.toString())) items.add(new Item(typesLong[i].toString(), R.drawable.plane)); - else if(types[i].toString().equals(Action_Enum.wakeupDevice.toString())) - items.add(new Item(typesLong[i].toString(), R.drawable.alarm)); else if(types[i].toString().equals(Action_Enum.turnScreenOnOrOff.toString())) items.add(new Item(typesLong[i].toString(), R.drawable.smartphone)); else if(types[i].toString().equals(Action_Enum.changeSoundProfile.toString())) @@ -1588,11 +1586,6 @@ public class ActivityManageRule extends Activity newAction.setAction(Action_Enum.waitBeforeNextAction); getActionWaitBeforeNextActionDialog(ActivityManageRule.this).show(); } - else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.wakeupDevice.toString())) - { - newAction.setAction(Action_Enum.wakeupDevice); - getActionWakeupDeviceDialog(ActivityManageRule.this).show(); - } else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.turnScreenOnOrOff.toString())) { newAction.setAction(Action_Enum.turnScreenOnOrOff); @@ -1604,7 +1597,6 @@ public class ActivityManageRule extends Activity getActionParameter1Dialog(ActivityManageRule.this).show(); if(Build.VERSION.SDK_INT >= 17) { -// Toast.makeText(context, getResources().getString(R.string.airplaneModeSdk17Warning), Toast.LENGTH_LONG).show(); Miscellaneous.messageBox(getResources().getString(R.string.airplaneMode), getResources().getString(R.string.rootExplanation), ActivityManageRule.this).show(); } } diff --git a/app/src/main/java/com/jens/automation2/ActivityPermissions.java b/app/src/main/java/com/jens/automation2/ActivityPermissions.java index c7db8b25..72264d3e 100644 --- a/app/src/main/java/com/jens/automation2/ActivityPermissions.java +++ b/app/src/main/java/com/jens/automation2/ActivityPermissions.java @@ -596,9 +596,9 @@ public class ActivityPermissions extends Activity if( action.getParameter2().contains(Actions.wireguard_tunnel_up) || - action.getParameter2().contains(Actions.wireguard_tunnel_down) + action.getParameter2().contains(Actions.wireguard_tunnel_down) || - action.getParameter2().contains(Actions.wireguard_tunnel_refresh) + action.getParameter2().contains(Actions.wireguard_tunnel_refresh) ) addToArrayListUnique(ActivityPermissions.permissionNameWireguard, requiredPermissions); // if( @@ -626,42 +626,36 @@ public class ActivityPermissions extends Activity break; case turnUsbTetheringOff: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); -// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); break; case turnUsbTetheringOn: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); -// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); break; case turnWifiOff: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); -// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions); break; case turnWifiOn: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); -// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions); break; case turnWifiTetheringOff: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); -// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions); break; case turnWifiTetheringOn: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); -// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions); break; case waitBeforeNextAction: break; - case wakeupDevice: - addToArrayListUnique(Manifest.permission.WAKE_LOCK, requiredPermissions); - break; case playSound: addToArrayListUnique(Manifest.permission.READ_EXTERNAL_STORAGE, requiredPermissions); break; case turnScreenOnOrOff: - addToArrayListUnique(Manifest.permission.BIND_DEVICE_ADMIN, requiredPermissions); + if(action.getParameter1()) + addToArrayListUnique(Manifest.permission.WAKE_LOCK, requiredPermissions); + else + addToArrayListUnique(Manifest.permission.BIND_DEVICE_ADMIN, requiredPermissions); break; default: break; @@ -794,14 +788,6 @@ public class ActivityPermissions extends Activity for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.wifiConnection)) usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); break; - /*case "android.permission.BATTERY_STATS": - for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.batteryLevel)) - usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); - for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.charging)) - usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); - for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.usb_host_connection)) - usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); - break;*/ case Manifest.permission.BLUETOOTH_ADMIN: for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.bluetoothConnection)) usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); @@ -981,7 +967,6 @@ public class ActivityPermissions extends Activity requiredPermissions.remove(s); cachedPermissionsToRequest = requiredPermissions; Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS); -// intent.setData(Uri.parse("package:" + getPackageName())); startActivityForResult(intent, requestCodeForPermissionsNotificationPolicy); return; } @@ -1021,7 +1006,7 @@ public class ActivityPermissions extends Activity { if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS) && - Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()) + Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()) ) { requiredPermissions.remove(Manifest.permission.PROCESS_OUTGOING_CALLS); @@ -1031,8 +1016,6 @@ public class ActivityPermissions extends Activity if(requiredPermissions.contains(Manifest.permission.SEND_SMS)) { if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS) -// && -// Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()) ) { requiredPermissions.remove(Manifest.permission.SEND_SMS); @@ -1049,11 +1032,8 @@ public class ActivityPermissions extends Activity Miscellaneous.logEvent("i", "Permissions", "Requesting permissions: " + permissions, 2); -// Toast.makeText(ActivityPermissions.this, "Requesting permissions. Amount: " + String.valueOf(requiredPermissions.size()), Toast.LENGTH_LONG).show(); if(requiredPermissions.size() > 0) requestPermissions(requiredPermissions.toArray(new String[requiredPermissions.size()]), requestCodeForPermissions); -// else -// Miscellaneous.messageBox(getResources().getString(R.string.warning), getResources().getString(R.string.permissionsRequiredNotAvailable), ActivityPermissions.this).show(); } else setHaveAllPermissions(); @@ -1071,17 +1051,11 @@ public class ActivityPermissions extends Activity public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { Miscellaneous.logEvent("i", "onRequestPermissionsResult()", "onRequestPermissionsResult()", 3); -// Toast.makeText(ActivityPermissions.this, "onRequestPermissionsResult()", Toast.LENGTH_LONG).show(); -// ArrayList disabledFeatures = new ArrayList(); ArrayList deniedPermissions = new ArrayList(); if (requestCode == requestCodeForPermissions) { - /*ArrayList affectedGeneralList = new ArrayList(); - ArrayList affectedTriggersList = new ArrayList(); - ArrayList affectedActionList = new ArrayList();*/ - for (int i=0; i < grantResults.length; i++) { if(permissions[i].equalsIgnoreCase(Manifest.permission.WRITE_EXTERNAL_STORAGE) && grantResults[i] == PackageManager.PERMISSION_GRANTED) @@ -1141,8 +1115,8 @@ public class ActivityPermissions extends Activity if(deniedPermissions.size() > 0) { /* - The user denied certain permissions. With the exception of write-storage we need to live with that - and simply disable features while keeping the notification alive. The user may dismiss it anyway. + The user denied certain permissions. We need to live with that and simply disable + features while keeping the notification alive. The user may dismiss it anyway. */ Miscellaneous.logEvent("w", "Denied permissions", getResources().getString(R.string.theFollowingPermissionsHaveBeenDenied) + Miscellaneous.explode(", ", deniedPermissions), 3); @@ -1367,10 +1341,7 @@ public class ActivityPermissions extends Activity mapActionPermissions.put("setWifiTethering", Manifest.permission.WRITE_SETTINGS); mapActionPermissions.put("setWifiTethering", Manifest.permission.CHANGE_NETWORK_STATE); mapActionPermissions.put("setWifiTethering", Manifest.permission.ACCESS_NETWORK_STATE); -// mapActionPermissions.put("speakText", Manifest.permission.ACCESS_NOTIFICATION_POLICY); -// mapActionPermissions.put("startOtherActivity", ""); mapActionPermissions.put("triggerUrl", Manifest.permission.INTERNET); -// Hier müßte ein Hinweis kommen, daß nur die Variablen verwendet werden können, für die es Rechte gibt. mapActionPermissions.put("turnBluetoothOff", Manifest.permission.BLUETOOTH_ADMIN); mapActionPermissions.put("turnBluetoothOff", Manifest.permission.BLUETOOTH); mapActionPermissions.put("turnBluetoothOff", Manifest.permission.ACCESS_NETWORK_STATE); @@ -1400,209 +1371,6 @@ public class ActivityPermissions extends Activity mapActionPermissions.put("wakeupDevice", Manifest.permission.WAKE_LOCK); } - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - public static boolean isPermissionDeclaratedInManifest(Context context, String permission) { PackageManager pm = context.getPackageManager(); @@ -1621,12 +1389,11 @@ public class ActivityPermissions extends Activity ArrayList requestedPermissionsArrayList = new ArrayList(); requestedPermissionsArrayList.addAll(requestedPermissionsList); return (requestedPermissionsArrayList.contains(permission)); -// Log.i(ExConsts.TAG, ""+requestedPermissionsArrayList); } } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); + Miscellaneous.logEvent("w", "ActivityPermissions", Log.getStackTraceString(e), 2); } return false; diff --git a/app/src/main/java/com/jens/automation2/ActivityVolumeTest.java b/app/src/main/java/com/jens/automation2/ActivityVolumeTest.java index 7c4de0b1..b8977b78 100644 --- a/app/src/main/java/com/jens/automation2/ActivityVolumeTest.java +++ b/app/src/main/java/com/jens/automation2/ActivityVolumeTest.java @@ -30,14 +30,14 @@ public class ActivityVolumeTest extends Activity instance = this; super.onCreate(savedInstanceState); - setContentView(R.layout.activity_volume_test); + setContentView(R.layout.activity_volume_calibration); tvCurrentVolume = (TextView)findViewById(R.id.tvCurrentVolume); etReferenceValue = (EditText)findViewById(R.id.etReferenceValue); sbReferenceValue = (SeekBar)findViewById(R.id.sbReferenceValue); - tvVolumeTestExplanation = (TextView)findViewById(R.id.tvVolumeTestExplanation); + tvVolumeTestExplanation = (TextView)findViewById(R.id.tvVolumeCalibrationExplanation); - tvVolumeTestExplanation.setText(String.format(getResources().getString(R.string.volumeTesterExplanation), String.valueOf(volumeRefreshInterval))); + tvVolumeTestExplanation.setText(String.format(getResources().getString(R.string.volumeCalibrationExplanation), String.valueOf(volumeRefreshInterval))); etReferenceValue.setText(String.valueOf(Settings.referenceValueForNoiseLevelMeasurements)); diff --git a/app/src/main/java/com/jens/automation2/Trigger.java b/app/src/main/java/com/jens/automation2/Trigger.java index bd05c438..8b24e1f1 100644 --- a/app/src/main/java/com/jens/automation2/Trigger.java +++ b/app/src/main/java/com/jens/automation2/Trigger.java @@ -286,61 +286,62 @@ public class Trigger float currentPitch = DeviceOrientationListener.getInstance().getPitch(); float currentRoll = DeviceOrientationListener.getInstance().getRoll(); - if( - !( - desiredAzimuthTolerance < 180 - && - ( - Math.abs(currentAzimuth) <= Math.abs(desiredAzimuth - desiredAzimuthTolerance) - || - Math.abs(currentAzimuth) <= desiredAzimuth + desiredAzimuthTolerance - ) - ) - ) + if(desiredAzimuthTolerance < 180) { - Miscellaneous.logEvent("i", "DeviceOrientation", "Azimuth outside of tolerance area.", 5); - if(getTriggerParameter()) - return false; - else - return true; + if ( + !( + Math.abs(currentAzimuth) <= Math.abs(desiredAzimuth - desiredAzimuthTolerance) + || + Math.abs(currentAzimuth) <= desiredAzimuth + desiredAzimuthTolerance + ) + ) + { + Miscellaneous.logEvent("i", "DeviceOrientation", "Azimuth outside of tolerance area.", 5); + if (getTriggerParameter()) + return false; + else + return true; + } } - if( - !( - desiredPitchTolerance < 180 - && - ( - Math.abs(currentPitch) <= Math.abs(desiredPitch - desiredPitchTolerance) - || - Math.abs(currentPitch) <= desiredPitch + desiredPitchTolerance - ) - ) - ) + if(desiredPitchTolerance < 180) { - Miscellaneous.logEvent("i", "DeviceOrientation", "Pitch outside of tolerance area.", 5); - if(getTriggerParameter()) - return false; - else - return true; + if ( + !( + ( + Math.abs(currentPitch) <= Math.abs(desiredPitch - desiredPitchTolerance) + || + Math.abs(currentPitch) <= desiredPitch + desiredPitchTolerance + ) + ) + ) + { + Miscellaneous.logEvent("i", "DeviceOrientation", "Pitch outside of tolerance area.", 5); + if (getTriggerParameter()) + return false; + else + return true; + } } - if( - !( - desiredRollTolerance < 180 - && - ( - Math.abs(currentRoll) <= Math.abs(desiredRoll - desiredRollTolerance) - || - Math.abs(currentRoll) <= desiredRoll + desiredRollTolerance - ) - ) - ) + if(desiredRollTolerance < 180) { - Miscellaneous.logEvent("i", "DeviceOrientation", "Roll outside of tolerance area.", 5); - if(getTriggerParameter()) - return false; - else - return true; + if ( + !( + ( + Math.abs(currentRoll) <= Math.abs(desiredRoll - desiredRollTolerance) + || + Math.abs(currentRoll) <= desiredRoll + desiredRollTolerance + ) + ) + ) + { + Miscellaneous.logEvent("i", "DeviceOrientation", "Roll outside of tolerance area.", 5); + if (getTriggerParameter()) + return false; + else + return true; + } } if(getTriggerParameter()) @@ -493,7 +494,7 @@ public class Trigger return false; } - return false; + return true; } boolean checkRoaming() diff --git a/app/src/main/java/com/jens/automation2/XmlFileInterface.java b/app/src/main/java/com/jens/automation2/XmlFileInterface.java index e8b6787d..8adfc2e6 100644 --- a/app/src/main/java/com/jens/automation2/XmlFileInterface.java +++ b/app/src/main/java/com/jens/automation2/XmlFileInterface.java @@ -889,7 +889,7 @@ public class XmlFileInterface { String triggerEventString = readTag(parser, "TriggerEvent"); - if(triggerEventString.equals("process_started_stopped") | triggerEventString.equals("process_running")) + if(triggerEventString.equals("process_started_stopped") || triggerEventString.equals("process_running")) newTrigger.setTriggerType(Trigger_Enum.process_started_stopped); else newTrigger.setTriggerType(Trigger_Enum.valueOf(triggerEventString)); @@ -1152,7 +1152,14 @@ public class XmlFileInterface newAction.setAction(Action_Enum.enableScreenRotation); else if(actionNameString.equals("disableScreenRotation")) newAction.setAction(Action_Enum.disableScreenRotation); - // *** deprecated + else if(actionNameString.equals("disableScreenRotation")) + newAction.setAction(Action_Enum.disableScreenRotation); + else if(actionNameString.equals("wakeupDevice")) + { + newAction.setAction(Action_Enum.turnScreenOnOrOff); + newAction.setParameter1(true); + } + // *** deprecated else newAction.setAction(Action_Enum.valueOf(actionNameString)); @@ -1220,6 +1227,18 @@ public class XmlFileInterface newAction.setParameter1(false); readTag(parser, "ActionParameter1"); //read the tag for the parser to head on } + else if(newAction.getAction().equals(Action_Enum.disableScreenRotation)) + { + newAction.setAction(Action_Enum.setDisplayRotation); + newAction.setParameter1(false); + readTag(parser, "ActionParameter1"); //read the tag for the parser to head on + } + else if(newAction.getAction().equals(Action_Enum.turnScreenOnOrOff) && newAction.getParameter1()) + { + /* + If param1 == true we will keep it because this action used to be of type wakeUpDevice. + */ + } else // exclusion for deprecated types newAction.setParameter1(Boolean.parseBoolean(readTag(parser, "ActionParameter1"))); @@ -1241,7 +1260,6 @@ public class XmlFileInterface { newAction.setParameter2(tag); } - /* androidx.security.crypto.MasterKey.Builder @@ -1300,9 +1318,6 @@ public class XmlFileInterface } } } - -// Miscellaneous.logEvent("i", "New Rule from file", newPoi.name + "/" + String.valueOf(newPoi.radius) + "/" + String.valueOf(newPoi.location.getLatitude()) + "/" + String.valueOf(newPoi.location.getLongitude()) + "/" + String.valueOf(newPoi.changeWifiState) + "/" + String.valueOf(newPoi.desiredWifiState) + "/" + String.valueOf(newPoi.changeCameraState) + "/" + String.valueOf(newPoi.desiredCameraState) + "/" + String.valueOf(newPoi.changeSoundSetting) + "/" + String.valueOf(newPoi.desiredSoundSetting)); - return newAction; } diff --git a/app/src/main/java/com/jens/automation2/location/CellLocationChangedReceiver.java b/app/src/main/java/com/jens/automation2/location/CellLocationChangedReceiver.java index a738d674..e3b7015e 100644 --- a/app/src/main/java/com/jens/automation2/location/CellLocationChangedReceiver.java +++ b/app/src/main/java/com/jens/automation2/location/CellLocationChangedReceiver.java @@ -369,7 +369,7 @@ public class CellLocationChangedReceiver extends PhoneStateListener // Miscellaneous.logEvent("i", "cellReceiver", "Not starting cellLocationListener because we have no data connection.", 4); } else - Miscellaneous.logEvent("w", "cellReceiver", "Wanted to activate CellLocationChangedReceiver, but Wifi-Receiver says not to.", 4); + Miscellaneous.logEvent("w", "cellReceiver", "Wanted to activate CellLocationChangedReceiver, but Wifi-Receiver says not to.", 4); } else Miscellaneous.logEvent("i", "cellReceiver", "Not starting cellLocationListener because Airplane mode is active or SIM_STATE is not ready.", 4); diff --git a/app/src/main/java/com/jens/automation2/receivers/PhoneStatusListener.java b/app/src/main/java/com/jens/automation2/receivers/PhoneStatusListener.java index 5e21ef0d..22dc1e54 100644 --- a/app/src/main/java/com/jens/automation2/receivers/PhoneStatusListener.java +++ b/app/src/main/java/com/jens/automation2/receivers/PhoneStatusListener.java @@ -110,7 +110,6 @@ public class PhoneStatusListener implements AutomationListenerInterface } ArrayList ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall); -// ArrayList ruleCandidates = Rule.findRuleCandidatesByPhoneCall(Trigger.triggerPhoneCallDirectionOutgoing); for(int i=0; i ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall); -// ArrayList ruleCandidates = Rule.findRuleCandidatesByPhoneCall(Trigger.triggerPhoneCallDirectionIncoming); for (int i = 0; i < ruleCandidates.size(); i++) { AutomationService asInstance = AutomationService.getInstance(); @@ -170,10 +168,6 @@ public class PhoneStatusListener implements AutomationListenerInterface */ setLastPhoneDirection(2); -// TelephonyManager tm = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE); -// int newState = tm.getCallState(); -// setCurrentState(newState); - setCurrentState(TelephonyManager.CALL_STATE_RINGING); String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); @@ -181,7 +175,6 @@ public class PhoneStatusListener implements AutomationListenerInterface Miscellaneous.logEvent("i", "Call state", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.outgoingCallTo), getLastPhoneNumber()), 4); ArrayList ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall); -// ArrayList ruleCandidates = Rule.findRuleCandidatesByPhoneCall(Trigger.triggerPhoneCallDirectionOutgoing); for(int i=0; i Momentane Lautstärke Geben Sie einen gültigen Referenzwert ein. Lautstärkekalibrierung - Um einen dB Wert für die Lautstärkemessung zu berechnen müssen Sie einen sogenannten physikalischen Referenzwert angeben. Bitte lesen Sie bei Wikipedia nach, um mehr zu erfahren. Dieser Wert wird höchstwahrscheinlich für jedes Smartphone oder Tablet anders sein, deshalb diese Testanwendung. Verschieben Sie den Regler, um den gegenwärtig definierten Wert zu ändern. Je höher der Referenzwert desto niedriger wird der dB Wert. Es werden alle paar %1$s Sekunden neue Messungen vorgenommen und das Ergebnis unten angezeigt. Drücken Sie den zurück-Button, wenn Sie einen passenden Wert gefunden haben. + Um einen dB Wert für die Lautstärkemessung zu berechnen müssen Sie einen sogenannten physikalischen Referenzwert angeben. Bitte lesen Sie bei Wikipedia nach, um mehr zu erfahren. Dieser Wert wird höchstwahrscheinlich für jedes Smartphone oder Tablet anders sein, deshalb diese Testanwendung. Verschieben Sie den Regler, um den gegenwärtig definierten Wert zu ändern. Je höher der Referenzwert desto niedriger wird der dB Wert. Es werden alle paar %1$s Sekunden neue Messungen vorgenommen und das Ergebnis unten angezeigt. Drücken Sie den zurück-Button, wenn Sie einen passenden Wert gefunden haben. Manche Einstellungen können nicht übernommen werden bevor der Dienst neu gestartet wird. Sie müssen Ihr Telefon rooten, damit diese Funktion funktionieren kann. Danach müssen Sie "Regel manuell ausführen", um den SuperUser Berechtigungsdialog zu zeigen. Wenn dieser erscheint, müssen Sie den Haken setzen, der es immer erlaubt. Ansonsten kann die Regel nicht funktionieren, wenn Sie das Telefon gerade nicht benutzen und demnach den nächsten Dialog nicht genehmigen können. Fehler beim Schreiben der Konfiguration. Gibt es einen beschreibbaren Speicher, und wurde alle Berechtigungen gegeben? diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 888f1271..efdf47a2 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -547,7 +547,7 @@ Para activar la función que será usada, mas permisos son necesarios. Cliquee continuar para los requisitos. Leer y guardar configuración. CUIDADO: Funciones estan desactivadas, Automation esta en modo limitado. Cliquee aqui para mas informacion. - Para calcular un valor dB para determinar el nivel del ruido de fondo tiene que especificar un valor de referencia fisico. Por favor lea el articulo en Wikipedia para mas información. Este valor será probablemente diferente para todos los dispositivos. Mueva el regulador para cambiar el valor. Cuanto mas alto el valor de referencia menos será el valor dB. Las mediciónes se harán cada %1$s segundos y el resultado aparecerá abajo. Presione atrás cuando encuentre un valor indicado. + Para calcular un valor dB para determinar el nivel del ruido de fondo tiene que especificar un valor de referencia fisico. Por favor lea el articulo en Wikipedia para mas información. Este valor será probablemente diferente para todos los dispositivos. Mueva el regulador para cambiar el valor. Cuanto mas alto el valor de referencia menos será el valor dB. Las mediciónes se harán cada %1$s segundos y el resultado aparecerá abajo. Presione atrás cuando encuentre un valor indicado. El permiso para cambiar ajustes del OS es necesario (incluso cosas simples como activar bluetooth o wifi). Despues de cliquear continuar una ventana aparecerá en la cual tiene que activar eso para Automation. Entonces cliquee el boton atrás. Mas permisos serán requeridos en un segundo dialogo luego. Automation necesita acceso al almacenamiento externo para leer su configuración y reglas. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7329987e..76bd2001 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -553,7 +553,7 @@ Multimedia (musica, video …) Toni e notifiche Calibratura audio - Per calcolare il valore del rumore di fondo in dB è necessario specificare un valore di riferimento fisico (si prega di leggere Wikipedia per ulteriori informazioni). Questo valore è probabilmente diverso per ogni telefono. Trascinare il cursore per modificare il valore di riferimento fisico definito. Più alto è il valore di riferimento e più basso sarà il valore misurato in dB. Misurazioni costanti saranno effettuate ogni %1$s secondi ed i risultati visualizzati sotto. Premere indietro quando hai trovato un valore adeguato. + Per calcolare il valore del rumore di fondo in dB è necessario specificare un valore di riferimento fisico (si prega di leggere Wikipedia per ulteriori informazioni). Questo valore è probabilmente diverso per ogni telefono. Trascinare il cursore per modificare il valore di riferimento fisico definito. Più alto è il valore di riferimento e più basso sarà il valore misurato in dB. Misurazioni costanti saranno effettuate ogni %1$s secondi ed i risultati visualizzati sotto. Premere indietro quando hai trovato un valore adeguato. Volumi Attesa prima della azione successiva Inserisci il valore della pausa tra tra un\'azione e la successiva (millisecondi). diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index aae612f8..d2b995dc 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -409,7 +409,7 @@ Huidig volume Voer een geldige referentiewaarde in. Volume test - Om een dB-waarde voor geluidsbewaking te berekenen, moet je een zogenaamde fysische referentiewaarde opgeven. Lees Wikipedia voor meer informatie. Deze waarde is waarschijnlijk voor elke telefoon anders. Sleep de zoekbalk om de gedefinieerde fysieke referentiewaarde te wijzigen. Hoe hoger de referentiewaarde, hoe lager de dB-waarde zal zijn. Constante metingen zullen worden uitgevoerd om de %1$s seconden en de resultaten zullen hieronder worden weergegeven. Druk op terug wanneer u een geschikte waarde hebt gevonden. + Om een dB-waarde voor geluidsbewaking te berekenen, moet je een zogenaamde fysische referentiewaarde opgeven. Lees Wikipedia voor meer informatie. Deze waarde is waarschijnlijk voor elke telefoon anders. Sleep de zoekbalk om de gedefinieerde fysieke referentiewaarde te wijzigen. Hoe hoger de referentiewaarde, hoe lager de dB-waarde zal zijn. Constante metingen zullen worden uitgevoerd om de %1$s seconden en de resultaten zullen hieronder worden weergegeven. Druk op terug wanneer u een geschikte waarde hebt gevonden. Sommige instellingen zullen niet worden toegepast voordat bepaalde omgevingsinstellingen worden gewijzigd of de service opnieuw wordt opgestart. U moet uw telefoon rooten om deze functie te laten werken. Daarna moet je de regel handmatig uitvoeren om de superuser-toestemmingsvraag te laten verschijnen. Als de superuser popup verschijnt moet je de applicatie altijd toestemming geven om dat te doen. Anders kan de regel niet werken als de telefoon onbeheerd is. Fout bij het schrijven van de config. Heeft u een beschrijfbaar geheugen? diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 988eddcf..6a730601 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -504,7 +504,7 @@ Current volume Enter a valid reference value. Volume calibration - To calculate a dB value for noise monitoring you need to specify a so called physical reference value. Please read Wikipedia for further information. This value is most likely different for every phone. Drag the seekbar to change the defined physical reference value. The higher the reference value the lower the dB value will be. Constant measurings will be performed every %1$s seconds and the results displayed below. Press back when you have found a suitable value. + To calculate a dB value for noise monitoring you need to specify a so called physical reference value. Please read Wikipedia for further information. This value is most likely different for every phone. Drag the seekbar to change the defined physical reference value. The higher the reference value the lower the dB value will be. Constant measurings will be performed every %1$s seconds and the results displayed below. Press back when you have found a suitable value. Some settings will not be applied before certain environment settings change or service is restarted. Phone is rooted. Phone is not rooted. diff --git a/fastlane/metadata/android/nl-NL/full_description.txt b/fastlane/metadata/android/nl-NL/full_description.txt new file mode 100644 index 00000000..5fd26cb3 --- /dev/null +++ b/fastlane/metadata/android/nl-NL/full_description.txt @@ -0,0 +1,58 @@ +Automatiseer je telefoon en maak regels die zijn opgebouwd uit triggers en acties. +Een goed voorbeeld is "ALS ik mijn werk wifi verbind zet DAN mijn geluidsinstelling op stil". +Of : als ik tussen 8.00 en 09:00 de NFC tag op mijn werk scan, stuur dan een http verzoek naar mijn tijdschrijf applicatie. + +Hieronder een lijst van ondersteunde triggers en acties: + +Ondersteunde triggers: +* Locatie (positie) +* Dag/Tijd +* Oplaadstatus +* Batterijniveau +* USB-verbinding met computer tot stand gebracht +* Uw huidige snelheid (via GPS) +* Achtergrondgeluid (alleen tot Android 7) +* Wifi verbinding +* Andere toepassingen die worden uitgevoerd +* Vliegtuigmodus +* Roaming status +* NFC tags +* Bluetooth-verbinding +* Headset aangesloten +* Lopend telefoongesprek +* Meldingen van andere apps +* Apparaat oriëntatie (gyroscoop) + +Ondersteunde acties: +* Wijzig wifi status +* Wijzig Bluetooth-status +* Schakel USB-tethering in +* Schakel Wifi-tethering in +* Schakel Bluetooth-tethering in +* Schakel automatische schermrotatie in +* Doe een HTTP verzoek. +* Wijzig Ringtone/geluidsinstelling +* Start een andere toepassing +* Wachten (tussen andere acties) +* Scherm aan- of uitzetten +* Schakel Vliegtuigmodus in +* Schakel Mobiele dataverbinding in +* Spreek tekst +* Open muziekspeler +* Verander de helderheid van het scherm +* Verstuur tekstbericht +* Geluidsbestand afspelen + +Het is lastig om deze App werkend te houden over de vele verschillende hardware en de vele veranderingen die Android ondergaat in de loop der versies. +Ik test het in een emulator, maar dat kan niet alle bugs laten zien. +Dus als een bepaalde functie niet werkt op uw apparaat - laat het me dan weten. In de loop der jaren heb ik bijna alle bugs opgelost die redelijkerwijs aan mij gemeld zijn. Maar daarvoor ben ik afhankelijk van jullie input. + +Als je een probleem hebt en erover denkt om contact met me op te nemen +- update eerst naar de laatste versie en kijk of uw probleem zich daar ook voordoet. +- Controleer deze lijst met bekende problemen: https://server47.de/automation/index.php#knownProblems + +Donaties zijn zeker een goede, maar niet de enige manier om mij te motiveren :-) +* Als je me wilt steunen, kun je ook een positieve review voor de app achterlaten op Google Play ( https://play.google.com/store/apps/details?id=com.jens.automation2 ). +* Verder kan ik altijd hulp gebruiken bij het vertalen van de app. Engels, Duits en wat Spaans behoren tot mijn eigen vaardigheden. Maar al het andere is meer dan welkom. + +Uitleg van de vele permissies vind je hier (Engels) : https://server47.de/automation/permissions_en.html \ No newline at end of file diff --git a/fastlane/metadata/android/nl-NL/short_description.txt b/fastlane/metadata/android/nl-NL/short_description.txt new file mode 100644 index 00000000..a6ae4d99 --- /dev/null +++ b/fastlane/metadata/android/nl-NL/short_description.txt @@ -0,0 +1 @@ +AUTOMATION : Automatiseer je taken met triggers en acties: ALS dit DAN dat.. \ No newline at end of file