Fixed issue with location permissions for Android versions <10 (fixes #75), and added more Polish translations by Jacek.

This commit is contained in:
Graham Jones
2023-02-04 21:01:40 +00:00
parent 467fd0cc7f
commit f504b15717
5 changed files with 61 additions and 14 deletions

View File

@@ -34,6 +34,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.PowerManager; import android.os.PowerManager;
@@ -106,6 +107,7 @@ public class StartupActivity extends AppCompatActivity {
Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_PHONE_STATE,
}; };
// Additional permission required by Android 10 (API 29) and higher.
public final String[] LOCATION_PERMISSIONS_2 = { public final String[] LOCATION_PERMISSIONS_2 = {
Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION,
}; };
@@ -310,7 +312,7 @@ public class StartupActivity extends AppCompatActivity {
requestLocationPermissions1(); requestLocationPermissions1();
allOk = false; allOk = false;
} else if (smsAlarmsActive && !areLocationPermissions2OK()) { } else if (smsAlarmsActive && !areLocationPermissions2OK()) {
Log.i(TAG,"SMS permissions2 NOT OK"); Log.i(TAG,"Location permissions2 NOT OK");
tv.setText(getString(R.string.SmsPermissionWarning)); tv.setText(getString(R.string.SmsPermissionWarning));
tv.setBackgroundColor(alarmColour); tv.setBackgroundColor(alarmColour);
tv.setTextColor(alarmTextColour); tv.setTextColor(alarmTextColour);
@@ -647,12 +649,17 @@ public class StartupActivity extends AppCompatActivity {
public boolean areLocationPermissions2OK() { public boolean areLocationPermissions2OK() {
boolean allOk = true; boolean allOk = true;
Log.v(TAG, "areSMSPermissions2OK()"); Log.v(TAG, "areSMSPermissions2OK() - SDK="+android.os.Build.VERSION.SDK_INT);
for (int i = 0; i < LOCATION_PERMISSIONS_2.length; i++) { if (android.os.Build.VERSION.SDK_INT < 29) {
if (ContextCompat.checkSelfPermission(this, LOCATION_PERMISSIONS_2[i]) Log.d(TAG, "areLocationPermission2OK() - SDK <29 (Android 10) so permission not required");
!= PackageManager.PERMISSION_GRANTED) { allOk = true;
Log.i(TAG, LOCATION_PERMISSIONS_2[i] + " Permission Not Granted"); } else {
allOk = false; for (int i = 0; i < LOCATION_PERMISSIONS_2.length; i++) {
if (ContextCompat.checkSelfPermission(this, LOCATION_PERMISSIONS_2[i])
!= PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, LOCATION_PERMISSIONS_2[i] + " Permission Not Granted");
allOk = false;
}
} }
} }
return allOk; return allOk;

View File

@@ -43,7 +43,12 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="EventId: " /> android:text="@string/eventid" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": " />
<TextView <TextView
android:id="@+id/eventIdTv" android:id="@+id/eventIdTv"
@@ -60,7 +65,12 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Event Date: " android:text="@string/event_date"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": "
android:textSize="20sp" /> android:textSize="20sp" />
<TextView <TextView
@@ -79,7 +89,12 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Alarm State: " android:text="@string/alarm_state"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": "
android:textSize="20sp" /> android:textSize="20sp" />
<TextView <TextView
@@ -100,6 +115,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/event_type" android:text="@string/event_type"
android:textSize="20sp" /> android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": "
android:textSize="20sp" />
<RadioGroup <RadioGroup
android:id="@+id/eventTypeRg" android:id="@+id/eventTypeRg"
@@ -118,6 +138,12 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/event_sub_type" android:text="@string/event_sub_type"
android:textSize="20sp" /> android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": "
android:textSize="20sp" />
<RadioGroup <RadioGroup
@@ -134,7 +160,7 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginRight="4dp" android:layout_marginRight="4dp"
android:layout_marginBottom="4dp" android:layout_marginBottom="4dp"
android:hint="notes about event" /> android:hint="@string/notes_about_event" />
</LinearLayout> </LinearLayout>

View File

@@ -9,7 +9,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="date" android:text="@string/date"
android:id="@+id/event_date" /> android:id="@+id/event_date" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@@ -295,4 +295,14 @@
<string name="LogNDATitle">Zapisuj Normalne Dzienne Aktywności (NDA)</string> <string name="LogNDATitle">Zapisuj Normalne Dzienne Aktywności (NDA)</string>
<string name="LogNDASummary">Cały czas rejestruj dane w systemie udostępniania danych, aby dostarczać w tle dane dotyczące \'NDA\', w celu zmniejszenia liczby fałszywych alarmów.</string> <string name="LogNDASummary">Cały czas rejestruj dane w systemie udostępniania danych, aby dostarczać w tle dane dotyczące \'NDA\', w celu zmniejszenia liczby fałszywych alarmów.</string>
<string name="cancelBtnTxt">Anuluj</string> <string name="cancelBtnTxt">Anuluj</string>
<string name="local_database">Menadżer dziennika danych</string>
<string name="save">ZAPISZ</string>
<string name="date">Data</string>
<string name="eventid">IdZdarzenia</string>
<string name="event_date">Data Zdarzenia</string>
<string name="alarm_state">Status Alarmu</string>
<string name="event_type">Typ zdarzenia</string>
<string name="event_sub_type">Podtyp Zdarzenia</string>
<string name="notes_about_event">" informacje o zdarzeniu"</string>
<string name="not_logged_in">Nieuwierzytelniony</string>
</resources> </resources>

View File

@@ -339,8 +339,8 @@
<string name="remoteLogPeriodTitle">Remote Log Period (seconds)</string> <string name="remoteLogPeriodTitle">Remote Log Period (seconds)</string>
<string name="ManualAlarmBtnTxt">Raise Alarm</string> <string name="ManualAlarmBtnTxt">Raise Alarm</string>
<string name="save">Save</string> <string name="save">Save</string>
<string name="event_type">Event Type:</string> <string name="event_type">Event Type</string>
<string name="event_sub_type">"Event Sub-Type: "</string> <string name="event_sub_type">Event Sub-Type</string>
<string name="selectFromOptionselow">"-- select option --"</string> <string name="selectFromOptionselow">"-- select option --"</string>
<string name="waitingForData">...waiting for data...</string> <string name="waitingForData">...waiting for data...</string>
<string name="refreshBtn">Refresh</string> <string name="refreshBtn">Refresh</string>
@@ -461,4 +461,8 @@
<string name="stop_nda_menu_title">Stop NDA</string> <string name="stop_nda_menu_title">Stop NDA</string>
<string name="start_nda_menu_title">Start NDA</string> <string name="start_nda_menu_title">Start NDA</string>
<string name="seizure_probability">Seizure Probability (%)</string> <string name="seizure_probability">Seizure Probability (%)</string>
<string name="eventid">EventId</string>
<string name="event_date">Event Date</string>
<string name="alarm_state">Alarm State</string>
<string name="notes_about_event">notes about event</string>
</resources> </resources>