Skip to content

Commit 7d06522

Browse files
committed
feat(auto-upload): listen live changes
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 3d548b4 commit 7d06522

3 files changed

Lines changed: 49 additions & 4 deletions

File tree

app/src/main/java/com/nextcloud/ui/component/AutoUploadWarningCardManager.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77

88
package com.nextcloud.ui.component
99

10+
import android.content.BroadcastReceiver
11+
import android.content.Context
12+
import android.content.Intent
13+
import android.content.IntentFilter
14+
import android.os.PowerManager
1015
import android.view.View
1116
import com.nextcloud.client.device.PowerManagementService
1217
import com.nextcloud.utils.extensions.setVisibleIf
@@ -37,4 +42,27 @@ class AutoUploadWarningCardManager(
3742

3843
viewThemeUtils.material.themeCardView(binding.root)
3944
}
45+
46+
// region listen power mode changes
47+
private var binding: AutoUploadBatterySaverWarningBannerBinding? = null
48+
49+
private val batterySaverReceiver = object : BroadcastReceiver() {
50+
override fun onReceive(context: Context, intent: Intent) {
51+
if (intent.action == PowerManager.ACTION_POWER_SAVE_MODE_CHANGED) {
52+
binding?.let { bind(it) }
53+
}
54+
}
55+
}
56+
57+
fun register(context: Context, binding: AutoUploadBatterySaverWarningBannerBinding) {
58+
this.binding = binding
59+
bind(binding)
60+
context.registerReceiver(batterySaverReceiver, IntentFilter(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED))
61+
}
62+
63+
fun unregister(context: Context) {
64+
context.unregisterReceiver(batterySaverReceiver)
65+
binding = null
66+
}
67+
// endregion
4068
}

app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class SyncedFoldersActivity :
153153
@Inject
154154
lateinit var appInfo: AppInfo
155155

156-
lateinit var autoUploadWarningCardManager: AutoUploadWarningCardManager
156+
private var autoUploadWarningCardManager: AutoUploadWarningCardManager? = null
157157

158158
lateinit var binding: SyncedFoldersLayoutBinding
159159
lateinit var adapter: SyncedFolderAdapter
@@ -260,7 +260,9 @@ class SyncedFoldersActivity :
260260
powerManagementService,
261261
connectivityService
262262
)
263-
autoUploadWarningCardManager.bind(binding.autoUploadBatterySaverWarningCard)
263+
autoUploadWarningCardManager?.bind(binding.autoUploadBatterySaverWarningCard)
264+
autoUploadWarningCardManager?.register(this, binding.autoUploadBatterySaverWarningCard)
265+
264266
binding.emptyList.emptyListIcon.setImageResource(R.drawable.nav_synced_folders)
265267
viewThemeUtils.material.colorMaterialButtonPrimaryFilled(binding.emptyList.emptyListViewAction)
266268
val lm = GridLayoutManager(this, gridWidth)
@@ -280,6 +282,11 @@ class SyncedFoldersActivity :
280282
}
281283
}
282284

285+
override fun onDestroy() {
286+
super.onDestroy()
287+
autoUploadWarningCardManager?.unregister(this)
288+
}
289+
283290
/**
284291
* loads all media/synced folders, adds them to the recycler view adapter and shows the list.
285292
*

app/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ class UploadListActivity :
7373

7474
@Inject lateinit var uploadFileOperationFactory: UploadFileOperationFactory
7575

76+
private var autoUploadWarningCardManager: AutoUploadWarningCardManager? = null
77+
7678
private var swipeListRefreshLayout: SwipeRefreshLayout? = null
7779
private var binding: UploadListLayoutBinding? = null
7880

@@ -88,6 +90,7 @@ class UploadListActivity :
8890
binding = UploadListLayoutBinding.inflate(layoutInflater)
8991
val binding = binding!!
9092
setContentView(binding.getRoot())
93+
autoUploadWarningCardManager = AutoUploadWarningCardManager(powerManagementService, viewThemeUtils)
9194
swipeListRefreshLayout = binding.swipeContainingList
9295

9396
// this activity has no file really bound, it's for multiple accounts at the same time; should no inherit
@@ -118,8 +121,10 @@ class UploadListActivity :
118121
adapterHelper
119122
)
120123

121-
val autoUploadWarningCardManager = AutoUploadWarningCardManager(powerManagementService, viewThemeUtils)
122-
binding?.autoUploadBatterySaverWarningCard?.let { autoUploadWarningCardManager.bind(it) }
124+
binding?.autoUploadBatterySaverWarningCard?.let {
125+
autoUploadWarningCardManager?.register(this, it)
126+
autoUploadWarningCardManager?.bind(it)
127+
}
123128

124129
val lm = GridLayoutManager(this, 1)
125130
uploadListAdapter.setLayoutManager(lm)
@@ -372,6 +377,11 @@ class UploadListActivity :
372377
}
373378
}
374379

380+
override fun onDestroy() {
381+
super.onDestroy()
382+
autoUploadWarningCardManager?.unregister(this)
383+
}
384+
375385
companion object {
376386
private val TAG: String = UploadListActivity::class.java.getSimpleName()
377387

0 commit comments

Comments
 (0)