refactoring to id.databisnis.bachot

This commit is contained in:
2026-02-20 14:01:46 +07:00
parent e5bfd1c4b0
commit 8d43893962
3932 changed files with 23073 additions and 23073 deletions
@@ -34,7 +34,7 @@
android:label="@string/element_call"
android:launchMode="singleTask"
android:supportsPictureInPicture="true"
android:taskAffinity="io.element.android.features.call">
android:taskAffinity="id.databisnis.android.bachot.features.call">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
@@ -75,7 +75,7 @@
android:excludeFromRecents="true"
android:exported="false"
android:launchMode="singleTask"
android:taskAffinity="io.element.android.features.call" />
android:taskAffinity="id.databisnis.android.bachot.features.call" />
<service
android:name=".services.CallForegroundService"
@@ -6,19 +6,19 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl
package id.databisnis.android.bachot.features.call.impl
import android.content.Context
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.features.call.api.CallType
import io.element.android.features.call.api.ElementCallEntryPoint
import io.element.android.features.call.impl.notifications.CallNotificationData
import io.element.android.features.call.impl.utils.ActiveCallManager
import io.element.android.features.call.impl.utils.IntentProvider
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.api.ElementCallEntryPoint
import id.databisnis.android.bachot.features.call.impl.notifications.CallNotificationData
import id.databisnis.android.bachot.features.call.impl.utils.ActiveCallManager
import id.databisnis.android.bachot.features.call.impl.utils.IntentProvider
import id.databisnis.android.bachot.libraries.di.annotations.ApplicationContext
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
@ContributesBinding(AppScope::class)
class DefaultElementCallEntryPoint(
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.data
package id.databisnis.android.bachot.features.call.impl.data
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@@ -6,13 +6,13 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.di
package id.databisnis.android.bachot.features.call.impl.di
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesTo
import io.element.android.features.call.impl.receivers.DeclineCallBroadcastReceiver
import io.element.android.features.call.impl.ui.ElementCallActivity
import io.element.android.features.call.impl.ui.IncomingCallActivity
import id.databisnis.android.bachot.features.call.impl.receivers.DeclineCallBroadcastReceiver
import id.databisnis.android.bachot.features.call.impl.ui.ElementCallActivity
import id.databisnis.android.bachot.features.call.impl.ui.IncomingCallActivity
@ContributesTo(AppScope::class)
interface CallBindings {
@@ -6,13 +6,13 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.notifications
package id.databisnis.android.bachot.features.call.impl.notifications
import android.os.Parcelable
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.UserId
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
import kotlinx.parcelize.Parcelize
@Parcelize
@@ -5,7 +5,7 @@
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.notifications
package id.databisnis.android.bachot.features.call.impl.notifications
import android.app.Notification
import android.app.PendingIntent
@@ -17,22 +17,22 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.PendingIntentCompat
import androidx.core.app.Person
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.ElementCallConfig
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.receivers.DeclineCallBroadcastReceiver
import io.element.android.features.call.impl.ui.IncomingCallActivity
import io.element.android.features.call.impl.utils.IntentProvider
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
import io.element.android.libraries.push.api.notifications.NotificationBitmapLoader
import id.databisnis.android.bachot.appconfig.ElementCallConfig
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.receivers.DeclineCallBroadcastReceiver
import id.databisnis.android.bachot.features.call.impl.ui.IncomingCallActivity
import id.databisnis.android.bachot.features.call.impl.utils.IntentProvider
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarSize
import id.databisnis.android.bachot.libraries.designsystem.utils.CommonDrawables
import id.databisnis.android.bachot.libraries.di.annotations.ApplicationContext
import id.databisnis.android.bachot.libraries.matrix.api.MatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
import id.databisnis.android.bachot.libraries.matrix.ui.media.ImageLoaderHolder
import id.databisnis.android.bachot.libraries.push.api.notifications.NotificationBitmapLoader
import kotlin.time.Duration.Companion.seconds
/**
@@ -6,9 +6,9 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
import io.element.android.features.call.impl.utils.PipController
import id.databisnis.android.bachot.features.call.impl.utils.PipController
sealed interface PictureInPictureEvents {
data class SetPipController(val pipController: PipController) : PictureInPictureEvents
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@@ -15,9 +15,9 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import dev.zacsweers.metro.Inject
import io.element.android.features.call.impl.utils.PipController
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.core.log.logger.LoggerTag
import id.databisnis.android.bachot.features.call.impl.utils.PipController
import id.databisnis.android.bachot.libraries.architecture.Presenter
import id.databisnis.android.bachot.libraries.core.log.logger.LoggerTag
import kotlinx.coroutines.launch
import timber.log.Timber
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
data class PictureInPictureState(
val supportPip: Boolean,
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
fun aPictureInPictureState(
supportPip: Boolean = false,
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
import android.content.Context
import android.content.pm.PackageManager
@@ -14,8 +14,8 @@ import android.os.Build
import androidx.annotation.ChecksSdkIntAtLeast
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.di.annotations.ApplicationContext
import id.databisnis.android.bachot.libraries.core.bool.orFalse
import id.databisnis.android.bachot.libraries.di.annotations.ApplicationContext
interface PipSupportProvider {
@ChecksSdkIntAtLeast(Build.VERSION_CODES.O)
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
interface PipView {
fun setPipParams()
@@ -6,19 +6,19 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.receivers
package id.databisnis.android.bachot.features.call.impl.receivers
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import androidx.core.content.IntentCompat
import dev.zacsweers.metro.Inject
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.di.CallBindings
import io.element.android.features.call.impl.notifications.CallNotificationData
import io.element.android.features.call.impl.utils.ActiveCallManager
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.di.annotations.AppCoroutineScope
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.di.CallBindings
import id.databisnis.android.bachot.features.call.impl.notifications.CallNotificationData
import id.databisnis.android.bachot.features.call.impl.utils.ActiveCallManager
import id.databisnis.android.bachot.libraries.architecture.bindings
import id.databisnis.android.bachot.libraries.di.annotations.AppCoroutineScope
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.services
package id.databisnis.android.bachot.features.call.impl.services
import android.Manifest
import android.app.Service
@@ -22,12 +22,12 @@ import androidx.core.app.NotificationManagerCompat
import androidx.core.app.PendingIntentCompat
import androidx.core.app.ServiceCompat
import androidx.core.content.ContextCompat
import io.element.android.features.call.impl.R
import io.element.android.features.call.impl.ui.ElementCallActivity
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.push.api.notifications.ForegroundServiceType
import io.element.android.libraries.push.api.notifications.NotificationIdProvider
import id.databisnis.android.bachot.features.call.impl.R
import id.databisnis.android.bachot.features.call.impl.ui.ElementCallActivity
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
import id.databisnis.android.bachot.libraries.designsystem.utils.CommonDrawables
import id.databisnis.android.bachot.libraries.push.api.notifications.ForegroundServiceType
import id.databisnis.android.bachot.libraries.push.api.notifications.NotificationIdProvider
import timber.log.Timber
/**
@@ -6,9 +6,9 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import io.element.android.features.call.impl.utils.WidgetMessageInterceptor
import id.databisnis.android.bachot.features.call.impl.utils.WidgetMessageInterceptor
sealed interface CallScreenEvents {
data object Hangup : CallScreenEvents
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
@@ -22,25 +22,25 @@ import dev.zacsweers.metro.Assisted
import dev.zacsweers.metro.AssistedFactory
import dev.zacsweers.metro.AssistedInject
import im.vector.app.features.analytics.plan.MobileScreen
import io.element.android.compound.theme.ElementTheme
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.data.WidgetMessage
import io.element.android.features.call.impl.utils.ActiveCallManager
import io.element.android.features.call.impl.utils.CallWidgetProvider
import io.element.android.features.call.impl.utils.WidgetMessageInterceptor
import io.element.android.features.call.impl.utils.WidgetMessageSerializer
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.architecture.runCatchingUpdatingState
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.di.annotations.AppCoroutineScope
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.sync.SyncState
import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver
import io.element.android.libraries.network.useragent.UserAgentProvider
import io.element.android.services.analytics.api.ScreenTracker
import io.element.android.services.appnavstate.api.AppForegroundStateService
import io.element.android.services.toolbox.api.systemclock.SystemClock
import id.databisnis.android.bachot.compound.theme.ElementTheme
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.data.WidgetMessage
import id.databisnis.android.bachot.features.call.impl.utils.ActiveCallManager
import id.databisnis.android.bachot.features.call.impl.utils.CallWidgetProvider
import id.databisnis.android.bachot.features.call.impl.utils.WidgetMessageInterceptor
import id.databisnis.android.bachot.features.call.impl.utils.WidgetMessageSerializer
import id.databisnis.android.bachot.libraries.architecture.AsyncData
import id.databisnis.android.bachot.libraries.architecture.Presenter
import id.databisnis.android.bachot.libraries.architecture.runCatchingUpdatingState
import id.databisnis.android.bachot.libraries.core.coroutine.CoroutineDispatchers
import id.databisnis.android.bachot.libraries.di.annotations.AppCoroutineScope
import id.databisnis.android.bachot.libraries.matrix.api.MatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.api.sync.SyncState
import id.databisnis.android.bachot.libraries.matrix.api.widget.MatrixWidgetDriver
import id.databisnis.android.bachot.libraries.network.useragent.UserAgentProvider
import id.databisnis.android.bachot.services.analytics.api.ScreenTracker
import id.databisnis.android.bachot.services.appnavstate.api.AppForegroundStateService
import id.databisnis.android.bachot.services.toolbox.api.systemclock.SystemClock
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.launchIn
@@ -6,9 +6,9 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import io.element.android.libraries.architecture.AsyncData
import id.databisnis.android.bachot.libraries.architecture.AsyncData
data class CallScreenState(
val urlState: AsyncData<String>,
@@ -6,10 +6,10 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.architecture.AsyncData
import id.databisnis.android.bachot.libraries.architecture.AsyncData
open class CallScreenStateProvider : PreviewParameterProvider<CallScreenState> {
override val values: Sequence<CallScreenState>
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import android.annotation.SuppressLint
import android.view.ViewGroup
@@ -32,22 +32,22 @@ import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.viewinterop.AndroidView
import io.element.android.features.call.impl.R
import io.element.android.features.call.impl.pip.PictureInPictureEvents
import io.element.android.features.call.impl.pip.PictureInPictureState
import io.element.android.features.call.impl.pip.aPictureInPictureState
import io.element.android.features.call.impl.utils.InvalidAudioDeviceReason
import io.element.android.features.call.impl.utils.WebViewAudioManager
import io.element.android.features.call.impl.utils.WebViewPipController
import io.element.android.features.call.impl.utils.WebViewWidgetMessageInterceptor
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.designsystem.components.ProgressDialog
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.ui.strings.CommonStrings
import id.databisnis.android.bachot.features.call.impl.R
import id.databisnis.android.bachot.features.call.impl.pip.PictureInPictureEvents
import id.databisnis.android.bachot.features.call.impl.pip.PictureInPictureState
import id.databisnis.android.bachot.features.call.impl.pip.aPictureInPictureState
import id.databisnis.android.bachot.features.call.impl.utils.InvalidAudioDeviceReason
import id.databisnis.android.bachot.features.call.impl.utils.WebViewAudioManager
import id.databisnis.android.bachot.features.call.impl.utils.WebViewPipController
import id.databisnis.android.bachot.features.call.impl.utils.WebViewWidgetMessageInterceptor
import id.databisnis.android.bachot.libraries.architecture.AsyncData
import id.databisnis.android.bachot.libraries.designsystem.components.ProgressDialog
import id.databisnis.android.bachot.libraries.designsystem.components.dialogs.ErrorDialog
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Scaffold
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
import timber.log.Timber
typealias RequestPermissionCallback = (Array<String>) -> Unit
@@ -6,10 +6,10 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import io.element.android.features.call.api.CallType
import io.element.android.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
fun CallType.getSessionId(): SessionId? {
return when (this) {
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import android.Manifest
import android.app.PictureInPictureParams
@@ -34,27 +34,27 @@ import androidx.core.content.IntentCompat
import androidx.core.util.Consumer
import androidx.lifecycle.Lifecycle
import dev.zacsweers.metro.Inject
import io.element.android.compound.colors.SemanticColorsLightDark
import io.element.android.features.call.api.CallType
import io.element.android.features.call.api.CallType.ExternalUrl
import io.element.android.features.call.impl.DefaultElementCallEntryPoint
import io.element.android.features.call.impl.di.CallBindings
import io.element.android.features.call.impl.pip.PictureInPictureEvents
import io.element.android.features.call.impl.pip.PictureInPicturePresenter
import io.element.android.features.call.impl.pip.PictureInPictureState
import io.element.android.features.call.impl.pip.PipView
import io.element.android.features.call.impl.services.CallForegroundService
import io.element.android.features.call.impl.utils.CallIntentDataParser
import io.element.android.features.enterprise.api.EnterpriseService
import io.element.android.libraries.androidutils.browser.ConsoleMessageLogger
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.audio.api.AudioFocus
import io.element.android.libraries.audio.api.AudioFocusRequester
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.designsystem.theme.ElementThemeApp
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
import id.databisnis.android.bachot.compound.colors.SemanticColorsLightDark
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.api.CallType.ExternalUrl
import id.databisnis.android.bachot.features.call.impl.DefaultElementCallEntryPoint
import id.databisnis.android.bachot.features.call.impl.di.CallBindings
import id.databisnis.android.bachot.features.call.impl.pip.PictureInPictureEvents
import id.databisnis.android.bachot.features.call.impl.pip.PictureInPicturePresenter
import id.databisnis.android.bachot.features.call.impl.pip.PictureInPictureState
import id.databisnis.android.bachot.features.call.impl.pip.PipView
import id.databisnis.android.bachot.features.call.impl.services.CallForegroundService
import id.databisnis.android.bachot.features.call.impl.utils.CallIntentDataParser
import id.databisnis.android.bachot.features.enterprise.api.EnterpriseService
import id.databisnis.android.bachot.libraries.androidutils.browser.ConsoleMessageLogger
import id.databisnis.android.bachot.libraries.architecture.Presenter
import id.databisnis.android.bachot.libraries.architecture.bindings
import id.databisnis.android.bachot.libraries.audio.api.AudioFocus
import id.databisnis.android.bachot.libraries.audio.api.AudioFocusRequester
import id.databisnis.android.bachot.libraries.core.log.logger.LoggerTag
import id.databisnis.android.bachot.libraries.core.meta.BuildMeta
import id.databisnis.android.bachot.libraries.designsystem.theme.ElementThemeApp
import id.databisnis.android.bachot.libraries.preferences.api.store.AppPreferencesStore
import timber.log.Timber
private val loggerTag = LoggerTag("ElementCallActivity")
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import android.os.Bundle
import android.view.WindowManager
@@ -18,19 +18,19 @@ import androidx.compose.runtime.remember
import androidx.core.content.IntentCompat
import androidx.lifecycle.lifecycleScope
import dev.zacsweers.metro.Inject
import io.element.android.compound.colors.SemanticColorsLightDark
import io.element.android.features.call.api.CallType
import io.element.android.features.call.api.ElementCallEntryPoint
import io.element.android.features.call.impl.di.CallBindings
import io.element.android.features.call.impl.notifications.CallNotificationData
import io.element.android.features.call.impl.utils.ActiveCallManager
import io.element.android.features.call.impl.utils.CallState
import io.element.android.features.enterprise.api.EnterpriseService
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.designsystem.theme.ElementThemeApp
import io.element.android.libraries.di.annotations.AppCoroutineScope
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
import id.databisnis.android.bachot.compound.colors.SemanticColorsLightDark
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.api.ElementCallEntryPoint
import id.databisnis.android.bachot.features.call.impl.di.CallBindings
import id.databisnis.android.bachot.features.call.impl.notifications.CallNotificationData
import id.databisnis.android.bachot.features.call.impl.utils.ActiveCallManager
import id.databisnis.android.bachot.features.call.impl.utils.CallState
import id.databisnis.android.bachot.features.enterprise.api.EnterpriseService
import id.databisnis.android.bachot.libraries.architecture.bindings
import id.databisnis.android.bachot.libraries.core.meta.BuildMeta
import id.databisnis.android.bachot.libraries.designsystem.theme.ElementThemeApp
import id.databisnis.android.bachot.libraries.di.annotations.AppCoroutineScope
import id.databisnis.android.bachot.libraries.preferences.api.store.AppPreferencesStore
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.launchIn
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement
@@ -32,24 +32,24 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.features.call.impl.R
import io.element.android.features.call.impl.notifications.CallNotificationData
import io.element.android.libraries.designsystem.background.OnboardingBackground
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.components.avatar.AvatarType
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.ui.strings.CommonStrings
import id.databisnis.android.bachot.compound.theme.ElementTheme
import id.databisnis.android.bachot.compound.tokens.generated.CompoundIcons
import id.databisnis.android.bachot.features.call.impl.R
import id.databisnis.android.bachot.features.call.impl.notifications.CallNotificationData
import id.databisnis.android.bachot.libraries.designsystem.background.OnboardingBackground
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.Avatar
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarSize
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarType
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Icon
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
@Composable
internal fun IncomingCallScreen(
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.ui
package id.databisnis.android.bachot.features.call.impl.ui
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalConfiguration
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import android.annotation.SuppressLint
import android.content.Context
@@ -19,22 +19,22 @@ import coil3.annotation.DelicateCoilApi
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.SingleIn
import io.element.android.appconfig.ElementCallConfig
import io.element.android.features.call.api.CallType
import io.element.android.features.call.api.CurrentCall
import io.element.android.features.call.impl.notifications.CallNotificationData
import io.element.android.features.call.impl.notifications.RingingCallNotificationCreator
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.di.annotations.AppCoroutineScope
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
import io.element.android.libraries.push.api.notifications.ForegroundServiceType
import io.element.android.libraries.push.api.notifications.NotificationIdProvider
import io.element.android.libraries.push.api.notifications.OnMissedCallNotificationHandler
import io.element.android.services.appnavstate.api.AppForegroundStateService
import io.element.android.services.toolbox.api.systemclock.SystemClock
import id.databisnis.android.bachot.appconfig.ElementCallConfig
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.api.CurrentCall
import id.databisnis.android.bachot.features.call.impl.notifications.CallNotificationData
import id.databisnis.android.bachot.features.call.impl.notifications.RingingCallNotificationCreator
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
import id.databisnis.android.bachot.libraries.di.annotations.AppCoroutineScope
import id.databisnis.android.bachot.libraries.di.annotations.ApplicationContext
import id.databisnis.android.bachot.libraries.matrix.api.MatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.ui.media.ImageLoaderHolder
import id.databisnis.android.bachot.libraries.push.api.notifications.ForegroundServiceType
import id.databisnis.android.bachot.libraries.push.api.notifications.NotificationIdProvider
import id.databisnis.android.bachot.libraries.push.api.notifications.OnMissedCallNotificationHandler
import id.databisnis.android.bachot.services.appnavstate.api.AppForegroundStateService
import id.databisnis.android.bachot.services.toolbox.api.systemclock.SystemClock
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.Job
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import android.net.Uri
import androidx.core.net.toUri
@@ -6,11 +6,11 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.api.widget.MatrixWidgetDriver
interface CallWidgetProvider {
suspend fun getWidget(
@@ -6,12 +6,12 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.features.call.impl.BuildConfig
import io.element.android.libraries.matrix.api.widget.CallAnalyticCredentialsProvider
import id.databisnis.android.bachot.features.call.impl.BuildConfig
import id.databisnis.android.bachot.libraries.matrix.api.widget.CallAnalyticCredentialsProvider
@ContributesBinding(AppScope::class)
class DefaultCallAnalyticCredentialsProvider : CallAnalyticCredentialsProvider {
@@ -6,18 +6,18 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.room.isDm
import io.element.android.libraries.matrix.api.widget.CallWidgetSettingsProvider
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
import io.element.android.services.appnavstate.api.ActiveRoomsHolder
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
import id.databisnis.android.bachot.libraries.matrix.api.MatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.api.room.isDm
import id.databisnis.android.bachot.libraries.matrix.api.widget.CallWidgetSettingsProvider
import id.databisnis.android.bachot.libraries.preferences.api.store.AppPreferencesStore
import id.databisnis.android.bachot.services.appnavstate.api.ActiveRoomsHolder
import kotlinx.coroutines.flow.firstOrNull
private const val EMBEDDED_CALL_WIDGET_BASE_URL = "https://appassets.androidplatform.net/element-call/index.html"
@@ -6,13 +6,13 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.SingleIn
import io.element.android.features.call.api.CurrentCall
import io.element.android.features.call.api.CurrentCallService
import id.databisnis.android.bachot.features.call.api.CurrentCall
import id.databisnis.android.bachot.features.call.api.CurrentCallService
import kotlinx.coroutines.flow.MutableStateFlow
@SingleIn(AppScope::class)
@@ -6,15 +6,15 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import androidx.core.app.PendingIntentCompat
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.DefaultElementCallEntryPoint
import io.element.android.features.call.impl.ui.ElementCallActivity
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.DefaultElementCallEntryPoint
import id.databisnis.android.bachot.features.call.impl.ui.ElementCallActivity
internal object IntentProvider {
fun createIntent(context: Context, callType: CallType): Intent = Intent(context, ElementCallActivity::class.java).apply {
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
interface PipController {
suspend fun canEnterPip(): Boolean
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import android.content.Context
import android.media.AudioDeviceCallback
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import android.webkit.WebView
import kotlin.coroutines.resume
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import android.graphics.Bitmap
import android.net.http.SslError
@@ -21,7 +21,7 @@ import androidx.core.net.toUri
import androidx.webkit.WebViewAssetLoader
import androidx.webkit.WebViewCompat
import androidx.webkit.WebViewFeature
import io.element.android.features.call.impl.BuildConfig
import id.databisnis.android.bachot.features.call.impl.BuildConfig
import kotlinx.coroutines.flow.MutableSharedFlow
import timber.log.Timber
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import kotlinx.coroutines.flow.Flow
@@ -6,12 +6,12 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.utils
package id.databisnis.android.bachot.features.call.impl.utils
import dev.zacsweers.metro.Inject
import io.element.android.features.call.impl.data.WidgetMessage
import io.element.android.libraries.androidutils.json.JsonProvider
import io.element.android.libraries.core.extensions.runCatchingExceptions
import id.databisnis.android.bachot.features.call.impl.data.WidgetMessage
import id.databisnis.android.bachot.libraries.androidutils.json.JsonProvider
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
@Inject
class WidgetMessageSerializer(
@@ -6,21 +6,21 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call
package id.databisnis.android.bachot.features.call
import android.content.Intent
import androidx.test.platform.app.InstrumentationRegistry
import com.google.common.truth.Truth.assertThat
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.DefaultElementCallEntryPoint
import io.element.android.features.call.impl.notifications.CallNotificationData
import io.element.android.features.call.impl.ui.ElementCallActivity
import io.element.android.features.call.utils.FakeActiveCallManager
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.A_USER_ID_2
import io.element.android.tests.testutils.lambda.lambdaRecorder
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.DefaultElementCallEntryPoint
import id.databisnis.android.bachot.features.call.impl.notifications.CallNotificationData
import id.databisnis.android.bachot.features.call.impl.ui.ElementCallActivity
import id.databisnis.android.bachot.features.call.utils.FakeActiveCallManager
import id.databisnis.android.bachot.libraries.matrix.test.AN_EVENT_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_ROOM_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_SESSION_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_USER_ID_2
import id.databisnis.android.bachot.tests.testutils.lambda.lambdaRecorder
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.advanceTimeBy
@@ -6,12 +6,12 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call
package id.databisnis.android.bachot.features.call
import android.Manifest
import android.webkit.PermissionRequest
import com.google.common.truth.Truth.assertThat
import io.element.android.features.call.impl.ui.mapWebkitPermissions
import id.databisnis.android.bachot.features.call.impl.ui.mapWebkitPermissions
import org.junit.Test
class MapWebkitPermissionsTest {
@@ -6,10 +6,10 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
import io.element.android.features.call.impl.utils.PipController
import io.element.android.tests.testutils.lambda.lambdaError
import id.databisnis.android.bachot.features.call.impl.utils.PipController
import id.databisnis.android.bachot.tests.testutils.lambda.lambdaError
class FakePipController(
private val canEnterPipResult: () -> Boolean = { lambdaError() },
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
class FakePipSupportProvider(
private val isPipSupported: Boolean
@@ -6,9 +6,9 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
import io.element.android.tests.testutils.lambda.lambdaError
import id.databisnis.android.bachot.tests.testutils.lambda.lambdaError
class FakePipView(
private val setPipParamsResult: () -> Unit = { lambdaError() },
@@ -6,13 +6,13 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.impl.pip
package id.databisnis.android.bachot.features.call.impl.pip
import app.cash.molecule.RecompositionMode
import app.cash.molecule.moleculeFlow
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.tests.testutils.lambda.lambdaRecorder
import id.databisnis.android.bachot.tests.testutils.lambda.lambdaRecorder
import kotlinx.coroutines.test.runTest
import org.junit.Test
@@ -6,23 +6,23 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.notifications
package id.databisnis.android.bachot.features.call.notifications
import androidx.core.graphics.drawable.IconCompat
import androidx.test.platform.app.InstrumentationRegistry
import coil3.ImageLoader
import com.google.common.truth.Truth.assertThat
import io.element.android.features.call.impl.notifications.RingingCallNotificationCreator
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.A_USER_ID_2
import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoaderHolder
import io.element.android.libraries.push.test.notifications.push.FakeNotificationBitmapLoader
import io.element.android.tests.testutils.lambda.lambdaRecorder
import id.databisnis.android.bachot.features.call.impl.notifications.RingingCallNotificationCreator
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
import id.databisnis.android.bachot.libraries.matrix.test.AN_EVENT_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_ROOM_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_SESSION_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_USER_ID_2
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClient
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.ui.media.test.FakeImageLoaderHolder
import id.databisnis.android.bachot.libraries.push.test.notifications.push.FakeNotificationBitmapLoader
import id.databisnis.android.bachot.tests.testutils.lambda.lambdaRecorder
import kotlinx.coroutines.test.runTest
import org.junit.Test
import org.junit.runner.RunWith
@@ -6,40 +6,40 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.ui
package id.databisnis.android.bachot.features.call.ui
import app.cash.molecule.RecompositionMode
import app.cash.molecule.moleculeFlow
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import im.vector.app.features.analytics.plan.MobileScreen
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.ui.CallScreenEvents
import io.element.android.features.call.impl.ui.CallScreenNavigator
import io.element.android.features.call.impl.ui.CallScreenPresenter
import io.element.android.features.call.impl.utils.WidgetMessageSerializer
import io.element.android.features.call.utils.FakeActiveCallManager
import io.element.android.features.call.utils.FakeCallWidgetProvider
import io.element.android.features.call.utils.FakeWidgetMessageInterceptor
import io.element.android.libraries.androidutils.json.DefaultJsonProvider
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.matrix.api.sync.SyncState
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
import io.element.android.libraries.matrix.test.sync.FakeSyncService
import io.element.android.libraries.matrix.test.widget.FakeMatrixWidgetDriver
import io.element.android.libraries.network.useragent.UserAgentProvider
import io.element.android.services.analytics.api.ScreenTracker
import io.element.android.services.analytics.test.FakeScreenTracker
import io.element.android.services.appnavstate.test.FakeAppForegroundStateService
import io.element.android.services.toolbox.api.systemclock.SystemClock
import io.element.android.tests.testutils.WarmUpRule
import io.element.android.tests.testutils.lambda.lambdaRecorder
import io.element.android.tests.testutils.lambda.value
import io.element.android.tests.testutils.testCoroutineDispatchers
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.ui.CallScreenEvents
import id.databisnis.android.bachot.features.call.impl.ui.CallScreenNavigator
import id.databisnis.android.bachot.features.call.impl.ui.CallScreenPresenter
import id.databisnis.android.bachot.features.call.impl.utils.WidgetMessageSerializer
import id.databisnis.android.bachot.features.call.utils.FakeActiveCallManager
import id.databisnis.android.bachot.features.call.utils.FakeCallWidgetProvider
import id.databisnis.android.bachot.features.call.utils.FakeWidgetMessageInterceptor
import id.databisnis.android.bachot.libraries.androidutils.json.DefaultJsonProvider
import id.databisnis.android.bachot.libraries.architecture.AsyncData
import id.databisnis.android.bachot.libraries.core.coroutine.CoroutineDispatchers
import id.databisnis.android.bachot.libraries.matrix.api.sync.SyncState
import id.databisnis.android.bachot.libraries.matrix.test.A_ROOM_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_SESSION_ID
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClient
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.test.sync.FakeSyncService
import id.databisnis.android.bachot.libraries.matrix.test.widget.FakeMatrixWidgetDriver
import id.databisnis.android.bachot.libraries.network.useragent.UserAgentProvider
import id.databisnis.android.bachot.services.analytics.api.ScreenTracker
import id.databisnis.android.bachot.services.analytics.test.FakeScreenTracker
import id.databisnis.android.bachot.services.appnavstate.test.FakeAppForegroundStateService
import id.databisnis.android.bachot.services.toolbox.api.systemclock.SystemClock
import id.databisnis.android.bachot.tests.testutils.WarmUpRule
import id.databisnis.android.bachot.tests.testutils.lambda.lambdaRecorder
import id.databisnis.android.bachot.tests.testutils.lambda.value
import id.databisnis.android.bachot.tests.testutils.testCoroutineDispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.cancelAndJoin
import kotlinx.coroutines.launch
@@ -6,13 +6,13 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.ui
package id.databisnis.android.bachot.features.call.ui
import com.google.common.truth.Truth.assertThat
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.ui.getSessionId
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.ui.getSessionId
import id.databisnis.android.bachot.libraries.matrix.test.A_ROOM_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_SESSION_ID
import org.junit.Test
class CallTypeTest {
@@ -6,9 +6,9 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.ui
package id.databisnis.android.bachot.features.call.ui
import io.element.android.features.call.impl.ui.CallScreenNavigator
import id.databisnis.android.bachot.features.call.impl.ui.CallScreenNavigator
class FakeCallScreenNavigator : CallScreenNavigator {
var closeCalled = false
@@ -6,10 +6,10 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.ui
package id.databisnis.android.bachot.features.call.ui
import androidx.compose.runtime.Composable
import io.element.android.features.call.impl.ui.LanguageTagProvider
import id.databisnis.android.bachot.features.call.impl.ui.LanguageTagProvider
class FakeLanguageTagProvider(private val languageTag: String?) : LanguageTagProvider {
@Composable
@@ -6,10 +6,10 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.utils
package id.databisnis.android.bachot.features.call.utils
import com.google.common.truth.Truth.assertThat
import io.element.android.features.call.impl.utils.CallIntentDataParser
import id.databisnis.android.bachot.features.call.impl.utils.CallIntentDataParser
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
@@ -6,45 +6,45 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.utils
package id.databisnis.android.bachot.features.call.utils
import android.os.PowerManager
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.getSystemService
import androidx.test.platform.app.InstrumentationRegistry
import com.google.common.truth.Truth.assertThat
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.notifications.RingingCallNotificationCreator
import io.element.android.features.call.impl.utils.ActiveCall
import io.element.android.features.call.impl.utils.CallState
import io.element.android.features.call.impl.utils.DefaultActiveCallManager
import io.element.android.features.call.impl.utils.DefaultCurrentCallService
import io.element.android.features.call.test.aCallNotificationData
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.room.JoinedRoom
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.AN_EVENT_ID_2
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
import io.element.android.libraries.matrix.test.room.FakeBaseRoom
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
import io.element.android.libraries.matrix.test.room.aRoomInfo
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoaderHolder
import io.element.android.libraries.push.api.notifications.ForegroundServiceType
import io.element.android.libraries.push.api.notifications.NotificationIdProvider
import io.element.android.libraries.push.test.notifications.FakeOnMissedCallNotificationHandler
import io.element.android.libraries.push.test.notifications.push.FakeNotificationBitmapLoader
import io.element.android.services.appnavstate.test.FakeAppForegroundStateService
import io.element.android.services.toolbox.test.systemclock.A_FAKE_TIMESTAMP
import io.element.android.services.toolbox.test.systemclock.FakeSystemClock
import io.element.android.tests.testutils.lambda.lambdaRecorder
import io.element.android.tests.testutils.lambda.value
import io.element.android.tests.testutils.plantTestTimber
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.notifications.RingingCallNotificationCreator
import id.databisnis.android.bachot.features.call.impl.utils.ActiveCall
import id.databisnis.android.bachot.features.call.impl.utils.CallState
import id.databisnis.android.bachot.features.call.impl.utils.DefaultActiveCallManager
import id.databisnis.android.bachot.features.call.impl.utils.DefaultCurrentCallService
import id.databisnis.android.bachot.features.call.test.aCallNotificationData
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
import id.databisnis.android.bachot.libraries.matrix.test.AN_EVENT_ID
import id.databisnis.android.bachot.libraries.matrix.test.AN_EVENT_ID_2
import id.databisnis.android.bachot.libraries.matrix.test.A_ROOM_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_ROOM_ID_2
import id.databisnis.android.bachot.libraries.matrix.test.A_SESSION_ID
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClient
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.test.room.FakeBaseRoom
import id.databisnis.android.bachot.libraries.matrix.test.room.FakeJoinedRoom
import id.databisnis.android.bachot.libraries.matrix.test.room.aRoomInfo
import id.databisnis.android.bachot.libraries.matrix.ui.media.test.FakeImageLoaderHolder
import id.databisnis.android.bachot.libraries.push.api.notifications.ForegroundServiceType
import id.databisnis.android.bachot.libraries.push.api.notifications.NotificationIdProvider
import id.databisnis.android.bachot.libraries.push.test.notifications.FakeOnMissedCallNotificationHandler
import id.databisnis.android.bachot.libraries.push.test.notifications.push.FakeNotificationBitmapLoader
import id.databisnis.android.bachot.services.appnavstate.test.FakeAppForegroundStateService
import id.databisnis.android.bachot.services.toolbox.test.systemclock.A_FAKE_TIMESTAMP
import id.databisnis.android.bachot.services.toolbox.test.systemclock.FakeSystemClock
import id.databisnis.android.bachot.tests.testutils.lambda.lambdaRecorder
import id.databisnis.android.bachot.tests.testutils.lambda.value
import id.databisnis.android.bachot.tests.testutils.plantTestTimber
import io.mockk.coVerify
import io.mockk.mockk
import io.mockk.verify
@@ -6,24 +6,24 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.utils
package id.databisnis.android.bachot.features.call.utils
import com.google.common.truth.Truth.assertThat
import io.element.android.features.call.impl.utils.DefaultCallWidgetProvider
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.widget.CallWidgetSettingsProvider
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
import io.element.android.libraries.matrix.test.room.FakeBaseRoom
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
import io.element.android.libraries.matrix.test.widget.FakeCallWidgetSettingsProvider
import io.element.android.libraries.matrix.test.widget.FakeMatrixWidgetDriver
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore
import io.element.android.services.appnavstate.api.ActiveRoomsHolder
import io.element.android.services.appnavstate.impl.DefaultActiveRoomsHolder
import id.databisnis.android.bachot.features.call.impl.utils.DefaultCallWidgetProvider
import id.databisnis.android.bachot.libraries.matrix.api.MatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.api.widget.CallWidgetSettingsProvider
import id.databisnis.android.bachot.libraries.matrix.test.A_ROOM_ID
import id.databisnis.android.bachot.libraries.matrix.test.A_SESSION_ID
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClient
import id.databisnis.android.bachot.libraries.matrix.test.FakeMatrixClientProvider
import id.databisnis.android.bachot.libraries.matrix.test.room.FakeBaseRoom
import id.databisnis.android.bachot.libraries.matrix.test.room.FakeJoinedRoom
import id.databisnis.android.bachot.libraries.matrix.test.widget.FakeCallWidgetSettingsProvider
import id.databisnis.android.bachot.libraries.matrix.test.widget.FakeMatrixWidgetDriver
import id.databisnis.android.bachot.libraries.preferences.api.store.AppPreferencesStore
import id.databisnis.android.bachot.libraries.preferences.test.InMemoryAppPreferencesStore
import id.databisnis.android.bachot.services.appnavstate.api.ActiveRoomsHolder
import id.databisnis.android.bachot.services.appnavstate.impl.DefaultActiveRoomsHolder
import kotlinx.coroutines.test.runTest
import org.junit.Test
@@ -6,13 +6,13 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.utils
package id.databisnis.android.bachot.features.call.utils
import io.element.android.features.call.api.CallType
import io.element.android.features.call.impl.notifications.CallNotificationData
import io.element.android.features.call.impl.utils.ActiveCall
import io.element.android.features.call.impl.utils.ActiveCallManager
import io.element.android.tests.testutils.simulateLongTask
import id.databisnis.android.bachot.features.call.api.CallType
import id.databisnis.android.bachot.features.call.impl.notifications.CallNotificationData
import id.databisnis.android.bachot.features.call.impl.utils.ActiveCall
import id.databisnis.android.bachot.features.call.impl.utils.ActiveCallManager
import id.databisnis.android.bachot.tests.testutils.simulateLongTask
import kotlinx.coroutines.flow.MutableStateFlow
class FakeActiveCallManager(
@@ -6,12 +6,12 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.utils
package id.databisnis.android.bachot.features.call.utils
import io.element.android.features.call.impl.utils.CallWidgetProvider
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.test.widget.FakeMatrixWidgetDriver
import id.databisnis.android.bachot.features.call.impl.utils.CallWidgetProvider
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
import id.databisnis.android.bachot.libraries.matrix.test.widget.FakeMatrixWidgetDriver
class FakeCallWidgetProvider(
private val widgetDriver: FakeMatrixWidgetDriver = FakeMatrixWidgetDriver(),
@@ -6,9 +6,9 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.call.utils
package id.databisnis.android.bachot.features.call.utils
import io.element.android.features.call.impl.utils.WidgetMessageInterceptor
import id.databisnis.android.bachot.features.call.impl.utils.WidgetMessageInterceptor
import kotlinx.coroutines.flow.MutableSharedFlow
class FakeWidgetMessageInterceptor : WidgetMessageInterceptor {