Skip to content

Commit f49e6d0

Browse files
committed
simplify album fragment
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent c78d055 commit f49e6d0

File tree

2 files changed

+37
-50
lines changed

2 files changed

+37
-50
lines changed

app/src/main/java/com/nextcloud/client/jobs/upload/AlbumFileUploadWorker.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ class AlbumFileUploadWorker(
315315
fileUploadBroadcastManager.sendStarted(operation, context)
316316
} catch (e: Exception) {
317317
Log_OC.e(TAG, "Error uploading", e)
318-
result = RemoteOperationResult<Any?>(e)
318+
result = RemoteOperationResult(e)
319319
} finally {
320320
if (!isStopped) {
321321
uploadsStorageManager.updateDatabaseUploadResult(result, operation)

app/src/main/java/com/owncloud/android/ui/fragment/albums/AlbumsFragment.kt

Lines changed: 36 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import android.view.MenuInflater
2222
import android.view.MenuItem
2323
import android.view.View
2424
import android.view.ViewGroup
25-
import androidx.annotation.VisibleForTesting
2625
import androidx.core.content.ContextCompat
2726
import androidx.core.content.res.ResourcesCompat
2827
import androidx.core.view.MenuHost
@@ -33,20 +32,17 @@ import androidx.lifecycle.lifecycleScope
3332
import androidx.recyclerview.widget.GridLayoutManager
3433
import androidx.recyclerview.widget.LinearLayoutManager
3534
import com.google.android.material.appbar.AppBarLayout
36-
import com.nextcloud.client.account.User
3735
import com.nextcloud.client.account.UserAccountManager
3836
import com.nextcloud.client.di.Injectable
39-
import com.nextcloud.client.network.ClientFactory
40-
import com.nextcloud.client.network.ClientFactory.CreationException
4137
import com.nextcloud.client.preferences.AppPreferences
4238
import com.nextcloud.client.utils.Throttler
4339
import com.owncloud.android.R
4440
import com.owncloud.android.databinding.AlbumsFragmentBinding
4541
import com.owncloud.android.datamodel.SyncedFolderProvider
46-
import com.owncloud.android.lib.common.OwnCloudClient
4742
import com.owncloud.android.lib.common.utils.Log_OC
4843
import com.owncloud.android.lib.resources.albums.PhotoAlbumEntry
4944
import com.owncloud.android.lib.resources.albums.ReadAlbumsRemoteOperation
45+
import com.owncloud.android.ui.activity.BaseActivity
5046
import com.owncloud.android.ui.activity.FileDisplayActivity
5147
import com.owncloud.android.ui.adapter.albums.AlbumFragmentInterface
5248
import com.owncloud.android.ui.adapter.albums.AlbumsAdapter
@@ -56,7 +52,6 @@ import com.owncloud.android.utils.theme.ViewThemeUtils
5652
import kotlinx.coroutines.Dispatchers
5753
import kotlinx.coroutines.launch
5854
import kotlinx.coroutines.withContext
59-
import java.util.Optional
6055
import javax.inject.Inject
6156

6257
class AlbumsFragment :
@@ -65,8 +60,6 @@ class AlbumsFragment :
6560
Injectable {
6661

6762
private var adapter: AlbumsAdapter? = null
68-
private var client: OwnCloudClient? = null
69-
private var optionalUser: Optional<User>? = null
7063

7164
private lateinit var binding: AlbumsFragmentBinding
7265

@@ -76,9 +69,6 @@ class AlbumsFragment :
7669
@Inject
7770
lateinit var accountManager: UserAccountManager
7871

79-
@Inject
80-
lateinit var clientFactory: ClientFactory
81-
8272
@Inject
8373
lateinit var preferences: AppPreferences
8474

@@ -88,7 +78,7 @@ class AlbumsFragment :
8878
@Inject
8979
lateinit var throttler: Throttler
9080

91-
private var mContainerActivity: FileFragment.ContainerActivity? = null
81+
private var containerActivity: FileFragment.ContainerActivity? = null
9282

9383
private var isGridView = true
9484
private var maxColumnSize = 2
@@ -98,7 +88,7 @@ class AlbumsFragment :
9888
override fun onAttach(context: Context) {
9989
super.onAttach(context)
10090
try {
101-
mContainerActivity = context as FileFragment.ContainerActivity
91+
containerActivity = context as FileFragment.ContainerActivity
10292
} catch (e: ClassCastException) {
10393
throw IllegalArgumentException(
10494
context.toString() + " must implement " +
@@ -115,7 +105,7 @@ class AlbumsFragment :
115105
}
116106

117107
override fun onDetach() {
118-
mContainerActivity = null
108+
containerActivity = null
119109
super.onDetach()
120110
}
121111

@@ -135,7 +125,6 @@ class AlbumsFragment :
135125

136126
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
137127
super.onViewCreated(view, savedInstanceState)
138-
optionalUser = Optional.of(accountManager.user)
139128
showAppBar()
140129
createMenu()
141130
setupContainingList()
@@ -218,11 +207,9 @@ class AlbumsFragment :
218207
}
219208
}
220209

221-
@VisibleForTesting
222210
fun populateList(albums: List<PhotoAlbumEntry>?) {
223-
if (requireActivity() is FileDisplayActivity) {
224-
(requireActivity() as FileDisplayActivity).setMainFabVisible(false)
225-
}
211+
Log_OC.d(TAG, "loading album list item size: " + albums?.size)
212+
(activity as? FileDisplayActivity)?.setMainFabVisible(false)
226213
initializeAdapter()
227214
adapter?.setAlbumItems(albums)
228215
}
@@ -231,21 +218,31 @@ class AlbumsFragment :
231218
binding.swipeContainingList.isRefreshing = true
232219
initializeAdapter()
233220
updateEmptyView(false)
221+
readAlbums()
222+
}
223+
224+
private fun readAlbums() {
225+
val activity = activity ?: return
226+
234227
lifecycleScope.launch(Dispatchers.IO) {
235-
val albumsRemoteOperation = ReadAlbumsRemoteOperation()
236-
val result = client?.let { albumsRemoteOperation.execute(it) }
237-
withContext(Dispatchers.Main) {
238-
if (result?.isSuccess == true && result.resultData != null) {
239-
if (result.resultData.isEmpty()) {
228+
if (activity is BaseActivity) {
229+
val client = activity.clientRepository.getOwncloudClient()
230+
val operation = ReadAlbumsRemoteOperation()
231+
val result = operation.execute(client)
232+
233+
withContext(Dispatchers.Main) {
234+
if (result?.isSuccess == true && result.resultData != null) {
235+
if (result.resultData.isEmpty()) {
236+
updateEmptyView(true)
237+
}
238+
populateList(result.resultData)
239+
} else {
240+
Log_OC.d(TAG, "read album operation failed")
240241
updateEmptyView(true)
241242
}
242-
populateList(result.resultData)
243-
} else {
244-
Log_OC.d(TAG, result?.logMessage)
245-
// show error
246-
updateEmptyView(true)
243+
244+
hideRefreshLayoutLoader()
247245
}
248-
hideRefreshLayoutLoader()
249246
}
250247
}
251248
}
@@ -254,23 +251,11 @@ class AlbumsFragment :
254251
binding.swipeContainingList.isRefreshing = false
255252
}
256253

257-
private fun initializeClient() {
258-
if (client == null && optionalUser?.isPresent == true) {
259-
try {
260-
val user = optionalUser?.get()
261-
client = clientFactory.create(user)
262-
} catch (e: CreationException) {
263-
Log_OC.e(TAG, "Error initializing client", e)
264-
}
265-
}
266-
}
267-
268254
private fun initializeAdapter() {
269-
initializeClient()
270255
if (adapter == null) {
271256
adapter = AlbumsAdapter(
272257
requireContext(),
273-
mContainerActivity?.storageManager,
258+
containerActivity?.storageManager,
274259
accountManager.user,
275260
this,
276261
syncedFolderProvider,
@@ -279,6 +264,7 @@ class AlbumsFragment :
279264
isGridView
280265
)
281266
}
267+
282268
binding.listRoot.adapter = adapter
283269

284270
// Restore scroll state
@@ -297,21 +283,22 @@ class AlbumsFragment :
297283
if (isSelectionMode) {
298284
binding.root.setBackgroundColor(ResourcesCompat.getColor(resources, R.color.bg_default, null))
299285
}
300-
if (requireActivity() is FileDisplayActivity) {
301-
(requireActivity() as FileDisplayActivity).setupToolbar()
302-
(requireActivity() as FileDisplayActivity).supportActionBar?.let { actionBar ->
286+
287+
(activity as? FileDisplayActivity)?.run {
288+
setupToolbar()
289+
supportActionBar?.let { actionBar ->
303290
viewThemeUtils.files.themeActionBar(
304291
requireContext(),
305292
actionBar,
306293
R.string.drawer_item_album,
307294
isMenu = true
308295
)
309296
}
310-
(requireActivity() as FileDisplayActivity).showSortListGroup(false)
311-
(requireActivity() as FileDisplayActivity).setMainFabVisible(false)
297+
showSortListGroup(false)
298+
setMainFabVisible(false)
312299

313300
// clear the subtitle while navigating to any other screen from Media screen
314-
(requireActivity() as FileDisplayActivity).clearToolbarSubtitle()
301+
clearToolbarSubtitle()
315302
}
316303
}
317304

0 commit comments

Comments
 (0)