Skip to content

Commit

Permalink
Merge pull request #12 from freshbits/release/2.3.4
Browse files Browse the repository at this point in the history
Release 2.3.4.post0
  • Loading branch information
jhabr committed Feb 2, 2024
2 parents 1dcca63 + 096408c commit f126be4
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 8 deletions.
1 change: 0 additions & 1 deletion android-example-app/app-kotlin/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
}

android {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
android:theme="@style/AppTheme" >
<activity
android:name="ch.freshbits.pathshare.example.MainActivity"
android:label="@string/app_name"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package ch.freshbits.pathshare.example

import android.app.AlarmManager
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.util.Log
import android.view.View
import android.widget.Button
Expand Down Expand Up @@ -146,10 +150,11 @@ class MainActivity : AppCompatActivity() {
private fun joinSession() {
if (session.isExpired) return

if (hasLocationPermission()) {
if (hasLocationPermission() && hasAlarmPermission()) {
performJoinSession()
} else {
requestLocationPermission()
if (!hasLocationPermission()) { requestLocationPermission() }
if (!hasAlarmPermission()) { requestAlarmPermission() }
}
}

Expand Down Expand Up @@ -222,6 +227,26 @@ class MainActivity : AppCompatActivity() {
return PermissionRequester.hasPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
}

private fun requestAlarmPermission() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
return
}
val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)
startActivity(intent)
}

private fun hasAlarmPermission(): Boolean {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.S || getAlarmManager().canScheduleExactAlarms()
}

private fun getAlarmManager(): AlarmManager {
return getContext().getSystemService(ALARM_SERVICE) as AlarmManager
}

private fun getContext(): Context {
return Pathshare.client().context
}

private fun saveSessionIdentifier() {
val editor = preferences().edit()
editor.putString(SESSION_ID_KEY, session.identifier)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@

import android.Manifest;
import android.app.Activity;
import android.app.AlarmManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.widget.Button;
import android.widget.Toast;
Expand Down Expand Up @@ -131,10 +135,11 @@ public void onError(@NonNull Throwable throwable) {
private void joinSession() {
if (getSession().isExpired()) { return; }

if (hasLocationPermission()) {
if (hasLocationPermission() && hasAlarmPermission()) {
performJoinSession();
} else {
requestLocationPermission();
if (!hasLocationPermission()) { requestLocationPermission(); }
if (!hasAlarmPermission()) { requestAlarmPermission(); }
}
}

Expand Down Expand Up @@ -171,6 +176,27 @@ private boolean hasLocationPermission() {
return PermissionRequester.hasPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
}

private void requestAlarmPermission() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
return;
}

Intent intent = new Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM);
startActivity(intent);
}

private boolean hasAlarmPermission() {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.S || getAlarmManager().canScheduleExactAlarms();
}

private AlarmManager getAlarmManager() {
return (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
}

private Context getContext() {
return Pathshare.client().getContext();
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == TAG_PERMISSIONS_REQUEST_LOCATION_ACCESS) {
Expand Down
4 changes: 2 additions & 2 deletions android-example-app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.7.22'
ext.kotlin_version = '1.9.22'

repositories {
mavenCentral()
Expand All @@ -24,6 +24,6 @@ allprojects {
}
}

task clean(type: Delete) {
tasks.register('clean', Delete) {
delete rootProject.buildDir
}

0 comments on commit f126be4

Please sign in to comment.