Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<application
android:name="org.radiocells.unifiedNlp.UnifiedNlpApplication"
android:requestLegacyExternalStorage="true"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ android {
}
defaultConfig {
minSdkVersion 18
targetSdkVersion 29
targetSdkVersion 30
}
}

Expand Down
2 changes: 1 addition & 1 deletion res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.DeviceDefault">
<style name="AppBaseTheme" parent="Theme.AppCompat">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
Expand Down
18 changes: 14 additions & 4 deletions src/org/radiocells/unifiedNlp/UnifiedNlpApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,23 @@ public class UnifiedNlpApplication extends Application implements ActivityCompat

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
boolean isGranted = false;
boolean isLocationGranted = false;
boolean isPhoneStateGranted = false;
for (int i = 0; i < grantResults.length; i++)
if (permissions[i].equals(Manifest.permission.ACCESS_FINE_LOCATION) && (grantResults[i] == PackageManager.PERMISSION_GRANTED))
isGranted = true;
if (!isGranted) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
if (permissions[i].equals(Manifest.permission.ACCESS_FINE_LOCATION) && (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.Q))
isLocationGranted = true;
else if (permissions[i].equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION) && (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q))
isLocationGranted = true;
else if (permissions[i].equals(Manifest.permission.READ_PHONE_STATE))
isPhoneStateGranted = true;
}
if (!isLocationGranted) {
Log.w(TAG, "ACCESS_FINE_LOCATION permission not granted");
}
if (!isPhoneStateGranted) {
Log.w(TAG, "READ_PHONE_STATE permission not granted");
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ License, or (at your option) any later version.
import java.util.Calendar;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -208,16 +209,40 @@ public void run() {
protected Location update() {
Calendar now = Calendar.getInstance();

HashSet<String> missingPerms = new HashSet<String>();

if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "Fine location access available");
/*
* We need both permissions, but we cannot request them together (if we do, Android 11+ will deny the request).
*/
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "Background location access available");
} else {
Log.i(TAG, "Missing background location access - requesting");
missingPerms.add(Manifest.permission.ACCESS_BACKGROUND_LOCATION);
}
}
} else {
Log.i(TAG, "Missing fine location access - requesting");
missingPerms.add(Manifest.permission.ACCESS_FINE_LOCATION);
}

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "Read phone state permission available");
} else {
Log.i(TAG, "Missing phone state read access - requesting");
missingPerms.add(Manifest.permission.READ_PHONE_STATE);
}

if (!missingPerms.isEmpty()){
PermissionHelper.requestPermissions(
(UnifiedNlpApplication) (getApplicationContext()),
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
missingPerms.toArray(new String[] {}),
1212,
"Permission needed",
"Location access is needed for radiocells.org UnifiedNLP backend",
"Permissions are needed for radiocells.org UnifiedNLP backend",
R.drawable.ic_launcher);
return null;
}
Expand Down Expand Up @@ -274,7 +299,7 @@ public void onWifiResultsAvailable() {
Log.d(TAG, "Scanning cells only");
getLocationFromWifisAndCells(null);
} else {
Log.e(TAG, "Neigther cells nor wifis as source selected? Com'on..");
Log.e(TAG, "Neither cells nor wifis as source selected? Com'on..");
}

return null;
Expand Down
10 changes: 6 additions & 4 deletions src/org/radiocells/unifiedNlp/utils/PermissionHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,12 @@ public static class PermissionRequestActivity extends AppCompatActivity {
*/
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
Bundle resultData = new Bundle();
resultData.putStringArray("permissions", permissions);
resultData.putIntArray("grantResults", grantResults);
resultReceiver.send(requestCode, resultData);
if (resultReceiver != null) {
Bundle resultData = new Bundle();
resultData.putStringArray("permissions", permissions);
resultData.putIntArray("grantResults", grantResults);
resultReceiver.send(requestCode, resultData);
}
finish();
}

Expand Down