Skip to content

Commit 180a8b1

Browse files
committed
use latest e2ee counter
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 5186686 commit 180a8b1

File tree

1 file changed

+37
-23
lines changed

1 file changed

+37
-23
lines changed

app/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,16 @@
5151
import com.owncloud.android.datamodel.FileDataStorageManager;
5252
import com.owncloud.android.datamodel.OCFile;
5353
import com.owncloud.android.datamodel.SharesType;
54+
import com.owncloud.android.datamodel.e2e.v2.decrypted.DecryptedFolderMetadataFile;
5455
import com.owncloud.android.lib.common.OwnCloudAccount;
56+
import com.owncloud.android.lib.common.OwnCloudClient;
5557
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
5658
import com.owncloud.android.lib.common.utils.Log_OC;
5759
import com.owncloud.android.lib.resources.shares.OCShare;
5860
import com.owncloud.android.lib.resources.shares.ShareType;
5961
import com.owncloud.android.lib.resources.status.NextcloudVersion;
6062
import com.owncloud.android.lib.resources.status.OCCapability;
63+
import com.owncloud.android.operations.RefreshFolderOperation;
6164
import com.owncloud.android.providers.UsersAndGroupsSearchConfig;
6265
import com.owncloud.android.ui.activity.FileActivity;
6366
import com.owncloud.android.ui.activity.FileDisplayActivity;
@@ -325,20 +328,22 @@ private void setupView() {
325328
binding.internalShareDescription.setVisibility(View.VISIBLE);
326329
binding.externalSharesHeadline.setText(getResources().getString(R.string.create_end_to_end_encrypted_share_title));
327330

328-
if (file.getE2eCounter() == -1) {
329-
// V1 cannot share
330-
binding.searchContainer.setVisibility(View.GONE);
331-
binding.createLink.setVisibility(View.GONE);
332-
} else {
333-
binding.createLink.setText(R.string.add_new_secure_file_drop);
334-
binding.searchView.setQueryHint(getResources().getString(R.string.secure_share_search));
335-
336-
if (file.isSharedViaLink()) {
337-
binding.searchView.setQueryHint(getResources().getString(R.string.share_not_allowed_when_file_drop));
338-
binding.searchView.setInputType(InputType.TYPE_NULL);
339-
disableSearchView(binding.searchView);
340-
}
341-
}
331+
fetchE2EECounter(() -> {
332+
if (file.getE2eCounter() == -1) {
333+
// V1 cannot share
334+
binding.searchContainer.setVisibility(View.GONE);
335+
binding.createLink.setVisibility(View.GONE);
336+
} else {
337+
binding.createLink.setText(R.string.add_new_secure_file_drop);
338+
binding.searchView.setQueryHint(getResources().getString(R.string.secure_share_search));
339+
340+
if (file.isSharedViaLink()) {
341+
binding.searchView.setQueryHint(getResources().getString(R.string.share_not_allowed_when_file_drop));
342+
binding.searchView.setInputType(InputType.TYPE_NULL);
343+
disableSearchView(binding.searchView);
344+
}
345+
}
346+
});
342347
} else {
343348
binding.createLink.setText(R.string.create_link);
344349
binding.searchView.setQueryHint(getResources().getString(R.string.share_search_internal));
@@ -367,6 +372,23 @@ private void setupView() {
367372
);
368373
}
369374

375+
private void fetchE2EECounter(Runnable onComplete) {
376+
new Thread(() -> {
377+
try {
378+
OwnCloudClient client = clientFactory.create(user);
379+
Object metadata = RefreshFolderOperation.getDecryptedFolderMetadata(true, file, client, user, requireContext());
380+
if (metadata instanceof DecryptedFolderMetadataFile decryptedMetadata) {
381+
file.setE2eCounter(decryptedMetadata.getMetadata().getCounter());
382+
fileDataStorageManager.saveFile(file);
383+
}
384+
} catch (Exception e) {
385+
Log_OC.e(TAG, "Error refreshing E2E counter: " + e.getMessage());
386+
}
387+
388+
requireActivity().runOnUiThread(onComplete);
389+
}).start();
390+
}
391+
370392
private void checkShareViaUser() {
371393
if (!MDMConfig.INSTANCE.shareViaUser(requireContext())) {
372394
binding.searchContainer.setVisibility(View.GONE);
@@ -617,17 +639,9 @@ public void refreshSharesFromDB() {
617639
}
618640

619641
private void addExternalAndPublicShares(List<OCShare> externalShares) {
620-
final var publicShares = fileDataStorageManager.getSharesByPathAndType(
621-
file.getRemotePath(), ShareType.PUBLIC_LINK, "");
642+
final var publicShares = fileDataStorageManager.getSharesByPathAndType(file.getRemotePath(), ShareType.PUBLIC_LINK, "");
622643
externalShareeListAdapter.removeAll();
623644
final var shares = OCShareExtensionsKt.mergeDistinctByToken(externalShares, publicShares);
624-
625-
if (file.isEncrypted()) {
626-
OCShare placeholder = new OCShare();
627-
placeholder.setShareType(ShareType.NEW_PUBLIC_LINK);
628-
shares.add(placeholder);
629-
}
630-
631645
externalShareeListAdapter.addShares(shares);
632646
}
633647

0 commit comments

Comments
 (0)