Skip to content
This repository was archived by the owner on Oct 27, 2025. It is now read-only.

Commit ed28338

Browse files
authored
Show only containers in recent documents (#209)
* MOPPAND-823
1 parent 500a83f commit ed28338

File tree

3 files changed

+30
-5
lines changed

3 files changed

+30
-5
lines changed

app/src/main/java/ee/ria/DigiDoc/android/signature/list/Result.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import java.io.File;
99

10+
import ee.ria.DigiDoc.android.utils.files.FileSystem;
1011
import ee.ria.DigiDoc.android.utils.mvi.MviResult;
1112

1213
interface Result extends MviResult<ViewState> {
@@ -38,7 +39,7 @@ static ContainersLoadResult progress(boolean indicateActivity) {
3839
}
3940

4041
static ContainersLoadResult success(ImmutableList<File> containerFiles) {
41-
return create(true, false, containerFiles, null);
42+
return create(true, false, FileSystem.filterContainers(containerFiles), null);
4243
}
4344

4445
static ContainersLoadResult failure(Throwable error) {
@@ -113,7 +114,7 @@ static ContainerRemoveResult progress() {
113114
}
114115

115116
static ContainerRemoveResult success(ImmutableList<File> containerFiles) {
116-
return create(null, false, containerFiles, null);
117+
return create(null, false, FileSystem.filterContainers(containerFiles), null);
117118
}
118119

119120
static ContainerRemoveResult failure(Throwable error) {

app/src/main/java/ee/ria/DigiDoc/android/utils/files/FileSystem.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import com.google.common.io.ByteStreams;
99
import com.google.common.io.Files;
1010

11-
import org.apache.commons.io.FileUtils;
1211
import org.apache.commons.io.FilenameUtils;
1312

1413
import java.io.File;
@@ -20,10 +19,12 @@
2019
import java.util.Comparator;
2120
import java.util.List;
2221
import java.util.Locale;
22+
import java.util.stream.Collectors;
2323

2424
import javax.inject.Inject;
2525

2626
import ee.ria.DigiDoc.common.FileUtil;
27+
import ee.ria.DigiDoc.crypto.CryptoContainer;
2728
import ee.ria.DigiDoc.sign.SignedContainer;
2829
import timber.log.Timber;
2930

@@ -182,6 +183,19 @@ public static boolean isEmptyDataFileInContainer(File containerFile) {
182183
return false;
183184
}
184185

186+
/**
187+
* Filter out container files
188+
*
189+
* @param files List of files.
190+
* @return ImmutableList<File> of containers only.
191+
*/
192+
public static ImmutableList<File> filterContainers(ImmutableList<File> files) {
193+
return ImmutableList.copyOf(files.stream()
194+
.filter(file -> SignedContainer.isContainer(file) ||
195+
CryptoContainer.isCryptoContainer(file))
196+
.collect(Collectors.toList()));
197+
}
198+
185199
private File cacheDir() {
186200
return application.getCacheDir();
187201
}

crypto-lib/src/main/java/ee/ria/DigiDoc/crypto/CryptoContainer.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@
1717
import java.io.File;
1818
import java.io.FileInputStream;
1919
import java.io.InputStream;
20-
import java.nio.file.FileSystem;
2120
import java.util.List;
2221
import java.util.Locale;
2322

2423
import ee.ria.DigiDoc.common.Certificate;
25-
import ee.ria.DigiDoc.common.FileUtil;
2624
import okio.ByteString;
2725

2826
import static com.google.common.io.Files.getFileExtension;
@@ -188,4 +186,16 @@ private static CryptoContainer create(File file, ImmutableList<File> dataFiles,
188186
boolean decrypted) {
189187
return new AutoValue_CryptoContainer(file, dataFiles, recipients, decrypted);
190188
}
189+
190+
/**
191+
* Check whether this is a crypto container file which should be opened as such
192+
* or a regular file which should be added to the container.
193+
*
194+
* @param file File to check.
195+
* @return True if it is a crypto container, false otherwise.
196+
*/
197+
public static boolean isCryptoContainer(File file) {
198+
String extension = getFileExtension(file.getName()).toLowerCase();
199+
return "cdoc".equals(extension);
200+
}
191201
}

0 commit comments

Comments
 (0)