/
SplashActivity.kt
69 lines (58 loc) 路 2.4 KB
/
SplashActivity.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package openfoodfacts.github.scrachx.openfood.features.splash
import android.content.pm.ActivityInfo
import android.os.Bundle
import android.view.View
import androidx.activity.viewModels
import androidx.lifecycle.lifecycleScope
import com.google.android.material.snackbar.BaseTransientBottomBar
import com.google.android.material.snackbar.Snackbar
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import openfoodfacts.github.scrachx.openfood.R
import openfoodfacts.github.scrachx.openfood.databinding.ActivitySplashBinding
import openfoodfacts.github.scrachx.openfood.features.shared.BaseActivity
import openfoodfacts.github.scrachx.openfood.features.welcome.WelcomeActivity
import pl.aprilapps.easyphotopicker.EasyImage
import kotlin.time.ExperimentalTime
class SplashActivity : BaseActivity() {
private val binding by lazy { ActivitySplashBinding.inflate(layoutInflater) }
private val viewModel: SplashViewModel by viewModels()
private val controller by lazy {
SplashController(getSharedPreferences("prefs", 0), this, this)
}
@ExperimentalTime
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
binding.viewModel = viewModel
binding.lifecycleOwner = this
viewModel.tagLines.postValue(resources.getStringArray(R.array.taglines_array))
if (resources.getBoolean(R.bool.portrait_only)) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
lifecycleScope.launch { controller.refreshData() }
}
suspend fun navigateToMainActivity() = withContext(Dispatchers.Main) {
EasyImage.configuration(this@SplashActivity).apply {
setImagesFolderName("OFF_Images")
saveInAppExternalFilesDir()
setCopyExistingPicturesToPublicLocation(true)
}
WelcomeActivity.start(this@SplashActivity)
finish()
}
suspend fun showLoading() = withContext(Dispatchers.Main) {
binding.loading = View.VISIBLE
}
suspend fun hideLoading(isError: Boolean) = withContext(Dispatchers.Main) {
binding.loading = View.GONE
if (isError) {
Snackbar.make(
binding.root,
R.string.errorWeb,
BaseTransientBottomBar.LENGTH_LONG
).show()
}
}
}