Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating google location service #369

Merged
merged 30 commits into from
Sep 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
b2b4995
updating google location service dependency and removing unncessary m…
aurangzaibumer Apr 29, 2024
f19d418
update version number to publish artifact
aurangzaibumer Apr 29, 2024
7c66e27
Revert mapbox sdk key on gradle.properties
aurangzaibumer Apr 29, 2024
1f52503
removed unneccessary changes
aurangzaibumer Apr 29, 2024
a1a8398
removed developer-config file
aurangzaibumer Apr 29, 2024
c7bdcfe
Merge branch 'master' into updating-google-location-service
dubdabasoduba Apr 30, 2024
9307b0d
Update the utils and libs version
dubdabasoduba May 1, 2024
8c2bb76
:wrench: Remove unused file
dubdabasoduba May 1, 2024
4249ad8
:arrow_up: Update min sdk version
dubdabasoduba May 3, 2024
47f2adb
:arrow_up: Update the Kujaku dependencies
dubdabasoduba May 8, 2024
b5e3693
:arrow_up: Upgrade the kujaku dependencies and publish snapshots
dubdabasoduba May 9, 2024
1610f05
Update library.yml to JDK 17
ndegwamartin Jul 1, 2024
fe6cbe0
Update ci.yml to JDK 17
ndegwamartin Jul 1, 2024
0bb698a
Update utils.yml to JDK 17
ndegwamartin Jul 1, 2024
2a955ee
Merge pull request #370 from onaio/ndegwamartin-patch-1
ndegwamartin Jul 1, 2024
2547c2a
Pin CI workflow Runner to MacOS 13
ndegwamartin Jul 2, 2024
28edb1d
Upgrade Robolectric Version
ndegwamartin Jul 2, 2024
91b5ed7
Add missing Robolectric Artifact
ndegwamartin Jul 2, 2024
e55c20d
Run tests on API 30
ndegwamartin Jul 3, 2024
1e6049e
Update Run Instrumented Tests workflow configuration
ndegwamartin Jul 3, 2024
5302bc6
Update Run Instrumented Tests workflow configuration
ndegwamartin Jul 3, 2024
d7efa4f
Resolve permission location for higher android builds.
Lentumunai-Mark Aug 9, 2024
7569358
Update Artifact Release Version for QA
ndegwamartin Aug 9, 2024
724ffbd
Update library.yml : Temporary Disable test for Artifacts
ndegwamartin Aug 12, 2024
0b56f7c
Update release version and undo finish activity.
Lentumunai-Mark Aug 13, 2024
c705b26
Merge pull request #373 from onaio/update-storage-permissions
ellykits Aug 14, 2024
a35cc73
:arrow_up: Update utils version
dubdabasoduba Aug 14, 2024
4ac8457
:arrow_up: Update the utils version on library
dubdabasoduba Aug 16, 2024
ca34a4c
:arrow_up: Upgrade kujaku to 0.10.5
dubdabasoduba Aug 16, 2024
03e75b6
:rewind: Revert publish mode on kujaku lib
dubdabasoduba Aug 16, 2024
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
12 changes: 8 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ jobs:
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}

runs-on: macos-latest
runs-on: macos-13

steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17
- name: Create local.properties file
run: touch local.properties && echo "mapbox.repo.token=${{ secrets.MAPBOX_SDK_REPO_TOKEN }}" >> local.properties
- name: Print Java version
Expand All @@ -40,10 +40,14 @@ jobs:
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 22
arch: x86_64
force-avd-creation: true
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew connectedDebug --stacktrace --info
- name: Run jacocoTestReport for each module
run: ./gradlew jacocoTestReport --stacktrace --info
- name: Merge jacoco reports from all modules
run: ./gradlew jacocoFullReport --stacktrace
- name: Upload coverage to Coveralls with Gradle
run: ./gradlew coveralls --stacktrace
run: ./gradlew coveralls --stacktrace
20 changes: 10 additions & 10 deletions .github/workflows/library.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Cancel previous workflow runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
access_token: ${{ github.token }}

- name: Checkout 🛎️
uses: actions/checkout@v2
Expand Down Expand Up @@ -55,15 +55,15 @@ jobs:
- name: Build project skipping tests
run: ./gradlew build -x test --stacktrace

- name: Run Instrumented Tests manually
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 22
script: ./gradlew :library:connectedDebug --stacktrace --info
- name: Run unit tests with Gradle
run: ./gradlew :library:clean :library:testDebugUnitTest --stacktrace
# - name: Run Instrumented Tests manually
# uses: reactivecircus/android-emulator-runner@v2
# with:
# api-level: 22
# script: ./gradlew :library:connectedDebug --stacktrace --info
#
# - name: Run unit tests with Gradle
# run: ./gradlew :library:clean :library:testDebugUnitTest --stacktrace

- name: Generate & upload library snapshot artifact AAR (Android Archive) file
run: ./gradlew :library:clean --stacktrace && ./gradlew :library:assembleRelease --stacktrace && ./gradlew :library:publishMavenJavaPublicationToMavenCentralRepository --stacktrace

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/utils.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ jobs:
with:
fetch-depth: 2

- name: Set up JDK 11
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17

- name: Create local.properties file
run: touch local.properties && echo "mapbox.repo.token=${{ secrets.MAPBOX_SDK_REPO_TOKEN }}" >> local.properties
Expand Down Expand Up @@ -70,4 +70,4 @@ jobs:
- name: Github Release
uses: softprops/action-gh-release@v1
with:
prerelease: ${{ contains(github.ref, '-alpha') || contains(github.ref, '-beta') }}
prerelease: ${{ contains(github.ref, '-alpha') || contains(github.ref, '-beta') }}
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ allprojects {
repositories {
google()
jcenter()
mavenCentral()
mavenLocal()
maven { url "https://jitpack.io" }
maven {
Expand All @@ -46,6 +47,8 @@ allprojects {
password = localProperties['mapbox.repo.token'] ?: ""
}
}
maven{url "https://oss.sonatype.org/content/repositories/snapshots"}
maven{url "https://s01.oss.sonatype.org/content/repositories/snapshots"}
}

}
Expand Down
6 changes: 3 additions & 3 deletions configs.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,13 @@ ext {
// Dependency and other versions
androidxTestCoreVersion = "1.4.0"
buildToolsVersion = "30.0.3"
compileSdkVersion = 28
compileSdkVersion = 34
jacocoVersion = "0.8.8"
junitVersion = "4.12"
mapboxAnnotationPluginVersion = "0.9.0"
mapboxSdkVersion = "9.7.1"
robolectricShadowsMultidexVersion = "4.3.1"
robolectricVersion = "4.3.1"
robolectricShadowsMultidexVersion = "4.7.3"
robolectricVersion = "4.7.3"
supportVersion = "1.0.0"
volleyVersion = "1.2.0"
targetSdkVersion = 27
Expand Down
4 changes: 2 additions & 2 deletions download-robolectric-deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
mkdir robolectric-deps
wget -nc https://repo1.maven.org/maven2/org/robolectric/android-all/10-robolectric-5803371/android-all-10-robolectric-5803371.jar -P robolectric-deps
wget -nc https://repo1.maven.org/maven2/org/robolectric/android-all/8.1.0-robolectric-4611349/android-all-8.1.0-robolectric-4611349.jar -P robolectric-deps
wget -nc https://repo1.maven.org/maven2/org/robolectric/android-all-instrumented/8.1.0-robolectric-4611349-i3/android-all-instrumented-8.1.0-robolectric-4611349-i3.jar -P robolectric-deps
wget -nc https://repo1.maven.org/maven2/org/robolectric/android-all/8.0.0_r4-robolectric-r1/android-all-8.0.0_r4-robolectric-r1.jar -P robolectric-deps

wget -nc https://repo1.maven.org/maven2/org/robolectric/android-all/6.0.1_r3-robolectric-r1/android-all-6.0.1_r3-robolectric-r1.jar -P robolectric-deps
Expand All @@ -12,5 +13,4 @@ wget -nc https://repo1.maven.org/maven2/org/robolectric/android-all/11-robolectr

cp robolectric-deps.properties library/src/test/resources
cp robolectric-deps.properties utils/src/test/resources
cp robolectric-deps.properties sample/src/test/resources
cp robolectric-deps.properties wrapper/src/test/resources
cp robolectric-deps.properties sample/src/test/resources
9 changes: 5 additions & 4 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ apply plugin: 'jacoco'

buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
Expand All @@ -14,7 +15,7 @@ apply plugin: 'realm-android'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'

version '0.10.0'
version '0.10.5-SNAPSHOT'

project.version = this.version

Expand All @@ -33,7 +34,7 @@ android {
}

defaultConfig {
minSdkVersion 16
minSdkVersion 19
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName this.version
Expand Down Expand Up @@ -118,7 +119,7 @@ dependencies { configuration ->
// Comment the line below when creating releases - The line is for development of the library & utils
implementation (project(":utils")) {
// Uncomment the line below when creating releases
//implementation('io.ona.kujaku:utils:0.9.0') {
//implementation('io.ona.kujaku:utils:0.10.5-SNAPSHOT') {
transitive = true;
exclude group: 'com.mapbox.mapboxsdk', module: 'mapbox-android-sdk'
exclude group: 'com.android.support', module: 'support-v4'
Expand Down Expand Up @@ -173,7 +174,7 @@ private static void appPermissionsDependencies(configuration) {
}

private static void locationDependencies(configuration) {
configuration.implementation 'com.google.android.gms:play-services-location:19.0.1'
configuration.implementation 'com.google.android.gms:play-services-location:21.2.0'
}

tasks.withType(Test) {
Expand Down
7 changes: 5 additions & 2 deletions library/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.util.Log;

import com.karumi.dexter.Dexter;
Expand All @@ -19,7 +20,7 @@ public static void checkPermissions(String TAG, Context context) {
MultiplePermissionsListener dialogMultiplePermissionListener = new KujakuMultiplePermissionListener(activity);

Dexter.withActivity(activity)
.withPermissions(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE)
.withPermissions(Manifest.permission.ACCESS_FINE_LOCATION, (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) ? Manifest.permission.MANAGE_EXTERNAL_STORAGE : Manifest.permission.WRITE_EXTERNAL_STORAGE)
.withListener(dialogMultiplePermissionListener)
.check();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,6 @@ public void onPermissionsChecked(MultiplePermissionsReport report) {
@Override public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();

if (context instanceof Activity) {
((Activity) context).finish();
}
}
})
.show();
Expand Down
26 changes: 19 additions & 7 deletions library/src/main/java/io/ona/kujaku/utils/Permissions.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

Expand All @@ -16,30 +18,40 @@
*/

public class Permissions {
private static final String[] CRITICAL_PERMISSIONS = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};

/**
* Returns {@link android.content.pm.PermissionInfo#PROTECTION_DANGEROUS} permissions which
* have not been requested yet/denied by the user from the list of {@link Permissions#CRITICAL_PERMISSIONS}
* have not been requested yet/denied by the user from the list of {@link Permissions}
* required
*
* @param context
* @return list of unauthorised permissions
*/
public static String[] getUnauthorizedCriticalPermissions(Context context) {
String[] criticalPermissions;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // Android 13 (API 33)
criticalPermissions = new String[]{
Manifest.permission.MANAGE_EXTERNAL_STORAGE
};
} else {
criticalPermissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
}

List<String> unauthorizedPermissions = new ArrayList<>();
for (String curPermission : CRITICAL_PERMISSIONS) {
for (String curPermission : criticalPermissions) {
if (!check(context, curPermission)) {
unauthorizedPermissions.add(curPermission);
}
}

return unauthorizedPermissions.toArray(new String[]{});
return unauthorizedPermissions.toArray(new String[0]);
}


/**
* Checks if a specific application permission is authorised
*
Expand Down
5 changes: 5 additions & 0 deletions robolectric-deps.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ org.robolectric\:android-all\:7.0.0_r1-robolectric-r1=../../../../../../robolect
org.robolectric\:android-all\:7.1.0_r7-robolectric-r1=../../../../../../robolectric-deps/android-all-7.1.0_r7-robolectric-r1.jar
org.robolectric\:android-all\:8.0.0_r4-robolectric-r1=../../../../../../robolectric-deps/android-all-8.0.0_r4-robolectric-r1.jar
org.robolectric\:android-all\:8.1.0-robolectric-4611349=../../../../../../robolectric-deps/android-all-8.1.0-robolectric-4611349.jar
org.robolectric\:android-all-instrumented\:8.1.0-robolectric-4611349=../../../../../../robolectric-deps/android-all-instrumented-8.1.0-robolectric-4611349.jar
org.robolectric\:android-all-instrumented\:8.0.0_r4-robolectric-r1-i3=../../../../../../robolectric-deps/android-all-instrumented-8.0.0_r4-robolectric-r1-i3.jar
org.robolectric\:android-all-instrumented\:7.1.0_r7-robolectric-r1-i3=../../../../../../robolectric-deps/android-all-instrumented-7.1.0_r7-robolectric-r1-i3.jar
org.robolectric\:android-all-instrumented\:8.1.0-robolectric-4611349-i3=../../../../../../robolectric-deps/android-all-instrumented-8.1.0-robolectric-4611349-i3.jar
org.robolectric\:android-all-instrumented\:12-robolectric-7732740-i3=../../../../../../robolectric-deps/android-all-instrumented-12-robolectric-7732740-i3.jar
org.robolectric\:android-all\:9-robolectric-4913185-2=../../../../../../robolectric-deps/android-all-9-robolectric-4913185-2.jar
org.robolectric\:android-all\:10-robolectric-5803371=../../../../../../robolectric-deps/android-all-10-robolectric-5803371.jar
org.robolectric\:android-all\:11-robolectric-6757853=../../../../../../robolectric-deps/android-all-11-robolectric-6757853.jar
3 changes: 3 additions & 0 deletions sample/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
/build

# Local configuration file (sdk path, etc)
local.properties
2 changes: 1 addition & 1 deletion sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ android {

defaultConfig {
applicationId "io.ona.kujaku.sample"
minSdkVersion 16
minSdkVersion 21
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode getMasterCommitCount()
versionName getVersionName()
Expand Down
6 changes: 6 additions & 0 deletions sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.ona.kujaku.sample">

<!-- Always include this permission -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- Include only if your app benefits from precise location access. -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
android:name=".MyApplication"
android:allowBackup="true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
Expand Down Expand Up @@ -68,10 +69,6 @@ public class MainActivity extends BaseNavigationDrawerActivity {

private static final String SAMPLE_JSON_FILE_NAME = "2017-nov-27-kujaku-metadata.json";
private static final int PERMISSIONS_REQUEST_CODE = 9823;
private String[] basicPermissions = new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
};

// Kujaku library uses notification ids 80 to 2080
private int lastNotificationId = 2081;
Expand Down Expand Up @@ -415,7 +412,8 @@ public void onErrorResponse(VolleyError error) {

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case MAP_ACTIVITY_REQUEST_CODE:
if (resultCode == Activity.RESULT_OK) {
// data from a dropped feature point
Expand Down Expand Up @@ -490,15 +488,27 @@ public String readAssetFile(String inFile) {

private void requestBasicPermissions() {
ArrayList<String> notGivenPermissions = new ArrayList<>();
String[] basicPermissions;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // Android 13 (API 33)
basicPermissions = new String[]{
Manifest.permission.MANAGE_EXTERNAL_STORAGE
};
} else {
basicPermissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
}

for (String permission : basicPermissions) {
if (!Permissions.check(this, permission)) {
notGivenPermissions.add(permission);
}
}

if (notGivenPermissions.size() > 0) {
Permissions.request(this, notGivenPermissions.toArray(new String[notGivenPermissions.size()]), PERMISSIONS_REQUEST_CODE);
if (!notGivenPermissions.isEmpty()) {
Permissions.request(this, notGivenPermissions.toArray(new String[0]), PERMISSIONS_REQUEST_CODE);
} else {
confirmSampleStyleAvailable();
}
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include ':library', ':sample', ':wrapper', ':utils'
include ':library', ':sample', ':utils'
Loading
Loading