mirror of
https://github.com/MatomoCamp/matomocamp-companion-android.git
synced 2024-09-19 16:13:46 +02:00
notification permissions
This commit is contained in:
parent
23a0f7054f
commit
4d4137e590
6 changed files with 17 additions and 1 deletions
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.NFC" />
|
<uses-permission android:name="android.permission.NFC" />
|
||||||
|
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
||||||
|
|
||||||
<!-- Permissions required for alarms -->
|
<!-- Permissions required for alarms -->
|
||||||
<uses-permission
|
<uses-permission
|
||||||
|
|
|
@ -2,6 +2,7 @@ package org.matomocamp.companion.api
|
||||||
|
|
||||||
import android.os.SystemClock
|
import android.os.SystemClock
|
||||||
import android.text.format.DateUtils
|
import android.text.format.DateUtils
|
||||||
|
import android.util.Log
|
||||||
import androidx.annotation.MainThread
|
import androidx.annotation.MainThread
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
@ -86,6 +87,7 @@ class MatomoCampApi @Inject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
Log.e("MatomoCamp", "Download Error", e)
|
||||||
DownloadScheduleResult.Error
|
DownloadScheduleResult.Error
|
||||||
}
|
}
|
||||||
_downloadScheduleState.value = LoadingState.Idle(SingleEvent(res))
|
_downloadScheduleState.value = LoadingState.Idle(SingleEvent(res))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.matomocamp.companion.services
|
package org.matomocamp.companion.services
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.app.AlarmManager
|
import android.app.AlarmManager
|
||||||
import android.app.Notification
|
import android.app.Notification
|
||||||
import android.app.NotificationChannel
|
import android.app.NotificationChannel
|
||||||
|
@ -59,11 +60,16 @@ class AlarmIntentService : JobIntentService() {
|
||||||
getSystemService()!!
|
getSystemService()!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("UnspecifiedImmutableFlag")
|
||||||
private fun getAlarmPendingIntent(eventId: Long): PendingIntent {
|
private fun getAlarmPendingIntent(eventId: Long): PendingIntent {
|
||||||
val intent = Intent(this, AlarmReceiver::class.java)
|
val intent = Intent(this, AlarmReceiver::class.java)
|
||||||
.setAction(AlarmReceiver.ACTION_NOTIFY_EVENT)
|
.setAction(AlarmReceiver.ACTION_NOTIFY_EVENT)
|
||||||
.setData(eventId.toString().toUri())
|
.setData(eventId.toString().toUri())
|
||||||
return PendingIntent.getBroadcast(this, 0, intent, 0)
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||||
|
PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE)
|
||||||
|
} else {
|
||||||
|
PendingIntent.getActivity(this, 0, intent, 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onHandleWork(intent: Intent) {
|
override fun onHandleWork(intent: Intent) {
|
||||||
|
|
|
@ -97,4 +97,5 @@
|
||||||
<string name="no_data">Keine Daten Verfügbar.</string>
|
<string name="no_data">Keine Daten Verfügbar.</string>
|
||||||
<string name="website">Webseite</string>
|
<string name="website">Webseite</string>
|
||||||
<string name="open_in_webbrowser">Im Webbrowser öffnen</string>
|
<string name="open_in_webbrowser">Im Webbrowser öffnen</string>
|
||||||
|
<string name="notification_warning">Abhängig von der Android Version und Energieoptionen werden Benachrichtigungen möglicherweise nicht zuverlässig zugestellt.</string>
|
||||||
</resources>
|
</resources>
|
|
@ -95,6 +95,7 @@
|
||||||
<item>2</item>
|
<item>2</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="settings_notifications">Notifications</string>
|
<string name="settings_notifications">Notifications</string>
|
||||||
|
<string name="notification_warning">Depending on your Android version and Energy settings, notifications might not be reliably delivered.</string>
|
||||||
<string name="settings_notifications_enabled_title">Enable notifications</string>
|
<string name="settings_notifications_enabled_title">Enable notifications</string>
|
||||||
<string name="settings_notifications_enabled_summary">If checked, this will notify you of upcoming bookmarked events</string>
|
<string name="settings_notifications_enabled_summary">If checked, this will notify you of upcoming bookmarked events</string>
|
||||||
<string name="settings_notifications_channel_title">Customize</string>
|
<string name="settings_notifications_channel_title">Customize</string>
|
||||||
|
|
|
@ -25,6 +25,11 @@
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory app:title="@string/settings_notifications">
|
<PreferenceCategory app:title="@string/settings_notifications">
|
||||||
|
<Preference
|
||||||
|
app:key="pref_static_field_key2"
|
||||||
|
app:selectable="false"
|
||||||
|
app:persistent="false"
|
||||||
|
app:summary="@string/notification_warning"/>
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
app:defaultValue="true"
|
app:defaultValue="true"
|
||||||
app:icon="@drawable/ic_notifications_normal_24dp"
|
app:icon="@drawable/ic_notifications_normal_24dp"
|
||||||
|
|
Loading…
Reference in a new issue