Rework
This commit is contained in:
parent
3d8257aeec
commit
64801d8ff2
@ -36,7 +36,6 @@ public class Action
|
|||||||
enableScreenRotation,disableScreenRotation,
|
enableScreenRotation,disableScreenRotation,
|
||||||
startOtherActivity,
|
startOtherActivity,
|
||||||
waitBeforeNextAction,
|
waitBeforeNextAction,
|
||||||
wakeupDevice,
|
|
||||||
turnScreenOnOrOff,
|
turnScreenOnOrOff,
|
||||||
setAirplaneMode,
|
setAirplaneMode,
|
||||||
setDataConnection,
|
setDataConnection,
|
||||||
@ -91,8 +90,6 @@ public class Action
|
|||||||
return context.getResources().getString(R.string.startOtherActivity);
|
return context.getResources().getString(R.string.startOtherActivity);
|
||||||
case waitBeforeNextAction:
|
case waitBeforeNextAction:
|
||||||
return context.getResources().getString(R.string.waitBeforeNextAction);
|
return context.getResources().getString(R.string.waitBeforeNextAction);
|
||||||
case wakeupDevice:
|
|
||||||
return context.getResources().getString(R.string.wakeupDevice);
|
|
||||||
case turnScreenOnOrOff:
|
case turnScreenOnOrOff:
|
||||||
return context.getResources().getString(R.string.turnScreenOnOrOff);
|
return context.getResources().getString(R.string.turnScreenOnOrOff);
|
||||||
case vibrate:
|
case vibrate:
|
||||||
@ -233,10 +230,6 @@ public class Action
|
|||||||
{
|
{
|
||||||
returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.sendTextMessage));
|
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))
|
else if(this.getAction().equals(Action_Enum.turnScreenOnOrOff))
|
||||||
{
|
{
|
||||||
if(getParameter1())
|
if(getParameter1())
|
||||||
@ -415,18 +408,6 @@ public class Action
|
|||||||
case waitBeforeNextAction:
|
case waitBeforeNextAction:
|
||||||
Actions.waitBeforeNextAction(Long.parseLong(this.getParameter2()));
|
Actions.waitBeforeNextAction(Long.parseLong(this.getParameter2()));
|
||||||
break;
|
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:
|
case turnScreenOnOrOff:
|
||||||
if(getParameter1())
|
if(getParameter1())
|
||||||
{
|
{
|
||||||
|
@ -1455,8 +1455,6 @@ public class ActivityManageRule extends Activity
|
|||||||
items.add(new Item(typesLong[i].toString(), R.drawable.wait));
|
items.add(new Item(typesLong[i].toString(), R.drawable.wait));
|
||||||
else if(types[i].toString().equals(Action_Enum.setAirplaneMode.toString()))
|
else if(types[i].toString().equals(Action_Enum.setAirplaneMode.toString()))
|
||||||
items.add(new Item(typesLong[i].toString(), R.drawable.plane));
|
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()))
|
else if(types[i].toString().equals(Action_Enum.turnScreenOnOrOff.toString()))
|
||||||
items.add(new Item(typesLong[i].toString(), R.drawable.smartphone));
|
items.add(new Item(typesLong[i].toString(), R.drawable.smartphone));
|
||||||
else if(types[i].toString().equals(Action_Enum.changeSoundProfile.toString()))
|
else if(types[i].toString().equals(Action_Enum.changeSoundProfile.toString()))
|
||||||
@ -1588,11 +1586,6 @@ public class ActivityManageRule extends Activity
|
|||||||
newAction.setAction(Action_Enum.waitBeforeNextAction);
|
newAction.setAction(Action_Enum.waitBeforeNextAction);
|
||||||
getActionWaitBeforeNextActionDialog(ActivityManageRule.this).show();
|
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()))
|
else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.turnScreenOnOrOff.toString()))
|
||||||
{
|
{
|
||||||
newAction.setAction(Action_Enum.turnScreenOnOrOff);
|
newAction.setAction(Action_Enum.turnScreenOnOrOff);
|
||||||
@ -1604,7 +1597,6 @@ public class ActivityManageRule extends Activity
|
|||||||
getActionParameter1Dialog(ActivityManageRule.this).show();
|
getActionParameter1Dialog(ActivityManageRule.this).show();
|
||||||
if(Build.VERSION.SDK_INT >= 17)
|
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();
|
Miscellaneous.messageBox(getResources().getString(R.string.airplaneMode), getResources().getString(R.string.rootExplanation), ActivityManageRule.this).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -626,41 +626,35 @@ public class ActivityPermissions extends Activity
|
|||||||
break;
|
break;
|
||||||
case turnUsbTetheringOff:
|
case turnUsbTetheringOff:
|
||||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||||
// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
||||||
break;
|
break;
|
||||||
case turnUsbTetheringOn:
|
case turnUsbTetheringOn:
|
||||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||||
// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
||||||
break;
|
break;
|
||||||
case turnWifiOff:
|
case turnWifiOff:
|
||||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||||
// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
||||||
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
||||||
break;
|
break;
|
||||||
case turnWifiOn:
|
case turnWifiOn:
|
||||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||||
// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
||||||
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
||||||
break;
|
break;
|
||||||
case turnWifiTetheringOff:
|
case turnWifiTetheringOff:
|
||||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||||
// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
||||||
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
||||||
break;
|
break;
|
||||||
case turnWifiTetheringOn:
|
case turnWifiTetheringOn:
|
||||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||||
// addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
||||||
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
||||||
break;
|
break;
|
||||||
case waitBeforeNextAction:
|
case waitBeforeNextAction:
|
||||||
break;
|
break;
|
||||||
case wakeupDevice:
|
|
||||||
addToArrayListUnique(Manifest.permission.WAKE_LOCK, requiredPermissions);
|
|
||||||
break;
|
|
||||||
case playSound:
|
case playSound:
|
||||||
addToArrayListUnique(Manifest.permission.READ_EXTERNAL_STORAGE, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.READ_EXTERNAL_STORAGE, requiredPermissions);
|
||||||
break;
|
break;
|
||||||
case turnScreenOnOrOff:
|
case turnScreenOnOrOff:
|
||||||
|
if(action.getParameter1())
|
||||||
|
addToArrayListUnique(Manifest.permission.WAKE_LOCK, requiredPermissions);
|
||||||
|
else
|
||||||
addToArrayListUnique(Manifest.permission.BIND_DEVICE_ADMIN, requiredPermissions);
|
addToArrayListUnique(Manifest.permission.BIND_DEVICE_ADMIN, requiredPermissions);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -794,14 +788,6 @@ public class ActivityPermissions extends Activity
|
|||||||
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.wifiConnection))
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.wifiConnection))
|
||||||
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
||||||
break;
|
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:
|
case Manifest.permission.BLUETOOTH_ADMIN:
|
||||||
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.bluetoothConnection))
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.bluetoothConnection))
|
||||||
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
||||||
@ -981,7 +967,6 @@ public class ActivityPermissions extends Activity
|
|||||||
requiredPermissions.remove(s);
|
requiredPermissions.remove(s);
|
||||||
cachedPermissionsToRequest = requiredPermissions;
|
cachedPermissionsToRequest = requiredPermissions;
|
||||||
Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
|
Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
|
||||||
// intent.setData(Uri.parse("package:" + getPackageName()));
|
|
||||||
startActivityForResult(intent, requestCodeForPermissionsNotificationPolicy);
|
startActivityForResult(intent, requestCodeForPermissionsNotificationPolicy);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1031,8 +1016,6 @@ public class ActivityPermissions extends Activity
|
|||||||
if(requiredPermissions.contains(Manifest.permission.SEND_SMS))
|
if(requiredPermissions.contains(Manifest.permission.SEND_SMS))
|
||||||
{
|
{
|
||||||
if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS)
|
if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS)
|
||||||
// &&
|
|
||||||
// Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext())
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
requiredPermissions.remove(Manifest.permission.SEND_SMS);
|
requiredPermissions.remove(Manifest.permission.SEND_SMS);
|
||||||
@ -1049,11 +1032,8 @@ public class ActivityPermissions extends Activity
|
|||||||
|
|
||||||
Miscellaneous.logEvent("i", "Permissions", "Requesting permissions: " + permissions, 2);
|
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)
|
if(requiredPermissions.size() > 0)
|
||||||
requestPermissions(requiredPermissions.toArray(new String[requiredPermissions.size()]), requestCodeForPermissions);
|
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
|
else
|
||||||
setHaveAllPermissions();
|
setHaveAllPermissions();
|
||||||
@ -1071,17 +1051,11 @@ public class ActivityPermissions extends Activity
|
|||||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
|
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
|
||||||
{
|
{
|
||||||
Miscellaneous.logEvent("i", "onRequestPermissionsResult()", "onRequestPermissionsResult()", 3);
|
Miscellaneous.logEvent("i", "onRequestPermissionsResult()", "onRequestPermissionsResult()", 3);
|
||||||
// Toast.makeText(ActivityPermissions.this, "onRequestPermissionsResult()", Toast.LENGTH_LONG).show();
|
|
||||||
|
|
||||||
// ArrayList<String> disabledFeatures = new ArrayList<String>();
|
|
||||||
ArrayList<String> deniedPermissions = new ArrayList<String>();
|
ArrayList<String> deniedPermissions = new ArrayList<String>();
|
||||||
|
|
||||||
if (requestCode == requestCodeForPermissions)
|
if (requestCode == requestCodeForPermissions)
|
||||||
{
|
{
|
||||||
/*ArrayList<String> affectedGeneralList = new ArrayList<String>();
|
|
||||||
ArrayList<String> affectedTriggersList = new ArrayList<String>();
|
|
||||||
ArrayList<String> affectedActionList = new ArrayList<String>();*/
|
|
||||||
|
|
||||||
for (int i=0; i < grantResults.length; i++)
|
for (int i=0; i < grantResults.length; i++)
|
||||||
{
|
{
|
||||||
if(permissions[i].equalsIgnoreCase(Manifest.permission.WRITE_EXTERNAL_STORAGE) && grantResults[i] == PackageManager.PERMISSION_GRANTED)
|
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)
|
if(deniedPermissions.size() > 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
The user denied certain permissions. With the exception of write-storage we need to live with that
|
The user denied certain permissions. We need to live with that and simply disable
|
||||||
and simply disable features while keeping the notification alive. The user may dismiss it anyway.
|
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);
|
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.WRITE_SETTINGS);
|
||||||
mapActionPermissions.put("setWifiTethering", Manifest.permission.CHANGE_NETWORK_STATE);
|
mapActionPermissions.put("setWifiTethering", Manifest.permission.CHANGE_NETWORK_STATE);
|
||||||
mapActionPermissions.put("setWifiTethering", Manifest.permission.ACCESS_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);
|
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_ADMIN);
|
||||||
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.BLUETOOTH);
|
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.BLUETOOTH);
|
||||||
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.ACCESS_NETWORK_STATE);
|
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.ACCESS_NETWORK_STATE);
|
||||||
@ -1400,209 +1371,6 @@ public class ActivityPermissions extends Activity
|
|||||||
mapActionPermissions.put("wakeupDevice", Manifest.permission.WAKE_LOCK);
|
mapActionPermissions.put("wakeupDevice", Manifest.permission.WAKE_LOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
<string name="android.permission.SEND_SMS"></string>
|
|
||||||
<string name="android.permission.SEND_SMS_NO_CONFIRMATION"></string>
|
|
||||||
<string name="android.permission.RECEIVE_SMS"></string>
|
|
||||||
<string name="android.permission.RECEIVE_MMS"></string>
|
|
||||||
<string name="android.permission.RECEIVE_EMERGENCY_BROADCAST"></string>
|
|
||||||
<string name="android.permission.READ_CELL_BROADCASTS"></string>
|
|
||||||
<string name="android.permission.READ_SMS"></string>
|
|
||||||
<string name="android.permission.WRITE_SMS"></string>
|
|
||||||
<string name="android.permission.RECEIVE_WAP_PUSH"></string>
|
|
||||||
<string name="android.permission.READ_CONTACTS"></string>
|
|
||||||
<string name="android.permission.WRITE_CONTACTS"></string>
|
|
||||||
<string name="android.permission.BIND_DIRECTORY_SEARCH"></string>
|
|
||||||
<string name="android.permission.READ_CALL_LOG"></string>
|
|
||||||
<string name="android.permission.WRITE_CALL_LOG"></string>
|
|
||||||
<string name="android.permission.READ_SOCIAL_STREAM"></string>
|
|
||||||
<string name="android.permission.WRITE_SOCIAL_STREAM"></string>
|
|
||||||
<string name="android.permission.READ_PROFILE"></string>
|
|
||||||
<string name="android.permission.WRITE_PROFILE"></string>
|
|
||||||
<string name="android.permission.READ_CALENDAR"></string>
|
|
||||||
<string name="android.permission.WRITE_CALENDAR"></string>
|
|
||||||
<string name="android.permission.READ_USER_DICTIONARY"></string>
|
|
||||||
<string name="android.permission.WRITE_USER_DICTIONARY"></string>
|
|
||||||
<string name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"></string>
|
|
||||||
<string name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"></string>
|
|
||||||
<string name="com.android.alarm.permission.SET_ALARM"></string>
|
|
||||||
<string name="com.android.voicemail.permission.ADD_VOICEMAIL"></string>
|
|
||||||
<string name="android.permission.ACCESS_FINE_LOCATION"></string>
|
|
||||||
<string name="android.permission.ACCESS_COARSE_LOCATION"></string>
|
|
||||||
<string name="android.permission.ACCESS_MOCK_LOCATION"></string>
|
|
||||||
<string name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></string>
|
|
||||||
<string name="android.permission.INSTALL_LOCATION_PROVIDER"></string>
|
|
||||||
<string name="android.permission.INTERNET"></string>
|
|
||||||
<string name="android.permission.ACCESS_NETWORK_STATE"></string>
|
|
||||||
<string name="android.permission.ACCESS_WIFI_STATE"></string>
|
|
||||||
<string name="android.permission.CHANGE_WIFI_STATE"></string>
|
|
||||||
<string name="android.permission.ACCESS_WIMAX_STATE"></string>
|
|
||||||
<string name="android.permission.CHANGE_WIMAX_STATE"></string>
|
|
||||||
<string name="android.permission.BLUETOOTH"></string>
|
|
||||||
<string name="android.permission.BLUETOOTH_ADMIN"></string>
|
|
||||||
<string name="android.permission.BLUETOOTH_STACK"></string>
|
|
||||||
<string name="android.permission.NFC"></string>
|
|
||||||
<string name="android.permission.CONNECTIVITY_INTERNAL"></string>
|
|
||||||
<string name="android.permission.RECEIVE_DATA_ACTIVITY_CHANGE"></string>
|
|
||||||
<string name="android.permission.GET_ACCOUNTS"></string>
|
|
||||||
<string name="android.permission.AUTHENTICATE_ACCOUNTS"></string>
|
|
||||||
<string name="android.permission.USE_CREDENTIALS"></string>
|
|
||||||
<string name="android.permission.MANAGE_ACCOUNTS"></string>
|
|
||||||
<string name="android.permission.ACCOUNT_MANAGER"></string>
|
|
||||||
<string name="android.permission.CHANGE_WIFI_MULTICAST_STATE"></string>
|
|
||||||
<string name="android.permission.VIBRATE"></string>
|
|
||||||
<string name="android.permission.FLASHLIGHT"></string>
|
|
||||||
<string name="android.permission.WAKE_LOCK"></string>
|
|
||||||
<string name="android.permission.MODIFY_AUDIO_SETTINGS"></string>
|
|
||||||
<string name="android.permission.MANAGE_USB"></string>
|
|
||||||
<string name="android.permission.ACCESS_MTP"></string>
|
|
||||||
<string name="android.permission.HARDWARE_TEST"></string>
|
|
||||||
<string name="android.permission.NET_ADMIN"></string>
|
|
||||||
<string name="android.permission.REMOTE_AUDIO_PLAYBACK"></string>
|
|
||||||
<string name="android.permission.RECORD_AUDIO"></string>
|
|
||||||
<string name="android.permission.CAMERA"></string>
|
|
||||||
<string name="android.permission.PROCESS_OUTGOING_CALLS"></string>
|
|
||||||
<string name="android.permission.MODIFY_PHONE_STATE"></string>
|
|
||||||
<string name="android.permission.READ_PHONE_STATE"></string>
|
|
||||||
<string name="android.permission.READ_PRIVILEGED_PHONE_STATE"></string>
|
|
||||||
<string name="android.permission.CALL_PHONE"></string>
|
|
||||||
<string name="android.permission.USE_SIP"></string>
|
|
||||||
<string name="android.permission.READ_EXTERNAL_STORAGE"></string>
|
|
||||||
<string name="android.permission.WRITE_EXTERNAL_STORAGE"></string>
|
|
||||||
<string name="android.permission.WRITE_MEDIA_STORAGE"></string>
|
|
||||||
<string name="android.permission.DISABLE_KEYGUARD"></string>
|
|
||||||
<string name="android.permission.GET_TASKS"></string>
|
|
||||||
<string name="android.permission.INTERACT_ACROSS_USERS"></string>
|
|
||||||
<string name="android.permission.INTERACT_ACROSS_USERS_FULL"></string>
|
|
||||||
<string name="android.permission.MANAGE_USERS"></string>
|
|
||||||
<string name="android.permission.GET_DETAILED_TASKS"></string>
|
|
||||||
<string name="android.permission.REORDER_TASKS"></string>
|
|
||||||
<string name="android.permission.REMOVE_TASKS"></string>
|
|
||||||
<string name="android.permission.START_ANY_ACTIVITY"></string>
|
|
||||||
<string name="android.permission.RESTART_PACKAGES"></string>
|
|
||||||
<string name="android.permission.KILL_BACKGROUND_PROCESSES"></string>
|
|
||||||
<string name="android.permission.SYSTEM_ALERT_WINDOW"></string>
|
|
||||||
<string name="android.permission.SET_WALLPAPER"></string>
|
|
||||||
<string name="android.permission.SET_WALLPAPER_HINTS"></string>
|
|
||||||
<string name="android.permission.SET_TIME"></string>
|
|
||||||
<string name="android.permission.SET_TIME_ZONE"></string>
|
|
||||||
<string name="android.permission.EXPAND_STATUS_BAR"></string>
|
|
||||||
<string name="android.permission.READ_SYNC_SETTINGS"></string>
|
|
||||||
<string name="android.permission.WRITE_SYNC_SETTINGS"></string>
|
|
||||||
<string name="android.permission.READ_SYNC_STATS"></string>
|
|
||||||
<string name="android.permission.SET_SCREEN_COMPATIBILITY"></string>
|
|
||||||
<string name="android.permission.ACCESS_ALL_EXTERNAL_STORAGE"></string>
|
|
||||||
<string name="android.permission.CHANGE_CONFIGURATION"></string>
|
|
||||||
<string name="android.permission.WRITE_SETTINGS"></string>
|
|
||||||
<string name="android.permission.WRITE_GSERVICES"></string>
|
|
||||||
<string name="android.permission.SET_SCREEN_COMPATIBILITY"></string>
|
|
||||||
<string name="android.permission.CHANGE_CONFIGURATION"></string>
|
|
||||||
<string name="android.permission.FORCE_STOP_PACKAGES"></string>
|
|
||||||
<string name="android.permission.RETRIEVE_WINDOW_CONTENT"></string>
|
|
||||||
<string name="android.permission.SET_ANIMATION_SCALE"></string>
|
|
||||||
<string name="android.permission.PERSISTENT_ACTIVITY"></string>
|
|
||||||
<string name="android.permission.GET_PACKAGE_SIZE"></string>
|
|
||||||
<string name="android.permission.SET_PREFERRED_APPLICATIONS"></string>
|
|
||||||
<string name="android.permission.RECEIVE_BOOT_COMPLETED"></string>
|
|
||||||
<string name="android.permission.BROADCAST_STICKY"></string>
|
|
||||||
<string name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></string>
|
|
||||||
<string name="android.permission.MOUNT_FORMAT_FILESYSTEMS"></string>
|
|
||||||
<string name="android.permission.ASEC_ACCESS"></string>
|
|
||||||
<string name="android.permission.ASEC_CREATE"></string>
|
|
||||||
<string name="android.permission.ASEC_DESTROY"></string>
|
|
||||||
<string name="android.permission.ASEC_MOUNT_UNMOUNT"></string>
|
|
||||||
<string name="android.permission.ASEC_RENAME"></string>
|
|
||||||
<string name="android.permission.WRITE_APN_SETTINGS"></string>
|
|
||||||
<string name="android.permission.SUBSCRIBED_FEEDS_READ"></string>
|
|
||||||
<string name="android.permission.SUBSCRIBED_FEEDS_WRITE"></string>
|
|
||||||
<string name="android.permission.CHANGE_NETWORK_STATE"></string>
|
|
||||||
<string name="android.permission.CLEAR_APP_CACHE"></string>
|
|
||||||
<string name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK"></string>
|
|
||||||
<string name="android.permission.WRITE_SECURE_SETTINGS"></string>
|
|
||||||
<string name="android.permission.DUMP"></string>
|
|
||||||
<string name="android.permission.READ_LOGS"></string>
|
|
||||||
<string name="android.permission.SET_DEBUG_APP"></string>
|
|
||||||
<string name="android.permission.SET_PROCESS_LIMIT"></string>
|
|
||||||
<string name="android.permission.SET_ALWAYS_FINISH"></string>
|
|
||||||
<string name="android.permission.SIGNAL_PERSISTENT_PROCESSES"></string>
|
|
||||||
<string name="android.permission.DIAGNOSTIC"></string>
|
|
||||||
<string name="android.permission.STATUS_BAR"></string>
|
|
||||||
<string name="android.permission.STATUS_BAR_SERVICE"></string>
|
|
||||||
<string name="android.permission.FORCE_BACK"></string>
|
|
||||||
<string name="android.permission.UPDATE_DEVICE_STATS"></string>
|
|
||||||
<string name="android.permission.INTERNAL_SYSTEM_WINDOW"></string>
|
|
||||||
<string name="android.permission.MANAGE_APP_TOKENS"></string>
|
|
||||||
<string name="android.permission.FREEZE_SCREEN"></string>
|
|
||||||
<string name="android.permission.INJECT_EVENTS"></string>
|
|
||||||
<string name="android.permission.FILTER_EVENTS"></string>
|
|
||||||
<string name="android.permission.RETRIEVE_WINDOW_INFO"></string>
|
|
||||||
<string name="android.permission.TEMPORARY_ENABLE_ACCESSIBILITY"></string>
|
|
||||||
<string name="android.permission.MAGNIFY_DISPLAY"></string>
|
|
||||||
<string name="android.permission.SET_ACTIVITY_WATCHER"></string>
|
|
||||||
<string name="android.permission.SHUTDOWN"></string>
|
|
||||||
<string name="android.permission.STOP_APP_SWITCHES"></string>
|
|
||||||
<string name="android.permission.READ_INPUT_STATE"></string>
|
|
||||||
<string name="android.permission.BIND_INPUT_METHOD"></string>
|
|
||||||
<string name="android.permission.BIND_ACCESSIBILITY_SERVICE"></string>
|
|
||||||
<string name="android.permission.BIND_TEXT_SERVICE"></string>
|
|
||||||
<string name="android.permission.BIND_VPN_SERVICE"></string>
|
|
||||||
<string name="android.permission.BIND_WALLPAPER"></string>
|
|
||||||
<string name="android.permission.BIND_DEVICE_ADMIN"></string>
|
|
||||||
<string name="android.permission.SET_ORIENTATION"></string>
|
|
||||||
<string name="android.permission.SET_POINTER_SPEED"></string>
|
|
||||||
<string name="android.permission.SET_KEYBOARD_LAYOUT"></string>
|
|
||||||
<string name="android.permission.INSTALL_PACKAGES"></string>
|
|
||||||
<string name="android.permission.CLEAR_APP_USER_DATA"></string>
|
|
||||||
<string name="android.permission.DELETE_CACHE_FILES"></string>
|
|
||||||
<string name="android.permission.DELETE_PACKAGES"></string>
|
|
||||||
<string name="android.permission.MOVE_PACKAGE"></string>
|
|
||||||
<string name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"></string>
|
|
||||||
<string name="android.permission.GRANT_REVOKE_PERMISSIONS"></string>
|
|
||||||
<string name="android.permission.ACCESS_SURFACE_FLINGER"></string>
|
|
||||||
<string name="android.permission.READ_FRAME_BUFFER"></string>
|
|
||||||
<string name="android.permission.CONFIGURE_WIFI_DISPLAY"></string>
|
|
||||||
<string name="android.permission.CONTROL_WIFI_DISPLAY"></string>
|
|
||||||
<string name="android.permission.BRICK"></string>
|
|
||||||
<string name="android.permission.REBOOT"></string>
|
|
||||||
<string name="android.permission.DEVICE_POWER"></string>
|
|
||||||
<string name="android.permission.NET_TUNNELING"></string>
|
|
||||||
<string name="android.permission.FACTORY_TEST"></string>
|
|
||||||
<string name="android.permission.BROADCAST_PACKAGE_REMOVED"></string>
|
|
||||||
<string name="android.permission.BROADCAST_SMS"></string>
|
|
||||||
<string name="android.permission.BROADCAST_WAP_PUSH"></string>
|
|
||||||
<string name="android.permission.MASTER_CLEAR"></string>
|
|
||||||
<string name="android.permission.CALL_PRIVILEGED"></string>
|
|
||||||
<string name="android.permission.PERFORM_CDMA_PROVISIONING"></string>
|
|
||||||
<string name="android.permission.CONTROL_LOCATION_UPDATES"></string>
|
|
||||||
<string name="android.permission.ACCESS_CHECKIN_PROPERTIES"></string>
|
|
||||||
<string name="android.permission.PACKAGE_USAGE_STATS"></string>
|
|
||||||
<string name="android.permission.BATTERY_STATS"></string>
|
|
||||||
<string name="android.permission.BACKUP"></string>
|
|
||||||
<string name="android.permission.CONFIRM_FULL_BACKUP"></string>
|
|
||||||
<string name="android.permission.BIND_REMOTEVIEWS"></string>
|
|
||||||
<string name="android.permission.BIND_APPWIDGET"></string>
|
|
||||||
<string name="android.permission.BIND_KEYGUARD_APPWIDGET"></string>
|
|
||||||
<string name="android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS"></string>
|
|
||||||
<string name="android.permission.CHANGE_BACKGROUND_DATA_SETTING"></string>
|
|
||||||
<string name="android.permission.GLOBAL_SEARCH"></string>
|
|
||||||
<string name="android.permission.GLOBAL_SEARCH_CONTROL"></string>
|
|
||||||
<string name="android.permission.SET_WALLPAPER_COMPONENT"></string>
|
|
||||||
<string name="android.permission.READ_DREAM_STATE"></string>
|
|
||||||
<string name="android.permission.WRITE_DREAM_STATE"></string>
|
|
||||||
<string name="android.permission.ACCESS_CACHE_FILESYSTEM"></string>
|
|
||||||
<string name="android.permission.COPY_PROTECTED_DATA"></string>
|
|
||||||
<string name="android.permission.CRYPT_KEEPER"></string>
|
|
||||||
<string name="android.permission.READ_NETWORK_USAGE_HISTORY"></string>
|
|
||||||
<string name="android.permission.MANAGE_NETWORK_POLICY"></string>
|
|
||||||
<string name="android.permission.MODIFY_NETWORK_ACCOUNTING"></string>
|
|
||||||
<string name="android.intent.category.MASTER_CLEAR.permission.C2D_MESSAGE"></string>
|
|
||||||
<string name="android.permission.PACKAGE_VERIFICATION_AGENT"></string>
|
|
||||||
<string name="android.permission.BIND_PACKAGE_VERIFIER"></string>
|
|
||||||
<string name="android.permission.SERIAL_PORT"></string>
|
|
||||||
<string name="android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY"></string>
|
|
||||||
<string name="android.permission.UPDATE_LOCK"></string>
|
|
||||||
*/
|
|
||||||
|
|
||||||
public static boolean isPermissionDeclaratedInManifest(Context context, String permission)
|
public static boolean isPermissionDeclaratedInManifest(Context context, String permission)
|
||||||
{
|
{
|
||||||
PackageManager pm = context.getPackageManager();
|
PackageManager pm = context.getPackageManager();
|
||||||
@ -1621,12 +1389,11 @@ public class ActivityPermissions extends Activity
|
|||||||
ArrayList<String> requestedPermissionsArrayList = new ArrayList<String>();
|
ArrayList<String> requestedPermissionsArrayList = new ArrayList<String>();
|
||||||
requestedPermissionsArrayList.addAll(requestedPermissionsList);
|
requestedPermissionsArrayList.addAll(requestedPermissionsList);
|
||||||
return (requestedPermissionsArrayList.contains(permission));
|
return (requestedPermissionsArrayList.contains(permission));
|
||||||
// Log.i(ExConsts.TAG, ""+requestedPermissionsArrayList);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (PackageManager.NameNotFoundException e)
|
catch (PackageManager.NameNotFoundException e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
Miscellaneous.logEvent("w", "ActivityPermissions", Log.getStackTraceString(e), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -30,14 +30,14 @@ public class ActivityVolumeTest extends Activity
|
|||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_volume_test);
|
setContentView(R.layout.activity_volume_calibration);
|
||||||
|
|
||||||
tvCurrentVolume = (TextView)findViewById(R.id.tvCurrentVolume);
|
tvCurrentVolume = (TextView)findViewById(R.id.tvCurrentVolume);
|
||||||
etReferenceValue = (EditText)findViewById(R.id.etReferenceValue);
|
etReferenceValue = (EditText)findViewById(R.id.etReferenceValue);
|
||||||
sbReferenceValue = (SeekBar)findViewById(R.id.sbReferenceValue);
|
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));
|
etReferenceValue.setText(String.valueOf(Settings.referenceValueForNoiseLevelMeasurements));
|
||||||
|
|
||||||
|
@ -286,29 +286,28 @@ public class Trigger
|
|||||||
float currentPitch = DeviceOrientationListener.getInstance().getPitch();
|
float currentPitch = DeviceOrientationListener.getInstance().getPitch();
|
||||||
float currentRoll = DeviceOrientationListener.getInstance().getRoll();
|
float currentRoll = DeviceOrientationListener.getInstance().getRoll();
|
||||||
|
|
||||||
if(
|
if(desiredAzimuthTolerance < 180)
|
||||||
|
{
|
||||||
|
if (
|
||||||
!(
|
!(
|
||||||
desiredAzimuthTolerance < 180
|
|
||||||
&&
|
|
||||||
(
|
|
||||||
Math.abs(currentAzimuth) <= Math.abs(desiredAzimuth - desiredAzimuthTolerance)
|
Math.abs(currentAzimuth) <= Math.abs(desiredAzimuth - desiredAzimuthTolerance)
|
||||||
||
|
||
|
||||||
Math.abs(currentAzimuth) <= desiredAzimuth + desiredAzimuthTolerance
|
Math.abs(currentAzimuth) <= desiredAzimuth + desiredAzimuthTolerance
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
Miscellaneous.logEvent("i", "DeviceOrientation", "Azimuth outside of tolerance area.", 5);
|
Miscellaneous.logEvent("i", "DeviceOrientation", "Azimuth outside of tolerance area.", 5);
|
||||||
if(getTriggerParameter())
|
if (getTriggerParameter())
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(
|
if(desiredPitchTolerance < 180)
|
||||||
|
{
|
||||||
|
if (
|
||||||
!(
|
!(
|
||||||
desiredPitchTolerance < 180
|
|
||||||
&&
|
|
||||||
(
|
(
|
||||||
Math.abs(currentPitch) <= Math.abs(desiredPitch - desiredPitchTolerance)
|
Math.abs(currentPitch) <= Math.abs(desiredPitch - desiredPitchTolerance)
|
||||||
||
|
||
|
||||||
@ -318,16 +317,17 @@ public class Trigger
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
Miscellaneous.logEvent("i", "DeviceOrientation", "Pitch outside of tolerance area.", 5);
|
Miscellaneous.logEvent("i", "DeviceOrientation", "Pitch outside of tolerance area.", 5);
|
||||||
if(getTriggerParameter())
|
if (getTriggerParameter())
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(
|
if(desiredRollTolerance < 180)
|
||||||
|
{
|
||||||
|
if (
|
||||||
!(
|
!(
|
||||||
desiredRollTolerance < 180
|
|
||||||
&&
|
|
||||||
(
|
(
|
||||||
Math.abs(currentRoll) <= Math.abs(desiredRoll - desiredRollTolerance)
|
Math.abs(currentRoll) <= Math.abs(desiredRoll - desiredRollTolerance)
|
||||||
||
|
||
|
||||||
@ -337,11 +337,12 @@ public class Trigger
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
Miscellaneous.logEvent("i", "DeviceOrientation", "Roll outside of tolerance area.", 5);
|
Miscellaneous.logEvent("i", "DeviceOrientation", "Roll outside of tolerance area.", 5);
|
||||||
if(getTriggerParameter())
|
if (getTriggerParameter())
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(getTriggerParameter())
|
if(getTriggerParameter())
|
||||||
return true;
|
return true;
|
||||||
@ -493,7 +494,7 @@ public class Trigger
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean checkRoaming()
|
boolean checkRoaming()
|
||||||
|
@ -889,7 +889,7 @@ public class XmlFileInterface
|
|||||||
{
|
{
|
||||||
String triggerEventString = readTag(parser, "TriggerEvent");
|
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);
|
newTrigger.setTriggerType(Trigger_Enum.process_started_stopped);
|
||||||
else
|
else
|
||||||
newTrigger.setTriggerType(Trigger_Enum.valueOf(triggerEventString));
|
newTrigger.setTriggerType(Trigger_Enum.valueOf(triggerEventString));
|
||||||
@ -1152,6 +1152,13 @@ public class XmlFileInterface
|
|||||||
newAction.setAction(Action_Enum.enableScreenRotation);
|
newAction.setAction(Action_Enum.enableScreenRotation);
|
||||||
else if(actionNameString.equals("disableScreenRotation"))
|
else if(actionNameString.equals("disableScreenRotation"))
|
||||||
newAction.setAction(Action_Enum.disableScreenRotation);
|
newAction.setAction(Action_Enum.disableScreenRotation);
|
||||||
|
else if(actionNameString.equals("disableScreenRotation"))
|
||||||
|
newAction.setAction(Action_Enum.disableScreenRotation);
|
||||||
|
else if(actionNameString.equals("wakeupDevice"))
|
||||||
|
{
|
||||||
|
newAction.setAction(Action_Enum.turnScreenOnOrOff);
|
||||||
|
newAction.setParameter1(true);
|
||||||
|
}
|
||||||
// *** deprecated
|
// *** deprecated
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -1219,6 +1226,18 @@ public class XmlFileInterface
|
|||||||
newAction.setAction(Action_Enum.setDisplayRotation);
|
newAction.setAction(Action_Enum.setDisplayRotation);
|
||||||
newAction.setParameter1(false);
|
newAction.setParameter1(false);
|
||||||
readTag(parser, "ActionParameter1"); //read the tag for the parser to head on
|
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
|
else
|
||||||
// exclusion for deprecated types
|
// exclusion for deprecated types
|
||||||
@ -1241,7 +1260,6 @@ public class XmlFileInterface
|
|||||||
{
|
{
|
||||||
newAction.setParameter2(tag);
|
newAction.setParameter2(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
androidx.security.crypto.MasterKey.Builder
|
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;
|
return newAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,6 @@ public class PhoneStatusListener implements AutomationListenerInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
||||||
// ArrayList<Rule> ruleCandidates = Rule.findRuleCandidatesByPhoneCall(Trigger.triggerPhoneCallDirectionOutgoing);
|
|
||||||
for(int i=0; i<ruleCandidates.size(); i++)
|
for(int i=0; i<ruleCandidates.size(); i++)
|
||||||
{
|
{
|
||||||
AutomationService asInstance = AutomationService.getInstance();
|
AutomationService asInstance = AutomationService.getInstance();
|
||||||
@ -143,7 +142,6 @@ public class PhoneStatusListener implements AutomationListenerInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
||||||
// ArrayList<Rule> ruleCandidates = Rule.findRuleCandidatesByPhoneCall(Trigger.triggerPhoneCallDirectionIncoming);
|
|
||||||
for (int i = 0; i < ruleCandidates.size(); i++)
|
for (int i = 0; i < ruleCandidates.size(); i++)
|
||||||
{
|
{
|
||||||
AutomationService asInstance = AutomationService.getInstance();
|
AutomationService asInstance = AutomationService.getInstance();
|
||||||
@ -170,10 +168,6 @@ public class PhoneStatusListener implements AutomationListenerInterface
|
|||||||
*/
|
*/
|
||||||
setLastPhoneDirection(2);
|
setLastPhoneDirection(2);
|
||||||
|
|
||||||
// TelephonyManager tm = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
|
|
||||||
// int newState = tm.getCallState();
|
|
||||||
// setCurrentState(newState);
|
|
||||||
|
|
||||||
setCurrentState(TelephonyManager.CALL_STATE_RINGING);
|
setCurrentState(TelephonyManager.CALL_STATE_RINGING);
|
||||||
|
|
||||||
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
|
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);
|
Miscellaneous.logEvent("i", "Call state", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.outgoingCallTo), getLastPhoneNumber()), 4);
|
||||||
|
|
||||||
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
||||||
// ArrayList<Rule> ruleCandidates = Rule.findRuleCandidatesByPhoneCall(Trigger.triggerPhoneCallDirectionOutgoing);
|
|
||||||
for(int i=0; i<ruleCandidates.size(); i++)
|
for(int i=0; i<ruleCandidates.size(); i++)
|
||||||
{
|
{
|
||||||
AutomationService asInstance = AutomationService.getInstance();
|
AutomationService asInstance = AutomationService.getInstance();
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
android:layout_margin="@dimen/default_margin" >
|
android:layout_margin="@dimen/default_margin" >
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvVolumeTestExplanation"
|
android:id="@+id/tvVolumeCalibrationExplanation"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/volumeTesterExplanation"
|
android:text="@string/volumeCalibrationExplanation"
|
||||||
android:layout_marginBottom="20dp" />
|
android:layout_marginBottom="20dp" />
|
||||||
|
|
||||||
<TableLayout
|
<TableLayout
|
||||||
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvCurrentVolume"
|
android:id="@+id/tvCurrentVolume"
|
||||||
|
android:layout_marginLeft="@dimen/default_margin"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="0dB"
|
android:text="0dB"
|
||||||
@ -45,6 +46,7 @@
|
|||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/etReferenceValue"
|
android:id="@+id/etReferenceValue"
|
||||||
|
android:layout_marginLeft="@dimen/default_margin"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="5"
|
android:layout_weight="5"
|
@ -411,7 +411,7 @@
|
|||||||
<string name="currentVolume">Momentane Lautstärke</string>
|
<string name="currentVolume">Momentane Lautstärke</string>
|
||||||
<string name="enterValidReferenceValue">Geben Sie einen gültigen Referenzwert ein.</string>
|
<string name="enterValidReferenceValue">Geben Sie einen gültigen Referenzwert ein.</string>
|
||||||
<string name="volumeTest">Lautstärkekalibrierung</string>
|
<string name="volumeTest">Lautstärkekalibrierung</string>
|
||||||
<string name="volumeTesterExplanation">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.</string>
|
<string name="volumeCalibrationExplanation">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.</string>
|
||||||
<string name="settingsWillTakeTime">Manche Einstellungen können nicht übernommen werden bevor der Dienst neu gestartet wird.</string>
|
<string name="settingsWillTakeTime">Manche Einstellungen können nicht übernommen werden bevor der Dienst neu gestartet wird.</string>
|
||||||
<string name="rootExplanation">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.</string>
|
<string name="rootExplanation">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.</string>
|
||||||
<string name="errorWritingConfig">Fehler beim Schreiben der Konfiguration. Gibt es einen beschreibbaren Speicher, und wurde alle Berechtigungen gegeben?</string>
|
<string name="errorWritingConfig">Fehler beim Schreiben der Konfiguration. Gibt es einen beschreibbaren Speicher, und wurde alle Berechtigungen gegeben?</string>
|
||||||
|
@ -547,7 +547,7 @@
|
|||||||
<string name="permissionsExplanationSmall">Para activar la función que será usada, mas permisos son necesarios. Cliquee continuar para los requisitos.</string>
|
<string name="permissionsExplanationSmall">Para activar la función que será usada, mas permisos son necesarios. Cliquee continuar para los requisitos.</string>
|
||||||
<string name="storeSettings">Leer y guardar configuración.</string>
|
<string name="storeSettings">Leer y guardar configuración.</string>
|
||||||
<string name="featuresDisabled">CUIDADO: Funciones estan desactivadas, Automation esta en modo limitado. Cliquee aqui para mas informacion.</string>
|
<string name="featuresDisabled">CUIDADO: Funciones estan desactivadas, Automation esta en modo limitado. Cliquee aqui para mas informacion.</string>
|
||||||
<string name="volumeTesterExplanation">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.</string>
|
<string name="volumeCalibrationExplanation">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.</string>
|
||||||
<string name="systemSettingsNote1">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.</string>
|
<string name="systemSettingsNote1">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.</string>
|
||||||
<string name="systemSettingsNote2">Mas permisos serán requeridos en un segundo dialogo luego.</string>
|
<string name="systemSettingsNote2">Mas permisos serán requeridos en un segundo dialogo luego.</string>
|
||||||
<string name="appRequiresPermissiontoAccessExternalStorage">Automation necesita acceso al almacenamiento externo para leer su configuración y reglas.</string>
|
<string name="appRequiresPermissiontoAccessExternalStorage">Automation necesita acceso al almacenamiento externo para leer su configuración y reglas.</string>
|
||||||
|
@ -553,7 +553,7 @@
|
|||||||
<string name="volumeMusicVideoGameMedia">Multimedia (musica, video …)</string>
|
<string name="volumeMusicVideoGameMedia">Multimedia (musica, video …)</string>
|
||||||
<string name="volumeRingtoneNotifications">Toni e notifiche</string>
|
<string name="volumeRingtoneNotifications">Toni e notifiche</string>
|
||||||
<string name="volumeTest">Calibratura audio</string>
|
<string name="volumeTest">Calibratura audio</string>
|
||||||
<string name="volumeTesterExplanation">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.</string>
|
<string name="volumeCalibrationExplanation">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.</string>
|
||||||
<string name="volumes">Volumi</string>
|
<string name="volumes">Volumi</string>
|
||||||
<string name="waitBeforeNextAction">Attesa prima della azione successiva</string>
|
<string name="waitBeforeNextAction">Attesa prima della azione successiva</string>
|
||||||
<string name="waitBeforeNextActionEnterValue">Inserisci il valore della pausa tra tra un\'azione e la successiva (millisecondi).</string>
|
<string name="waitBeforeNextActionEnterValue">Inserisci il valore della pausa tra tra un\'azione e la successiva (millisecondi).</string>
|
||||||
|
@ -409,7 +409,7 @@
|
|||||||
<string name="currentVolume">Huidig volume</string>
|
<string name="currentVolume">Huidig volume</string>
|
||||||
<string name="enterValidReferenceValue">Voer een geldige referentiewaarde in.</string>
|
<string name="enterValidReferenceValue">Voer een geldige referentiewaarde in.</string>
|
||||||
<string name="volumeTest">Volume test</string>
|
<string name="volumeTest">Volume test</string>
|
||||||
<string name="volumeTesterExplanation">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.</string>
|
<string name="volumeCalibrationExplanation">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.</string>
|
||||||
<string name="settingsWillTakeTime">Sommige instellingen zullen niet worden toegepast voordat bepaalde omgevingsinstellingen worden gewijzigd of de service opnieuw wordt opgestart.</string>
|
<string name="settingsWillTakeTime">Sommige instellingen zullen niet worden toegepast voordat bepaalde omgevingsinstellingen worden gewijzigd of de service opnieuw wordt opgestart.</string>
|
||||||
<string name="rootExplanation">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.</string>
|
<string name="rootExplanation">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.</string>
|
||||||
<string name="errorWritingConfig">Fout bij het schrijven van de config. Heeft u een beschrijfbaar geheugen?</string>
|
<string name="errorWritingConfig">Fout bij het schrijven van de config. Heeft u een beschrijfbaar geheugen?</string>
|
||||||
|
@ -504,7 +504,7 @@
|
|||||||
<string name="currentVolume">Current volume</string>
|
<string name="currentVolume">Current volume</string>
|
||||||
<string name="enterValidReferenceValue">Enter a valid reference value.</string>
|
<string name="enterValidReferenceValue">Enter a valid reference value.</string>
|
||||||
<string name="volumeTest">Volume calibration</string>
|
<string name="volumeTest">Volume calibration</string>
|
||||||
<string name="volumeTesterExplanation">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.</string>
|
<string name="volumeCalibrationExplanation">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.</string>
|
||||||
<string name="settingsWillTakeTime">Some settings will not be applied before certain environment settings change or service is restarted.</string>
|
<string name="settingsWillTakeTime">Some settings will not be applied before certain environment settings change or service is restarted.</string>
|
||||||
<string name="phoneIsRooted" translatable="false">Phone is rooted.</string>
|
<string name="phoneIsRooted" translatable="false">Phone is rooted.</string>
|
||||||
<string name="phoneIsNotRooted" translatable="false">Phone is not rooted.</string>
|
<string name="phoneIsNotRooted" translatable="false">Phone is not rooted.</string>
|
||||||
|
58
fastlane/metadata/android/nl-NL/full_description.txt
Normal file
58
fastlane/metadata/android/nl-NL/full_description.txt
Normal file
@ -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
|
1
fastlane/metadata/android/nl-NL/short_description.txt
Normal file
1
fastlane/metadata/android/nl-NL/short_description.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
AUTOMATION : Automatiseer je taken met triggers en acties: ALS dit DAN dat..
|
Loading…
Reference in New Issue
Block a user