Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
QuasselDroid-ng
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
External wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Janne Mareike Koschinski
QuasselDroid-ng
Commits
624e7b0e
Unverified
Commit
624e7b0e
authored
1 year ago
by
Janne Mareike Koschinski
Browse files
Options
Downloads
Patches
Plain Diff
fix: foregroundservicetype on Android 14
parent
e70e7f4f
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
app/src/main/AndroidManifest.xml
+1
-0
1 addition, 0 deletions
app/src/main/AndroidManifest.xml
app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
+45
-17
45 additions, 17 deletions
...in/java/de/kuschku/quasseldroid/service/QuasselService.kt
with
46 additions
and
17 deletions
app/src/main/AndroidManifest.xml
+
1
−
0
View file @
624e7b0e
...
...
@@ -30,6 +30,7 @@
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING"
/>
<uses-permission
android:name=
"android.permission.POST_NOTIFICATIONS"
/>
<application
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
+
45
−
17
View file @
624e7b0e
...
...
@@ -23,13 +23,19 @@ import android.content.ComponentName
import
android.content.Context
import
android.content.Intent
import
android.content.SharedPreferences
import
android.content.pm.ServiceInfo
import
android.os.Build
import
android.text.SpannableString
import
androidx.core.app.RemoteInput
import
androidx.lifecycle.Observer
import
com.github.pwittchen.reactivenetwork.library.rx2.ReactiveNetwork
import
de.kuschku.libquassel.connection.ConnectionState
import
de.kuschku.libquassel.connection.SocketAddress
import
de.kuschku.libquassel.protocol.*
import
de.kuschku.libquassel.protocol.BufferId
import
de.kuschku.libquassel.protocol.ClientData
import
de.kuschku.libquassel.protocol.MsgId
import
de.kuschku.libquassel.protocol.Protocol
import
de.kuschku.libquassel.protocol.Protocol_Feature
import
de.kuschku.libquassel.protocol.Protocol_Features
import
de.kuschku.libquassel.quassel.BufferInfo
import
de.kuschku.libquassel.quassel.QuasselFeatures
import
de.kuschku.libquassel.quassel.syncables.interfaces.IAliasManager
...
...
@@ -38,7 +44,6 @@ import de.kuschku.libquassel.session.Session
import
de.kuschku.libquassel.session.SessionManager
import
de.kuschku.libquassel.session.manager.ConnectionInfo
import
de.kuschku.libquassel.util.compatibility.LoggingHandler.Companion.log
import
de.kuschku.libquassel.util.compatibility.LoggingHandler.LogLevel.ERROR
import
de.kuschku.libquassel.util.compatibility.LoggingHandler.LogLevel.INFO
import
de.kuschku.libquassel.util.helper.clampOf
import
de.kuschku.libquassel.util.helper.value
...
...
@@ -48,7 +53,11 @@ import de.kuschku.quasseldroid.BuildConfig
import
de.kuschku.quasseldroid.Keys
import
de.kuschku.quasseldroid.R
import
de.kuschku.quasseldroid.defaults.Defaults
import
de.kuschku.quasseldroid.persistence.dao.*
import
de.kuschku.quasseldroid.persistence.dao.buffers
import
de.kuschku.quasseldroid.persistence.dao.clear
import
de.kuschku.quasseldroid.persistence.dao.findById
import
de.kuschku.quasseldroid.persistence.dao.markHidden
import
de.kuschku.quasseldroid.persistence.dao.markReadNormal
import
de.kuschku.quasseldroid.persistence.db.AccountDatabase
import
de.kuschku.quasseldroid.persistence.db.QuasselDatabase
import
de.kuschku.quasseldroid.persistence.util.AccountId
...
...
@@ -62,7 +71,11 @@ import de.kuschku.quasseldroid.ssl.custom.QuasselCertificateManager
import
de.kuschku.quasseldroid.ssl.custom.QuasselHostnameManager
import
de.kuschku.quasseldroid.util.backport.DaggerLifecycleService
import
de.kuschku.quasseldroid.util.compatibility.AndroidHandlerService
import
de.kuschku.quasseldroid.util.helper.*
import
de.kuschku.quasseldroid.util.helper.editApply
import
de.kuschku.quasseldroid.util.helper.editCommit
import
de.kuschku.quasseldroid.util.helper.lineSequence
import
de.kuschku.quasseldroid.util.helper.sharedPreferences
import
de.kuschku.quasseldroid.util.helper.toLiveData
import
de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer
import
de.kuschku.quasseldroid.util.ui.LocaleHelper
import
io.reactivex.subjects.BehaviorSubject
...
...
@@ -161,10 +174,26 @@ class QuasselService : DaggerLifecycleService(),
val
notificationHandle
=
notificationManager
.
notificationBackground
()
this
.
notificationHandle
=
notificationHandle
updateNotification
(
notificationHandle
,
rawProgress
)
startForeground
(
notificationHandle
.
id
,
notificationHandle
.
builder
.
build
())
if
(
Build
.
VERSION
.
SDK_INT
>=
34
)
{
startForeground
(
notificationHandle
.
id
,
notificationHandle
.
builder
.
build
(),
ServiceInfo
.
FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING
)
}
else
{
startForeground
(
notificationHandle
.
id
,
notificationHandle
.
builder
.
build
()
)
}
}
else
{
this
.
notificationHandle
=
null
stopForeground
(
true
)
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
N
)
{
stopForeground
(
STOP_FOREGROUND_REMOVE
)
}
else
{
@Suppress
(
"DEPRECATION"
)
stopForeground
(
true
)
}
}
}
...
...
@@ -333,9 +362,9 @@ class QuasselService : DaggerLifecycleService(),
.
filter
{
it
}
.
map
{
network
}
}.
firstElement
()
}.
toLiveData
().
observe
(
this
,
Observer
{
}.
toLiveData
().
observe
(
this
)
{
it
?.
requestConnect
()
}
)
}
}
}
...
...
@@ -401,7 +430,7 @@ class QuasselService : DaggerLifecycleService(),
supportedProtocols
=
listOf
(
Protocol
.
Datastream
)
)
sessionManager
.
connectionProgress
.
toLiveData
().
observe
(
this
,
Observer
{
sessionManager
.
connectionProgress
.
toLiveData
().
observe
(
this
)
{
if
(
this
.
progress
.
first
!=
it
?.
first
&&
it
?.
first
==
ConnectionState
.
CONNECTED
)
{
handlerService
.
backend
{
database
.
message
().
clearMessages
()
...
...
@@ -414,12 +443,12 @@ class QuasselService : DaggerLifecycleService(),
updateNotification
(
handle
,
rawProgress
)
notificationManager
.
notify
(
handle
)
}
}
)
}
ReactiveNetwork
.
observeNetworkConnectivity
(
applicationContext
)
.
toLiveData
()
.
observe
(
this
,
Observer
{
connectivity
->
.
observe
(
this
)
{
connectivity
->
if
(!
connectionSettings
.
ignoreNetworkChanges
)
{
log
(
INFO
,
"QuasselService"
,
"Connectivity changed: $connectivity"
)
handlerService
.
backend
{
...
...
@@ -430,13 +459,12 @@ class QuasselService : DaggerLifecycleService(),
)
}
}
}
)
}
sessionManager
.
state
.
distinctUntilChanged
()
.
toLiveData
()
.
observe
(
this
,
Observer
{
.
observe
(
this
)
{
handlerService
.
backend
{
if
(
it
==
ConnectionState
.
HANDSHAKE
)
{
backoff
=
BACKOFF_MIN
...
...
@@ -447,7 +475,7 @@ class QuasselService : DaggerLifecycleService(),
notificationBackend
.
showDisconnectedNotifications
()
}
}
}
)
}
sharedPreferences
(
Keys
.
Status
.
NAME
,
Context
.
MODE_PRIVATE
)
{
registerOnSharedPreferenceChangeListener
(
this
@QuasselService
)
...
...
@@ -512,7 +540,7 @@ class QuasselService : DaggerLifecycleService(),
// Cleanup deleted buffers from cache
val
buffers
=
session
.
bufferSyncer
.
bufferInfos
().
map
(
BufferInfo
::
bufferId
)
val
buffers
=
session
.
bufferSyncer
.
bufferInfos
().
map
(
BufferInfo
::
bufferId
)
.
toSet
()
val
deletedBuffersMessage
=
database
.
message
().
buffers
().
toSet
()
-
buffers
log
(
INFO
,
"QuasselService"
,
"Buffers deleted from message storage: $deletedBuffersMessage"
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment