Skip to content

Commit

Permalink
Replace kotlin extension with view bindings in SyncSettingsActivity
Browse files Browse the repository at this point in the history
  • Loading branch information
LunarX committed Oct 10, 2023
1 parent f6475be commit f253e17
Showing 1 changed file with 21 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import com.infomaniak.drive.data.models.SyncSettings.IntervalType
import com.infomaniak.drive.data.models.SyncSettings.SavePicturesDate
import com.infomaniak.drive.data.models.UploadFile
import com.infomaniak.drive.data.models.UserDrive
import com.infomaniak.drive.databinding.ActivitySyncSettingsBinding
import com.infomaniak.drive.ui.BaseActivity
import com.infomaniak.drive.ui.fileList.SelectFolderActivity
import com.infomaniak.drive.ui.fileList.SelectFolderActivityArgs
Expand All @@ -53,14 +54,15 @@ import com.infomaniak.drive.utils.SyncUtils.activateAutoSync
import com.infomaniak.drive.utils.SyncUtils.disableAutoSync
import com.infomaniak.drive.utils.Utils
import com.infomaniak.lib.core.utils.*
import kotlinx.android.synthetic.main.activity_sync_settings.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.util.Date
import java.util.TimeZone

class SyncSettingsActivity : BaseActivity() {

private val binding: ActivitySyncSettingsBinding by lazy { ActivitySyncSettingsBinding.inflate(layoutInflater) }

private val syncSettingsViewModel: SyncSettingsViewModel by viewModels()
private val selectDriveViewModel: SelectDriveViewModel by viewModels()
private var oldSyncSettings: SyncSettings? = null
Expand All @@ -74,9 +76,9 @@ class SyncSettingsActivity : BaseActivity() {
}
}

override fun onCreate(savedInstanceState: Bundle?) {
override fun onCreate(savedInstanceState: Bundle?) = with(binding) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sync_settings)
setContentView(root)

setOnBackPressed()

Expand Down Expand Up @@ -106,7 +108,7 @@ class SyncSettingsActivity : BaseActivity() {
saveOldPictures.value = SavePicturesDate.SINCE_NOW
}

AccountUtils.getAllUsers().observe(this) { users ->
AccountUtils.getAllUsers().observe(this@SyncSettingsActivity) { users ->
if (users.size > 1) {
activeSelectDrive()
} else {
Expand All @@ -120,21 +122,21 @@ class SyncSettingsActivity : BaseActivity() {
}
}

syncSettingsViewModel.customDate.observe(this) { date ->
syncSettingsViewModel.customDate.observe(this@SyncSettingsActivity) { date ->
syncDatePicker.apply {
isGone = date == null
text = date?.format(FORMAT_DATE_CLEAR_MONTH) ?: ""
}
}

selectDriveViewModel.selectedDrive.observe(this) {
selectDriveViewModel.selectedDrive.observe(this@SyncSettingsActivity) {
it?.let {
driveIcon.imageTintList = ColorStateList.valueOf(Color.parseColor(it.preferences.color))
driveName.text = it.name
selectDivider.isVisible = true
selectPath.isVisible = true
} ?: run {
driveIcon.imageTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.iconColor))
driveIcon.imageTintList = ColorStateList.valueOf(ContextCompat.getColor(this@SyncSettingsActivity, R.color.iconColor))
driveName.setText(R.string.selectDriveTitle)
selectDivider.isGone = true
selectPath.isGone = true
Expand All @@ -149,7 +151,7 @@ class SyncSettingsActivity : BaseActivity() {
}

selectPath.setOnClickListener {
Intent(this, SelectFolderActivity::class.java).apply {
Intent(this@SyncSettingsActivity, SelectFolderActivity::class.java).apply {
putExtras(
SelectFolderActivityArgs(
userId = selectDriveViewModel.selectedUserId.value!!,
Expand All @@ -162,7 +164,7 @@ class SyncSettingsActivity : BaseActivity() {
}
}

syncSettingsViewModel.syncFolder.observe(this) { syncFolderId ->
syncSettingsViewModel.syncFolder.observe(this@SyncSettingsActivity) { syncFolderId ->

val selectedUserId = selectDriveViewModel.selectedUserId.value
val selectedDriveId = selectDriveViewModel.selectedDrive.value?.id
Expand All @@ -177,7 +179,7 @@ class SyncSettingsActivity : BaseActivity() {
mediaFoldersSettingsVisibility(syncFolderId != null)
}

syncSettingsViewModel.saveOldPictures.observe(this) {
syncSettingsViewModel.saveOldPictures.observe(this@SyncSettingsActivity) {
if (it != oldSaveOldPicturesValue) editNumber++
changeSaveButtonStatus()
syncDateValue.text = getString(it.shortTitle).lowercase()
Expand All @@ -191,7 +193,7 @@ class SyncSettingsActivity : BaseActivity() {

syncDatePicker.setOnClickListener { showSyncDatePicker() }

syncSettingsViewModel.syncIntervalType.observe(this) {
syncSettingsViewModel.syncIntervalType.observe(this@SyncSettingsActivity) {
if (syncSettingsViewModel.syncIntervalType.value != oldIntervalTypeValue) editNumber++
changeSaveButtonStatus()
syncPeriodicityValue.text = getString(it.title).lowercase()
Expand Down Expand Up @@ -236,7 +238,7 @@ class SyncSettingsActivity : BaseActivity() {
SelectIntervalTypeBottomSheetDialog().show(supportFragmentManager, "SyncSettingsSelectIntervalTypeBottomSheetDialog")
}

saveButton.initProgress(this)
saveButton.initProgress(this@SyncSettingsActivity)
saveButton.setOnClickListener {
if (permission.checkSyncPermissions()) saveSettings()
}
Expand All @@ -256,7 +258,7 @@ class SyncSettingsActivity : BaseActivity() {
}
}

toolbar.setNavigationOnClickListener { finishIfPossible() }
binding.toolbar.setNavigationOnClickListener { finishIfPossible() }
onBackPressedDispatcher.addCallback(this) { finishIfPossible() }
}

Expand All @@ -265,29 +267,29 @@ class SyncSettingsActivity : BaseActivity() {
changeSaveButtonStatus()
}

private fun activeSelectDrive() {
private fun activeSelectDrive() = with(binding) {
switchDrive.isVisible = true
selectDrive.setOnClickListener { SelectDriveDialog().show(supportFragmentManager, "SyncSettingsSelectDriveDialog") }
}

private fun saveSettingVisibility(isVisible: Boolean) {
private fun saveSettingVisibility(isVisible: Boolean) = with(binding) {
mediaFoldersSettingsVisibility(isVisible && syncSettingsViewModel.syncFolder.value != null)
saveSettingsTitle.isVisible = isVisible
saveSettingsLayout.isVisible = isVisible
}

private fun mediaFoldersSettingsVisibility(isVisible: Boolean) {
private fun mediaFoldersSettingsVisibility(isVisible: Boolean) = with(binding) {
syncSettingsVisibility(isVisible && MediaFolder.getAllSyncedFoldersCount() > 0)
mediaFoldersSettingsTitle.isVisible = isVisible
mediaFoldersSettingsLayout.isVisible = isVisible
}

private fun syncSettingsVisibility(isVisible: Boolean) {
private fun syncSettingsVisibility(isVisible: Boolean) = with(binding) {
syncSettingsTitle.isVisible = isVisible
syncSettingsLayout.isVisible = isVisible
}

private fun changeSaveButtonStatus() {
private fun changeSaveButtonStatus() = with(binding) {
val allSyncedFoldersCount = MediaFolder.getAllSyncedFoldersCount().toInt()
val isEdited = (editNumber > 0)
|| (selectDriveViewModel.selectedUserId.value != oldSyncSettings?.userId)
Expand Down Expand Up @@ -320,7 +322,7 @@ class SyncSettingsActivity : BaseActivity() {
trackPhotoSyncEvent(dateName)
}

private fun saveSettings() {
private fun saveSettings() = with(binding) {
saveButton.showProgress()
lifecycleScope.launch(Dispatchers.IO) {
val date = when (syncSettingsViewModel.saveOldPictures.value!!) {
Expand Down

0 comments on commit f253e17

Please sign in to comment.