Start app changed

This commit is contained in:
jens 2021-05-09 14:42:24 +02:00
parent acc0f592d1
commit 1946fb6b9f
9 changed files with 154 additions and 605 deletions

View File

@ -608,20 +608,26 @@ public class Actions
{
// selected by action
Miscellaneous.logEvent("i", "StartOtherApp", "Starting app by action: " + param, 3);
externalActivityIntent = new Intent();
if(params.length > 1 && !params[1].contains("/"))
{
externalActivityIntent.setPackage(params[0]);
externalActivityIntent.setAction(params[1]);
paramsStartIndex = 2;
}
else
{
externalActivityIntent.setAction(params[0]);
paramsStartIndex = 1;
externalActivityIntent = new Intent(param);
externalActivityIntent.addCategory(Intent.CATEGORY_DEFAULT);
// Context c = autoMationServerRef.getApplicationContext();
// c.getApplicationContext()
// externalActivityIntent.setPackage("com.wireguard.android");//this did the trick actually
// if(externalActivityIntent.resolveActivity(autoMationServerRef.getPackageManager()) == null)
// Toast.makeText(context, "bad", Toast.LENGTH_LONG).show();
}
}
externalActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Pack intents
for (int i = paramsStartIndex = 2; i < params.length; i++)
for (int i = paramsStartIndex; i < params.length; i++)
{
String[] singleParam = params[i].split("/");

View File

@ -22,11 +22,11 @@ import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.jens.automation2.Action.Action_Enum;
@ -39,7 +39,7 @@ import java.util.List;
public class ActivityManageActionStartActivity extends Activity
{
ListView lvIntentPairs;
EditText etParameterName, etParameterValue, etSelectedActivity;
EditText etParameterName, etParameterValue, etPackageName, etActivityOrActionPath;
Button bSelectApp, bAddIntentPair, bSaveActionStartOtherActivity;
Spinner spinnerParameterType;
boolean edit = false;
@ -269,7 +269,7 @@ public class ActivityManageActionStartActivity extends Activity
public void onClick(DialogInterface dialog, int which)
{
ActivityInfo ai = ActivityManageActionStartActivity.getActivityInfoForPackageNameAndActivityName(packageName, activityArray[which]);
etSelectedActivity.setText(ai.packageName + ";" + ai.name);
etActivityOrActionPath.setText(ai.packageName + ";" + ai.name);
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
@ -290,7 +290,8 @@ public class ActivityManageActionStartActivity extends Activity
bAddIntentPair = (Button)findViewById(R.id.bAddIntentPair);
bSaveActionStartOtherActivity = (Button)findViewById(R.id.bSaveActionStartOtherActivity);
spinnerParameterType = (Spinner)findViewById(R.id.spinnerParameterType);
etSelectedActivity = (EditText) findViewById(R.id.etSelectedApplication);
etPackageName = (EditText) findViewById(R.id.etPackageName);
etActivityOrActionPath = (EditText) findViewById(R.id.etActivityOrActionPath);
rbStartAppSelectByActivity = (RadioButton)findViewById(R.id.rbStartAppSelectByActivity);
rbStartAppSelectByAction = (RadioButton)findViewById(R.id.rbStartAppSelectByAction);
@ -401,6 +402,26 @@ public class ActivityManageActionStartActivity extends Activity
}
});
rbStartAppSelectByActivity.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if(isChecked)
bSelectApp.setEnabled(isChecked);
}
});
rbStartAppSelectByAction.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if(isChecked)
bSelectApp.setEnabled(!isChecked);
}
});
Intent i = getIntent();
if(i.getBooleanExtra("edit", false) == true)
{
@ -417,17 +438,30 @@ public class ActivityManageActionStartActivity extends Activity
String[] params = resultingAction.getParameter2().split(";");
if(selectionByActivity)
etSelectedActivity.setText(params[0] + ";" + params[1]);
else
etSelectedActivity.setText(params[0]);
int startIndex = -1;
if(selectionByActivity && params.length >= 2)
if(selectionByActivity)
{
etPackageName.setText(params[0]);
etActivityOrActionPath.setText(params[1]);
if(params.length >= 2)
startIndex = 2;
else if(!selectionByActivity && params.length >= 1)
}
else
{
if(params[1].contains("/"))
{
etActivityOrActionPath.setText(params[0]);
startIndex = 1;
}
else
{
etPackageName.setText(params[0]);
etActivityOrActionPath.setText(params[1]);
startIndex = 2;
}
}
if(startIndex > -1 && params.length > startIndex)
{
@ -455,27 +489,27 @@ public class ActivityManageActionStartActivity extends Activity
private boolean saveAction()
{
if(etSelectedActivity.getText().toString().length() == 0)
if(rbStartAppSelectByActivity.isChecked())
{
if (etPackageName.getText().toString().length() == 0)
{
Toast.makeText(ActivityManageActionStartActivity.this, getResources().getString(R.string.enterPackageName), Toast.LENGTH_LONG).show();
return false;
}
else if (etActivityOrActionPath.getText().toString().length() == 0)
{
Toast.makeText(ActivityManageActionStartActivity.this, getResources().getString(R.string.selectApplication), Toast.LENGTH_LONG).show();
return false;
}
// else
// {
// Intent testIntent = new Intent(ActivityManageActionStartActivity.this, etSelectedActivity);
// Intent externalActivityIntent = new Intent(Intent.ACTION_MAIN);
// externalActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// externalActivityIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// externalActivityIntent.setClassName(packageName, className);
//
// boolean activityExists = externalActivityIntent.resolveActivityInfo(getPackageManager(), 0) != null;
// }
if(etSelectedActivity.getText().toString().equals(getResources().getString(R.string.selectApplication)))
}
else
{
Toast.makeText(this, getResources().getString(R.string.selectApplication), Toast.LENGTH_LONG).show();
if(etActivityOrActionPath.getText().toString().contains(";"))
{
Toast.makeText(this, getResources().getString(R.string.enterValidAction), Toast.LENGTH_LONG).show();
return false;
}
}
if(resultingAction == null)
resultingAction = new Action();
@ -486,10 +520,15 @@ public class ActivityManageActionStartActivity extends Activity
String parameter2;
// if(etSelectedActivity.getText().toString().contains(";"))
parameter2 = etSelectedActivity.getText().toString();
// else
// parameter2 = "dummyPkg;" + etSelectedActivity.getText().toString();
if(rbStartAppSelectByActivity.isChecked())
parameter2 = etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
else
{
if(etPackageName.getText().toString() != null && etPackageName.getText().toString().length() > 0)
parameter2 = etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
else
parameter2 = etActivityOrActionPath.getText().toString();
}
for(String s : intentPairList)
parameter2 += ";" + s;

View File

@ -258,7 +258,7 @@ public class ActivityManageTriggerNotification extends Activity
bSaveTriggerNotification = (Button)findViewById(R.id.bSaveTriggerNotification);
spinnerTitleDirection = (Spinner)findViewById(R.id.spinnerTitleDirection);
spinnerTextDirection = (Spinner)findViewById(R.id.spinnerTextDirection);
tvSelectedApplication = (TextView)findViewById(R.id.etSelectedApplication);
tvSelectedApplication = (TextView)findViewById(R.id.etActivityOrActionPath);
chkNotificationDirection = (CheckBox)findViewById(R.id.chkNotificationDirection);
directions = new String[] {

View File

@ -31,6 +31,19 @@
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_span="2"
android:inputType="textMultiLine"
android:text="@string/startAppChoiceNote" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
@ -73,32 +86,28 @@
android:layout_height="wrap_content"
android:text="@string/selectApplication" />
<EditText
android:id="@+id/etSelectedApplication"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@+id/etPackageName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium" />
</TableRow>
<TableRow
<EditText
android:id="@+id/etActivityOrActionPath"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_margin="10dp"
android:background="#aa000000"
android:visibility="invisible" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:text="@string/startAppChoiceNote" />
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</TableRow>

View File

@ -17,7 +17,7 @@
android:background="@color/barBackgroundColor" >
<TextView
android:id="@+id/etSelectedApplication"
android:id="@+id/etActivityOrActionPath"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/general"

View File

@ -59,7 +59,7 @@
android:layout_height="wrap_content">
<TextView
android:id="@+id/etSelectedApplication"
android:id="@+id/etActivityOrActionPath"
android:layout_marginHorizontal="@dimen/default_margin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -257,7 +257,7 @@
<string name="anotherPoiByThatName">Es gibt bereits einen Ort mit diesem Namen.</string>
<string name="anotherRuleByThatName">Es gibt bereits eine Regel mit diesem Namen.</string>
<string name="startOtherActivity">Programm starten</string>
<string name="selectApplication">Wählen Sie eine Anwendung</string>
<string name="selectApplication">Wählen Sie\neine Anwendung</string>
<string name="selectPackageOfApplication">Wählen Sie ein Paket der Anwendung</string>
<string name="selectActivityToBeStarted">Wählen Sie die Activity des Pakets</string>
<string name="errorStartingOtherActivity">Fehler beim Starten einer anderen Anwendung</string>
@ -636,6 +636,10 @@
<string name="ruleActivationComplete">Regel \"%1$s\" wurde fertig ausgeführt.</string>
<string name="addParameters">Parameter hinzufügen</string>
<string name="errorRunningRule">Fehler beim Ausführen einer Regel.</string>
<string name="startAppChoiceNote">Sie können den Pfad einer Aktivität manuell eingeben, aber es wird stark empfohlen den \"Auswählen\" Knopf zu verwenden. Wenn Sie etwas manuell eingeben, behalten Sie bitte im Hinterkopf, daß keine Variablen aufgelöst werden. D.h., wenn Sie z.B. die Kamera starten wollen, indem Sie \"MediaStore.ACTION_IMAGE_CAPTURE\" verwenden, wird das nicht verwenden. Wenn Sie in der Android Dokumentation schauen, werden Sie sehen, daß sich dahinter eigentlich der Wert \"android.media.action.IMAGE_CAPTURE\" verbirgt, der hier direkt eingegeben werden müßte.</string>
<string name="startAppChoiceNote">Hier haben Sie 2 grundsätzliche Optionen:\n\n1. Sie können ein Programm starten, indem Sie eine Activity auswählen.\nStellen Sie sich das so vor, daß Sie ein bestimmtes Fenster einer Anwendung vorauswählen, in das man direkt springt. Behalten Sie im Kopf, daß das nicht immer funktionieren wird. Das liegt daran, daß die Fenster einer Anwendung miteinander interagieren können, sich u.U. Parameter übergeben. Wenn man jetzt ganz kalt in ein bestimmtes Fenster springt, könnte dieses zum Start z.B. bestimmte Parameter erwarten - die fehlen. So könnte es passieren, daß das Fenster zwar versucht zu öffnen, das aber nicht klappt und es somit nie wirlich sichtbar wird. Versuchen Sie\'s trotzdem!\nSie können den Pfad manuell eingeben, sollten aber den Auswählen-Knopf benutzen. Wenn Sie es dennoch manuell eingeben, geben Sie den PackageName ins obere Feld ein und den vollen Pfad der Activity ins untere.\n\n2. Auswahl per Action\nIm Gegensatz zur Auswahl eines bestimmten Fensters, können Sie ein Programm auch über eine Action starten lassen. Stellen Sie sich das so vor als würden Sie in den Wald rufen \"Ich hätte gerne XYZ\" und falls eine Anwendung installiert ist, die das liefern kann, wird sie gestartet. Ein gutes Beispiel wäre zum Beispiel "Browser starten" - es könnten sogar mehrere installiert sein, die das können (aber normalerweise gibts eine, die als Standard eingestellt ist).\nDiese Action müssen Sie manuell eingeben. Der PackageName ist hier optional. Behalten Sie dabei im Auge, daß mögliche Variablen nicht aufgelöst werden. Beispielsweise werden Sie häufig im Internet finden, daß man die Kamera über die Action \"MediaStore.ACTION_IMAGE_CAPTURE\" starten kann. Das ist grundsätzlich nicht richtig, wird aber nicht direkt funktionieren, denn das ist nur eine Variable. Sie müssen dann einen Blick in die Android Dokumentation werfen, wo Sie sehen werden, daß sich hinter dieser Variable eigentlich der Wert \"android.media.action.IMAGE_CAPTURE\" verbirgt. Gibt man diesen in das Feld ein, wird\'s funktionieren.</string>
<string name="cantFindSoundFile">Kann die Audiodatei %1$s nicht finden und daher auch nicht abspielen.</string>
<string name="startAppByActivity">per Activity</string>
<string name="startAppByAction">per Action</string>
<string name="startAppSelectionType">Auswahlmethode</string>
<string name="com.wireguard.android.permission.CONTROL_TUNNELS">Tunnelverbindungen der Wireguard Anwendung steuern</string>
</resources>

View File

@ -29,549 +29,38 @@
<string name="no">No</string>
<string name="logGotGpsUpdate">He recibido una posición de GPS. Precisión:</string>
<string name="logGotNetworkUpdate">He recibido una posición de network. Precisión:</string>
<string name="pleaseEnterValidLatitude">Please enter a valid latitude.</string>
<string name="pleaseEnterValidLongitude">Please enter a valid longitude.</string>
<string name="pleaseEnterValidRadius">Please enter a valid positive radius.</string>
<string name="selectOneDay">Select at least one day.</string>
<string name="logAttemptingToBindToService">Attempting to bind to service... </string>
<string name="logAttemptingToUnbindFromService">Attempting to unbind from service... </string>
<string name="logBoundToService">Bound to service.</string>
<string name="logUnboundFromService">Unbound from service.</string>
<string name="logServiceAlreadyRunning">Request to start service, but it is already running.</string>
<string name="whatToDoWithRule">Do what with rule?</string>
<string name="whatToDoWithPoi">Do what with location?</string>
<string name="whatToDoWithProfile">Do what with profile?</string>
<string name="delete">delete</string>
<string name="deleteCapital">Delete</string>
<string name="serviceStopped">Automation service stopped.</string>
<string name="logServiceStopping">Stopping service.</string>
<string name="stillGettingPosition">Still getting position</string>
<string name="lastRule">Last Rule:</string>
<string name="at">at</string>
<string name="service">Service:</string>
<string name="getCurrentPosition">Get current location</string>
<string name="savePoi">Save location</string>
<string name="deletePoi">Delete location</string>
<string name="latitude">Latitude</string>
<string name="longitude">Longitude</string>
<string name="ruleName">Rule name</string>
<string name="triggers">Trigger(s)</string>
<string name="triggersComment">and-connected (all have to apply at the same time)</string>
<string name="addTrigger">Add trigger</string>
<string name="actions">Action(s)</string>
<string name="actionsComment">(will be executed in that order)</string>
<string name="addAction">Add action</string>
<string name="saveRule">Save Rule</string>
<string name="monday">Monday</string>
<string name="tuesday">Tuesday</string>
<string name="wednesday">Wednesday</string>
<string name="thursday">Thursday</string>
<string name="friday">Friday</string>
<string name="saturday">Saturday</string>
<string name="sunday">Sunday</string>
<string name="start">Start</string>
<string name="end">End</string>
<string name="save">Save</string>
<string name="urlToTrigger">URL to trigger:</string>
<string name="urlLegend">Variables:\nYou can use the following variables. Upon triggering they will be replaced with the corresponding value on your device. Include the brackets in your text.\n\n[uniqueid] - Your device\'s unique id\n[serialnr] - Your device\'s serial number\n[latitude] - Your device\'s latitude\n[longitude] - Your device\'s longitude\n[phonenr] - Number of last incoming or outgoing call\n[d] - Day of the month, 2 digits with leading zeros\n[m] - Numeric representation of a month, with leading zeros\n[Y] - A full numeric representation of a year, 4 digits\n[h] - 12-hour format of an hour with leading zeros\n[H] - 24-hour format of an hour with leading zeros\n[i] - Minutes with leading zeros\n[s] - Seconds, with leading zeros\n[ms] - milliseconds</string>
<string name="wifi">wifi</string>
<string name="activating">Activating</string>
<string name="deactivating">Deactivating</string>
<string name="bluetoothFailed">Failed to trigger Bluetooth. Does this device have Bluetooth?</string>
<string name="urlTooShort">The url has to have least 10 characters.</string>
<string name="textTooShort">The text has to have least 10 characters.</string>
<string name="selectTypeOfTrigger">Select type of trigger</string>
<string name="entering">entering</string>
<string name="leaving">leaving</string>
<string name="noPoisSpecified">You haven\'t specified any locations. Do that first.</string>
<string name="started">started</string>
<string name="stopped">stopped</string>
<string name="connected">connected</string>
<string name="disconnected">disconnected</string>
<string name="selectPoi">Select location</string>
<string name="selectTypeOfAction">Select type of action</string>
<string name="selectSoundProfile">Select sound profile</string>
<string name="whatToDoWithTrigger">What to do with it trigger?</string>
<string name="whatToDoWithAction">What to do with it action?</string>
<string name="radiusHasToBePositive">Radius has to be a positive number.</string>
<string name="poiStillReferenced">There are still rules that reference this location (%1$s). I can\'t delete it, yet.</string>
<string name="generalSettings">General settings</string>
<string name="startAtSystemBoot">Start at system boot</string>
<string name="onOff">On/Off</string>
<string name="writeLogFile">Write log file</string>
<string name="useTextToSpeechOnNormalSummary">Use TextToSpeech on normal</string>
<string name="useTextToSpeechOnVibrateSummary">Use TextToSpeech on vibrate</string>
<string name="useTextToSpeechOnSilentSummary">Use TextToSpeech on silent</string>
<string name="useTextToSpeechOnNormalTitle">TTS on normal</string>
<string name="useTextToSpeechOnVibrateTitle">TTS on vibrate</string>
<string name="useTextToSpeechOnSilentTitle">TTS on silent</string>
<string name="positioningSettings">Positioning settings</string>
<string name="listenToWifiState">Listen to wifi state changes where possible</string>
<string name="wifiState">Wifi state</string>
<string name="listenToAccelerometerState">Observe device movement where wifi is not available</string>
<string name="accelerometer">Accelerometer</string>
<string name="accelerometerTimer">Use Accelerometer after x minutes without cell mast change</string>
<string name="cellMastIdleTime">Cell mast idle time</string>
<string name="accelerometerThresholdDescription">Threshold for accelerometer movements</string>
<string name="accelerometerThreshold">Accelerometer threshold</string>
<string name="positioningThresholds">Positioning thresholds</string>
<string name="minimumDistanceChangeForGpsLocationUpdates">Minimum distance change for gps location updates</string>
<string name="distanceForGpsUpdate">Distance for gps update [m]</string>
<string name="minimumDistanceChangeForNetworkLocationUpdates">Minimum distance change for network location updates</string>
<string name="distanceForNetworkUpdate">Distance for network update [m]</string>
<string name="satisfactoryAccuracyGps">Satisfactory accuracy when getting location via gps in meters</string>
<string name="gpsAccuracy">GPS accuracy [m]</string>
<string name="satisfactoryAccuracyNetwork">Satisfactory accuracy when getting location via cell towers in meters</string>
<string name="networkAccuracy">Network accuracy [m]</string>
<string name="minimumTimeForLocationUpdates">Minimum time change in seconds for location updates</string>
<string name="timeForUpdate">Time for update [milliseconds]</string>
<string name="soundSettings">Sound settings</string>
<string name="showHelp">Show help</string>
<string name="rules">Rules</string>
<string name="helpTextRules">All triggers in a rule are AND-connected. The rule will only apply if all triggers are met. If you want OR create another rule.</string>
<string name="timeframes">TimeFrames</string>
<string name="helpTextTimeFrame">If you specify a rule with a timeframe you have two choices. You can choose between entering and leaving a timeframe. Either way an action is triggered only once.\nSo if you create a rule that has \"entering timeframe xyz\" as trigger and let it change your sound profile to vibrate that does not mean that the phone will automatically go to ring if the timeframe is over. If you want that you need to specify another rule with another timeframe.</string>
<string name="toggableRules">Toggable rules</string>
<string name="helpTextToggable">Rules have a flag called \"Toggable\". This means that if a rule is executed and afterwards the same triggers apply again the rule will be executed in an opposite mode where applicable. Currently this will only happen in conjunction with NFC tags. If you tap them twice and there\'s a toggable rule associated with it it will do the opposite of the current situation, e.g. deactivate wifi if it\'s currently activated.</string>
<string name="helpTextProcessMonitoring">If you specify a rule with a process monitor the application will check for that process every x seconds (you can change that in settings). I know that can be kind of slow, but continuous monitoring would drain the battery to fast. And there is no broadcast from the OS for that event.</string>
<string name="speedMaximumTimeBetweenLocations">Maximum time between 2 locations for speed determination.</string>
<string name="speedMaximumTime">Time in minutes</string>
<string name="exceeds">exceeds</string>
<string name="dropsBelow">drops below</string>
<string name="settingsCategoryNoiseLevelMeasurements">Noise level measurement</string>
<string name="timeBetweenNoiseLevelMeasurementsSummary">Seconds between noise level measurements</string>
<string name="timeBetweenNoiseLevelMeasurementsTitle">Seconds between noise level measurements</string>
<string name="lengthOfNoiseLevelMeasurementsSummary">Length in seconds for each noise level measurement</string>
<string name="lengthOfNoiseLevelMeasurementsTitle">Length of each noise level measurement</string>
<string name="referenceValueForNoiseLevelMeasurementsSummary">Physical reference value for noise level measurement</string>
<string name="referenceValueForNoiseLevelMeasurementsTitle">Reference for noise measurement</string>
<string name="logLevelSummary">Log level (1=minimum, 5=maximum)</string>
<string name="logLevelTitle">Log level</string>
<string name="ruleActive">Rule active</string>
<string name="triggerPointOfInterest">Location</string>
<string name="triggerTimeFrame">Timeframe</string>
<string name="triggerCharging">Battery charging</string>
<string name="triggerUsb_host_connection">USB connection to a computer</string>
<string name="triggerSpeed">Speed</string>
<string name="triggerNoiseLevel">Background noise level</string>
<string name="actionSetWifi">Wifi</string>
<string name="actionSetBluetooth">Bluetooth</string>
<string name="actionSetUsbTethering">USB Tethering</string>
<string name="actionSetWifiTethering">Wifi Tethering</string>
<string name="actionSetDisplayRotation">Display rotation</string>
<string name="actionTurnWifiOn">turn Wifi on</string>
<string name="actionTurnWifiOff">turn Wifi off</string>
<string name="actionTurnBluetoothOn">turn Bluetooth on</string>
<string name="actionTurnBluetoothOff">turn Bluetooth off</string>
<string name="actionTriggerUrl">Trigger a URL</string>
<string name="actionChangeSoundProfile">Change sound profile</string>
<string name="actionTurnUsbTetheringOn">turn USB Tethering on</string>
<string name="actionTurnUsbTetheringOff">turn USB Tethering off</string>
<string name="actionTurnWifiTetheringOn">turn Wifi Tethering on</string>
<string name="actionTurnWifiTetheringOff">turn Wifi Tethering off</string>
<string name="actionTurnAirplaneModeOn">turn airplane mode on</string>
<string name="actionTurnAirplaneModeOff">turn airplane mode off</string>
<string name="actionEnableScreenRotation">enable screen rotation</string>
<string name="actionDisableScreenRotation">disable screen rotation</string>
<string name="screenRotationEnabled">ScreenRotation enabled.</string>
<string name="screenRotationDisabled">ScreenRotation disabled.</string>
<string name="screenRotationAlreadyEnabled">ScreenRotation was already enabled.</string>
<string name="screenRotationAlreadyDisabled">ScreenRotation was already disabled.</string>
<string name="noPoisDefinedShort">No locations defined.</string>
<string name="activePoi">Active location:</string>
<string name="closestPoi">Closest location:</string>
<string name="overview">Overview</string>
<string name="poi">Location</string>
<string name="pois">Locations</string>
<string name="helpTextPoi">A location is made up of GPS coordinates and a radius. Since positioning via cell towers is rather unprecise (but fast and cheap) do not specify the radius too small. The application will suggest you a minimum radius when you create a new location.</string>
<string name="serviceNotRunning">Service is not running.</string>
<string name="general">General</string>
<string name="generalText">To use this program you must setup rules. Those contain triggers, e.g. if you reach a specified area or you enter a certain time. After that\'s been done click the on/off button on the main screen.</string>
<string name="unknownActionSpecified">Unknown action specified</string>
<string name="errorTriggeringUrl">Error triggering URL</string>
<string name="errorChangingScreenRotation">Error changing screen rotation</string>
<string name="errorDeterminingWifiApState">Error determining wifiAp state</string>
<string name="errorActivatingWifiAp">Error activating wifiAp</string>
<string name="failedToTriggerBluetooth">Failed to trigger Bluetooth. Does this device have Bluetooth?</string>
<string name="logAttemptingDownloadOf">attempting download of</string>
<string name="logErrorGettingConnectionManagerService">Error getting connectionManager service. Not doing anything to UsbTethering.</string>
<string name="logErrorDeterminingCurrentUsbTetheringState">Error determining current UsbTethering state.</string>
<string name="logDetectingTetherableUsbInterface">Detecting tetherable usb interface.</string>
<string name="logClearingBothLocationListeners">Clearing both location listeners.</string>
<string name="logStartingServiceAfterAppUpdate">Starting service after app update.</string>
<string name="logNotStartingServiceAfterAppUpdate">Not starting service after app update.</string>
<string name="logStartingServiceAtPhoneBoot">Starting service at phone boot.</string>
<string name="logNotStartingServiceAtPhoneBoot">Not starting service at phone boot.</string>
<string name="applicationHasBeenUpdated">Application has been updated.</string>
<string name="startServiceAfterAppUpdate">Start service automatically after app update if it has been running before.</string>
<string name="startServiceAfterAppUpdateShort">Start service after update</string>
<string name="wifiConnection">Wifi connection</string>
<string name="wifiName">Wifi name</string>
<string name="enterWifiName">Enter a wifi name. Leave empty for any wifi.</string>
<string name="cancel">Cancel</string>
<string name="ruleDoesntApplyWeAreSlowerThan">Rule doesn\'t apply. We are slower than</string>
<string name="ruleDoesntApplyWeAreFasterThan">Rule doesn\'t apply. We are faster than</string>
<string name="ruleDoesntApplyItsQuieterThan">Rule doesn\'t apply. It\'s quieter than</string>
<string name="ruleDoesntApplyItsLouderThan">Rule doesn\'t apply. It\'s louder than</string>
<string name="ruleDoesntApplyBatteryLowerThan">Rule doesn\'t apply. Battery level is lower than</string>
<string name="ruleDoesntApplyBatteryHigherThan">Rule doesn\'t apply. Battery level is higher than</string>
<string name="ruleDoesntApplyNotTheCorrectSsid">Rule doesn\'t apply. Not the correct SSID (demanded: \"%1$s\", given: \"%2$s\").</string>
<string name="ruleDoesntApplyNoTagLabel">Rule doesn\'t apply. There is no tag label or not tag at all.</string>
<string name="ruleDoesntApplyWrongTagLabel">Rule doesn\'t apply. Wrong tag label.</string>
<string name="ruleIsDeactivatedCantApply">Rule %1$s is deactivated, can\'t apply.</string>
<string name="starting">starting</string>
<string name="stopping">stopping</string>
<string name="connecting">connecting</string>
<string name="disconnecting">disconnecting</string>
<string name="exceeding">exceeding</string>
<string name="droppingBelow">dropping below</string>
<string name="connectedToWifi">connected to wifi \"%1$s\"</string>
<string name="disconnectedFromWifi">disconnected from wifi \"%1$s\"</string>
<string name="anyWifi">any wifi</string>
<string name="cantStopIt">Can\'t stop it.</string>
<string name="settingsCategoryHttp">HTTP(s) Requests</string>
<string name="httpAcceptAllCertificatesTitle">Accept all certificates</string>
<string name="httpAcceptAllCertificatesSummary">Skip validity check of SSL certificates (recommended against activating this)</string>
<string name="httpAttemptsSummary">Number of attempts in case HTTP requests fail for connectivity reasons</string>
<string name="httpAttemptsTitle">Number of HTTP attempts</string>
<string name="httpAttemptsTimeoutSummary">Timeout for HTTP requests [seconds]</string>
<string name="httpAttemptsTimeoutTitle">Timeout [sec]</string>
<string name="httpAttemptGapSummary">Pause before another attempt [seconds]</string>
<string name="httpAttemptGapTitle">Pause [sec]</string>
<string name="runManually">Run manually</string>
<string name="serviceHasToRunForThat">The service has to be running for that.</string>
<string name="gpsComparison">GPS comparison</string>
<string name="gpsComparisonTimeoutStop">Stopping comparison GPS measurement due to timeout.</string>
<string name="timeoutForGpsComparisonsTitle">GPS timeout [sec]</string>
<string name="timeoutForGpsComparisonsSummary">Maximum time in seconds to trying getting a GPS location for comparison. If over last known location will be applied.</string>
<string name="startingGpsTimeout">Starting GPS timeout.</string>
<string name="forcedLocationUpdate">Forced location update</string>
<string name="forcedLocationUpdateLong">Due to timeout in comparison measurement the last best location will be applied.</string>
<string name="rememberLastActivePoiSummary">If you are at a location, restart your device or the application and leave the location the application will run rules accociated to leaving the location upon its next start.</string>
<string name="rememberLastActivePoiTitle">Remember last active location</string>
<string name="muteTextToSpeechDuringCallsTitle">Mute during calls</string>
<string name="muteTextToSpeechDuringCallsSummary">Mute TextToSpeech during calls</string>
<string name="anotherPoiByThatName">There is already another location by that name.</string>
<string name="anotherRuleByThatName">There is already another rule by that name.</string>
<string name="startOtherActivity">Start another program</string>
<string name="selectApplication">Select app</string>
<string name="selectPackageOfApplication">Select package of application</string>
<string name="selectActivityToBeStarted">Select activity of chosen package</string>
<string name="errorStartingOtherActivity">Error starting other activity</string>
<string name="anotherAppIsRunning">Another app is started/stopped</string>
<string name="settingsCategoryProcessMonitoring">Process monitoring</string>
<string name="timeBetweenProcessMonitoringsTitle">Seconds between process monitorings</string>
<string name="timeBetweenProcessMonitoringsSummary">The lower the higher the battery usage</string>
<string name="refreshingProcessList">Refreshing process list.</string>
<string name="processes">Processes</string>
<string name="startingPeriodicProcessMonitoringEngine">Starting periodic process monitoring engine.</string>
<string name="processMonitoring">Process monitoring</string>
<string name="periodicProcessMonitoringIsAlreadyRunning">Periodic process monitoring is already running. Won\'t start it again.</string>
<string name="stoppingPeriodicProcessMonitoringEngine">Stopping periodic process monitoring engine.</string>
<string name="periodicProcessMonitoringIsNotActive">Periodic process monitoring is not active. Can\'t stop it.</string>
<string name="periodicProcessMonitoringStarted">Periodic process monitoring started.</string>
<string name="periodicProcessMonitoringStopped">Periodic process monitoring stopped.</string>
<string name="rearmingProcessMonitoringMessage">Rearming process monitoring message.</string>
<string name="notRearmingProcessMonitoringMessageStopRequested">Not rearming process monitoring message, stop requested.</string>
<string name="messageReceivedStatingProcessMonitoringIsComplete">Message received stating process monitoring is complete.</string>
<string name="appStarted">App started.</string>
<string name="appStopped">App stopped.</string>
<string name="runningApp">Running app</string>
<string name="errorWritingSettingsToPersistentMemory">Error writing settings to persistent memory.</string>
<string name="settings">Settings</string>
<string name="writingSettingsToPersistentMemory">Writing settings to persistent memory.</string>
<string name="refreshingSettingsFromFileToMemory">Refreshing settings from file to memory.</string>
<string name="errorReadingSettings">Error reading settings.</string>
<string name="invalidStuffStoredInSettingsErasing">Invalid stuff stored in settings. Erasing settings...</string>
<string name="initializingSettingsToPersistentMemory">Initializing settings to persistent memory.</string>
<string name="errorInitializingSettingsToPersistentMemory">Error initializing settings to persistent memory.</string>
<string name="settingsErased">Settings erased.</string>
<string name="settingsSetToDefault">Settings set to default.</string>
<string name="batteryLevel">Battery level</string>
<string name="selectSpeed">Select speed</string>
<string name="selectBattery">Select battery level</string>
<string name="applyingSettingsAndRules">Applying settings, rules and locations.</string>
<string name="privacy">Privacy Policy</string>
<string name="privacyConfirmationText">A browser will now open on your device and load the privacy policy from the developer\'s website.</string>
<string name="waitBeforeNextAction">Wait before next action</string>
<string name="wakeupDevice">Wakeup device</string>
<string name="waitBeforeNextActionEnterValue">Enter a value in milliseconds how long it should be waited before next action.</string>
<string name="wakeupDeviceValue">Enter a value in milliseconds how long device should at least stay awake. 0 for default values.</string>
<string name="enterAPositiveValidNonDecimalNumber">Enter a positive valid non-decimal number.</string>
<string name="moveUp">Move up</string>
<string name="moveDown">Move down</string>
<string name="cantMoveUp">Can\'t move item up. It is already at the top.</string>
<string name="cantMoveDown">Can\'t move item down. It is already at the bottom.</string>
<string name="wifiNameSpecifiedCheckingThat">Wifi name specified, checking that.</string>
<string name="wifiNameMatchesRuleWillApply">Wifi name matches. Rule will apply.</string>
<string name="noWifiNameSpecifiedAnyWillDo">No wifi name specified, any will do.</string>
<string name="ruleCheckOf">RuleCheck of %1$s</string>
<string name="airplaneMode">Airplane mode</string>
<string name="activate">Activate</string>
<string name="deactivate">Deactivate</string>
<string name="airplaneModeSdk17Warning">Beginning from Android version 4.2 this feature only works if your device is rooted.</string>
<string name="triggerUrlReplacementPositionError">You asked for a position to be added to your URL. Unfortunately at this point I do not have any location, yet.</string>
<string name="addIntentValue">Add Intent pair</string>
<string name="parameterName">Parameter name</string>
<string name="parameterValue">Parameter value</string>
<string name="parameterType">Parameter type</string>
<string name="selectTypeOfIntentPair">Select a type for the intent pair.</string>
<string name="enterNameForIntentPair">Enter a name for the intent pair.</string>
<string name="enterValueForIntentPair">Enter a value for the intent pair.</string>
<string name="whatToDoWithIntentPair">What to do with pair?</string>
<string name="gettingListOfInstalledApplications">Getting list of installed applications...</string>
<string name="timeFrameWhichDays">On which days?</string>
<string name="insideOrOutsideTimeFrames">Inside or outside those timeframes?</string>
<string name="selectToggleDirection">Switch on or off?</string>
<string name="name">Name</string>
<string name="radiusWithUnit">Radius [m]</string>
<string name="status">Status</string>
<string name="actionDataConnection">Data connection</string>
<string name="actionSetDataConnectionOn">turn mobile data on</string>
<string name="actionSetDataConnectionOff">turn mobile data off</string>
<string name="roaming">Roaming</string>
<string name="activated">activated</string>
<string name="deactivated">deactivated</string>
<string name="until">until</string>
<string name="application">Application</string>
<string name="is">is</string>
<string name="phoneCall">Phone call</string>
<string name="with">with</string>
<string name="phoneNumber">Phone number</string>
<string name="enterPhoneNumber">Enter phone number. Leave empty for any number.</string>
<string name="phoneDirection">Select call direction</string>
<string name="any">any</string>
<string name="incoming">incoming</string>
<string name="outgoing">outgoing</string>
<string name="incomingAdjective">incoming</string>
<string name="outgoingAdjective">outgoing</string>
<string name="anyNumber">any number</string>
<string name="number">number</string>
<string name="nfcTag">NFC tag</string>
<string name="closeTo">close to</string>
<string name="withLabel">with label</string>
<string name="deviceDoesNotHaveNfc">It appears this device does not have NFC.</string>
<string name="nfcReadTag">Read ID from tag</string>
<string name="nfcWriteTag">Write tag</string>
<string name="nfcEnterValidIdentifier">Enter a valid identifier for the tag (like \"Home front door\").</string>
<string name="nfcTagWrittenSuccessfully">Tag written successfully.</string>
<string name="nfcTagWriteError">Error writing tag. Is it in range?</string>
<string name="nfcTagDiscovered">Tag discovered.</string>
<string name="nfcBringTagIntoRange">Bring an NFC tag into range.</string>
<string name="nfcTagFoundWithText">Tag found with text:</string>
<string name="nfcUnsupportedEncoding">Unsupported Encoding:</string>
<string name="nfcNoNdefIntentBut">No NFC NDEF intent, but</string>
<string name="nfcNotSupportedInThisAndroidVersionYet">NFC not supported in this Android version, yet.</string>
<string name="cantRunRule">Cannot run rules.</string>
<string name="cantDownloadTooFewRequestsInSettings">Can\'t download anything. Amount of http requests in settings is lower than 1.</string>
<string name="nfcApplyTagToRule">Apply tag to rule</string>
<string name="nfcTagReadSuccessfully">Tag read successfully.</string>
<string name="nfcValueNotSuitable">Value stored not suitable.</string>
<string name="nfcNoTag">No tag present.</string>
<string name="newNfcId">Write new NFC ID</string>
<string name="useExistingTag">Use existing NFC tag</string>
<string name="newId">New ID:</string>
<string name="currentId">Current ID:</string>
<string name="nfcTagDataNotUsable">Tag data no usable, write anew.</string>
<string name="nfcBringTagIntoRangeToRead">Bring a tag into range to read.</string>
<string name="toggleRule">Toggle rule</string>
<string name="toggling">Toggling</string>
<string name="toggle">toggle</string>
<string name="overlapBetweenPois">Overlap detected to location %1$s of %2$s meters. Reduce radius by at least that.</string>
<string name="noOverLap">No overlap to other locations detected.</string>
<string name="ruleToggable">Rule %1$s is toggable.</string>
<string name="ruleNotToggable">Rule %1$s is not suitable for toggling.</string>
<string name="none">none</string>
<string name="anyLocation">any location</string>
<string name="invalidPoiName">Invalid name for location.</string>
<string name="eraseSettings">Erase settings</string>
<string name="defaultSettings">Default settings</string>
<string name="areYouSure">Are you sure?</string>
<string name="poiCouldBeInRange">At least location %1$s could be in range, if not others in addition.</string>
<string name="noPoiInRelevantRange">No location in relevant range.</string>
<string name="activityDetection">Activity detection</string>
<string name="detectedActivity">Detected activity:</string>
<string name="detectedActivityInVehicle">In vehicle (car/bus)</string>
<string name="detectedActivityOnBicycle">On bicycle</string>
<string name="detectedActivityOnFoot">On foot</string>
<string name="detectedActivityStill">Still</string>
<string name="detectedActivityUnknown">Unknown</string>
<string name="detectedActivityTilting">Tilting</string>
<string name="detectedActivityWalking">Walking</string>
<string name="detectedActivityRunning">Running</string>
<string name="detectedActivityInvalidStatus">Invalid activity</string>
<string name="ruleDoesntApplyActivityGivenButTooLowProbability">Rule doesn\'t apply. Detected activity %1$s given, but too low probability (%2$s %%), required %3$s %%.</string>
<string name="ruleDoesntApplyActivityNotPresent">Rule doesn\'t apply. Required activity %1$s not present.</string>
<string name="selectTypeOfActivity">Select type of activity</string>
<string name="triggerOnlyAvailableIfPlayServicesInstalled">This trigger is only available if Google Play Services is installed.</string>
<string name="activityDetectionFrequencyTitle">Activity detection frequency [sec]</string>
<string name="activityDetectionFrequencySummary">Seconds between attempts to detect activity.</string>
<string name="activityDetectionRequiredProbabilityTitle">Activity detection probability</string>
<string name="activityDetectionRequiredProbabilitySummary">Certainty from which activities are accepted as fact.</string>
<string name="incomingCallFrom">Incoming telephone call from %1$s.</string>
<string name="outgoingCallFrom">Outgoing telephone call to %1$s.</string>
<string name="actionSpeakText">Speak text</string>
<string name="textToSpeak">Text to speak</string>
<string name="toggleNotAllowed">Toggling is currently only allowed for rules that have NFC tags as trigger. See help for further information.</string>
<string name="errorReadingPoisAndRulesFromFile">Error reading locations and rules from file.</string>
<string name="noDataChangedReadingAnyway">It appears no data change has been saved. However there may have been changes in memory that need to be rolled back. Rereading file.</string>
<string name="bluetoothConnection">Bluetooth connection</string>
<string name="bluetoothConnectionTo">Bluetooth connection to %1$s</string>
<string name="bluetoothDisconnectFrom">Bluetooth connection to %1$s torn</string>
<string name="bluetoothDeviceInRange">Bluetooth device %1$s in range.</string>
<string name="bluetoothDeviceOutOfRange">Bluetooth device %1$s out of range.</string>
<string name="anyDevice">any device</string>
<string name="ruleDoesntApplyNotTheCorrectDeviceName">Rule doesn\'t apply. Not the correct bluetooth device name.</string>
<string name="ruleDoesntApplyNotTheCorrectDeviceAddress">Rule doesn\'t apply. Not the correct bluetooth device address.</string>
<string name="noDevice">no device</string>
<string name="selectDeviceFromList">one from list</string>
<string name="connectionToDevice">connection to device</string>
<string name="disconnectionFromDevice">disconnection from device</string>
<string name="deviceInRange">device in range</string>
<string name="deviceOutOfRange">device out of range</string>
<string name="selectDeviceOption">Select a device option.</string>
<string name="selectConnectionOption">Select a connection option.</string>
<string name="ruleDoesntApplyDeviceInRangeButShouldNotBe">Rule doesn\'t apply. Device is in range, but should not be.</string>
<string name="ruleDoesntApplyStateNotCorrect">Rule doesn\'t apply. Wrong state.</string>
<string name="triggerHeadsetPlugged">Headset connection</string>
<string name="actionPlayMusic">Open music player</string>
<string name="headsetConnected">Headset (type: %1$s) connected</string>
<string name="headsetDisconnected">Headset (type: %1$s) disconnected</string>
<string name="headphoneSimple">Headphone</string>
<string name="headphoneMicrophone">Microphone</string>
<string name="headphoneAny">Either</string>
<string name="headphoneSelectType">Select type of headphone</string>
<string name="ruleDoesntApplyWrongHeadphoneType">Rule doesn\'t apply. Wrong headphone type.</string>
<string name="ignoringActivityDetectionUpdateTooSoon">Ignoring activity detection update. Came in sooner that %1$s seconds.</string>
<string name="whatsThis">What\'s this?</string>
<string name="atLeastRuleXisUsingY">At least rule \"%1$s\" is using a trigger of type \"%2$s\".</string>
<string name="privacyLocationingTitle">Only private locationing</string>
<string name="monday">Lunes</string>
<string name="tuesday">Martes</string>
<string name="wednesday">Miercoles</string>
<string name="thursday">Jueves</string>
<string name="friday">Viernes</string>
<string name="saturday">Sabado</string>
<string name="headphoneMicrophone">Microfóno</string>
<string name="whatsThis">Que es eso?</string>
<string name="privacyLocationingTitle">Solo usar localización privada</string>
<string name="privacyLocationingSummary">Avoid locationing methods that may send your location to a provider, e.g. Google. This will use GPS only and may therefore be slow or not work reliably.</string>
<string name="enforcingGps">Private Locationing enabled, enforcing GPS use.</string>
<string name="notEnforcingGps">Private Locationing not enabled, using regular provider search.</string>
<string name="gpsMeasurement">GPS measurement</string>
<string name="gpsMeasurementTimeout">GPS measurement stopped due to timeout.</string>
<string name="cellMastChanged">Cell mast changed: %1$s</string>
<string name="noiseDetectionHint">If you think the noise detection isn\'t working correctly (depending on the value you specify) please keep in mind that every phone is different. You can therefore change \"Reference for noise measurement\" in settings. See http://en.wikipedia.org/wiki/Decibel for more information. You can use the volume tester from the main screen to calibrate your device.</string>
<string name="hint">Hint</string>
<string name="selectNoiseLevel">Select noise level</string>
<string name="poiHasWifiStoppingCellLocationListener">Location has wifi. Stopping CellLocationListener.</string>
<string name="poiHasNoWifiNotStoppingCellLocationListener">Location doesn\'t have wifi. Not stopping CellLocationListener.</string>
<string name="showOnMap">Show on map</string>
<string name="noMapsApplicationFound">No maps application found on your device.</string>
<string name="locationEngineNotActive">Location engine not active.</string>
<string name="addProfile">Add profile</string>
<string name="profileList">Profiles</string>
<string name="profile">Profile</string>
<string name="soundMode">Sound mode</string>
<string name="volumes">Volumes</string>
<string name="incomingCallsRingtone">Tone for incoming calls</string>
<string name="notificationRingtone">Tone for notifications</string>
<string name="hapticFeedback">Haptic feedback (vibrate when touching screen)</string>
<string name="volumeMusicVideoGameMedia">Music, video, game and other media</string>
<string name="volumeRingtoneNotifications">Ringtone and notifications</string>
<string name="volumeAlarms">Alarms</string>
<string name="change">Change</string>
<string name="audibleSelection">Audible selection (sound when making screen selection)</string>
<string name="screenLockUnlockSound">Screen lock/unlock sound</string>
<string name="vibrateWhenRinging">Vibrate when ringing</string>
<string name="profiles">Profiles</string>
<string name="volumeAlarms">Alarmas</string>
<string name="change">modificar</string>
<string name="soundModeNormal">Normal</string>
<string name="soundModeVibrate">Vibrate</string>
<string name="soundModeSilent">Silent</string>
<string name="soundModeVibrate">Vibración</string>
<string name="soundModeSilent">Silencio</string>
<string name="enterAname">Enter a name!</string>
<string name="noChangeSelectedProfileDoesntMakeSense">No change selected. Profile doesn\'t make sense.</string>
<string name="noProfilesCreateOneFirst">There are no profiles in your configuration. Create one first.</string>
<string name="errorActivatingProfile">Error activating profile:</string>
<string name="anotherProfileByThatName">There is already another profile by that name.</string>
<string name="invalidProfileName">Invalid name for profile.</string>
<string name="errorWritingFile">Error writing settings file.</string>
<string name="unknownError">Unknown error.</string>
<string name="noWritableFolderFound">No writable folder found to store config file.</string>
<string name="usbTetheringFailForAboveGingerbread">This will most likely not work as you\'re above Android 2.3. However you could use wifi tethering instead.</string>
<string name="usingNewThreadForRuleExecution">Using new thread for rule activation.</string>
<string name="startNewThreadForRuleExecution">Start new thread for rule activation.</string>
<string name="newThreadRules">New thread</string>
<string name="showIcon">Show icon</string>
<string name="showIconWhenServiceIsRunning">Show icon when service is running (works only below Android 7)</string>
<string name="ruleHistory">Rule history (most recent first):</string>
<string name="someOptionsNotAvailableYet">Some options are disabled as they cannot be used, yet. They will be introduced in a later program version.</string>
<string name="lockSoundChanges">Lock sound changes</string>
<string name="noProfileChangeSoundLocked">Profile will not be activated. Last activated profile was locked.</string>
<string name="currentVolume">Current volume</string>
<string name="enterValidReferenceValue">Enter a valid reference value.</string>
<string name="volumeTest">Volume test</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="settingsWillTakeTime">Some settings will not be applied before certain environment settings change or service is restarted.</string>
<string name="phoneIsRooted">Phone is rooted.</string>
<string name="phoneIsNotRooted">Phone is not rooted.</string>
<string name="dataConWithRootSuccess">Data connection was successfully changed using superuser permissions.</string>
<string name="dataConWithRootFail">Data could not be changed using superuser permissions.</string>
<string name="rootExplanation">You need to root your phone for this function to work. Afterwards you needs to \"run the rule manually\" to show up the superuser permission question. When the superuser popups shows up you need to always allow the application to do that. Otherwise the rule cannot function when the phone is unattended.</string>
<string name="errorWritingConfig">Error writing config. Do you have a writable memory?</string>
<string name="phoneNrReplacementError">I could not insert the last phone nr in the variable. I don\'t have it.</string>
<string name="username">Username</string>
<string name="password">Password</string>
<string name="useAuthentication">Use authentication</string>
<string name="permissionsTitle">Required permissions</string>
<string name="permissionsExplanation">Explanation of required permissions</string>
<string name="username">Nombre de usuario</string>
<string name="ok">Ok</string>
<string name="disabledFeatures">Disabled features</string>
<string name="theFollowingPermissionsHaveBeenDenied">The following permissions have been denied:</string>
<string name="permissionsExplanationGeneric">The app is current running in limited mode and has deactivated some features. To fully function it requires permissions. If you want to use all functionality you have to grant the permissions in the following rights dialogues. If you do not certain rules can not be executed. In the following you are given an explanation for the requested permissions. Click "continue", when you are ready to proceed.</string>
<string name="permissionsExplanationSmall">To enable the feature you just tried to use more permissions are required. Click continue to request them.</string>
<string name="continueText">continue</string>
<string name="rule">Rule</string>
<string name="storeSettings">Read and store settings</string>
<string name="featuresDisabled">: Features are disabled, Automation is running in limited mode. Click here for more information.</string>
<string name="ruleLegend">Green = enabled, red = disabled, yellow = not enough permissions</string>
<string name="systemSettingsNote1">The permission to change some OS settings is required (even simple stuff like turn on bluetooth or wifi). After clicking "continue" a window will popup where you need to enable this for Automation. Then hit your "back" key.</string>
<string name="systemSettingsNote2">Further permissions will be requested in a second dialog afterwards.</string>
<string name="appRequiresPermissiontoAccessExternalStorage">Automation requires access to external storage to read its settings and rules.</string>
<string name="mainScreenPermissionNote">Automation requires more permissions to fully function. Click on this text to find out more and request them.</string>
<string name="invalidDevice">Invalid device</string>
<string name="google_app_id">your app id</string>
<string name="logFileMaxSizeSummary">Maximum log file size in Megabyte. Will be rotated if bigger.</string>
<string name="logFileMaxSizeTitle">Maximum log file size [Mb]</string>
<string name="android.permission.READ_CALL_LOG">Read phone log</string>
<string name="android.permission.READ_CALENDAR">Read calendar entries</string>
<string name="android.permission.ACCESS_FINE_LOCATION">Read exact location</string>
<string name="android.permission.ACCESS_COARSE_LOCATION">Read coarse location</string>
<string name="readLocation">Read location</string>
<string name="android.permission.INTERNET">Send data over a network connection</string>
<string name="android.permission.ACCESS_NETWORK_STATE">Read device\'s network state</string>
<string name="android.permission.ACCESS_WIFI_STATE">Read device\'s wifi state</string>
<string name="android.permission.BLUETOOTH">Change Bluetooth settings</string>
<string name="android.permission.BLUETOOTH_ADMIN">Change Bluetooth settings</string>
<string name="android.permission.NFC">Use NFC module</string>
<string name="android.permission.VIBRATE">Let phone vibrate</string>
<string name="android.permission.WAKE_LOCK">Keep phone on</string>
<string name="android.permission.MODIFY_AUDIO_SETTINGS">Change audio settings</string>
<string name="android.permission.RECORD_AUDIO">Record audio</string>
<string name="android.permission.PROCESS_OUTGOING_CALLS">Detect outgoing calls</string>
<string name="android.permission.MODIFY_PHONE_STATE">Change device settings</string>
<string name="android.permission.READ_PHONE_STATE">Detect phone state</string>
<string name="android.permission.READ_EXTERNAL_STORAGE">Read storage</string>
<string name="android.permission.WRITE_EXTERNAL_STORAGE">Write storage</string>
<string name="android.permission.GET_TASKS">Detect running processes</string>
<string name="android.permission.WRITE_SETTINGS">Change device settings</string>
<string name="android.permission.RECEIVE_BOOT_COMPLETED">Detect device reboot</string>
<string name="android.permission.WRITE_SECURE_SETTINGS">Change device settings</string>
<string name="android.permission.BATTERY_STATS">Read battery state</string>
<string name="android.permission.CHANGE_BACKGROUND_DATA_SETTING">Change data connection</string>
<string name="android.permission.SEND_SMS">Send text messages</string>
<string name="continueText">continuar</string>
<string name="rule">Regla</string>
<string name="android.permission.SEND_SMS">Enviar mensajes SMS</string>
<string name="android.permission.READ_CONTACTS">Read contact data</string>
<string name="android.permission.ACCESS_NOTIFICATION_POLICY">Override do not disturb policy</string>
<string name="theseAreThePermissionsRequired">These are the permissions required:</string>
<string name="ruleXrequiresThis">Rule \"%1$s\" requires this.</string>
<string name="helpTextActivityDetection">This feature can detect if you\'re currently on the go and if it is on foot or in which type of vehicle (to a certain extent). The feature is not fully built into Automation, but is provided by Google Play Services. Technically it does not give a yes/no result, but return a percentage to which level it is sure it detected you\'re status. You can setup the percentage value from which Automation will accept a result. Two remarks: 1) More than 1 status could occur at the same time. For example you might be WALKING inside a driving bus. 2) This sensor is relative cost intensive. If it is possible you might consider using alternatives, e.g. require your car\'s handsfree device to be connected to detect you\'re driving.</string>
<string name="sendTextMessage">Send text message</string>
<string name="textToSend">Text to send</string>
<string name="textMessageAnnotations">You can directly enter a phone number. Alternatively use the contacts option to pick one. But keep in mind: The number will be stored here, not the contact. If you change the phone number of a selected contact you\'ll need to update this rule. It doesn\'t do that by itself.</string>
<string name="ruleXrequiresThis">Regla \"%1$s\" requires this.</string>
<string name="sendTextMessage">Enviar mensaje SMS</string>
<string name="importNumberFromContacts">Import number from contacts</string>
<string name="android9RecordAudioNotice">If you\'re using the noise level trigger: Unfortunately beginning with Android 9 (Pie) Google decided to disallow background applications to use the microphone. So this trigger has no effect anymore and won\'t trigger anything.</string>
<string name="messageNotShownAgain">This message won\'t be shown again.</string>
<string name="chooseActivityHint">In this final selection popup you need to select a specific activity. Simplified this is like a window of the desired application. If you do not know which one it is generally a good idea to pick one that has \"main\" or \"launcher\" in its name.</string>
<string name="edit">Edit</string>
<string name="clickAndHoldForOptions">Klicken und halten Sie ein Objekt für Optionen.</string>
<string name="textToSend">Texto de enviar</string>
<string name="password">Contraseña</string>
<string name="showOnMap">Monstrar en una mapa</string>
<string name="headphoneAny">Igual</string>
<string name="sunday">Domingo</string>
</resources>

View File

@ -635,7 +635,7 @@
<string name="noFileManageInstalled">No file manager installed.</string>
<string name="shareConfigAndLogFilesWithDev">Share config and log files with developer (via email).</string>
<string name="shareConfigAndLogExplanation">This will start a new email with your config and log files attached as zip file. It will not be sent automatically, you still need to hit \"send\". You can also change the recipient to yourself for example.</string>
<string name="startAppChoiceNote">You can enter an activity path manually, but it\'s recommended to use the \"Select\" button. If you choose to enter something manually keep in mind no variables will be resolved. If you want to start the camera for example \"MediaStore.ACTION_IMAGE_CAPTURE\" will not work. You have to look at the Android documentation and use its value instead which would be \"android.media.action.IMAGE_CAPTURE\".</string>
<string name="startAppChoiceNote">Here you have 2 general options:\n\n1. You can start a program by selecting an activity.\nImagine this like preselecting a specific screen/window of an application. Keep in mind this may not always work. This is because the windows of an app might interact with each other, e.g. pass on parameters. When bluntly starting a specific screen that interaction has not happened and the window might close instantly (therefore it\'s never really shown). Try it nevertheless!\nYou can enter an activity path manually, but it\'s recommended to use the \"Select\" button. If you decide to enter it manually enter the app\'s package name in the upper field and the full path of the activity in the lower one.\n\n2. Selection by action\nIn contrast to selecting a specific window you can also start a program by an action. This is like shouting out \"I\'d would like xyz\" and if there\'s an app installed that can help you with that it will be started. A good example would be start browser - you might even have multiple installed (one is usually the default one).\nYou need to enter this manually, PackageName is optional here. Keep in mind no variables will be resolved. If you want to start the camera for example using \"MediaStore.ACTION_IMAGE_CAPTURE\" will not work. You have to take a look at the Android documentation and use this variable\'s actual value instead which in this example would be \"android.media.action.IMAGE_CAPTURE\".</string>
<string name="errorRunningRule">There was an error running a rule.</string>
<string name="cantFindSoundFile">Cannot find sound file %1$s and therefore not play it.</string>
<string name="addParameters">Add parameters</string>
@ -643,4 +643,6 @@
<string name="startAppSelectionType">Method to\nselect application</string>
<string name="startAppByActivity">by activity</string>
<string name="startAppByAction">by action</string>
<string name="enterValidAction">Enter a valid action</string>
<string name="enterPackageName">Enter a valid package name.</string>
</resources>