Skip to content

Commit f3582df

Browse files
Okuro3499dogi
andauthored
login: smoother sync status updating (fixes #13543) (#13544)
Co-authored-by: dogi <dogi@users.noreply.github.com>
1 parent b6f54f4 commit f3582df

19 files changed

Lines changed: 1044 additions & 802 deletions

File tree

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ android {
1212
applicationId "org.ole.planet.myplanet"
1313
minSdk = 26
1414
targetSdk = 36
15-
versionCode = 5584
16-
versionName = "0.55.84"
15+
versionCode = 5585
16+
versionName = "0.55.85"
1717
ndkVersion = '26.3.11579264'
1818
vectorDrawables.useSupportLibrary = true
1919
}

app/src/main/java/org/ole/planet/myplanet/ui/sync/LoginActivity.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ class LoginActivity : SyncActivity(), OnUserProfileClickListener {
121121
btnLang = binding.btnLang
122122
inputName = binding.inputName
123123
inputPassword = binding.inputPassword
124+
dotSync = binding.dotSync
125+
txtSyncState = binding.txtSyncState
124126
}
125127

126128
private fun setupAvailableSpace() {
@@ -164,8 +166,10 @@ class LoginActivity : SyncActivity(), OnUserProfileClickListener {
164166
binding.openCommunity.setOnClickListener {
165167
HomeCommunityDialogFragment().show(supportFragmentManager, "")
166168
}
169+
syncIcon.visibility = View.VISIBLE
167170
} else {
168171
binding.openCommunity.visibility = View.GONE
172+
syncIcon.visibility = View.GONE
169173
}
170174
binding.btnFeedback.setOnClickListener {
171175
if (getUrl() != "/db") {
@@ -561,6 +565,10 @@ class LoginActivity : SyncActivity(), OnUserProfileClickListener {
561565
val savedUsers = withContext(dispatcherProvider.io) { prefData.getSavedUsers().toMutableList() }
562566
mAdapter?.submitList(savedUsers)
563567

568+
val hasUsers = savedUsers.isNotEmpty()
569+
binding.tvWelcome.setText(if (hasUsers) R.string.welcome_back else R.string.welcome_new)
570+
binding.tvSubtitle.setText(if (hasUsers) R.string.sign_in_to_continue else R.string.sign_in_to_get_started)
571+
564572
binding.recyclerView.isNestedScrollingEnabled = true
565573
binding.recyclerView.scrollBarStyle = View.SCROLLBARS_INSIDE_OVERLAY
566574
binding.recyclerView.isVerticalScrollBarEnabled = true

app/src/main/java/org/ole/planet/myplanet/ui/sync/SyncActivity.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ abstract class SyncActivity : ProcessUserDataActivity(), ConfigurationsRepositor
9999
private var syncTimeInterval = intArrayOf(60 * 60, 3 * 60 * 60)
100100
lateinit var syncIcon: ImageView
101101
lateinit var syncIconDrawable: AnimationDrawable
102+
protected var dotSync: View? = null
103+
protected var txtSyncState: TextView? = null
102104
@Inject
103105
lateinit var profileDbHandler: UserSessionManager
104106
lateinit var spnCloud: Spinner
@@ -465,6 +467,8 @@ abstract class SyncActivity : ProcessUserDataActivity(), ConfigurationsRepositor
465467
customProgressDialog.setText(getString(R.string.syncing_data_please_wait))
466468
customProgressDialog.show()
467469
isProgressDialogShowing = true
470+
txtSyncState?.text = getString(R.string.sync_chip_syncing)
471+
dotSync?.backgroundTintList = android.content.res.ColorStateList.valueOf(0xFFF59E0B.toInt())
468472
}
469473
}
470474

@@ -479,6 +483,8 @@ abstract class SyncActivity : ProcessUserDataActivity(), ConfigurationsRepositor
479483
syncIconDrawable.selectDrawable(0)
480484
syncIcon.invalidateDrawable(syncIconDrawable)
481485
}
486+
txtSyncState?.text = getString(R.string.sync_chip_offline)
487+
dotSync?.backgroundTintList = android.content.res.ColorStateList.valueOf(0xFFEF4444.toInt())
482488
showAlert(this@SyncActivity, getString(R.string.sync_failed), msg)
483489
showWifiSettingDialog(this@SyncActivity)
484490
}
@@ -592,6 +598,8 @@ abstract class SyncActivity : ProcessUserDataActivity(), ConfigurationsRepositor
592598
if (::lblLastSyncDate.isInitialized) {
593599
if (prefData.getLastSync() <= 0) {
594600
lblLastSyncDate.text = getString(R.string.last_synced_never)
601+
txtSyncState?.text = getString(R.string.sync_chip_offline)
602+
dotSync?.backgroundTintList = android.content.res.ColorStateList.valueOf(0xFFEF4444.toInt())
595603
} else {
596604
val lastSyncMillis = prefData.getLastSync()
597605
var relativeTime = TimeUtils.getRelativeTime(lastSyncMillis)
@@ -601,6 +609,8 @@ abstract class SyncActivity : ProcessUserDataActivity(), ConfigurationsRepositor
601609
}
602610

603611
lblLastSyncDate.text = getString(R.string.last_sync, relativeTime)
612+
txtSyncState?.text = getString(R.string.sync_chip_synced)
613+
dotSync?.backgroundTintList = android.content.res.ColorStateList.valueOf(0xFF22C55E.toInt())
604614
}
605615
}
606616
if (autoSynFeature(Constants.KEY_AUTOSYNC_, applicationContext) && autoSynFeature(Constants.KEY_AUTOSYNC_WEEKLY, applicationContext)) {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid android:color="@android:color/transparent" />
5+
<stroke
6+
android:width="1dp"
7+
android:color="#66FFFFFF" />
8+
<corners android:radius="999dp" />
9+
</shape>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid android:color="@color/field_fill" />
5+
<stroke
6+
android:width="1dp"
7+
android:color="@color/md_blue_100" />
8+
<corners android:radius="999dp" />
9+
</shape>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="oval">
4+
<solid android:color="#22C55E" />
5+
<size
6+
android:width="8dp"
7+
android:height="8dp" />
8+
</shape>

0 commit comments

Comments
 (0)