diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginPlatformListFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginPlatformListFragment.kt
index 9beb0860..ad5fb3d9 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginPlatformListFragment.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginPlatformListFragment.kt
@@ -47,6 +47,7 @@ class LoginPlatformListFragment : Fragment(), CoroutineScope {
}
private lateinit var timeoutJob: Job
+ private lateinit var adapter: LoginPlatformAdapter
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
if (!isAdded) return
@@ -57,12 +58,7 @@ class LoginPlatformListFragment : Fragment(), CoroutineScope {
val loginMode = arguments?.getInt("loginMode") ?: return
val mode = register.loginModes.firstOrNull { it.loginMode == loginMode } ?: return
- timeoutJob = startCoroutineTimer(5000L) {
- b.timeoutText.isVisible = true
- timeoutJob.cancel()
- }
-
- val adapter = LoginPlatformAdapter(activity) { platform ->
+ adapter = LoginPlatformAdapter(activity) { platform ->
nav.navigate(R.id.loginFormFragment, Bundle(
"loginType" to platform.loginType,
"loginMode" to platform.loginMode,
@@ -73,7 +69,30 @@ class LoginPlatformListFragment : Fragment(), CoroutineScope {
), activity.navOptions)
}
+ loadPlatforms(register, mode)
+ b.reloadButton.isVisible = App.devMode
+ b.reloadButton.onClick {
+ LoginInfo.platformList.remove(mode.name)
+ loadPlatforms(register, mode)
+ }
+
+ b.list.apply {
+ setHasFixedSize(true)
+ layoutManager = LinearLayoutManager(context)
+ addItemDecoration(SimpleDividerItemDecoration(context))
+ }
+ }
+
+ private fun loadPlatforms(register: LoginInfo.Register, mode: LoginInfo.Mode) {
launch {
+ timeoutJob = startCoroutineTimer(5000L) {
+ b.timeoutText.isVisible = true
+ timeoutJob.cancel()
+ }
+ b.loadingLayout.isVisible = true
+ b.list.isVisible = false
+ b.reloadButton.isEnabled = false
+
val platforms = LoginInfo.platformList[mode.name]
?: run {
api.runCatching(activity) {
@@ -87,14 +106,11 @@ class LoginPlatformListFragment : Fragment(), CoroutineScope {
adapter.items = platforms
b.list.adapter = adapter
- b.list.apply {
- setHasFixedSize(true)
- layoutManager = LinearLayoutManager(context)
- addItemDecoration(SimpleDividerItemDecoration(context))
- }
+
timeoutJob.cancel()
b.loadingLayout.isVisible = false
b.list.isVisible = true
+ b.reloadButton.isEnabled = true
}
}
}
diff --git a/app/src/main/res/layout/login_platform_list_fragment.xml b/app/src/main/res/layout/login_platform_list_fragment.xml
index ebe8c169..699177ff 100644
--- a/app/src/main/res/layout/login_platform_list_fragment.xml
+++ b/app/src/main/res/layout/login_platform_list_fragment.xml
@@ -78,6 +78,15 @@
tools:visibility="visible" />
+
+