Compare commits
11 Commits
v1.7.5
...
965bf55811
Author | SHA1 | Date | |
---|---|---|---|
965bf55811 | |||
13fd4c2aae | |||
195a60cfe0 | |||
76563eb89b | |||
7733d57435 | |||
481e4d1896 | |||
5af59e1754 | |||
619f348a28 | |||
9bf353ea3a | |||
af90b566c8 | |||
0e51c577d5 |
@ -373,6 +373,7 @@ public class Rule implements Comparable<Rule>
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Miscellaneous.logEvent("i", String.format(context.getResources().getString(R.string.ruleCheckOf), this.getName()), String.format("Rule %1$s generally applies currently. Checking if it's really due, yet will be done separately.", this.getName()), 3);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,8 @@ public class Action
|
|||||||
public static final String intentPairSeparator = "intPairSplit";
|
public static final String intentPairSeparator = "intPairSplit";
|
||||||
public static final String vibrateSeparator = ",";
|
public static final String vibrateSeparator = ",";
|
||||||
|
|
||||||
public enum Action_Enum {
|
public enum Action_Enum
|
||||||
|
{
|
||||||
setWifi,
|
setWifi,
|
||||||
setBluetooth,
|
setBluetooth,
|
||||||
setUsbTethering,
|
setUsbTethering,
|
||||||
|
@ -529,6 +529,10 @@ public class ActivityManageRule extends Activity
|
|||||||
items.add(new Item(typesLong[i].toString(), R.drawable.sound));
|
items.add(new Item(typesLong[i].toString(), R.drawable.sound));
|
||||||
else if(types[i].toString().equals(Trigger_Enum.screenState.toString()))
|
else if(types[i].toString().equals(Trigger_Enum.screenState.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(Trigger_Enum.deviceStarts.toString()))
|
||||||
|
items.add(new Item(typesLong[i].toString(), R.drawable.alarm));
|
||||||
|
else if(types[i].toString().equals(Trigger_Enum.serviceStarts.toString()))
|
||||||
|
items.add(new Item(typesLong[i].toString(), R.drawable.alarm));
|
||||||
else
|
else
|
||||||
items.add(new Item(typesLong[i].toString(), R.drawable.placeholder));
|
items.add(new Item(typesLong[i].toString(), R.drawable.placeholder));
|
||||||
}
|
}
|
||||||
@ -593,7 +597,7 @@ public class ActivityManageRule extends Activity
|
|||||||
booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
||||||
else if(triggerType == Trigger_Enum.usb_host_connection)
|
else if(triggerType == Trigger_Enum.usb_host_connection)
|
||||||
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
||||||
else if(triggerType == Trigger_Enum.speed | triggerType == Trigger_Enum.noiseLevel | triggerType == Trigger_Enum.batteryLevel)
|
else if(triggerType == Trigger_Enum.speed || triggerType == Trigger_Enum.noiseLevel || triggerType == Trigger_Enum.batteryLevel)
|
||||||
booleanChoices = new String[]{getResources().getString(R.string.exceeds), getResources().getString(R.string.dropsBelow)};
|
booleanChoices = new String[]{getResources().getString(R.string.exceeds), getResources().getString(R.string.dropsBelow)};
|
||||||
else if(triggerType == Trigger_Enum.wifiConnection)
|
else if(triggerType == Trigger_Enum.wifiConnection)
|
||||||
{
|
{
|
||||||
@ -698,6 +702,20 @@ public class ActivityManageRule extends Activity
|
|||||||
getTriggerScreenStateDialog().show();
|
getTriggerScreenStateDialog().show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else if(triggerType == Trigger_Enum.deviceStarts)
|
||||||
|
{
|
||||||
|
newTrigger.setTriggerType(Trigger_Enum.deviceStarts);
|
||||||
|
ruleToEdit.getTriggerSet().add(newTrigger);
|
||||||
|
refreshTriggerList();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if(triggerType == Trigger_Enum.serviceStarts)
|
||||||
|
{
|
||||||
|
newTrigger.setTriggerType(Trigger_Enum.serviceStarts);
|
||||||
|
ruleToEdit.getTriggerSet().add(newTrigger);
|
||||||
|
refreshTriggerList();
|
||||||
|
return;
|
||||||
|
}
|
||||||
else if(triggerType == Trigger_Enum.headsetPlugged)
|
else if(triggerType == Trigger_Enum.headsetPlugged)
|
||||||
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ import com.jens.automation2.receivers.PackageReplacedReceiver;
|
|||||||
import com.jens.automation2.receivers.PhoneStatusListener;
|
import com.jens.automation2.receivers.PhoneStatusListener;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
public class AutomationService extends Service implements OnInitListener
|
public class AutomationService extends Service implements OnInitListener
|
||||||
@ -192,6 +193,9 @@ public class AutomationService extends Service implements OnInitListener
|
|||||||
{
|
{
|
||||||
Bundle b = intent.getExtras();
|
Bundle b = intent.getExtras();
|
||||||
startAtBoot = b.getBoolean("startAtBoot", false);
|
startAtBoot = b.getBoolean("startAtBoot", false);
|
||||||
|
|
||||||
|
if(startAtBoot)
|
||||||
|
Settings.deviceStartDone = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (checkStartupRequirements(this, startAtBoot))
|
if (checkStartupRequirements(this, startAtBoot))
|
||||||
@ -211,12 +215,9 @@ public class AutomationService extends Service implements OnInitListener
|
|||||||
ActivityMainScreen.updateMainScreen();
|
ActivityMainScreen.updateMainScreen();
|
||||||
|
|
||||||
this.isRunning = true;
|
this.isRunning = true;
|
||||||
|
|
||||||
Miscellaneous.logEvent("i", "Service", this.getResources().getString(R.string.serviceStarted) + " VERSION_CODE: " + BuildConfig.VERSION_CODE + ", VERSION_NAME: " + BuildConfig.VERSION_NAME + ", flavor: " + BuildConfig.FLAVOR, 1);
|
Miscellaneous.logEvent("i", "Service", this.getResources().getString(R.string.serviceStarted) + " VERSION_CODE: " + BuildConfig.VERSION_CODE + ", VERSION_NAME: " + BuildConfig.VERSION_NAME + ", flavor: " + BuildConfig.FLAVOR, 1);
|
||||||
Toast.makeText(this, this.getResources().getString(R.string.serviceStarted), Toast.LENGTH_LONG).show();
|
Toast.makeText(this, this.getResources().getString(R.string.serviceStarted), Toast.LENGTH_LONG).show();
|
||||||
// ********** Test area **********
|
|
||||||
// Miscellaneous.logEvent("i", "setNetworkType", "bin hier.", 3);
|
|
||||||
// Actions.setData(true);
|
|
||||||
// ********** Test area **********
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
On normal phones the app is supposed to automatically restart in case of any problems.
|
On normal phones the app is supposed to automatically restart in case of any problems.
|
||||||
@ -315,6 +316,8 @@ public class AutomationService extends Service implements OnInitListener
|
|||||||
|
|
||||||
private void startUpRoutine()
|
private void startUpRoutine()
|
||||||
{
|
{
|
||||||
|
Settings.serviceStartDone = false;
|
||||||
|
|
||||||
checkForTtsEngine();
|
checkForTtsEngine();
|
||||||
checkForPermissions();
|
checkForPermissions();
|
||||||
checkForRestrictedFeatures();
|
checkForRestrictedFeatures();
|
||||||
@ -333,6 +336,9 @@ public class AutomationService extends Service implements OnInitListener
|
|||||||
if(r.getsGreenLight(AutomationService.this))
|
if(r.getsGreenLight(AutomationService.this))
|
||||||
r.activate(AutomationService.this, false);
|
r.activate(AutomationService.this, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Settings.serviceStartDone = true;
|
||||||
|
Settings.deviceStartDone = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void startLocationProvider()
|
protected void startLocationProvider()
|
||||||
|
@ -215,7 +215,7 @@ public class ReceiverCoordinator
|
|||||||
Class testClass = Class.forName(ActivityManageRule.activityDetectionClassPath);
|
Class testClass = Class.forName(ActivityManageRule.activityDetectionClassPath);
|
||||||
Miscellaneous.runMethodReflective("ActivityDetectionReceiver", "stopActivityDetectionReceiver", null);
|
Miscellaneous.runMethodReflective("ActivityDetectionReceiver", "stopActivityDetectionReceiver", null);
|
||||||
}
|
}
|
||||||
catch(ClassNotFoundException e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
// Nothing to do, just not stopping this one.
|
// Nothing to do, just not stopping this one.
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ import java.util.Set;
|
|||||||
public class Settings implements SharedPreferences
|
public class Settings implements SharedPreferences
|
||||||
{
|
{
|
||||||
public static final int rulesThatHaveBeenRanHistorySize = 10;
|
public static final int rulesThatHaveBeenRanHistorySize = 10;
|
||||||
public final static int lockSoundChangesInterval = 15;
|
public static final int lockSoundChangesInterval = 15;
|
||||||
public static final int newsPollEveryXDays = 3;
|
public static final int newsPollEveryXDays = 3;
|
||||||
public static final int newsDisplayForXDays = 3;
|
public static final int newsDisplayForXDays = 3;
|
||||||
public static final int updateCheckFrequencyDays = 7;
|
public static final int updateCheckFrequencyDays = 7;
|
||||||
@ -77,7 +77,13 @@ public class Settings implements SharedPreferences
|
|||||||
public static ArrayList<String> whatHasBeenDone;
|
public static ArrayList<String> whatHasBeenDone;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Generic settings valid for all installations and not changable
|
Not saved permanently.
|
||||||
|
*/
|
||||||
|
public static boolean deviceStartDone = true; // by default assume device has not just been started
|
||||||
|
public static boolean serviceStartDone = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Generic settings valid for all installations and not changeable
|
||||||
*/
|
*/
|
||||||
public static final String dateFormat = "E dd.MM.yyyy HH:mm:ss:ssss";
|
public static final String dateFormat = "E dd.MM.yyyy HH:mm:ss:ssss";
|
||||||
|
|
||||||
@ -600,5 +606,4 @@ public class Settings implements SharedPreferences
|
|||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -3,7 +3,7 @@ package com.jens.automation2;
|
|||||||
import android.bluetooth.BluetoothDevice;
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.SystemClock;
|
||||||
import android.service.notification.StatusBarNotification;
|
import android.service.notification.StatusBarNotification;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@ -25,10 +25,6 @@ import com.jens.automation2.receivers.PhoneStatusListener;
|
|||||||
import com.jens.automation2.receivers.ProcessListener;
|
import com.jens.automation2.receivers.ProcessListener;
|
||||||
import com.jens.automation2.receivers.ScreenStateReceiver;
|
import com.jens.automation2.receivers.ScreenStateReceiver;
|
||||||
|
|
||||||
import static com.jens.automation2.Trigger.triggerParameter2Split;
|
|
||||||
import static com.jens.automation2.receivers.NotificationListener.EXTRA_TEXT;
|
|
||||||
import static com.jens.automation2.receivers.NotificationListener.EXTRA_TITLE;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.sql.Time;
|
import java.sql.Time;
|
||||||
@ -38,8 +34,31 @@ import java.util.Date;
|
|||||||
|
|
||||||
public class Trigger
|
public class Trigger
|
||||||
{
|
{
|
||||||
public enum Trigger_Enum {
|
public enum Trigger_Enum
|
||||||
pointOfInterest, timeFrame, charging, batteryLevel, usb_host_connection, speed, noiseLevel, wifiConnection, process_started_stopped, airplaneMode, roaming, nfcTag, activityDetection, bluetoothConnection, headsetPlugged, notification, deviceOrientation, profileActive, screenState, musicPlaying, phoneCall; //phoneCall always needs to be at the very end because of Google's shitty so called privacy
|
{
|
||||||
|
pointOfInterest,
|
||||||
|
timeFrame,
|
||||||
|
charging,
|
||||||
|
batteryLevel,
|
||||||
|
usb_host_connection,
|
||||||
|
speed,
|
||||||
|
noiseLevel,
|
||||||
|
wifiConnection,
|
||||||
|
process_started_stopped,
|
||||||
|
airplaneMode,
|
||||||
|
roaming,
|
||||||
|
nfcTag,
|
||||||
|
activityDetection,
|
||||||
|
bluetoothConnection,
|
||||||
|
headsetPlugged,
|
||||||
|
notification,
|
||||||
|
deviceOrientation,
|
||||||
|
profileActive,
|
||||||
|
screenState,
|
||||||
|
musicPlaying,
|
||||||
|
deviceStarts,
|
||||||
|
serviceStarts,
|
||||||
|
phoneCall; //phoneCall always needs to be at the very end because of Google's shitty so called privacy
|
||||||
|
|
||||||
public String getFullName(Context context)
|
public String getFullName(Context context)
|
||||||
{
|
{
|
||||||
@ -87,6 +106,10 @@ public class Trigger
|
|||||||
return context.getResources().getString(R.string.musicPlaying);
|
return context.getResources().getString(R.string.musicPlaying);
|
||||||
case screenState:
|
case screenState:
|
||||||
return context.getResources().getString(R.string.screenState);
|
return context.getResources().getString(R.string.screenState);
|
||||||
|
case deviceStarts:
|
||||||
|
return context.getResources().getString(R.string.deviceStarts);
|
||||||
|
case serviceStarts:
|
||||||
|
return context.getResources().getString(R.string.serviceStarts);
|
||||||
default:
|
default:
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
@ -190,6 +213,14 @@ public class Trigger
|
|||||||
if(!checkScreenState())
|
if(!checkScreenState())
|
||||||
result = false;
|
result = false;
|
||||||
break;
|
break;
|
||||||
|
case deviceStarts:
|
||||||
|
if(!checkDeviceStarts())
|
||||||
|
result = false;
|
||||||
|
break;
|
||||||
|
case serviceStarts:
|
||||||
|
if(!checkServiceStarts())
|
||||||
|
result = false;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -343,6 +374,16 @@ public class Trigger
|
|||||||
return triggerParameter == MediaPlayerListener.isAudioPlaying(Miscellaneous.getAnyContext());
|
return triggerParameter == MediaPlayerListener.isAudioPlaying(Miscellaneous.getAnyContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean checkDeviceStarts()
|
||||||
|
{
|
||||||
|
return checkServiceStarts() && !Settings.deviceStartDone;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean checkServiceStarts()
|
||||||
|
{
|
||||||
|
return !Settings.serviceStartDone;
|
||||||
|
}
|
||||||
|
|
||||||
boolean checkProfileActive()
|
boolean checkProfileActive()
|
||||||
{
|
{
|
||||||
String demandedProfileName = getTriggerParameter2().split(Trigger.triggerParameter2Split)[0];
|
String demandedProfileName = getTriggerParameter2().split(Trigger.triggerParameter2Split)[0];
|
||||||
@ -1546,8 +1587,15 @@ public class Trigger
|
|||||||
default:
|
default:
|
||||||
state = Miscellaneous.getAnyContext().getString(R.string.unknown);
|
state = Miscellaneous.getAnyContext().getString(R.string.unknown);
|
||||||
}
|
}
|
||||||
|
returnString.append(String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.screenIs), state));
|
||||||
returnString.append(String.format(Miscellaneous.getAnyContext().getString(R.string.screenIs), state));
|
break;
|
||||||
|
case deviceStarts:
|
||||||
|
// This type doesn't have an activate/deactivate equivalent
|
||||||
|
returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.deviceHasJustStarted));
|
||||||
|
break;
|
||||||
|
case serviceStarts:
|
||||||
|
// This type doesn't have an activate/deactivate equivalent
|
||||||
|
returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.serviceHasJustStarted));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
returnString.append("error");
|
returnString.append("error");
|
||||||
|
@ -34,17 +34,18 @@ public class DeviceOrientationListener implements SensorEventListener, Automatio
|
|||||||
static int sensorValueCounter = 0;
|
static int sensorValueCounter = 0;
|
||||||
|
|
||||||
// Gravity rotational data
|
// Gravity rotational data
|
||||||
private float gravity[];
|
float gravity[];
|
||||||
// Magnetic rotational data
|
// Magnetic rotational data
|
||||||
private float magnetic[]; //for magnetic rotational data
|
float magnetic[]; //for magnetic rotational data
|
||||||
private float accels[] = new float[3];
|
float accels[] = new float[3];
|
||||||
private float mags[] = new float[3];
|
float mags[] = new float[3];
|
||||||
private float[] values = new float[3];
|
float[] values = new float[3];
|
||||||
|
boolean hasMagneticSensor=false;
|
||||||
|
|
||||||
// azimuth, pitch and roll
|
// azimuth, pitch and roll
|
||||||
private float azimuth;
|
float azimuth;
|
||||||
private float pitch;
|
float pitch;
|
||||||
private float roll;
|
float roll;
|
||||||
|
|
||||||
boolean applies = false;
|
boolean applies = false;
|
||||||
boolean flipped = false;
|
boolean flipped = false;
|
||||||
@ -91,7 +92,7 @@ public class DeviceOrientationListener implements SensorEventListener, Automatio
|
|||||||
isRunning = true;
|
isRunning = true;
|
||||||
|
|
||||||
sManager.registerListener(this, sManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
|
sManager.registerListener(this, sManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
|
||||||
sManager.registerListener(this, sManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_NORMAL);
|
hasMagneticSensor = sManager.registerListener(this, sManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_NORMAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,6 +130,9 @@ public class DeviceOrientationListener implements SensorEventListener, Automatio
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!hasMagneticSensor)
|
||||||
|
mags=new float[]{1f,1f,1f};
|
||||||
|
|
||||||
if (mags != null && accels != null)
|
if (mags != null && accels != null)
|
||||||
{
|
{
|
||||||
gravity = new float[9];
|
gravity = new float[9];
|
||||||
|
@ -89,6 +89,11 @@ public class NotificationListener extends NotificationListenerService// implemen
|
|||||||
{
|
{
|
||||||
lastNotification = convertNotificationToSimpleNotification(created, sbn);
|
lastNotification = convertNotificationToSimpleNotification(created, sbn);
|
||||||
|
|
||||||
|
if(created)
|
||||||
|
Miscellaneous.logEvent("i", "New notification", lastNotification.toString(), 5);
|
||||||
|
else
|
||||||
|
Miscellaneous.logEvent("i", "Notification removed", lastNotification.toString(), 5);
|
||||||
|
|
||||||
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger.Trigger_Enum.notification);
|
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger.Trigger_Enum.notification);
|
||||||
for (int i = 0; i < ruleCandidates.size(); i++)
|
for (int i = 0; i < ruleCandidates.size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -700,4 +700,8 @@
|
|||||||
<string name="locationNotWorkingOn12">Das Abrufen des Standorts scheint unter Android 12 derzeit nicht zu funktionieren. Wenn es bei Ihnen nicht klappt, tut mir das leid. Ich werde versuchen die Ursache zu beheben, sobald mir die Ursache bekannt ist. Wenn der Donut bei Ihnen also nicht aufhört sich zu drehen, wissen Sie warum.</string>
|
<string name="locationNotWorkingOn12">Das Abrufen des Standorts scheint unter Android 12 derzeit nicht zu funktionieren. Wenn es bei Ihnen nicht klappt, tut mir das leid. Ich werde versuchen die Ursache zu beheben, sobald mir die Ursache bekannt ist. Wenn der Donut bei Ihnen also nicht aufhört sich zu drehen, wissen Sie warum.</string>
|
||||||
<string name="profileXrequiresThis">Profil \"%1$s\" benötigt dies.</string>
|
<string name="profileXrequiresThis">Profil \"%1$s\" benötigt dies.</string>
|
||||||
<string name="lastProfile">Letztes Profil:</string>
|
<string name="lastProfile">Letztes Profil:</string>
|
||||||
|
<string name="serviceStarts">Dienst startet</string>
|
||||||
|
<string name="deviceStarts">Gerät startet</string>
|
||||||
|
<string name="deviceHasJustStarted">Gerät ist gerade gestartet</string>
|
||||||
|
<string name="serviceHasJustStarted">Dienst ist gerade gestartet</string>
|
||||||
</resources>
|
</resources>
|
@ -699,4 +699,8 @@
|
|||||||
<string name="locationNotWorkingOn12">Obtener la locación no parece estar funcionando en dispositivos Android 12 actualmente. Si no está funcionando para ti, lo siento. Intentaré arreglar esto tan pronto como conozca la causa. Así que si la rosquilla no deja de girar, ya sabes por qué.</string>
|
<string name="locationNotWorkingOn12">Obtener la locación no parece estar funcionando en dispositivos Android 12 actualmente. Si no está funcionando para ti, lo siento. Intentaré arreglar esto tan pronto como conozca la causa. Así que si la rosquilla no deja de girar, ya sabes por qué.</string>
|
||||||
<string name="profileXrequiresThis">El perfil \"%1$s\" requiere esto.</string>
|
<string name="profileXrequiresThis">El perfil \"%1$s\" requiere esto.</string>
|
||||||
<string name="lastProfile">Último perfil:</string>
|
<string name="lastProfile">Último perfil:</string>
|
||||||
|
<string name="deviceStarts">Dispositivo esta enciendo</string>
|
||||||
|
<string name="serviceStarts">Servicio esta enciendo</string>
|
||||||
|
<string name="deviceHasJustStarted">el dispositivo justamente ha encendido</string>
|
||||||
|
<string name="serviceHasJustStarted">el servicio justamente ha encendido</string>
|
||||||
</resources>
|
</resources>
|
@ -700,4 +700,8 @@
|
|||||||
<string name="profileXrequiresThis">Questo è richiesto dal profilo \"%1$s\".</string>
|
<string name="profileXrequiresThis">Questo è richiesto dal profilo \"%1$s\".</string>
|
||||||
<string name="locationNotWorkingOn12">Ottenere la posizione non sembra funzionare su dispositivi Android 12 al momento. Se non funziona per te, mi dispiace. Cercherò di risolvere questo problema non appena conoscerò la causa. Quindi, se cerchio rotante non smette di girare, sai perché.</string>
|
<string name="locationNotWorkingOn12">Ottenere la posizione non sembra funzionare su dispositivi Android 12 al momento. Se non funziona per te, mi dispiace. Cercherò di risolvere questo problema non appena conoscerò la causa. Quindi, se cerchio rotante non smette di girare, sai perché.</string>
|
||||||
<string name="lastProfile">Ultimo profilo:</string>
|
<string name="lastProfile">Ultimo profilo:</string>
|
||||||
|
<string name="deviceStarts">Device starts</string>
|
||||||
|
<string name="serviceStarts">Avvio del servizio</string>
|
||||||
|
<string name="deviceHasJustStarted">Il dispositivo è appena stato avviato</string>
|
||||||
|
<string name="serviceHasJustStarted">il servizio è appena iniziato</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -698,4 +698,8 @@
|
|||||||
<string name="locationNotWorkingOn12">Het verkrijgen van de locatie lijkt momenteel niet te werken op Android 12-apparaten. Als het niet voor je werkt, spijt het me. Ik zal proberen dit op te lossen zodra ik de oorzaak ken. Dus als de donut niet stopt met draaien, weet je waarom.</string>
|
<string name="locationNotWorkingOn12">Het verkrijgen van de locatie lijkt momenteel niet te werken op Android 12-apparaten. Als het niet voor je werkt, spijt het me. Ik zal proberen dit op te lossen zodra ik de oorzaak ken. Dus als de donut niet stopt met draaien, weet je waarom.</string>
|
||||||
<string name="profileXrequiresThis">Profiel \"%1$s\" vereist dit.</string>
|
<string name="profileXrequiresThis">Profiel \"%1$s\" vereist dit.</string>
|
||||||
<string name="lastProfile">Laatste profiel:</string>
|
<string name="lastProfile">Laatste profiel:</string>
|
||||||
|
<string name="deviceHasJustStarted">apparaat is net gestart</string>
|
||||||
|
<string name="serviceHasJustStarted">service is net begonnen</string>
|
||||||
|
<string name="serviceStarts">Service start</string>
|
||||||
|
<string name="deviceStarts">Apparaat start</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -796,4 +796,8 @@
|
|||||||
<string name="musicCheckFrequencySummary">Milliseconds between checks</string>
|
<string name="musicCheckFrequencySummary">Milliseconds between checks</string>
|
||||||
<string name="locationNotWorkingOn12">Getting the location does not seem to be working on Android 12 devices currently. If it isn\'t working for you, I\'m sorry. I\'ll try to fix this as soon as I know the cause. So if the donut doesn\'t stop spinning, you know why.</string>
|
<string name="locationNotWorkingOn12">Getting the location does not seem to be working on Android 12 devices currently. If it isn\'t working for you, I\'m sorry. I\'ll try to fix this as soon as I know the cause. So if the donut doesn\'t stop spinning, you know why.</string>
|
||||||
<string name="lastProfile">Last profile:</string>
|
<string name="lastProfile">Last profile:</string>
|
||||||
|
<string name="deviceStarts">Device starts</string>
|
||||||
|
<string name="serviceStarts">Service starts</string>
|
||||||
|
<string name="deviceHasJustStarted">device has just started</string>
|
||||||
|
<string name="serviceHasJustStarted">service has just started</string>
|
||||||
</resources>
|
</resources>
|
@ -5,7 +5,7 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.1.1'
|
classpath 'com.android.tools.build:gradle:7.1.2'
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
|
2
fastlane/metadata/android/en-US/changelogs/119.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/119.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
* New trigger: device has just started
|
||||||
|
* New trigger: service has just started
|
Reference in New Issue
Block a user