replacing DEBUG build config flag with injectable property
This commit is contained in:
parent
b6d052e58d
commit
cc4aae0f4a
@ -41,6 +41,7 @@ import com.vanniktech.emoji.EmojiManager
|
|||||||
import com.vanniktech.emoji.google.GoogleEmojiProvider
|
import com.vanniktech.emoji.google.GoogleEmojiProvider
|
||||||
import dagger.hilt.android.HiltAndroidApp
|
import dagger.hilt.android.HiltAndroidApp
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
import im.vector.app.core.di.ActiveSessionHolder
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.features.analytics.VectorAnalytics
|
import im.vector.app.features.analytics.VectorAnalytics
|
||||||
import im.vector.app.features.call.webrtc.WebRtcCallManager
|
import im.vector.app.features.call.webrtc.WebRtcCallManager
|
||||||
import im.vector.app.features.configuration.VectorConfiguration
|
import im.vector.app.features.configuration.VectorConfiguration
|
||||||
@ -99,6 +100,7 @@ class VectorApplication :
|
|||||||
@Inject lateinit var flipperProxy: FlipperProxy
|
@Inject lateinit var flipperProxy: FlipperProxy
|
||||||
@Inject lateinit var matrix: Matrix
|
@Inject lateinit var matrix: Matrix
|
||||||
@Inject lateinit var fcmHelper: FcmHelper
|
@Inject lateinit var fcmHelper: FcmHelper
|
||||||
|
@Inject lateinit var buildMeta: BuildMeta
|
||||||
|
|
||||||
// font thread handler
|
// font thread handler
|
||||||
private var fontThreadHandler: Handler? = null
|
private var fontThreadHandler: Handler? = null
|
||||||
@ -127,12 +129,12 @@ class VectorApplication :
|
|||||||
.filterIsInstance(JitsiMeetDefaultLogHandler::class.java)
|
.filterIsInstance(JitsiMeetDefaultLogHandler::class.java)
|
||||||
.forEach { Timber.uproot(it) }
|
.forEach { Timber.uproot(it) }
|
||||||
|
|
||||||
if (BuildConfig.DEBUG) {
|
if (buildMeta.isDebug) {
|
||||||
Timber.plant(Timber.DebugTree())
|
Timber.plant(Timber.DebugTree())
|
||||||
}
|
}
|
||||||
Timber.plant(vectorFileLogger)
|
Timber.plant(vectorFileLogger)
|
||||||
|
|
||||||
if (BuildConfig.DEBUG) {
|
if (buildMeta.isDebug) {
|
||||||
Stetho.initializeWithDefaults(this)
|
Stetho.initializeWithDefaults(this)
|
||||||
}
|
}
|
||||||
logInfo()
|
logInfo()
|
||||||
@ -148,7 +150,7 @@ class VectorApplication :
|
|||||||
R.array.com_google_android_gms_fonts_certs
|
R.array.com_google_android_gms_fonts_certs
|
||||||
)
|
)
|
||||||
FontsContractCompat.requestFont(this, fontRequest, emojiCompatFontProvider, getFontThreadHandler())
|
FontsContractCompat.requestFont(this, fontRequest, emojiCompatFontProvider, getFontThreadHandler())
|
||||||
VectorLocale.init(this)
|
VectorLocale.init(this, buildMeta)
|
||||||
ThemeUtils.init(this)
|
ThemeUtils.init(this)
|
||||||
vectorConfiguration.applyToApplicationContext()
|
vectorConfiguration.applyToApplicationContext()
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ 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
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.features.analytics.AnalyticsConfig
|
import im.vector.app.features.analytics.AnalyticsConfig
|
||||||
import im.vector.app.features.call.webrtc.VoipConfig
|
import im.vector.app.features.call.webrtc.VoipConfig
|
||||||
import im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy
|
import im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy
|
||||||
@ -36,8 +37,8 @@ import im.vector.app.features.raw.wellknown.CryptoConfig
|
|||||||
object ConfigurationModule {
|
object ConfigurationModule {
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
fun providesAnalyticsConfig(): AnalyticsConfig {
|
fun providesAnalyticsConfig(buildMeta: BuildMeta): AnalyticsConfig {
|
||||||
val config: Analytics = when (BuildConfig.DEBUG) {
|
val config: Analytics = when (buildMeta.isDebug) {
|
||||||
true -> Config.DEBUG_ANALYTICS_CONFIG
|
true -> Config.DEBUG_ANALYTICS_CONFIG
|
||||||
false -> Config.RELEASE_ANALYTICS_CONFIG
|
false -> Config.RELEASE_ANALYTICS_CONFIG
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ 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
|
||||||
@ -236,7 +237,11 @@ object VectorStaticModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun providesBuildMeta() = BuildMeta()
|
fun providesBuildMeta() = BuildMeta(
|
||||||
|
isDebug = BuildConfig.DEBUG,
|
||||||
|
sdkInt = Build.VERSION.SDK_INT,
|
||||||
|
applicationId = BuildConfig.APPLICATION_ID,
|
||||||
|
)
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
|
@ -53,7 +53,6 @@ import com.google.android.material.appbar.MaterialToolbar
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import dagger.hilt.android.EntryPointAccessors
|
import dagger.hilt.android.EntryPointAccessors
|
||||||
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.di.ActivityEntryPoint
|
import im.vector.app.core.di.ActivityEntryPoint
|
||||||
@ -67,6 +66,7 @@ import im.vector.app.core.extensions.restart
|
|||||||
import im.vector.app.core.extensions.setTextOrHide
|
import im.vector.app.core.extensions.setTextOrHide
|
||||||
import im.vector.app.core.extensions.singletonEntryPoint
|
import im.vector.app.core.extensions.singletonEntryPoint
|
||||||
import im.vector.app.core.extensions.toMvRxBundle
|
import im.vector.app.core.extensions.toMvRxBundle
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.utils.AndroidSystemSettingsProvider
|
import im.vector.app.core.utils.AndroidSystemSettingsProvider
|
||||||
import im.vector.app.core.utils.ToolbarConfig
|
import im.vector.app.core.utils.ToolbarConfig
|
||||||
import im.vector.app.core.utils.toast
|
import im.vector.app.core.utils.toast
|
||||||
@ -155,11 +155,9 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||||||
protected lateinit var bugReporter: BugReporter
|
protected lateinit var bugReporter: BugReporter
|
||||||
private lateinit var pinLocker: PinLocker
|
private lateinit var pinLocker: PinLocker
|
||||||
|
|
||||||
@Inject
|
@Inject lateinit var rageShake: RageShake
|
||||||
lateinit var rageShake: RageShake
|
@Inject lateinit var buildMeta: BuildMeta
|
||||||
|
@Inject lateinit var fontScalePreferences: FontScalePreferences
|
||||||
@Inject
|
|
||||||
lateinit var fontScalePreferences: FontScalePreferences
|
|
||||||
|
|
||||||
lateinit var navigator: Navigator
|
lateinit var navigator: Navigator
|
||||||
private set
|
private set
|
||||||
@ -409,7 +407,7 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||||||
}
|
}
|
||||||
DebugReceiver
|
DebugReceiver
|
||||||
.getIntentFilter(this)
|
.getIntentFilter(this)
|
||||||
.takeIf { BuildConfig.DEBUG }
|
.takeIf { buildMeta.isDebug }
|
||||||
?.let {
|
?.let {
|
||||||
debugReceiver = DebugReceiver()
|
debugReceiver = DebugReceiver()
|
||||||
registerReceiver(debugReceiver, it)
|
registerReceiver(debugReceiver, it)
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
package im.vector.app.core.resources
|
package im.vector.app.core.resources
|
||||||
|
|
||||||
import android.os.Build
|
|
||||||
|
|
||||||
data class BuildMeta(
|
data class BuildMeta(
|
||||||
val sdkInt: Int = Build.VERSION.SDK_INT
|
val isDebug: Boolean,
|
||||||
|
val sdkInt: Int,
|
||||||
|
val applicationId: String,
|
||||||
)
|
)
|
||||||
|
@ -19,10 +19,15 @@ package im.vector.app.features.analytics.impl
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.posthog.android.PostHog
|
import com.posthog.android.PostHog
|
||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.features.analytics.AnalyticsConfig
|
import im.vector.app.features.analytics.AnalyticsConfig
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class PostHogFactory @Inject constructor(private val context: Context, private val analyticsConfig: AnalyticsConfig) {
|
class PostHogFactory @Inject constructor(
|
||||||
|
private val context: Context,
|
||||||
|
private val analyticsConfig: AnalyticsConfig,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
|
) {
|
||||||
|
|
||||||
fun createPosthog(): PostHog {
|
fun createPosthog(): PostHog {
|
||||||
return PostHog.Builder(context, analyticsConfig.postHogApiKey, analyticsConfig.postHogHost)
|
return PostHog.Builder(context, analyticsConfig.postHogApiKey, analyticsConfig.postHogHost)
|
||||||
@ -43,7 +48,7 @@ class PostHogFactory @Inject constructor(private val context: Context, private v
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getLogLevel(): PostHog.LogLevel {
|
private fun getLogLevel(): PostHog.LogLevel {
|
||||||
return if (BuildConfig.DEBUG) {
|
return if (buildMeta.isDebug) {
|
||||||
PostHog.LogLevel.DEBUG
|
PostHog.LogLevel.DEBUG
|
||||||
} else {
|
} else {
|
||||||
PostHog.LogLevel.INFO
|
PostHog.LogLevel.INFO
|
||||||
|
@ -23,11 +23,11 @@ import android.view.ViewGroup
|
|||||||
import androidx.core.app.ActivityOptionsCompat
|
import androidx.core.app.ActivityOptionsCompat
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import im.vector.app.BuildConfig
|
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.observeK
|
import im.vector.app.core.extensions.observeK
|
||||||
import im.vector.app.core.extensions.replaceChildFragment
|
import im.vector.app.core.extensions.replaceChildFragment
|
||||||
import im.vector.app.core.platform.VectorBaseFragment
|
import im.vector.app.core.platform.VectorBaseFragment
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.utils.startSharePlainTextIntent
|
import im.vector.app.core.utils.startSharePlainTextIntent
|
||||||
import im.vector.app.databinding.FragmentHomeDrawerBinding
|
import im.vector.app.databinding.FragmentHomeDrawerBinding
|
||||||
import im.vector.app.features.analytics.plan.MobileScreen
|
import im.vector.app.features.analytics.plan.MobileScreen
|
||||||
@ -43,7 +43,8 @@ import javax.inject.Inject
|
|||||||
class HomeDrawerFragment @Inject constructor(
|
class HomeDrawerFragment @Inject constructor(
|
||||||
private val session: Session,
|
private val session: Session,
|
||||||
private val vectorPreferences: VectorPreferences,
|
private val vectorPreferences: VectorPreferences,
|
||||||
private val avatarRenderer: AvatarRenderer
|
private val avatarRenderer: AvatarRenderer,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) : VectorBaseFragment<FragmentHomeDrawerBinding>() {
|
) : VectorBaseFragment<FragmentHomeDrawerBinding>() {
|
||||||
|
|
||||||
private lateinit var sharedActionViewModel: HomeSharedActionViewModel
|
private lateinit var sharedActionViewModel: HomeSharedActionViewModel
|
||||||
@ -112,7 +113,7 @@ class HomeDrawerFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Debug menu
|
// Debug menu
|
||||||
views.homeDrawerHeaderDebugView.isVisible = BuildConfig.DEBUG && vectorPreferences.developerMode()
|
views.homeDrawerHeaderDebugView.isVisible = buildMeta.isDebug && vectorPreferences.developerMode()
|
||||||
views.homeDrawerHeaderDebugView.debouncedClicks {
|
views.homeDrawerHeaderDebugView.debouncedClicks {
|
||||||
sharedActionViewModel.post(HomeActivitySharedAction.CloseDrawer)
|
sharedActionViewModel.post(HomeActivitySharedAction.CloseDrawer)
|
||||||
navigator.openDebug(requireActivity())
|
navigator.openDebug(requireActivity())
|
||||||
|
@ -26,6 +26,7 @@ import androidx.core.content.pm.ShortcutManagerCompat
|
|||||||
import androidx.core.graphics.drawable.IconCompat
|
import androidx.core.graphics.drawable.IconCompat
|
||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.core.glide.GlideApp
|
import im.vector.app.core.glide.GlideApp
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.utils.DimensionConverter
|
import im.vector.app.core.utils.DimensionConverter
|
||||||
import im.vector.app.features.MainActivity
|
import im.vector.app.features.MainActivity
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||||
@ -35,13 +36,15 @@ import javax.inject.Inject
|
|||||||
private val useAdaptiveIcon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
|
private val useAdaptiveIcon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
|
||||||
private const val adaptiveIconSizeDp = 108
|
private const val adaptiveIconSizeDp = 108
|
||||||
private const val adaptiveIconOuterSidesDp = 18
|
private const val adaptiveIconOuterSidesDp = 18
|
||||||
private const val directShareCategory = BuildConfig.APPLICATION_ID + ".SHORTCUT_SHARE"
|
|
||||||
|
|
||||||
class ShortcutCreator @Inject constructor(
|
class ShortcutCreator @Inject constructor(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val avatarRenderer: AvatarRenderer,
|
private val avatarRenderer: AvatarRenderer,
|
||||||
private val dimensionConverter: DimensionConverter
|
private val dimensionConverter: DimensionConverter,
|
||||||
|
buildMeta: BuildMeta,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
private val directShareCategory = buildMeta.applicationId + ".SHORTCUT_SHARE"
|
||||||
private val adaptiveIconSize = dimensionConverter.dpToPx(adaptiveIconSizeDp)
|
private val adaptiveIconSize = dimensionConverter.dpToPx(adaptiveIconSizeDp)
|
||||||
private val adaptiveIconOuterSides = dimensionConverter.dpToPx(adaptiveIconOuterSidesDp)
|
private val adaptiveIconOuterSides = dimensionConverter.dpToPx(adaptiveIconOuterSidesDp)
|
||||||
private val iconSize by lazy {
|
private val iconSize by lazy {
|
||||||
|
@ -33,6 +33,7 @@ import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
|||||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||||
import im.vector.app.core.mvrx.runCatchingToAsync
|
import im.vector.app.core.mvrx.runCatchingToAsync
|
||||||
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.BehaviorDataSource
|
import im.vector.app.core.utils.BehaviorDataSource
|
||||||
import im.vector.app.features.analytics.AnalyticsTracker
|
import im.vector.app.features.analytics.AnalyticsTracker
|
||||||
@ -139,6 +140,7 @@ class TimelineViewModel @AssistedInject constructor(
|
|||||||
private val stopLiveLocationShareUseCase: StopLiveLocationShareUseCase,
|
private val stopLiveLocationShareUseCase: StopLiveLocationShareUseCase,
|
||||||
private val redactLiveLocationShareEventUseCase: RedactLiveLocationShareEventUseCase,
|
private val redactLiveLocationShareEventUseCase: RedactLiveLocationShareEventUseCase,
|
||||||
private val cryptoConfig: CryptoConfig,
|
private val cryptoConfig: CryptoConfig,
|
||||||
|
buildMeta: BuildMeta,
|
||||||
timelineFactory: TimelineFactory,
|
timelineFactory: TimelineFactory,
|
||||||
spaceStateHandler: SpaceStateHandler,
|
spaceStateHandler: SpaceStateHandler,
|
||||||
) : VectorViewModel<RoomDetailViewState, RoomDetailAction, RoomDetailViewEvents>(initialState),
|
) : VectorViewModel<RoomDetailViewState, RoomDetailAction, RoomDetailViewEvents>(initialState),
|
||||||
@ -152,7 +154,7 @@ class TimelineViewModel @AssistedInject constructor(
|
|||||||
val timeline = timelineFactory.createTimeline(viewModelScope, room, eventId, initialState.rootThreadEventId)
|
val timeline = timelineFactory.createTimeline(viewModelScope, room, eventId, initialState.rootThreadEventId)
|
||||||
|
|
||||||
// Same lifecycle than the ViewModel (survive to screen rotation)
|
// Same lifecycle than the ViewModel (survive to screen rotation)
|
||||||
val previewUrlRetriever = PreviewUrlRetriever(session, viewModelScope)
|
val previewUrlRetriever = PreviewUrlRetriever(session, viewModelScope, buildMeta)
|
||||||
|
|
||||||
// Slot to keep a pending action during permission request
|
// Slot to keep a pending action during permission request
|
||||||
var pendingAction: RoomDetailAction? = null
|
var pendingAction: RoomDetailAction? = null
|
||||||
|
@ -21,6 +21,7 @@ import android.media.AudioAttributes
|
|||||||
import android.media.MediaPlayer
|
import android.media.MediaPlayer
|
||||||
import androidx.core.content.FileProvider
|
import androidx.core.content.FileProvider
|
||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.features.home.room.detail.timeline.helper.AudioMessagePlaybackTracker
|
import im.vector.app.features.home.room.detail.timeline.helper.AudioMessagePlaybackTracker
|
||||||
import im.vector.app.features.voice.VoiceFailure
|
import im.vector.app.features.voice.VoiceFailure
|
||||||
import im.vector.app.features.voice.VoiceRecorder
|
import im.vector.app.features.voice.VoiceRecorder
|
||||||
@ -43,6 +44,7 @@ import javax.inject.Inject
|
|||||||
class AudioMessageHelper @Inject constructor(
|
class AudioMessageHelper @Inject constructor(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val playbackTracker: AudioMessagePlaybackTracker,
|
private val playbackTracker: AudioMessagePlaybackTracker,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
voiceRecorderProvider: VoiceRecorderProvider
|
voiceRecorderProvider: VoiceRecorderProvider
|
||||||
) {
|
) {
|
||||||
private var mediaPlayer: MediaPlayer? = null
|
private var mediaPlayer: MediaPlayer? = null
|
||||||
@ -88,7 +90,7 @@ class AudioMessageHelper @Inject constructor(
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
voiceMessageFile?.let {
|
voiceMessageFile?.let {
|
||||||
val outputFileUri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileProvider", it, "Voice message.${it.extension}")
|
val outputFileUri = FileProvider.getUriForFile(context, buildMeta.applicationId + ".fileProvider", it, "Voice message.${it.extension}")
|
||||||
return outputFileUri
|
return outputFileUri
|
||||||
.toMultiPickerAudioType(context)
|
.toMultiPickerAudioType(context)
|
||||||
?.apply {
|
?.apply {
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package im.vector.app.features.home.room.detail.timeline.url
|
package im.vector.app.features.home.room.detail.timeline.url
|
||||||
|
|
||||||
import im.vector.app.BuildConfig
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@ -27,7 +27,8 @@ import org.matrix.android.sdk.api.session.room.timeline.getLatestEventId
|
|||||||
|
|
||||||
class PreviewUrlRetriever(
|
class PreviewUrlRetriever(
|
||||||
session: Session,
|
session: Session,
|
||||||
private val coroutineScope: CoroutineScope
|
private val coroutineScope: CoroutineScope,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) {
|
) {
|
||||||
private val mediaService = session.mediaService()
|
private val mediaService = session.mediaService()
|
||||||
|
|
||||||
@ -77,7 +78,7 @@ class PreviewUrlRetriever(
|
|||||||
mediaService.getPreviewUrl(
|
mediaService.getPreviewUrl(
|
||||||
url = urlToRetrieve,
|
url = urlToRetrieve,
|
||||||
timestamp = null,
|
timestamp = null,
|
||||||
cacheStrategy = if (BuildConfig.DEBUG) CacheStrategy.NoCache else CacheStrategy.TtlCache(CACHE_VALIDITY, false)
|
cacheStrategy = if (buildMeta.isDebug) CacheStrategy.NoCache else CacheStrategy.TtlCache(CACHE_VALIDITY, false)
|
||||||
)
|
)
|
||||||
}.fold(
|
}.fold(
|
||||||
{
|
{
|
||||||
|
@ -27,9 +27,9 @@ import androidx.core.view.isInvisible
|
|||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
import com.google.android.material.textfield.TextInputLayout
|
||||||
import im.vector.app.BuildConfig
|
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.hideKeyboard
|
import im.vector.app.core.extensions.hideKeyboard
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.utils.ensureProtocol
|
import im.vector.app.core.utils.ensureProtocol
|
||||||
import im.vector.app.core.utils.openUrlInChromeCustomTab
|
import im.vector.app.core.utils.openUrlInChromeCustomTab
|
||||||
import im.vector.app.databinding.FragmentLoginServerUrlFormBinding
|
import im.vector.app.databinding.FragmentLoginServerUrlFormBinding
|
||||||
@ -43,7 +43,9 @@ import javax.inject.Inject
|
|||||||
/**
|
/**
|
||||||
* In this screen, the user is prompted to enter a homeserver url.
|
* In this screen, the user is prompted to enter a homeserver url.
|
||||||
*/
|
*/
|
||||||
class LoginServerUrlFormFragment @Inject constructor() : AbstractLoginFragment<FragmentLoginServerUrlFormBinding>() {
|
class LoginServerUrlFormFragment @Inject constructor(
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
|
) : AbstractLoginFragment<FragmentLoginServerUrlFormBinding>() {
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding {
|
||||||
return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false)
|
return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false)
|
||||||
@ -99,7 +101,7 @@ class LoginServerUrlFormFragment @Inject constructor() : AbstractLoginFragment<F
|
|||||||
views.loginServerUrlFormNotice.text = getString(R.string.login_server_url_form_common_notice)
|
views.loginServerUrlFormNotice.text = getString(R.string.login_server_url_form_common_notice)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val completions = state.knownCustomHomeServersUrls + if (BuildConfig.DEBUG) listOf("http://10.0.2.2:8080") else emptyList()
|
val completions = state.knownCustomHomeServersUrls + if (buildMeta.isDebug) listOf("http://10.0.2.2:8080") else emptyList()
|
||||||
views.loginServerUrlFormHomeServerUrl.setAdapter(
|
views.loginServerUrlFormHomeServerUrl.setAdapter(
|
||||||
ArrayAdapter(
|
ArrayAdapter(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
|
@ -25,6 +25,7 @@ import androidx.core.view.isVisible
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.databinding.FragmentLoginSplashBinding
|
import im.vector.app.databinding.FragmentLoginSplashBinding
|
||||||
import im.vector.app.features.analytics.plan.MobileScreen
|
import im.vector.app.features.analytics.plan.MobileScreen
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
import im.vector.app.features.settings.VectorPreferences
|
||||||
@ -36,7 +37,8 @@ import javax.inject.Inject
|
|||||||
* In this screen, the user is viewing an introduction to what he can do with this application.
|
* In this screen, the user is viewing an introduction to what he can do with this application.
|
||||||
*/
|
*/
|
||||||
class LoginSplashFragment @Inject constructor(
|
class LoginSplashFragment @Inject constructor(
|
||||||
private val vectorPreferences: VectorPreferences
|
private val vectorPreferences: VectorPreferences,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) : AbstractLoginFragment<FragmentLoginSplashBinding>() {
|
) : AbstractLoginFragment<FragmentLoginSplashBinding>() {
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSplashBinding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSplashBinding {
|
||||||
@ -57,7 +59,7 @@ class LoginSplashFragment @Inject constructor(
|
|||||||
private fun setupViews() {
|
private fun setupViews() {
|
||||||
views.loginSplashSubmit.debouncedClicks { getStarted() }
|
views.loginSplashSubmit.debouncedClicks { getStarted() }
|
||||||
|
|
||||||
if (BuildConfig.DEBUG || vectorPreferences.developerMode()) {
|
if (buildMeta.isDebug || vectorPreferences.developerMode()) {
|
||||||
views.loginSplashVersion.isVisible = true
|
views.loginSplashVersion.isVisible = true
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}\n" +
|
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}\n" +
|
||||||
|
@ -26,9 +26,9 @@ import android.widget.ArrayAdapter
|
|||||||
import androidx.core.view.isInvisible
|
import androidx.core.view.isInvisible
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
import com.google.android.material.textfield.TextInputLayout
|
||||||
import im.vector.app.BuildConfig
|
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.hideKeyboard
|
import im.vector.app.core.extensions.hideKeyboard
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.utils.ensureProtocol
|
import im.vector.app.core.utils.ensureProtocol
|
||||||
import im.vector.app.databinding.FragmentLoginServerUrlForm2Binding
|
import im.vector.app.databinding.FragmentLoginServerUrlForm2Binding
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
@ -43,7 +43,9 @@ import javax.net.ssl.HttpsURLConnection
|
|||||||
/**
|
/**
|
||||||
* In this screen, the user is prompted to enter a homeserver url.
|
* In this screen, the user is prompted to enter a homeserver url.
|
||||||
*/
|
*/
|
||||||
class LoginServerUrlFormFragment2 @Inject constructor() : AbstractLoginFragment2<FragmentLoginServerUrlForm2Binding>() {
|
class LoginServerUrlFormFragment2 @Inject constructor(
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
|
) : AbstractLoginFragment2<FragmentLoginServerUrlForm2Binding>() {
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlForm2Binding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlForm2Binding {
|
||||||
return FragmentLoginServerUrlForm2Binding.inflate(inflater, container, false)
|
return FragmentLoginServerUrlForm2Binding.inflate(inflater, container, false)
|
||||||
@ -80,7 +82,7 @@ class LoginServerUrlFormFragment2 @Inject constructor() : AbstractLoginFragment2
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupUi(state: LoginViewState2) {
|
private fun setupUi(state: LoginViewState2) {
|
||||||
val completions = state.knownCustomHomeServersUrls + if (BuildConfig.DEBUG) listOf("http://10.0.2.2:8080") else emptyList()
|
val completions = state.knownCustomHomeServersUrls + if (buildMeta.isDebug) listOf("http://10.0.2.2:8080") else emptyList()
|
||||||
views.loginServerUrlFormHomeServerUrl.setAdapter(
|
views.loginServerUrlFormHomeServerUrl.setAdapter(
|
||||||
ArrayAdapter(
|
ArrayAdapter(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
|
@ -23,6 +23,7 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.databinding.FragmentLoginSplash2Binding
|
import im.vector.app.databinding.FragmentLoginSplash2Binding
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
import im.vector.app.features.settings.VectorPreferences
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -32,7 +33,8 @@ import javax.inject.Inject
|
|||||||
* This is the new splash screen.
|
* This is the new splash screen.
|
||||||
*/
|
*/
|
||||||
class LoginSplashSignUpSignInSelectionFragment2 @Inject constructor(
|
class LoginSplashSignUpSignInSelectionFragment2 @Inject constructor(
|
||||||
private val vectorPreferences: VectorPreferences
|
private val vectorPreferences: VectorPreferences,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) : AbstractLoginFragment2<FragmentLoginSplash2Binding>() {
|
) : AbstractLoginFragment2<FragmentLoginSplash2Binding>() {
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSplash2Binding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSplash2Binding {
|
||||||
@ -49,7 +51,7 @@ class LoginSplashSignUpSignInSelectionFragment2 @Inject constructor(
|
|||||||
views.loginSignupSigninSignUp.setOnClickListener { signUp() }
|
views.loginSignupSigninSignUp.setOnClickListener { signUp() }
|
||||||
views.loginSignupSigninSignIn.setOnClickListener { signIn() }
|
views.loginSignupSigninSignIn.setOnClickListener { signIn() }
|
||||||
|
|
||||||
if (BuildConfig.DEBUG || vectorPreferences.developerMode()) {
|
if (buildMeta.isDebug || vectorPreferences.developerMode()) {
|
||||||
views.loginSplashVersion.isVisible = true
|
views.loginSplashVersion.isVisible = true
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}\n" +
|
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}\n" +
|
||||||
|
@ -49,6 +49,7 @@ import im.vector.app.BuildConfig
|
|||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.createIgnoredUri
|
import im.vector.app.core.extensions.createIgnoredUri
|
||||||
import im.vector.app.core.platform.PendingIntentCompat
|
import im.vector.app.core.platform.PendingIntentCompat
|
||||||
|
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.services.CallAndroidService
|
import im.vector.app.core.services.CallAndroidService
|
||||||
import im.vector.app.core.time.Clock
|
import im.vector.app.core.time.Clock
|
||||||
@ -79,6 +80,7 @@ class NotificationUtils @Inject constructor(
|
|||||||
private val stringProvider: StringProvider,
|
private val stringProvider: StringProvider,
|
||||||
private val vectorPreferences: VectorPreferences,
|
private val vectorPreferences: VectorPreferences,
|
||||||
private val clock: Clock,
|
private val clock: Clock,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -30,6 +30,7 @@ import com.google.android.material.textfield.TextInputLayout
|
|||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.hideKeyboard
|
import im.vector.app.core.extensions.hideKeyboard
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.utils.ensureProtocol
|
import im.vector.app.core.utils.ensureProtocol
|
||||||
import im.vector.app.core.utils.openUrlInChromeCustomTab
|
import im.vector.app.core.utils.openUrlInChromeCustomTab
|
||||||
import im.vector.app.databinding.FragmentLoginServerUrlFormBinding
|
import im.vector.app.databinding.FragmentLoginServerUrlFormBinding
|
||||||
@ -47,7 +48,9 @@ import javax.inject.Inject
|
|||||||
/**
|
/**
|
||||||
* In this screen, the user is prompted to enter a homeserver url.
|
* In this screen, the user is prompted to enter a homeserver url.
|
||||||
*/
|
*/
|
||||||
class FtueAuthServerUrlFormFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentLoginServerUrlFormBinding>() {
|
class FtueAuthServerUrlFormFragment @Inject constructor(
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
|
) : AbstractFtueAuthFragment<FragmentLoginServerUrlFormBinding>() {
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding {
|
||||||
return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false)
|
return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false)
|
||||||
@ -103,7 +106,7 @@ class FtueAuthServerUrlFormFragment @Inject constructor() : AbstractFtueAuthFrag
|
|||||||
views.loginServerUrlFormNotice.text = getString(R.string.login_server_url_form_common_notice)
|
views.loginServerUrlFormNotice.text = getString(R.string.login_server_url_form_common_notice)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val completions = state.knownCustomHomeServersUrls + if (BuildConfig.DEBUG) listOf("http://10.0.2.2:8080") else emptyList()
|
val completions = state.knownCustomHomeServersUrls + if (buildMeta.isDebug) listOf("http://10.0.2.2:8080") else emptyList()
|
||||||
views.loginServerUrlFormHomeServerUrl.setAdapter(
|
views.loginServerUrlFormHomeServerUrl.setAdapter(
|
||||||
ArrayAdapter(
|
ArrayAdapter(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
|
@ -31,6 +31,7 @@ import im.vector.app.BuildConfig
|
|||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.incrementByOneAndWrap
|
import im.vector.app.core.extensions.incrementByOneAndWrap
|
||||||
import im.vector.app.core.extensions.setCurrentItem
|
import im.vector.app.core.extensions.setCurrentItem
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.databinding.FragmentFtueSplashCarouselBinding
|
import im.vector.app.databinding.FragmentFtueSplashCarouselBinding
|
||||||
import im.vector.app.features.VectorFeatures
|
import im.vector.app.features.VectorFeatures
|
||||||
import im.vector.app.features.onboarding.OnboardingAction
|
import im.vector.app.features.onboarding.OnboardingAction
|
||||||
@ -48,7 +49,8 @@ class FtueAuthSplashCarouselFragment @Inject constructor(
|
|||||||
private val vectorPreferences: VectorPreferences,
|
private val vectorPreferences: VectorPreferences,
|
||||||
private val vectorFeatures: VectorFeatures,
|
private val vectorFeatures: VectorFeatures,
|
||||||
private val carouselController: SplashCarouselController,
|
private val carouselController: SplashCarouselController,
|
||||||
private val carouselStateFactory: SplashCarouselStateFactory
|
private val carouselStateFactory: SplashCarouselStateFactory,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) : AbstractFtueAuthFragment<FragmentFtueSplashCarouselBinding>() {
|
) : AbstractFtueAuthFragment<FragmentFtueSplashCarouselBinding>() {
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueSplashCarouselBinding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueSplashCarouselBinding {
|
||||||
@ -76,7 +78,7 @@ class FtueAuthSplashCarouselFragment @Inject constructor(
|
|||||||
debouncedClicks { alreadyHaveAnAccount() }
|
debouncedClicks { alreadyHaveAnAccount() }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BuildConfig.DEBUG || vectorPreferences.developerMode()) {
|
if (buildMeta.isDebug || vectorPreferences.developerMode()) {
|
||||||
views.loginSplashVersion.isVisible = true
|
views.loginSplashVersion.isVisible = true
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}#${BuildConfig.BUILD_NUMBER}\n" +
|
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}#${BuildConfig.BUILD_NUMBER}\n" +
|
||||||
|
@ -24,6 +24,7 @@ import android.view.ViewGroup
|
|||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.databinding.FragmentFtueAuthSplashBinding
|
import im.vector.app.databinding.FragmentFtueAuthSplashBinding
|
||||||
import im.vector.app.features.VectorFeatures
|
import im.vector.app.features.VectorFeatures
|
||||||
import im.vector.app.features.onboarding.OnboardingAction
|
import im.vector.app.features.onboarding.OnboardingAction
|
||||||
@ -36,7 +37,8 @@ import javax.inject.Inject
|
|||||||
*/
|
*/
|
||||||
class FtueAuthSplashFragment @Inject constructor(
|
class FtueAuthSplashFragment @Inject constructor(
|
||||||
private val vectorPreferences: VectorPreferences,
|
private val vectorPreferences: VectorPreferences,
|
||||||
private val vectorFeatures: VectorFeatures
|
private val vectorFeatures: VectorFeatures,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) : AbstractFtueAuthFragment<FragmentFtueAuthSplashBinding>() {
|
) : AbstractFtueAuthFragment<FragmentFtueAuthSplashBinding>() {
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAuthSplashBinding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAuthSplashBinding {
|
||||||
@ -59,7 +61,7 @@ class FtueAuthSplashFragment @Inject constructor(
|
|||||||
debouncedClicks { alreadyHaveAnAccount() }
|
debouncedClicks { alreadyHaveAnAccount() }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BuildConfig.DEBUG || vectorPreferences.developerMode()) {
|
if (buildMeta.isDebug || vectorPreferences.developerMode()) {
|
||||||
views.loginSplashVersion.isVisible = true
|
views.loginSplashVersion.isVisible = true
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}\n" +
|
views.loginSplashVersion.text = "Version : ${BuildConfig.VERSION_NAME}\n" +
|
||||||
|
@ -22,6 +22,7 @@ import androidx.core.content.edit
|
|||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.DefaultSharedPreferences
|
import im.vector.app.core.di.DefaultSharedPreferences
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@ -53,12 +54,14 @@ object VectorLocale {
|
|||||||
private set
|
private set
|
||||||
|
|
||||||
private lateinit var context: Context
|
private lateinit var context: Context
|
||||||
|
private lateinit var buildMeta: BuildMeta
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Init this object.
|
* Init this object.
|
||||||
*/
|
*/
|
||||||
fun init(context: Context) {
|
fun init(context: Context, buildMeta: BuildMeta) {
|
||||||
this.context = context
|
this.context = context
|
||||||
|
this.buildMeta = buildMeta
|
||||||
val preferences = DefaultSharedPreferences.getInstance(context)
|
val preferences = DefaultSharedPreferences.getInstance(context)
|
||||||
|
|
||||||
if (preferences.contains(APPLICATION_LOCALE_LANGUAGE_KEY)) {
|
if (preferences.contains(APPLICATION_LOCALE_LANGUAGE_KEY)) {
|
||||||
@ -174,7 +177,7 @@ object VectorLocale {
|
|||||||
.setScript(script)
|
.setScript(script)
|
||||||
.build()
|
.build()
|
||||||
} catch (exception: IllformedLocaleException) {
|
} catch (exception: IllformedLocaleException) {
|
||||||
if (BuildConfig.DEBUG) {
|
if (buildMeta.isDebug) {
|
||||||
throw exception
|
throw exception
|
||||||
}
|
}
|
||||||
// Ignore this locale in production
|
// Ignore this locale in production
|
||||||
|
@ -26,6 +26,7 @@ import com.squareup.seismic.ShakeDetector
|
|||||||
import im.vector.app.BuildConfig
|
import im.vector.app.BuildConfig
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.DefaultSharedPreferences
|
import im.vector.app.core.di.DefaultSharedPreferences
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.time.Clock
|
import im.vector.app.core.time.Clock
|
||||||
import im.vector.app.features.disclaimer.SHARED_PREF_KEY
|
import im.vector.app.features.disclaimer.SHARED_PREF_KEY
|
||||||
import im.vector.app.features.home.ShortcutsHandler
|
import im.vector.app.features.home.ShortcutsHandler
|
||||||
@ -38,6 +39,7 @@ import javax.inject.Inject
|
|||||||
class VectorPreferences @Inject constructor(
|
class VectorPreferences @Inject constructor(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val clock: Clock,
|
private val clock: Clock,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@ -364,7 +366,7 @@ class VectorPreferences @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun failFast(): Boolean {
|
fun failFast(): Boolean {
|
||||||
return BuildConfig.DEBUG || (developerMode() && defaultPrefs.getBoolean(SETTINGS_DEVELOPER_MODE_FAIL_FAST_PREFERENCE_KEY, false))
|
return buildMeta.isDebug || (developerMode() && defaultPrefs.getBoolean(SETTINGS_DEVELOPER_MODE_FAIL_FAST_PREFERENCE_KEY, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun didAskUserToEnableSessionPush(): Boolean {
|
fun didAskUserToEnableSessionPush(): Boolean {
|
||||||
|
@ -22,6 +22,7 @@ import im.vector.app.BuildConfig
|
|||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.orEmpty
|
import im.vector.app.core.extensions.orEmpty
|
||||||
import im.vector.app.core.preference.VectorPreference
|
import im.vector.app.core.preference.VectorPreference
|
||||||
|
import im.vector.app.core.resources.BuildMeta
|
||||||
import im.vector.app.core.utils.FirstThrottler
|
import im.vector.app.core.utils.FirstThrottler
|
||||||
import im.vector.app.core.utils.copyToClipboard
|
import im.vector.app.core.utils.copyToClipboard
|
||||||
import im.vector.app.core.utils.openAppSettingsPage
|
import im.vector.app.core.utils.openAppSettingsPage
|
||||||
@ -32,7 +33,8 @@ import org.matrix.android.sdk.api.Matrix
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class VectorSettingsHelpAboutFragment @Inject constructor(
|
class VectorSettingsHelpAboutFragment @Inject constructor(
|
||||||
private val versionProvider: VersionProvider
|
private val versionProvider: VersionProvider,
|
||||||
|
private val buildMeta: BuildMeta,
|
||||||
) : VectorSettingsBaseFragment() {
|
) : VectorSettingsBaseFragment() {
|
||||||
|
|
||||||
override var titleRes = R.string.preference_root_help_about
|
override var titleRes = R.string.preference_root_help_about
|
||||||
@ -66,7 +68,7 @@ class VectorSettingsHelpAboutFragment @Inject constructor(
|
|||||||
findPreference<VectorPreference>(VectorPreferences.SETTINGS_VERSION_PREFERENCE_KEY)!!.let {
|
findPreference<VectorPreference>(VectorPreferences.SETTINGS_VERSION_PREFERENCE_KEY)!!.let {
|
||||||
it.summary = buildString {
|
it.summary = buildString {
|
||||||
append(versionProvider.getVersion(longFormat = false, useBuildNumber = true))
|
append(versionProvider.getVersion(longFormat = false, useBuildNumber = true))
|
||||||
if (BuildConfig.DEBUG) {
|
if (buildMeta.isDebug) {
|
||||||
append(" ")
|
append(" ")
|
||||||
append(BuildConfig.GIT_BRANCH_NAME)
|
append(BuildConfig.GIT_BRANCH_NAME)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user