Merge pull request #6458 from vector-im/feature/bma/android_services

Rename Android Service to use `AndroidService` suffix
This commit is contained in:
Benoit Marty 2022-07-05 14:07:36 +02:00 committed by GitHub
commit d957e24747
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 58 additions and 55 deletions

1
changelog.d/6458.misc Normal file
View File

@ -0,0 +1 @@
Rename Android Service to use `AndroidService` suffix

View File

@ -7,6 +7,7 @@ def excludes = [
'**/*Activity*',
'**/*Fragment*',
'**/*Application*',
'**/*AndroidService*',
// We would like to exclude android widgets as well but our naming is inconsistent

View File

@ -43,7 +43,7 @@
</receiver>
<service
android:name=".fdroid.service.GuardService"
android:name=".fdroid.service.GuardAndroidService"
android:exported="false"
tools:ignore="Instantiatable" />

View File

@ -33,7 +33,7 @@ class FDroidGuardServiceStarter @Inject constructor(
if (preferences.isBackgroundSyncEnabled()) {
try {
Timber.i("## Sync: starting GuardService")
val intent = Intent(appContext, GuardService::class.java)
val intent = Intent(appContext, GuardAndroidService::class.java)
ContextCompat.startForegroundService(appContext, intent)
} catch (ex: Throwable) {
Timber.e("## Sync: ERROR starting GuardService")
@ -42,7 +42,7 @@ class FDroidGuardServiceStarter @Inject constructor(
}
override fun stop() {
val intent = Intent(appContext, GuardService::class.java)
val intent = Intent(appContext, GuardAndroidService::class.java)
appContext.stopService(intent)
}
}

View File

@ -18,7 +18,7 @@ package im.vector.app.fdroid.service
import android.content.Intent
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R
import im.vector.app.core.services.VectorService
import im.vector.app.core.services.VectorAndroidService
import im.vector.app.features.notifications.NotificationUtils
import javax.inject.Inject
@ -29,7 +29,7 @@ import javax.inject.Inject
* when the app is not in the foreground.
*/
@AndroidEntryPoint
class GuardService : VectorService() {
class GuardAndroidService : VectorAndroidService() {
@Inject lateinit var notificationUtils: NotificationUtils

View File

@ -351,7 +351,7 @@
<!-- Services -->
<service
android:name=".core.services.CallService"
android:name=".core.services.CallAndroidService"
android:exported="false">
<!-- in order to get headset button events -->
<intent-filter>
@ -366,7 +366,7 @@
tools:ignore="Instantiatable" />
<service
android:name=".features.call.telecom.VectorConnectionService"
android:name=".features.call.telecom.VectorConnectionAndroidService"
android:exported="false"
android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
<intent-filter>
@ -375,12 +375,12 @@
</service>
<service
android:name=".features.location.LocationSharingService"
android:name=".features.location.LocationSharingAndroidService"
android:exported="false"
android:foregroundServiceType="location" />
<service
android:name=".features.call.webrtc.ScreenCaptureService"
android:name=".features.call.webrtc.ScreenCaptureAndroidService"
android:exported="false"
android:foregroundServiceType="mediaProjection"
tools:targetApi="Q" />

View File

@ -51,7 +51,7 @@ private val loggerTag = LoggerTag("CallService", LoggerTag.VOIP)
* Foreground service to manage calls.
*/
@AndroidEntryPoint
class CallService : VectorService() {
class CallAndroidService : VectorAndroidService() {
private val connections = mutableMapOf<String, CallConnection>()
private val knownCalls = mutableMapOf<String, CallInformation>()
@ -98,7 +98,7 @@ class CallService : VectorService() {
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Timber.tag(loggerTag.value).v("onStartCommand $intent")
if (mediaSession == null) {
mediaSession = MediaSessionCompat(applicationContext, CallService::class.java.name).apply {
mediaSession = MediaSessionCompat(applicationContext, CallAndroidService::class.java.name).apply {
setCallback(mediaSessionButtonCallback)
}
}
@ -326,7 +326,7 @@ class CallService : VectorService() {
callId: String,
isInBackground: Boolean
) {
val intent = Intent(context, CallService::class.java)
val intent = Intent(context, CallAndroidService::class.java)
.apply {
action = ACTION_INCOMING_RINGING_CALL
putExtra(EXTRA_CALL_ID, callId)
@ -339,7 +339,7 @@ class CallService : VectorService() {
context: Context,
callId: String
) {
val intent = Intent(context, CallService::class.java)
val intent = Intent(context, CallAndroidService::class.java)
.apply {
action = ACTION_OUTGOING_RINGING_CALL
putExtra(EXTRA_CALL_ID, callId)
@ -351,7 +351,7 @@ class CallService : VectorService() {
context: Context,
callId: String
) {
val intent = Intent(context, CallService::class.java)
val intent = Intent(context, CallAndroidService::class.java)
.apply {
action = ACTION_ONGOING_CALL
putExtra(EXTRA_CALL_ID, callId)
@ -365,7 +365,7 @@ class CallService : VectorService() {
endCallReason: EndCallReason,
rejected: Boolean
) {
val intent = Intent(context, CallService::class.java)
val intent = Intent(context, CallAndroidService::class.java)
.apply {
action = ACTION_CALL_TERMINATED
putExtra(EXTRA_CALL_ID, callId)
@ -377,8 +377,8 @@ class CallService : VectorService() {
}
inner class CallServiceBinder : Binder() {
fun getCallService(): CallService {
return this@CallService
fun getCallService(): CallAndroidService {
return this@CallAndroidService
}
}
}

View File

@ -22,9 +22,9 @@ import android.os.IBinder
import timber.log.Timber
/**
* Parent class for all services.
* Parent class for all Android Services.
*/
abstract class VectorService : Service() {
abstract class VectorAndroidService : Service() {
/**
* Tells if the service self destroyed.

View File

@ -59,7 +59,7 @@ import im.vector.app.features.call.dialpad.CallDialPadBottomSheet
import im.vector.app.features.call.dialpad.DialPadFragment
import im.vector.app.features.call.transfer.CallTransferActivity
import im.vector.app.features.call.utils.EglUtils
import im.vector.app.features.call.webrtc.ScreenCaptureService
import im.vector.app.features.call.webrtc.ScreenCaptureAndroidService
import im.vector.app.features.call.webrtc.ScreenCaptureServiceConnection
import im.vector.app.features.call.webrtc.WebRtcCall
import im.vector.app.features.call.webrtc.WebRtcCallManager
@ -663,7 +663,7 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
private fun startScreenSharingService(activityResult: ActivityResult) {
ContextCompat.startForegroundService(
this,
Intent(this, ScreenCaptureService::class.java)
Intent(this, ScreenCaptureAndroidService::class.java)
)
bindToScreenCaptureService(activityResult)
}

View File

@ -29,7 +29,7 @@ import android.telecom.PhoneAccountHandle
import android.telecom.StatusHints
import android.telecom.TelecomManager
import androidx.annotation.RequiresApi
import im.vector.app.core.services.CallService
import im.vector.app.core.services.CallAndroidService
/**
* No active calls in other apps
@ -47,7 +47,7 @@ import im.vector.app.core.services.CallService
* the parameter followed by a call to the destroy() method if the user rejects the incoming call.
*</pre>
*/
@RequiresApi(Build.VERSION_CODES.M) class VectorConnectionService : ConnectionService() {
@RequiresApi(Build.VERSION_CODES.M) class VectorConnectionAndroidService : ConnectionService() {
/**
* The telecom subsystem calls this method in response to your app calling placeCall(Uri, Bundle) to create a new outgoing call.
@ -69,14 +69,14 @@ import im.vector.app.core.services.CallService
connection.setCallerDisplayName("Element Caller", TelecomManager.PRESENTATION_ALLOWED)
connection.statusHints = StatusHints("Testing Hint...", null, null)
bindService(Intent(applicationContext, CallService::class.java), CallServiceConnection(connection), 0)
bindService(Intent(applicationContext, CallAndroidService::class.java), CallServiceConnection(connection), 0)
connection.setInitializing()
return connection
}
inner class CallServiceConnection(private val callConnection: CallConnection) : ServiceConnection {
override fun onServiceConnected(name: ComponentName?, binder: IBinder?) {
val callSrvBinder = binder as CallService.CallServiceBinder
val callSrvBinder = binder as CallAndroidService.CallServiceBinder
callSrvBinder.getCallService().addConnection(callConnection)
unbindService(this)
}

View File

@ -20,13 +20,13 @@ import android.content.Intent
import android.os.Binder
import android.os.IBinder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.services.VectorService
import im.vector.app.core.services.VectorAndroidService
import im.vector.app.core.time.Clock
import im.vector.app.features.notifications.NotificationUtils
import javax.inject.Inject
@AndroidEntryPoint
class ScreenCaptureService : VectorService() {
class ScreenCaptureAndroidService : VectorAndroidService() {
@Inject lateinit var notificationUtils: NotificationUtils
@Inject lateinit var clock: Clock
@ -53,6 +53,6 @@ class ScreenCaptureService : VectorService() {
}
inner class LocalBinder : Binder() {
fun getService(): ScreenCaptureService = this@ScreenCaptureService
fun getService(): ScreenCaptureAndroidService = this@ScreenCaptureAndroidService
}
}

View File

@ -32,7 +32,7 @@ class ScreenCaptureServiceConnection @Inject constructor(
}
private var isBound = false
private var screenCaptureService: ScreenCaptureService? = null
private var screenCaptureAndroidService: ScreenCaptureAndroidService? = null
private var callback: Callback? = null
fun bind(callback: Callback) {
@ -41,25 +41,25 @@ class ScreenCaptureServiceConnection @Inject constructor(
if (isBound) {
callback.onServiceConnected()
} else {
Intent(context, ScreenCaptureService::class.java).also { intent ->
Intent(context, ScreenCaptureAndroidService::class.java).also { intent ->
context.bindService(intent, this, 0)
}
}
}
fun stopScreenCapturing() {
screenCaptureService?.stopService()
screenCaptureAndroidService?.stopService()
}
override fun onServiceConnected(className: ComponentName, binder: IBinder) {
screenCaptureService = (binder as ScreenCaptureService.LocalBinder).getService()
screenCaptureAndroidService = (binder as ScreenCaptureAndroidService.LocalBinder).getService()
isBound = true
callback?.onServiceConnected()
}
override fun onServiceDisconnected(className: ComponentName) {
isBound = false
screenCaptureService = null
screenCaptureAndroidService = null
callback = null
}
}

View File

@ -19,7 +19,7 @@ package im.vector.app.features.call.webrtc
import android.content.Context
import android.hardware.camera2.CameraManager
import androidx.core.content.getSystemService
import im.vector.app.core.services.CallService
import im.vector.app.core.services.CallAndroidService
import im.vector.app.core.utils.PublishDataSource
import im.vector.app.core.utils.TextUtils.formatDuration
import im.vector.app.features.call.CameraEventsHandlerAdapter
@ -477,7 +477,7 @@ class WebRtcCall(
val turnServerResponse = getTurnServer()
// Update service state
withContext(Dispatchers.Main) {
CallService.onPendingCall(
CallAndroidService.onPendingCall(
context = context,
callId = mxCall.callId
)

View File

@ -22,7 +22,7 @@ import androidx.lifecycle.LifecycleOwner
import im.vector.app.ActiveSessionDataSource
import im.vector.app.BuildConfig
import im.vector.app.core.pushers.UnifiedPushHelper
import im.vector.app.core.services.CallService
import im.vector.app.core.services.CallAndroidService
import im.vector.app.features.analytics.AnalyticsTracker
import im.vector.app.features.analytics.plan.CallEnded
import im.vector.app.features.analytics.plan.CallStarted
@ -254,7 +254,7 @@ class WebRtcCallManager @Inject constructor(
Timber.tag(loggerTag.value).v("On call ended for unknown call $callId")
}
webRtcCall.trackCallEnded()
CallService.onCallTerminated(context, callId, endCallReason, rejected)
CallAndroidService.onCallTerminated(context, callId, endCallReason, rejected)
callsByRoomId[webRtcCall.signalingRoomId]?.remove(webRtcCall)
callsByRoomId[webRtcCall.nativeRoomId]?.remove(webRtcCall)
transferees.remove(callId)
@ -305,7 +305,7 @@ class WebRtcCallManager @Inject constructor(
if (transferee != null) {
transferees[webRtcCall.callId] = transferee
}
CallService.onOutgoingCallRinging(
CallAndroidService.onOutgoingCallRinging(
context = context.applicationContext,
callId = mxCall.callId
)
@ -370,7 +370,7 @@ class WebRtcCallManager @Inject constructor(
offerSdp = callInviteContent.offer
}
// Start background service with notification
CallService.onIncomingCallRinging(
CallAndroidService.onIncomingCallRinging(
context = context,
callId = mxCall.callId,
isInBackground = isInBackground
@ -395,7 +395,7 @@ class WebRtcCallManager @Inject constructor(
}
val mxCall = call.mxCall
// Update service state
CallService.onPendingCall(
CallAndroidService.onPendingCall(
context = context,
callId = mxCall.callId
)

View File

@ -23,7 +23,7 @@ import android.os.Parcelable
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R
import im.vector.app.core.di.ActiveSessionHolder
import im.vector.app.core.services.VectorService
import im.vector.app.core.services.VectorAndroidService
import im.vector.app.features.location.live.GetLiveLocationShareSummaryUseCase
import im.vector.app.features.notifications.NotificationUtils
import im.vector.app.features.session.coroutineScope
@ -42,7 +42,7 @@ import timber.log.Timber
import javax.inject.Inject
@AndroidEntryPoint
class LocationSharingService : VectorService(), LocationTracker.Callback {
class LocationSharingAndroidService : VectorAndroidService(), LocationTracker.Callback {
@Parcelize
data class RoomArgs(
@ -80,7 +80,7 @@ class LocationSharingService : VectorService(), LocationTracker.Callback {
launchWithActiveSession { session ->
val job = locationTracker.locations
.onEach(this@LocationSharingService::onLocationUpdate)
.onEach(this@LocationSharingAndroidService::onLocationUpdate)
.launchIn(session.coroutineScope)
jobs.add(job)
}
@ -225,7 +225,7 @@ class LocationSharingService : VectorService(), LocationTracker.Callback {
}
inner class LocalBinder : Binder() {
fun getService(): LocationSharingService = this@LocationSharingService
fun getService(): LocationSharingAndroidService = this@LocationSharingAndroidService
}
interface Callback {

View File

@ -179,10 +179,10 @@ class LocationSharingFragment @Inject constructor(
}
private fun handleStartLiveLocationService(event: LocationSharingViewEvents.StartLiveLocationService) {
val args = LocationSharingService.RoomArgs(event.sessionId, event.roomId, event.durationMillis)
val args = LocationSharingAndroidService.RoomArgs(event.sessionId, event.roomId, event.durationMillis)
Intent(requireContext(), LocationSharingService::class.java)
.putExtra(LocationSharingService.EXTRA_ROOM_ARGS, args)
Intent(requireContext(), LocationSharingAndroidService::class.java)
.putExtra(LocationSharingAndroidService.EXTRA_ROOM_ARGS, args)
.also {
ContextCompat.startForegroundService(requireContext(), it)
}

View File

@ -27,7 +27,8 @@ import javax.inject.Singleton
@Singleton
class LocationSharingServiceConnection @Inject constructor(
private val context: Context
) : ServiceConnection, LocationSharingService.Callback {
) : ServiceConnection,
LocationSharingAndroidService.Callback {
interface Callback {
fun onLocationServiceRunning()
@ -37,7 +38,7 @@ class LocationSharingServiceConnection @Inject constructor(
private val callbacks = mutableSetOf<Callback>()
private var isBound = false
private var locationSharingService: LocationSharingService? = null
private var locationSharingAndroidService: LocationSharingAndroidService? = null
fun bind(callback: Callback) {
addCallback(callback)
@ -45,7 +46,7 @@ class LocationSharingServiceConnection @Inject constructor(
if (isBound) {
callback.onLocationServiceRunning()
} else {
Intent(context, LocationSharingService::class.java).also { intent ->
Intent(context, LocationSharingAndroidService::class.java).also { intent ->
context.bindService(intent, this, 0)
}
}
@ -56,7 +57,7 @@ class LocationSharingServiceConnection @Inject constructor(
}
override fun onServiceConnected(className: ComponentName, binder: IBinder) {
locationSharingService = (binder as LocationSharingService.LocalBinder).getService().also {
locationSharingAndroidService = (binder as LocationSharingAndroidService.LocalBinder).getService().also {
it.callback = this
}
isBound = true
@ -65,8 +66,8 @@ class LocationSharingServiceConnection @Inject constructor(
override fun onServiceDisconnected(className: ComponentName) {
isBound = false
locationSharingService?.callback = null
locationSharingService = null
locationSharingAndroidService?.callback = null
locationSharingAndroidService = null
onCallbackActionNoArg(Callback::onLocationServiceStopped)
}

View File

@ -50,7 +50,7 @@ import im.vector.app.R
import im.vector.app.core.extensions.createIgnoredUri
import im.vector.app.core.platform.PendingIntentCompat
import im.vector.app.core.resources.StringProvider
import im.vector.app.core.services.CallService
import im.vector.app.core.services.CallAndroidService
import im.vector.app.core.time.Clock
import im.vector.app.core.utils.startNotificationChannelSettingsIntent
import im.vector.app.features.call.VectorCallActivity
@ -512,7 +512,7 @@ class NotificationUtils @Inject constructor(
/**
* Build notification for the CallService, when a call is missed.
*/
fun buildCallMissedNotification(callInformation: CallService.CallInformation): Notification {
fun buildCallMissedNotification(callInformation: CallAndroidService.CallInformation): Notification {
val builder = NotificationCompat.Builder(context, SILENT_NOTIFICATION_CHANNEL_ID)
.setContentTitle(callInformation.opponentMatrixItem?.getBestName() ?: callInformation.opponentUserId)
.apply {