making use of the existing sdk int provider instead of supplying it via the BuildMeta
This commit is contained in:
parent
cb59d82846
commit
8b9d1bb0d8
@ -20,6 +20,7 @@ import dagger.Module
|
|||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
import dagger.hilt.components.SingletonComponent
|
import dagger.hilt.components.SingletonComponent
|
||||||
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.config.Analytics
|
import im.vector.app.config.Analytics
|
||||||
import im.vector.app.config.Config
|
import im.vector.app.config.Config
|
||||||
import im.vector.app.config.KeySharingStrategy
|
import im.vector.app.config.KeySharingStrategy
|
||||||
|
@ -23,7 +23,6 @@ import android.content.SharedPreferences
|
|||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.google.i18n.phonenumbers.PhoneNumberUtil
|
import com.google.i18n.phonenumbers.PhoneNumberUtil
|
||||||
import android.os.Build
|
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
@ -212,7 +211,6 @@ object VectorStaticModule {
|
|||||||
@Singleton
|
@Singleton
|
||||||
fun providesBuildMeta() = BuildMeta(
|
fun providesBuildMeta() = BuildMeta(
|
||||||
isDebug = BuildConfig.DEBUG,
|
isDebug = BuildConfig.DEBUG,
|
||||||
sdkInt = Build.VERSION.SDK_INT,
|
|
||||||
applicationId = BuildConfig.APPLICATION_ID,
|
applicationId = BuildConfig.APPLICATION_ID,
|
||||||
lowPrivacyLoggingEnabled = Config.LOW_PRIVACY_LOG_ENABLE,
|
lowPrivacyLoggingEnabled = Config.LOW_PRIVACY_LOG_ENABLE,
|
||||||
versionName = BuildConfig.VERSION_NAME,
|
versionName = BuildConfig.VERSION_NAME,
|
||||||
|
@ -37,7 +37,7 @@ import androidx.datastore.preferences.core.Preferences
|
|||||||
import dagger.hilt.EntryPoints
|
import dagger.hilt.EntryPoints
|
||||||
import im.vector.app.core.datastore.dataStoreProvider
|
import im.vector.app.core.datastore.dataStoreProvider
|
||||||
import im.vector.app.core.di.SingletonEntryPoint
|
import im.vector.app.core.di.SingletonEntryPoint
|
||||||
import im.vector.app.core.resources.BuildMeta
|
import org.matrix.android.sdk.api.util.BuildVersionSdkIntProvider
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
@ -93,9 +93,9 @@ fun Context.safeOpenOutputStream(uri: Uri): OutputStream? {
|
|||||||
*/
|
*/
|
||||||
@Suppress("deprecation")
|
@Suppress("deprecation")
|
||||||
@SuppressLint("NewApi") // false positive
|
@SuppressLint("NewApi") // false positive
|
||||||
fun Context.inferNoConnectivity(buildMeta: BuildMeta): Boolean {
|
fun Context.inferNoConnectivity(sdkIntProvider: BuildVersionSdkIntProvider): Boolean {
|
||||||
val connectivityManager = getSystemService<ConnectivityManager>()!!
|
val connectivityManager = getSystemService<ConnectivityManager>()!!
|
||||||
return if (buildMeta.sdkInt > Build.VERSION_CODES.M) {
|
return if (sdkIntProvider.get() > Build.VERSION_CODES.M) {
|
||||||
val networkCapabilities = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
|
val networkCapabilities = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
|
||||||
when {
|
when {
|
||||||
networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) == true -> false
|
networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) == true -> false
|
||||||
|
@ -18,7 +18,6 @@ package im.vector.app.core.resources
|
|||||||
|
|
||||||
data class BuildMeta(
|
data class BuildMeta(
|
||||||
val isDebug: Boolean,
|
val isDebug: Boolean,
|
||||||
val sdkInt: Int,
|
|
||||||
val applicationId: String,
|
val applicationId: String,
|
||||||
val lowPrivacyLoggingEnabled: Boolean,
|
val lowPrivacyLoggingEnabled: Boolean,
|
||||||
val versionName: String,
|
val versionName: String,
|
||||||
|
@ -31,6 +31,7 @@ import im.vector.app.features.home.room.detail.RoomDetailActivity
|
|||||||
import im.vector.app.features.home.room.detail.arguments.TimelineArgs
|
import im.vector.app.features.home.room.detail.arguments.TimelineArgs
|
||||||
import im.vector.app.features.location.live.map.LiveLocationMapViewActivity
|
import im.vector.app.features.location.live.map.LiveLocationMapViewActivity
|
||||||
import im.vector.app.features.location.live.map.LiveLocationMapViewArgs
|
import im.vector.app.features.location.live.map.LiveLocationMapViewArgs
|
||||||
|
import im.vector.app.features.notifications.NotificationActionIds
|
||||||
import im.vector.app.features.notifications.NotificationUtils
|
import im.vector.app.features.notifications.NotificationUtils
|
||||||
import im.vector.app.features.themes.ThemeUtils
|
import im.vector.app.features.themes.ThemeUtils
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -41,6 +42,7 @@ class LiveLocationNotificationBuilder @Inject constructor(
|
|||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val stringProvider: StringProvider,
|
private val stringProvider: StringProvider,
|
||||||
private val clock: Clock,
|
private val clock: Clock,
|
||||||
|
private val actionIds: NotificationActionIds,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,7 +68,7 @@ class LiveLocationNotificationBuilder @Inject constructor(
|
|||||||
liveLocationMapViewArgs = LiveLocationMapViewArgs(roomId = roomId),
|
liveLocationMapViewArgs = LiveLocationMapViewArgs(roomId = roomId),
|
||||||
firstStartMainActivity = true
|
firstStartMainActivity = true
|
||||||
)
|
)
|
||||||
mapIntent.action = NotificationUtils.TAP_TO_VIEW_ACTION
|
mapIntent.action = actionIds.TAP_TO_VIEW_ACTION
|
||||||
// pending intent get reused by system, this will mess up the extra params, so put unique info to avoid that
|
// pending intent get reused by system, this will mess up the extra params, so put unique info to avoid that
|
||||||
mapIntent.data = createIgnoredUri("openLiveLocationMap?$roomId")
|
mapIntent.data = createIgnoredUri("openLiveLocationMap?$roomId")
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ import im.vector.app.core.extensions.isMatrixId
|
|||||||
import im.vector.app.core.extensions.toReducedUrl
|
import im.vector.app.core.extensions.toReducedUrl
|
||||||
import im.vector.app.core.extensions.vectorStore
|
import im.vector.app.core.extensions.vectorStore
|
||||||
import im.vector.app.core.platform.VectorViewModel
|
import im.vector.app.core.platform.VectorViewModel
|
||||||
import im.vector.app.core.resources.BuildMeta
|
|
||||||
import im.vector.app.core.resources.StringProvider
|
import im.vector.app.core.resources.StringProvider
|
||||||
import im.vector.app.core.utils.ensureProtocol
|
import im.vector.app.core.utils.ensureProtocol
|
||||||
import im.vector.app.core.utils.ensureTrailingSlash
|
import im.vector.app.core.utils.ensureTrailingSlash
|
||||||
@ -63,6 +62,7 @@ import org.matrix.android.sdk.api.auth.registration.RegistrationAvailability
|
|||||||
import org.matrix.android.sdk.api.auth.registration.RegistrationWizard
|
import org.matrix.android.sdk.api.auth.registration.RegistrationWizard
|
||||||
import org.matrix.android.sdk.api.failure.isHomeserverUnavailable
|
import org.matrix.android.sdk.api.failure.isHomeserverUnavailable
|
||||||
import org.matrix.android.sdk.api.session.Session
|
import org.matrix.android.sdk.api.session.Session
|
||||||
|
import org.matrix.android.sdk.api.util.BuildVersionSdkIntProvider
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import java.util.concurrent.CancellationException
|
import java.util.concurrent.CancellationException
|
||||||
@ -86,7 +86,7 @@ class OnboardingViewModel @AssistedInject constructor(
|
|||||||
private val startAuthenticationFlowUseCase: StartAuthenticationFlowUseCase,
|
private val startAuthenticationFlowUseCase: StartAuthenticationFlowUseCase,
|
||||||
private val vectorOverrides: VectorOverrides,
|
private val vectorOverrides: VectorOverrides,
|
||||||
private val registrationActionHandler: RegistrationActionHandler,
|
private val registrationActionHandler: RegistrationActionHandler,
|
||||||
private val buildMeta: BuildMeta,
|
private val sdkIntProvider: BuildVersionSdkIntProvider,
|
||||||
) : VectorViewModel<OnboardingViewState, OnboardingAction, OnboardingViewEvents>(initialState) {
|
) : VectorViewModel<OnboardingViewState, OnboardingAction, OnboardingViewEvents>(initialState) {
|
||||||
|
|
||||||
@AssistedFactory
|
@AssistedFactory
|
||||||
@ -708,7 +708,7 @@ class OnboardingViewModel @AssistedInject constructor(
|
|||||||
|
|
||||||
private fun onAuthenticationStartError(error: Throwable, trigger: OnboardingAction.HomeServerChange) {
|
private fun onAuthenticationStartError(error: Throwable, trigger: OnboardingAction.HomeServerChange) {
|
||||||
when {
|
when {
|
||||||
error.isHomeserverUnavailable() && applicationContext.inferNoConnectivity(buildMeta) -> _viewEvents.post(
|
error.isHomeserverUnavailable() && applicationContext.inferNoConnectivity(sdkIntProvider) -> _viewEvents.post(
|
||||||
OnboardingViewEvents.Failure(error)
|
OnboardingViewEvents.Failure(error)
|
||||||
)
|
)
|
||||||
deeplinkUrlIsUnavailable(error, trigger) -> _viewEvents.post(
|
deeplinkUrlIsUnavailable(error, trigger) -> _viewEvents.post(
|
||||||
|
@ -25,6 +25,7 @@ import android.view.View
|
|||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import com.squareup.moshi.Types
|
import com.squareup.moshi.Types
|
||||||
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
import im.vector.app.core.di.ActiveSessionHolder
|
||||||
import im.vector.app.core.extensions.getAllChildFragments
|
import im.vector.app.core.extensions.getAllChildFragments
|
||||||
@ -50,6 +51,7 @@ import okhttp3.Response
|
|||||||
import org.json.JSONException
|
import org.json.JSONException
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import org.matrix.android.sdk.api.Matrix
|
import org.matrix.android.sdk.api.Matrix
|
||||||
|
import org.matrix.android.sdk.api.util.BuildVersionSdkIntProvider
|
||||||
import org.matrix.android.sdk.api.util.JsonDict
|
import org.matrix.android.sdk.api.util.JsonDict
|
||||||
import org.matrix.android.sdk.api.util.MatrixJsonParser
|
import org.matrix.android.sdk.api.util.MatrixJsonParser
|
||||||
import org.matrix.android.sdk.api.util.MimeTypes
|
import org.matrix.android.sdk.api.util.MimeTypes
|
||||||
@ -76,6 +78,7 @@ class BugReporter @Inject constructor(
|
|||||||
private val systemLocaleProvider: SystemLocaleProvider,
|
private val systemLocaleProvider: SystemLocaleProvider,
|
||||||
private val matrix: Matrix,
|
private val matrix: Matrix,
|
||||||
private val buildMeta: BuildMeta,
|
private val buildMeta: BuildMeta,
|
||||||
|
private val sdkIntProvider: BuildVersionSdkIntProvider,
|
||||||
) {
|
) {
|
||||||
var inMultiWindowMode = false
|
var inMultiWindowMode = false
|
||||||
|
|
||||||
@ -286,7 +289,7 @@ class BugReporter @Inject constructor(
|
|||||||
.addFormDataPart("verbose_log", vectorPreferences.labAllowedExtendedLogging().toOnOff())
|
.addFormDataPart("verbose_log", vectorPreferences.labAllowedExtendedLogging().toOnOff())
|
||||||
.addFormDataPart("multi_window", inMultiWindowMode.toOnOff())
|
.addFormDataPart("multi_window", inMultiWindowMode.toOnOff())
|
||||||
.addFormDataPart(
|
.addFormDataPart(
|
||||||
"os", Build.VERSION.RELEASE + " (API " + buildMeta.sdkInt + ") " +
|
"os", Build.VERSION.RELEASE + " (API " + sdkIntProvider.get() + ") " +
|
||||||
Build.VERSION.INCREMENTAL + "-" + Build.VERSION.CODENAME
|
Build.VERSION.INCREMENTAL + "-" + Build.VERSION.CODENAME
|
||||||
)
|
)
|
||||||
.addFormDataPart("locale", Locale.getDefault().toString())
|
.addFormDataPart("locale", Locale.getDefault().toString())
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package im.vector.app.features.onboarding
|
package im.vector.app.features.onboarding
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
import com.airbnb.mvrx.test.MvRxTestRule
|
import com.airbnb.mvrx.test.MvRxTestRule
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.features.login.LoginConfig
|
import im.vector.app.features.login.LoginConfig
|
||||||
@ -24,6 +25,7 @@ import im.vector.app.features.login.LoginMode
|
|||||||
import im.vector.app.features.login.ReAuthHelper
|
import im.vector.app.features.login.ReAuthHelper
|
||||||
import im.vector.app.features.login.SignMode
|
import im.vector.app.features.login.SignMode
|
||||||
import im.vector.app.features.onboarding.StartAuthenticationFlowUseCase.StartAuthenticationResult
|
import im.vector.app.features.onboarding.StartAuthenticationFlowUseCase.StartAuthenticationResult
|
||||||
|
import im.vector.app.test.TestBuildVersionSdkIntProvider
|
||||||
import im.vector.app.test.fakes.FakeActiveSessionHolder
|
import im.vector.app.test.fakes.FakeActiveSessionHolder
|
||||||
import im.vector.app.test.fakes.FakeAnalyticsTracker
|
import im.vector.app.test.fakes.FakeAnalyticsTracker
|
||||||
import im.vector.app.test.fakes.FakeAuthenticationService
|
import im.vector.app.test.fakes.FakeAuthenticationService
|
||||||
@ -43,7 +45,6 @@ import im.vector.app.test.fakes.FakeVectorFeatures
|
|||||||
import im.vector.app.test.fakes.FakeVectorOverrides
|
import im.vector.app.test.fakes.FakeVectorOverrides
|
||||||
import im.vector.app.test.fakes.toTestString
|
import im.vector.app.test.fakes.toTestString
|
||||||
import im.vector.app.test.fixtures.a401ServerError
|
import im.vector.app.test.fixtures.a401ServerError
|
||||||
import im.vector.app.test.fixtures.aBuildMeta
|
|
||||||
import im.vector.app.test.fixtures.aHomeServerCapabilities
|
import im.vector.app.test.fixtures.aHomeServerCapabilities
|
||||||
import im.vector.app.test.test
|
import im.vector.app.test.test
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
@ -720,7 +721,7 @@ class OnboardingViewModelTest {
|
|||||||
fakeStartAuthenticationFlowUseCase.instance,
|
fakeStartAuthenticationFlowUseCase.instance,
|
||||||
FakeVectorOverrides(),
|
FakeVectorOverrides(),
|
||||||
fakeRegistrationActionHandler.instance,
|
fakeRegistrationActionHandler.instance,
|
||||||
aBuildMeta(),
|
TestBuildVersionSdkIntProvider().also { it.value = Build.VERSION_CODES.O },
|
||||||
).also {
|
).also {
|
||||||
viewModel = it
|
viewModel = it
|
||||||
initialState = state
|
initialState = state
|
||||||
|
@ -16,12 +16,10 @@
|
|||||||
|
|
||||||
package im.vector.app.test.fixtures
|
package im.vector.app.test.fixtures
|
||||||
|
|
||||||
import android.os.Build
|
|
||||||
import im.vector.app.core.resources.BuildMeta
|
import im.vector.app.core.resources.BuildMeta
|
||||||
|
|
||||||
fun aBuildMeta() = BuildMeta(
|
fun aBuildMeta() = BuildMeta(
|
||||||
isDebug = false,
|
isDebug = false,
|
||||||
sdkInt = Build.VERSION_CODES.O,
|
|
||||||
applicationId = "im.vector",
|
applicationId = "im.vector",
|
||||||
lowPrivacyLoggingEnabled = false,
|
lowPrivacyLoggingEnabled = false,
|
||||||
versionName = "app-version-name",
|
versionName = "app-version-name",
|
||||||
|
Loading…
Reference in New Issue
Block a user