Merge pull request #13838 from nextcloud/fix0L

Fix wrong null->0L conversion
This commit is contained in:
Tobias Kaminsky 2024-10-21 16:48:05 +02:00 committed by GitHub
commit eb75643dad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 47 additions and 7 deletions

View file

@ -52,6 +52,13 @@ class InternalTwoWaySyncWork(
return checkFreeSpaceResult
}
// do not attempt to sync root folder
if (folder.remotePath == OCFile.ROOT_PATH) {
folder.internalFolderSyncTimestamp = -1L
fileDataStorageManager.saveFile(folder)
continue
}
Log_OC.d(TAG, "Folder ${folder.remotePath}: started!")
val operation = SynchronizeFolderOperation(context, folder.remotePath, user, fileDataStorageManager)
.execute(context)

View file

@ -1126,6 +1126,10 @@ public class FileDataStorageManager {
return (i == null) ? 0 : i;
}
private long nullToMinusOne(Long i) {
return (i == null) ? -1L : i;
}
private OCFile createFileInstance(FileEntity fileEntity) {
OCFile ocFile = new OCFile(fileEntity.getPath());
ocFile.setDecryptedRemotePath(fileEntity.getPathDecrypted());
@ -1190,7 +1194,7 @@ public class FileDataStorageManager {
ocFile.setLivePhoto(fileEntity.getMetadataLivePhoto());
ocFile.setHidden(nullToZero(fileEntity.getHidden()) == 1);
ocFile.setE2eCounter(fileEntity.getE2eCounter());
ocFile.setInternalFolderSyncTimestamp(nullToZero(fileEntity.getInternalTwoWaySync()));
ocFile.setInternalFolderSyncTimestamp(nullToMinusOne(fileEntity.getInternalTwoWaySync()));
String sharees = fileEntity.getSharees();
// Surprisingly JSON deserialization causes significant overhead.

View file

@ -7,6 +7,7 @@
package com.owncloud.android.ui.adapter
import android.annotation.SuppressLint
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
@ -17,8 +18,8 @@ import com.owncloud.android.datamodel.FileDataStorageManager
import com.owncloud.android.datamodel.OCFile
class InternalTwoWaySyncAdapter(
dataStorageManager: FileDataStorageManager,
user: User,
private val dataStorageManager: FileDataStorageManager,
private val user: User,
val context: Context
) : RecyclerView.Adapter<InternalTwoWaySyncViewHolder>() {
var folders: List<OCFile> = dataStorageManager.getInternalTwoWaySyncFolders(user)
@ -38,6 +39,12 @@ class InternalTwoWaySyncAdapter(
}
override fun onBindViewHolder(holder: InternalTwoWaySyncViewHolder, position: Int) {
holder.bind(folders[position], context)
holder.bind(folders[position], context, dataStorageManager, this)
}
@SuppressLint("NotifyDataSetChanged")
fun update() {
folders = dataStorageManager.getInternalTwoWaySyncFolders(user)
notifyDataSetChanged()
}
}

View file

@ -12,12 +12,18 @@ import android.view.View
import androidx.recyclerview.widget.RecyclerView
import com.owncloud.android.R
import com.owncloud.android.databinding.InternalTwoWaySyncViewHolderBinding
import com.owncloud.android.datamodel.FileDataStorageManager
import com.owncloud.android.datamodel.OCFile
import com.owncloud.android.utils.DisplayUtils
class InternalTwoWaySyncViewHolder(val binding: InternalTwoWaySyncViewHolderBinding) :
RecyclerView.ViewHolder(binding.root) {
fun bind(folder: OCFile, context: Context) {
fun bind(
folder: OCFile,
context: Context,
dataStorageManager: FileDataStorageManager,
internalTwoWaySyncAdapter: InternalTwoWaySyncAdapter
) {
binding.run {
size.text = DisplayUtils.bytesToHumanReadable(folder.fileLength)
name.text = folder.decryptedFileName
@ -39,6 +45,12 @@ class InternalTwoWaySyncViewHolder(val binding: InternalTwoWaySyncViewHolderBind
folder.internalFolderSyncTimestamp
)
}
unset.setOnClickListener {
folder.internalFolderSyncTimestamp = -1L
dataStorageManager.saveFile(folder)
internalTwoWaySyncAdapter.update()
}
}
}
}

View file

@ -22,10 +22,11 @@
android:src="@drawable/folder" />
<LinearLayout
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="@dimen/min_list_item_size"
android:layout_marginStart="@dimen/standard_half_margin"
android:gravity="center_vertical"
android:gravity="center_vertical|start"
android:orientation="vertical">
<TextView
@ -94,4 +95,12 @@
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/unset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/unset_internal_two_way_sync_description"
android:src="@drawable/ic_close" />
</LinearLayout>

View file

@ -1247,4 +1247,5 @@
<string name="sync">Sync</string>
<string name="please_select_a_server">Please select a server…</string>
<string name="notification_icon_description">Unread notifications exist</string>
<string name="unset_internal_two_way_sync_description">Remove folder from internal two way sync</string>
</resources>