@@ -62,16 +62,19 @@ class BackupFragment :
6262 OnDateSetListener ,
6363 Injectable {
6464
65- @Inject lateinit var backgroundJobManager: BackgroundJobManager
65+ @Inject
66+ lateinit var backgroundJobManager: BackgroundJobManager
6667
67- @Inject lateinit var themeUtils: ThemeUtils
68+ @Inject
69+ lateinit var themeUtils: ThemeUtils
6870
69- @Inject lateinit var arbitraryDataProvider: ArbitraryDataProvider
71+ @Inject
72+ lateinit var arbitraryDataProvider: ArbitraryDataProvider
7073
71- @Inject lateinit var viewThemeUtils: ViewThemeUtils
74+ @Inject
75+ lateinit var viewThemeUtils: ViewThemeUtils
7276
7377 private lateinit var binding: BackupFragmentBinding
74- private lateinit var user: User
7578 private lateinit var contactsBackupFolderPath: String
7679 private lateinit var calendarBackupFolderPath: String
7780 private lateinit var contactsCheckedListener: CompoundButton .OnCheckedChangeListener
@@ -99,7 +102,6 @@ class BackupFragment :
99102 override fun onViewCreated (view : View , savedInstanceState : Bundle ? ) {
100103 super .onViewCreated(view, savedInstanceState)
101104 val contactsPreferenceActivity = requireActivity() as ContactsPreferenceActivity
102- user = contactsPreferenceActivity.user.orElseThrow { RuntimeException () }
103105
104106 setupSwitches()
105107 setupCheckListeners()
@@ -134,16 +136,21 @@ class BackupFragment :
134136 // endregion
135137
136138 // region Setup
139+ private fun getUser (): User ? {
140+ val activity = getTypedActivity(ContactsPreferenceActivity ::class .java) ? : return null
141+ return activity.user?.takeIf { it.isPresent }?.get()
142+ }
143+
137144 private fun setupSwitches () {
138- val activity = getTypedActivity(ContactsPreferenceActivity ::class .java) ? : return
139- val user = activity.user?.takeIf { it.isPresent }?.get() ? : return
145+ val user = getUser() ? : return
140146
141147 binding.dailyBackup.isChecked = arbitraryDataProvider.getBooleanValue(
142148 user,
143149 ContactsPreferenceActivity .PREFERENCE_CONTACTS_AUTOMATIC_BACKUP
144150 )
145151 binding.contacts.isChecked = isBackupEnabled(BackupType .Contacts ) && checkContactBackupPermission()
146- binding.calendar.isChecked = isBackupEnabled(BackupType .Calendar ) && checkCalendarBackupPermission(requireContext())
152+ binding.calendar.isChecked =
153+ isBackupEnabled(BackupType .Calendar ) && checkCalendarBackupPermission(requireContext())
147154 binding.calendar.visibility = if (showCalendarBackup) View .VISIBLE else View .GONE
148155 }
149156
@@ -153,14 +160,12 @@ class BackupFragment :
153160 }
154161
155162 private fun isBackupEnabled (type : BackupType ): Boolean {
156- val activity = getTypedActivity(ContactsPreferenceActivity ::class .java) ? : return false
157- val user = activity.user?.takeIf { it.isPresent }?.get() ? : return false
163+ val user = getUser() ? : return false
158164 return arbitraryDataProvider.getBooleanValue(user, type.key)
159165 }
160166
161167 private fun setBackup (type : BackupType , value : Boolean ) {
162- val activity = getTypedActivity(ContactsPreferenceActivity ::class .java) ? : return
163- val user = activity.user?.takeIf { it.isPresent }?.get() ? : return
168+ val user = getUser() ? : return
164169 arbitraryDataProvider.storeOrUpdateKeyValue(
165170 user.accountName,
166171 type.key,
@@ -196,6 +201,8 @@ class BackupFragment :
196201 }
197202
198203 private fun displayLastBackup (contactsPreferenceActivity : ContactsPreferenceActivity ) {
204+ val user = getUser() ? : return
205+
199206 val lastBackupTimestamp = arbitraryDataProvider.getLongValue(
200207 user,
201208 ContactsPreferenceActivity .PREFERENCE_CONTACTS_LAST_BACKUP
@@ -272,21 +279,22 @@ class BackupFragment :
272279
273280 // region Backup operations
274281 private fun backupNow () {
275- val activity = getTypedActivity(ContactsPreferenceActivity ::class .java) ? : return
276- val user = activity.user?.takeIf { it.isPresent }?.get() ? : return
282+ val user = getUser() ? : return
277283
278284 if (isBackupEnabled(BackupType .Contacts ) && checkContactBackupPermission()) {
279285 backgroundJobManager.startImmediateContactsBackup(user)
280286 }
281- if (showCalendarBackup && isBackupEnabled(BackupType .Calendar ) && checkCalendarBackupPermission(requireContext())) {
287+ if (showCalendarBackup &&
288+ isBackupEnabled(BackupType .Calendar ) &&
289+ checkCalendarBackupPermission(requireContext())
290+ ) {
282291 backgroundJobManager.startImmediateCalendarBackup(user)
283292 }
284293 DisplayUtils .showSnackMessage(this , R .string.contacts_preferences_backup_scheduled)
285294 }
286295
287296 private fun setAutomaticBackup (enabled : Boolean ) {
288- val activity = getTypedActivity(ContactsPreferenceActivity ::class .java) ? : return
289- val user = activity.user?.takeIf { it.isPresent }?.get() ? : return
297+ val user = getUser() ? : return
290298
291299 if (enabled) {
292300 if (isBackupEnabled(BackupType .Contacts )) {
@@ -331,6 +339,8 @@ class BackupFragment :
331339 private suspend fun fetchBackupFiles (folder : OCFile , storageManager : FileDataStorageManager ): List <OCFile > =
332340 withContext(Dispatchers .IO ) {
333341 try {
342+ val user = getUser() ? : return @withContext emptyList()
343+
334344 @Suppress(" DEPRECATION" )
335345 val result = RefreshFolderOperation (
336346 folder,
@@ -416,7 +426,8 @@ class BackupFragment :
416426 )
417427 return
418428 }
419- val user = contactsPreferenceActivity.user.orElseThrow { RuntimeException () }
429+ val user = getUser() ? : return
430+
420431 val fragment = BackupListFragment .newInstance(backupToRestore.toTypedArray(), user)
421432 contactsPreferenceActivity.supportFragmentManager.beginTransaction()
422433 .replace(R .id.frame_container, fragment, BackupListFragment .TAG )
0 commit comments