Many fixes
This commit is contained in:
@ -32,6 +32,7 @@ import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
@ -2054,6 +2055,9 @@ public class Actions
|
||||
android.provider.Settings.System.putInt(context.getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
|
||||
|
||||
int actualBrightnessValue = (int) ((float) brightnessValue / 100.0 * 255.0);
|
||||
if(actualBrightnessValue == 0)
|
||||
actualBrightnessValue = 1; // seems to be the minimum, 0 isn't working
|
||||
|
||||
android.provider.Settings.System.putInt(context.getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, actualBrightnessValue);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.jens.automation2;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.ProgressDialog;
|
||||
@ -7,6 +8,7 @@ import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.location.Criteria;
|
||||
import android.location.Location;
|
||||
import android.location.LocationListener;
|
||||
@ -23,6 +25,9 @@ import android.widget.EditText;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.PermissionChecker;
|
||||
|
||||
import com.jens.automation2.receivers.ConnectivityReceiver;
|
||||
|
||||
import java.util.Calendar;
|
||||
@ -40,6 +45,7 @@ public class ActivityManagePoi extends Activity
|
||||
EditText guiPoiName, guiPoiLatitude, guiPoiLongitude, guiPoiRadius;
|
||||
Calendar locationSearchStart = null;
|
||||
Timer timer = null;
|
||||
int requestCodeGetLocationPermission = 1293;
|
||||
|
||||
final static int defaultRadius = 250;
|
||||
final static int searchTimeout = 120;
|
||||
@ -77,7 +83,15 @@ public class ActivityManagePoi extends Activity
|
||||
public void onClick(View v)
|
||||
{
|
||||
hideKeyboard();
|
||||
getNotificationDialog(getResources().getString(R.string.positioningWindowNotice)).show();
|
||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
||||
{
|
||||
if (ActivityPermissions.havePermission(Manifest.permission.ACCESS_FINE_LOCATION, ActivityManagePoi.this))
|
||||
getNotificationDialog(getResources().getString(R.string.positioningWindowNotice)).show();
|
||||
else
|
||||
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, requestCodeGetLocationPermission);
|
||||
}
|
||||
else
|
||||
getNotificationDialog(getResources().getString(R.string.positioningWindowNotice)).show();
|
||||
}
|
||||
});
|
||||
|
||||
@ -112,6 +126,19 @@ public class ActivityManagePoi extends Activity
|
||||
// new Poi to be created
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
|
||||
{
|
||||
if(requestCode == requestCodeGetLocationPermission)
|
||||
{
|
||||
if(permissions[0].equals(Manifest.permission.ACCESS_FINE_LOCATION) && grantResults[0] == PackageManager.PERMISSION_GRANTED)
|
||||
getNotificationDialog(getResources().getString(R.string.positioningWindowNotice)).show();
|
||||
else
|
||||
Toast.makeText(ActivityManagePoi.this, getResources().getString(R.string.locationPermissionRequired), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
// super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
|
||||
private void createPoi()
|
||||
{
|
||||
myLocationManager.removeUpdates(myLocationListenerGps);
|
||||
@ -314,20 +341,20 @@ public class ActivityManagePoi extends Activity
|
||||
public void onClick(DialogInterface dialog, int which)
|
||||
{
|
||||
progressDialog = ProgressDialog.show(ActivityManagePoi.this, "", getResources().getString(R.string.gettingPosition), true, true);
|
||||
if(Build.VERSION.SDK_INT >= 31)
|
||||
{
|
||||
AlertDialog dia = Miscellaneous.messageBox(getResources().getString(R.string.info), getResources().getString(R.string.locationNotWorkingOn12), ActivityManagePoi.this);
|
||||
dia.setOnDismissListener(new DialogInterface.OnDismissListener()
|
||||
{
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialogInterface)
|
||||
{
|
||||
getLocation();
|
||||
}
|
||||
});
|
||||
dia.show();
|
||||
}
|
||||
else
|
||||
// if(Build.VERSION.SDK_INT >= 31)
|
||||
// {
|
||||
// AlertDialog dia = Miscellaneous.messageBox(getResources().getString(R.string.info), getResources().getString(R.string.locationNotWorkingOn12), ActivityManagePoi.this);
|
||||
// dia.setOnDismissListener(new DialogInterface.OnDismissListener()
|
||||
// {
|
||||
// @Override
|
||||
// public void onDismiss(DialogInterface dialogInterface)
|
||||
// {
|
||||
// getLocation();
|
||||
// }
|
||||
// });
|
||||
// dia.show();
|
||||
// }
|
||||
// else
|
||||
getLocation();
|
||||
}
|
||||
};
|
||||
|
@ -2,6 +2,7 @@ package com.jens.automation2;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
@ -38,6 +39,9 @@ public class ActivityManageTriggerTimeFrame extends Activity
|
||||
Miscellaneous.setDisplayLanguage(this);
|
||||
setContentView(R.layout.activity_manage_trigger_timeframe);
|
||||
|
||||
if(Build.VERSION.SDK_INT == 34)
|
||||
Miscellaneous.messageBox(getResources().getString(R.string.info), getResources().getString(R.string.Android14TimePickerHint), ActivityManageTriggerTimeFrame.this).show();
|
||||
|
||||
startPicker = (TimePicker)findViewById(R.id.tpTimeFrameStart);
|
||||
stopPicker = (TimePicker)findViewById(R.id.tpTimeFrameStop);
|
||||
startPicker.setIs24HourView(true);
|
||||
|
@ -565,7 +565,10 @@ public class ActivityPermissions extends Activity
|
||||
addToArrayListUnique(Manifest.permission.INTERNET, requiredPermissions);
|
||||
break;
|
||||
case timeFrame:
|
||||
if(Build.VERSION.SDK_INT >= 31 && Miscellaneous.getTargetSDK(Miscellaneous.getAnyContext()) >= 31)
|
||||
if(Build.VERSION.SDK_INT >= 31 && Miscellaneous.getTargetSDK(Miscellaneous.getAnyContext()) >= 31
|
||||
// ||
|
||||
// Build.VERSION.SDK_INT >= 33
|
||||
)
|
||||
addToArrayListUnique(Manifest.permission.SCHEDULE_EXACT_ALARM, requiredPermissions);
|
||||
break;
|
||||
case usb_host_connection:
|
||||
@ -697,7 +700,7 @@ public class ActivityPermissions extends Activity
|
||||
// addToArrayListUnique("net.kollnig.missioncontrol.permission.ADMIN", requiredPermissions);
|
||||
if(Build.VERSION.SDK_INT >= 29)
|
||||
{
|
||||
String parts[];
|
||||
String[] parts;
|
||||
if(action.getParameter2().contains(Action.actionParameter2Split))
|
||||
parts = action.getParameter2().split(Action.actionParameter2Split);
|
||||
else
|
||||
@ -705,7 +708,15 @@ public class ActivityPermissions extends Activity
|
||||
|
||||
// Permission only required for starts of activity, not broadcasts or services
|
||||
|
||||
if(parts[2].equals(ActivityManageActionStartActivity.startByActivityString))
|
||||
if(
|
||||
(
|
||||
parts.length >= 4
|
||||
&&
|
||||
parts[3].equals(ActivityManageActionStartActivity.startByActivityString)
|
||||
)
|
||||
||
|
||||
parts[2].equals(ActivityManageActionStartActivity.startByActivityString)
|
||||
)
|
||||
addToArrayListUnique(Manifest.permission.SYSTEM_ALERT_WINDOW, requiredPermissions);
|
||||
}
|
||||
break;
|
||||
@ -1073,14 +1084,14 @@ public class ActivityPermissions extends Activity
|
||||
ArrayList<String> permissionList = new ArrayList<String>();
|
||||
for(String permission : permissionNames)
|
||||
{
|
||||
if(permissionNames.equals(Manifest.permission.PROCESS_OUTGOING_CALLS))
|
||||
if(permission.equals(Manifest.permission.PROCESS_OUTGOING_CALLS))
|
||||
{
|
||||
if(ActivityPermissions.isPermissionDeclaredInManifest(Miscellaneous.getAnyContext(), Manifest.permission.PROCESS_OUTGOING_CALLS) && !Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()))
|
||||
{
|
||||
permissionList.add(permission);
|
||||
}
|
||||
}
|
||||
else if(permissionNames.equals(Manifest.permission.SEND_SMS))
|
||||
else if(permission.equals(Manifest.permission.SEND_SMS))
|
||||
{
|
||||
if(ActivityPermissions.isPermissionDeclaredInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS) && !Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()))
|
||||
{
|
||||
|
@ -218,7 +218,7 @@ public class DateTimeListener extends BroadcastReceiver implements AutomationLis
|
||||
|
||||
private static void scheduleNextAlarm()
|
||||
{
|
||||
Long currentTime = System.currentTimeMillis();
|
||||
long currentTime = System.currentTimeMillis();
|
||||
ScheduleElement scheduleCandidate = null;
|
||||
|
||||
if(alarmCandidates.size() == 0)
|
||||
|
@ -9,46 +9,41 @@
|
||||
android:title="@string/generalSettings">
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="startServiceAtSystemBoot"
|
||||
android:summary="@string/onOff"
|
||||
android:title="@string/startAtSystemBoot" />
|
||||
android:key="startServiceAtSystemBoot"
|
||||
android:summary="@string/onOff"
|
||||
android:title="@string/startAtSystemBoot" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="startServiceAfterAppUpdate"
|
||||
android:summary="@string/startServiceAfterAppUpdate"
|
||||
android:title="@string/startServiceAfterAppUpdateShort" />
|
||||
<!--
|
||||
android:key="startServiceAfterAppUpdate"
|
||||
android:summary="@string/startServiceAfterAppUpdate"
|
||||
android:title="@string/startServiceAfterAppUpdateShort" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="startNewThreadForRuleActivation"
|
||||
android:summary="@string/startNewThreadForRuleExecution"
|
||||
android:title="@string/newThreadRules" />
|
||||
-->
|
||||
<CheckBoxPreference
|
||||
android:key="showIconWhenServiceIsRunning"
|
||||
android:summary="@string/showIconWhenServiceIsRunning"
|
||||
android:title="@string/showIcon" />
|
||||
android:key="showIconWhenServiceIsRunning"
|
||||
android:summary="@string/showIconWhenServiceIsRunning"
|
||||
android:title="@string/showIcon" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="logToConsole"
|
||||
android:summary="@string/onOff"
|
||||
android:title="@string/logToConsole" />
|
||||
android:key="logToConsole"
|
||||
android:summary="@string/onOff"
|
||||
android:title="@string/logToConsole" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="writeLogFile"
|
||||
android:summary="@string/onOff"
|
||||
android:title="@string/writeLogFile" />
|
||||
android:key="writeLogFile"
|
||||
android:summary="@string/onOff"
|
||||
android:title="@string/writeLogFile" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="logLevel"
|
||||
android:summary="@string/logLevelSummary"
|
||||
android:title="@string/logLevelTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="logFileMaxSize"
|
||||
android:summary="@string/logFileMaxSizeSummary"
|
||||
android:title="@string/logFileMaxSizeTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<ListPreference
|
||||
android:key="startScreen"
|
||||
@ -119,21 +114,11 @@
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
<PreferenceCategory
|
||||
android:summary="@string/positioningSettings"
|
||||
android:title="@string/positioningSettings">
|
||||
|
||||
<!-- android:id="@id/lstPositioningEngine"-->
|
||||
<!--
|
||||
<ListPreference
|
||||
android:title="@string/positioningEngine"
|
||||
android:key="positioningEngine"
|
||||
android:defaultValue="0"
|
||||
android:entries="@array/positioningEngineOptions"
|
||||
android:entryValues="@array/positioningEngineOptionsValues" />
|
||||
-->
|
||||
<CheckBoxPreference
|
||||
<CheckBoxPreference
|
||||
android:key="useWifiForPositioning"
|
||||
android:summary="@string/listenToWifiState"
|
||||
android:title="@string/wifiState" />
|
||||
@ -147,19 +132,19 @@
|
||||
android:key="useAccelerometerAfterIdleTime"
|
||||
android:summary="@string/accelerometerTimer"
|
||||
android:title="@string/cellMastIdleTime"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="accelerometerMovementThreshold"
|
||||
android:summary="@string/accelerometerThresholdDescription"
|
||||
android:title="@string/accelerometerThreshold"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="speedMaximumTimeBetweenLocations"
|
||||
android:summary="@string/speedMaximumTimeBetweenLocations"
|
||||
android:title="@string/speedMaximumTime"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="rememberLastActivePoi"
|
||||
@ -181,37 +166,31 @@
|
||||
android:key="MINIMUM_DISTANCE_CHANGE_FOR_GPS_UPDATE"
|
||||
android:summary="@string/minimumDistanceChangeForGpsLocationUpdates"
|
||||
android:title="@string/distanceForGpsUpdate"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="MINIMUM_DISTANCE_CHANGE_FOR_NETWORK_UPDATE"
|
||||
android:summary="@string/minimumDistanceChangeForNetworkLocationUpdates"
|
||||
android:title="@string/distanceForNetworkUpdate"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
<!-- We won't need this setting anymore, at least it won't be available for the user.
|
||||
<EditTextPreference
|
||||
android:key="SATISFACTORY_ACCURACY_GPS"
|
||||
android:summary="@string/satisfactoryAccuracyGps"
|
||||
android:title="@string/gpsAccuracy"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
-->
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="SATISFACTORY_ACCURACY_NETWORK"
|
||||
android:summary="@string/satisfactoryAccuracyNetwork"
|
||||
android:title="@string/networkAccuracy"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="MINIMUM_TIME_BETWEEN_UPDATE"
|
||||
android:summary="@string/minimumTimeForLocationUpdates"
|
||||
android:title="@string/timeForUpdate"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="gpsTimeout"
|
||||
android:summary="@string/timeoutForGpsComparisonsSummary"
|
||||
android:title="@string/timeoutForGpsComparisonsTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
@ -223,19 +202,19 @@
|
||||
android:key="timeBetweenNoiseLevelMeasurements"
|
||||
android:summary="@string/timeBetweenNoiseLevelMeasurementsSummary"
|
||||
android:title="@string/timeBetweenNoiseLevelMeasurementsTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="lengthOfNoiseLevelMeasurements"
|
||||
android:summary="@string/lengthOfNoiseLevelMeasurementsSummary"
|
||||
android:title="@string/lengthOfNoiseLevelMeasurementsTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="referenceValueForNoiseLevelMeasurements"
|
||||
android:summary="@string/referenceValueForNoiseLevelMeasurementsSummary"
|
||||
android:title="@string/referenceValueForNoiseLevelMeasurementsTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
@ -252,19 +231,19 @@
|
||||
android:key="httpAttempts"
|
||||
android:summary="@string/httpAttemptsSummary"
|
||||
android:title="@string/httpAttemptsTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="httpAttemptsTimeout"
|
||||
android:summary="@string/httpAttemptsTimeoutSummary"
|
||||
android:title="@string/httpAttemptsTimeoutTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="httpAttemptGap"
|
||||
android:summary="@string/httpAttemptGapSummary"
|
||||
android:title="@string/httpAttemptGapTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
@ -276,7 +255,7 @@
|
||||
android:key="timeBetweenProcessMonitorings"
|
||||
android:summary="@string/timeBetweenProcessMonitoringsSummary"
|
||||
android:title="@string/timeBetweenProcessMonitoringsTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
@ -288,7 +267,7 @@
|
||||
android:key="acceptDevicePositionSignalEveryX_MilliSeconds"
|
||||
android:summary="@string/deviceOrientationTimeAcceptIntervalSummary"
|
||||
android:title="@string/deviceOrientationTimeAcceptIntervalTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
@ -300,13 +279,13 @@
|
||||
android:key="activityDetectionFrequency"
|
||||
android:summary="@string/activityDetectionFrequencySummary"
|
||||
android:title="@string/activityDetectionFrequencyTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="activityDetectionRequiredProbability"
|
||||
android:summary="@string/activityDetectionRequiredProbabilitySummary"
|
||||
android:title="@string/activityDetectionRequiredProbabilityTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
@ -318,9 +297,8 @@
|
||||
android:key="musicCheckFrequency"
|
||||
android:summary="@string/musicCheckFrequencySummary"
|
||||
android:title="@string/musicCheckFrequencyTitle"
|
||||
android:inputType="number"></EditTextPreference>
|
||||
android:inputType="number" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
</PreferenceScreen>
|
@ -330,7 +330,7 @@
|
||||
<string name="name">Name</string>
|
||||
<string name="radiusWithUnit">Radius [m]</string>
|
||||
<string name="status">Status</string>
|
||||
<string name="actionDataConnection">Data connection</string>
|
||||
<string name="actionDataConnection">Data connection (mobile data)</string>
|
||||
<string name="actionSetDataConnectionOn">turn mobile data on</string>
|
||||
<string name="actionSetDataConnectionOff">turn mobile data off</string>
|
||||
<string name="roaming">Roaming</string>
|
||||
@ -952,4 +952,6 @@
|
||||
<string name="matches">matches</string>
|
||||
<string name="doesNotMatch">does not match</string>
|
||||
<string name="logToConsole">Log to console (logcat)</string>
|
||||
<string name="locationPermissionRequired">Location permission is required to continue.</string>
|
||||
<string name="Android14TimePickerHint">Apparently there\'s a bug in Android 14 regarding a time picker dialog. If the following screen crashes when you try to use the up and down buttons next to a field, try inputting numbers with the keyboard instead. I did never find a solution for this and my app is not the only one affected. It looks like this was fixed in Android 15.</string>
|
||||
</resources>
|
@ -1,4 +1,6 @@
|
||||
* Fixed: Crash when triggering a URL without parameter pairs
|
||||
* Fixed: When checking for battery charging type "any" the trigger didn't fire.
|
||||
* Fixed: Fixed warnings in logs for formatted notifications
|
||||
* Fixed: Location permission requested now when creating a new location object.
|
||||
* Fixed: Display-over-other-apps permission was not requested anymore for start another app actions.
|
||||
* Added: Setting to turn on/off console logging (logcat)
|
Reference in New Issue
Block a user