making use of the existing sdk int provider instead of supplying it via the BuildMeta

This commit is contained in:
Adam Brown 2022-07-11 16:58:58 +01:00
parent cb59d82846
commit 8b9d1bb0d8
9 changed files with 17 additions and 15 deletions

View file

@ -20,6 +20,7 @@ import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import im.vector.app.BuildConfig
import im.vector.app.config.Analytics
import im.vector.app.config.Config
import im.vector.app.config.KeySharingStrategy

View file

@ -23,7 +23,6 @@ import android.content.SharedPreferences
import android.content.res.Resources
import androidx.preference.PreferenceManager
import com.google.i18n.phonenumbers.PhoneNumberUtil
import android.os.Build
import dagger.Binds
import dagger.Module
import dagger.Provides
@ -212,7 +211,6 @@ object VectorStaticModule {
@Singleton
fun providesBuildMeta() = BuildMeta(
isDebug = BuildConfig.DEBUG,
sdkInt = Build.VERSION.SDK_INT,
applicationId = BuildConfig.APPLICATION_ID,
lowPrivacyLoggingEnabled = Config.LOW_PRIVACY_LOG_ENABLE,
versionName = BuildConfig.VERSION_NAME,

View file

@ -37,7 +37,7 @@ import androidx.datastore.preferences.core.Preferences
import dagger.hilt.EntryPoints
import im.vector.app.core.datastore.dataStoreProvider
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 kotlin.math.roundToInt
@ -93,9 +93,9 @@ fun Context.safeOpenOutputStream(uri: Uri): OutputStream? {
*/
@Suppress("deprecation")
@SuppressLint("NewApi") // false positive
fun Context.inferNoConnectivity(buildMeta: BuildMeta): Boolean {
fun Context.inferNoConnectivity(sdkIntProvider: BuildVersionSdkIntProvider): Boolean {
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)
when {
networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) == true -> false

View file

@ -18,7 +18,6 @@ package im.vector.app.core.resources
data class BuildMeta(
val isDebug: Boolean,
val sdkInt: Int,
val applicationId: String,
val lowPrivacyLoggingEnabled: Boolean,
val versionName: String,

View file

@ -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.location.live.map.LiveLocationMapViewActivity
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.themes.ThemeUtils
import javax.inject.Inject
@ -41,6 +42,7 @@ class LiveLocationNotificationBuilder @Inject constructor(
private val context: Context,
private val stringProvider: StringProvider,
private val clock: Clock,
private val actionIds: NotificationActionIds,
) {
/**
@ -66,7 +68,7 @@ class LiveLocationNotificationBuilder @Inject constructor(
liveLocationMapViewArgs = LiveLocationMapViewArgs(roomId = roomId),
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
mapIntent.data = createIgnoredUri("openLiveLocationMap?$roomId")

View file

@ -32,7 +32,6 @@ import im.vector.app.core.extensions.isMatrixId
import im.vector.app.core.extensions.toReducedUrl
import im.vector.app.core.extensions.vectorStore
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.utils.ensureProtocol
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.failure.isHomeserverUnavailable
import org.matrix.android.sdk.api.session.Session
import org.matrix.android.sdk.api.util.BuildVersionSdkIntProvider
import timber.log.Timber
import java.util.UUID
import java.util.concurrent.CancellationException
@ -86,7 +86,7 @@ class OnboardingViewModel @AssistedInject constructor(
private val startAuthenticationFlowUseCase: StartAuthenticationFlowUseCase,
private val vectorOverrides: VectorOverrides,
private val registrationActionHandler: RegistrationActionHandler,
private val buildMeta: BuildMeta,
private val sdkIntProvider: BuildVersionSdkIntProvider,
) : VectorViewModel<OnboardingViewState, OnboardingAction, OnboardingViewEvents>(initialState) {
@AssistedFactory
@ -708,7 +708,7 @@ class OnboardingViewModel @AssistedInject constructor(
private fun onAuthenticationStartError(error: Throwable, trigger: OnboardingAction.HomeServerChange) {
when {
error.isHomeserverUnavailable() && applicationContext.inferNoConnectivity(buildMeta) -> _viewEvents.post(
error.isHomeserverUnavailable() && applicationContext.inferNoConnectivity(sdkIntProvider) -> _viewEvents.post(
OnboardingViewEvents.Failure(error)
)
deeplinkUrlIsUnavailable(error, trigger) -> _viewEvents.post(

View file

@ -25,6 +25,7 @@ import android.view.View
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentActivity
import com.squareup.moshi.Types
import im.vector.app.BuildConfig
import im.vector.app.R
import im.vector.app.core.di.ActiveSessionHolder
import im.vector.app.core.extensions.getAllChildFragments
@ -50,6 +51,7 @@ import okhttp3.Response
import org.json.JSONException
import org.json.JSONObject
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.MatrixJsonParser
import org.matrix.android.sdk.api.util.MimeTypes
@ -76,6 +78,7 @@ class BugReporter @Inject constructor(
private val systemLocaleProvider: SystemLocaleProvider,
private val matrix: Matrix,
private val buildMeta: BuildMeta,
private val sdkIntProvider: BuildVersionSdkIntProvider,
) {
var inMultiWindowMode = false
@ -286,7 +289,7 @@ class BugReporter @Inject constructor(
.addFormDataPart("verbose_log", vectorPreferences.labAllowedExtendedLogging().toOnOff())
.addFormDataPart("multi_window", inMultiWindowMode.toOnOff())
.addFormDataPart(
"os", Build.VERSION.RELEASE + " (API " + buildMeta.sdkInt + ") " +
"os", Build.VERSION.RELEASE + " (API " + sdkIntProvider.get() + ") " +
Build.VERSION.INCREMENTAL + "-" + Build.VERSION.CODENAME
)
.addFormDataPart("locale", Locale.getDefault().toString())

View file

@ -17,6 +17,7 @@
package im.vector.app.features.onboarding
import android.net.Uri
import android.os.Build
import com.airbnb.mvrx.test.MvRxTestRule
import im.vector.app.R
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.SignMode
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.FakeAnalyticsTracker
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.toTestString
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.test
import kotlinx.coroutines.test.runTest
@ -720,7 +721,7 @@ class OnboardingViewModelTest {
fakeStartAuthenticationFlowUseCase.instance,
FakeVectorOverrides(),
fakeRegistrationActionHandler.instance,
aBuildMeta(),
TestBuildVersionSdkIntProvider().also { it.value = Build.VERSION_CODES.O },
).also {
viewModel = it
initialState = state

View file

@ -16,12 +16,10 @@
package im.vector.app.test.fixtures
import android.os.Build
import im.vector.app.core.resources.BuildMeta
fun aBuildMeta() = BuildMeta(
isDebug = false,
sdkInt = Build.VERSION_CODES.O,
applicationId = "im.vector",
lowPrivacyLoggingEnabled = false,
versionName = "app-version-name",