Skip to content

Commit 30e8fce

Browse files
committed
update file name
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 08a9444 commit 30e8fce

3 files changed

Lines changed: 55 additions & 3 deletions

File tree

app/src/main/java/com/owncloud/android/operations/RenameFileOperation.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,10 @@ protected RemoteOperationResult run(OwnCloudClient client) {
9191
if (result.isSuccess()) {
9292
if (file.isFolder()) {
9393
getStorageManager().moveLocalFile(file, newRemotePath, parent);
94-
//saveLocalDirectory();
95-
94+
file.setFileName(newName);
95+
if (!file.isEncrypted()) {
96+
file.setDecryptedRemotePath(newRemotePath);
97+
}
9698
} else {
9799
saveLocalFile(newRemotePath);
98100
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2375,7 +2375,7 @@ class FileDisplayActivity :
23752375

23762376
val file = storageManager.getFileById(renamedFile.parentId)
23772377
if (file != null && file == getCurrentDir()) {
2378-
updateListOfFilesFragment()
2378+
fileListFragment?.adapter?.updateFile(renamedFile)
23792379
}
23802380

23812381
refreshGalleryFragmentIfNeeded()

app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
import java.util.Locale;
8282
import java.util.Set;
8383
import java.util.UUID;
84+
import java.util.stream.IntStream;
8485

8586
import androidx.annotation.NonNull;
8687
import androidx.annotation.Nullable;
@@ -1122,4 +1123,53 @@ public void removeFile(@NonNull OCFile file) {
11221123
notifyDataSetChanged();
11231124
}
11241125
}
1126+
1127+
@SuppressLint("NotifyDataSetChanged")
1128+
public void updateFile(@NonNull OCFile updatedFile) {
1129+
long fileId = updatedFile.getFileId();
1130+
1131+
IntStream.range(0, mFilesAll.size())
1132+
.filter(i -> mFilesAll.get(i).getFileId() == fileId)
1133+
.findFirst()
1134+
.ifPresent(i -> mFilesAll.set(i, updatedFile));
1135+
1136+
int oldIndex = IntStream.range(0, mFiles.size())
1137+
.filter(i -> mFiles.get(i).getFileId() == fileId)
1138+
.findFirst()
1139+
.orElse(-1);
1140+
if (oldIndex == -1) return;
1141+
1142+
mFiles.remove(oldIndex);
1143+
mFiles.add(updatedFile);
1144+
1145+
FileSortOrder currentSortOrder = preferences.getSortOrderByFolder(currentDirectory);
1146+
if (searchType == SearchType.SHARED_FILTER) {
1147+
mFiles.sort((o1, o2) -> Long.compare(o2.getFirstShareTimestamp(), o1.getFirstShareTimestamp()));
1148+
} else {
1149+
boolean foldersBeforeFiles = preferences.isSortFoldersBeforeFiles();
1150+
boolean favoritesFirst = preferences.isSortFavoritesFirst();
1151+
mFiles = currentSortOrder.sortCloudFiles(mFiles, foldersBeforeFiles, favoritesFirst);
1152+
}
1153+
1154+
int newIndex = mFiles.indexOf(updatedFile);
1155+
if (newIndex == -1) {
1156+
notifyDataSetChanged();
1157+
return;
1158+
}
1159+
1160+
int headerOffset = shouldShowHeader() ? 1 : 0;
1161+
int oldAdapterPos = oldIndex + headerOffset;
1162+
int newAdapterPos = newIndex + headerOffset;
1163+
1164+
if (oldAdapterPos != newAdapterPos) {
1165+
notifyItemMoved(oldAdapterPos, newAdapterPos);
1166+
}
1167+
notifyItemChanged(newAdapterPos);
1168+
1169+
if (shouldShowRecommendedFiles() && recommendedFilesAdapter != null && updatedFile.isRecommendedFile()) {
1170+
int pos = recommendedFilesAdapter.getItemPosition(updatedFile);
1171+
if (pos != -1) recommendedFilesAdapter.notifyItemChanged(pos);
1172+
}
1173+
}
1174+
11251175
}

0 commit comments

Comments
 (0)