diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5e3610df1..f7fc902b5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,11 +17,10 @@ android:name=".splash.SplashActivity" android:exported="true" android:label="@string/app_name" - android:theme="@style/Theme.WeSpot" + android:theme="@style/Theme.Wespot.Starting" android:windowSoftInputMode="adjustResize"> - diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 000000000..2cd46d338 Binary files /dev/null and b/app/src/main/ic_launcher-playstore.png differ diff --git a/app/src/main/kotlin/com/bff/wespot/PushNotificationService.kt b/app/src/main/kotlin/com/bff/wespot/PushNotificationService.kt index fcae71598..f2e19a140 100644 --- a/app/src/main/kotlin/com/bff/wespot/PushNotificationService.kt +++ b/app/src/main/kotlin/com/bff/wespot/PushNotificationService.kt @@ -65,8 +65,7 @@ class PushNotificationService : FirebaseMessagingService() { val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) val notificationBuilder = NotificationCompat.Builder(this, CHANNEL_ID) - // TODO Set AppIcon - .setSmallIcon(R.drawable.ic_launcher_background) + .setSmallIcon(R.mipmap.ic_launcher_round) .setContentTitle(title) .setContentText(content) .setAutoCancel(true) diff --git a/app/src/main/kotlin/com/bff/wespot/splash/SplashActivity.kt b/app/src/main/kotlin/com/bff/wespot/splash/SplashActivity.kt index d8eed430e..a0dde2dc4 100644 --- a/app/src/main/kotlin/com/bff/wespot/splash/SplashActivity.kt +++ b/app/src/main/kotlin/com/bff/wespot/splash/SplashActivity.kt @@ -1,15 +1,19 @@ package com.bff.wespot.splash -import android.animation.ObjectAnimator +import android.os.Build import android.os.Bundle -import android.view.View -import android.view.animation.DecelerateInterpolator import androidx.activity.ComponentActivity import androidx.activity.viewModels -import androidx.core.animation.doOnEnd import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.lifecycleScope +import androidx.lifecycle.repeatOnLifecycle +import com.bff.wespot.R import com.bff.wespot.auth.AuthActivity import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + @AndroidEntryPoint class SplashActivity : ComponentActivity() { @@ -17,25 +21,32 @@ class SplashActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - installSplashScreen().apply { - setKeepOnScreenCondition { - return@setKeepOnScreenCondition viewModel.start.value.not() - } - setOnExitAnimationListener { splashScreen -> - ObjectAnimator.ofFloat( - splashScreen.view, - View.TRANSLATION_Y, - 0f, splashScreen.view.height.toFloat() - ).apply { - interpolator = DecelerateInterpolator() - duration = 500L + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + installSplashScreen().apply { + setKeepOnScreenCondition { + return@setKeepOnScreenCondition viewModel.start.value.not() + } + setOnExitAnimationListener { val intent = AuthActivity.intent(this@SplashActivity) startActivity(intent) - doOnEnd { - splashScreen.remove() - finish() + finish() + } + } + } else { + setContentView(R.layout.activity_splash) + actionBar?.hide() + + lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.CREATED) { + viewModel.start.collect { + if (it) { + delay(500) + val intent = AuthActivity.intent(this@SplashActivity) + startActivity(intent) + finish() + } } - start() } } } diff --git a/app/src/main/kotlin/com/bff/wespot/splash/SplashViewModel.kt b/app/src/main/kotlin/com/bff/wespot/splash/SplashViewModel.kt index 1a2596697..0c9bdda98 100644 --- a/app/src/main/kotlin/com/bff/wespot/splash/SplashViewModel.kt +++ b/app/src/main/kotlin/com/bff/wespot/splash/SplashViewModel.kt @@ -3,6 +3,7 @@ package com.bff.wespot.splash import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.bff.wespot.domain.repository.RemoteConfigRepository +import com.bff.wespot.domain.util.RemoteConfigKey import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow @@ -16,9 +17,15 @@ class SplashViewModel @Inject constructor( private val _start = MutableStateFlow(false) val start = _start.asStateFlow() + private val _minVersion = MutableStateFlow("") + val minVersion = _minVersion.asStateFlow() + init { viewModelScope.launch { _start.value = dataSource.startRemoteConfig() + if (_start.value) { + _minVersion.emit(dataSource.fetchFromRemoteConfig(RemoteConfigKey.MIN_VERSION)) + } } } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 07d5da9cb..000000000 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d114..000000000 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/icon.xml b/app/src/main/res/drawable/icon.xml new file mode 100644 index 000000000..300478f39 --- /dev/null +++ b/app/src/main/res/drawable/icon.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml new file mode 100644 index 000000000..4c7619fc7 --- /dev/null +++ b/app/src/main/res/layout/activity_splash.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..036d09bc5 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..036d09bc5 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml deleted file mode 100644 index 6f3b755bf..000000000 --- a/app/src/main/res/mipmap-anydpi/ic_launcher.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml deleted file mode 100644 index 6f3b755bf..000000000 --- a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp index c209e78ec..07667f27d 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 000000000..cd6744229 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp index b2dfe3d1b..dc16f8c0b 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp index 4f0f1d64e..bdb56e137 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 000000000..a41b30dd6 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp index 62b611da0..673aafc8c 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp index 948a3070f..479a3844a 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 000000000..9d96264a0 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp index 1b9a6956b..ffc3e0746 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp index 28d4b77f9..8f30fa5bc 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 000000000..a104296c2 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp index 9287f5083..be5b28bac 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp index aa7d6427e..4439a634e 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 000000000..4c90502f1 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp index 9126ae37c..a03eacce0 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/values-v31/themes.xml b/app/src/main/res/values-v31/themes.xml new file mode 100644 index 000000000..a6a4e70c6 --- /dev/null +++ b/app/src/main/res/values-v31/themes.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 000000000..0eaea521c --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #1B1C1E + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index f19138010..ca2b84e35 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,5 +1,14 @@ - \ No newline at end of file