Collect unarchived uploaded files into one archive.

Bug: 381838074
Test: npm run test:unit:ci
Change-Id: Iaa2f4b2008bddd26e6e52aaf856405ea54cfd634
diff --git a/tools/winscope/src/app/mediator_test.ts b/tools/winscope/src/app/mediator_test.ts
index 2317623..3fb4761 100644
--- a/tools/winscope/src/app/mediator_test.ts
+++ b/tools/winscope/src/app/mediator_test.ts
@@ -326,14 +326,14 @@
         requested: [
           {
             name: 'Collected Trace',
-            types: [TraceType.EVENT_LOG, TraceType.CUJS],
+            types: [TraceType.SURFACE_FLINGER],
           },
           {
             name: 'Uncollected Trace',
             types: [TraceType.TRANSITION],
           },
         ],
-        collected: inputFiles.concat([eventLogFile]),
+        collected: [inputFiles[0]],
       }),
     );
     expect(
@@ -772,7 +772,9 @@
     files = inputFiles,
     viewersToReassignTraces = [viewerStub0, viewerStub1],
   ) {
-    await mediator.onWinscopeEvent(new AppFilesUploaded(files));
+    for (const file of files) {
+      await mediator.onWinscopeEvent(new AppFilesUploaded([file]));
+    }
     userNotifierChecker.expectNone();
     viewersToReassignTraces.forEach((viewer) =>
       reassignViewerStubTrace(viewer),
diff --git a/tools/winscope/src/app/trace_pipeline.ts b/tools/winscope/src/app/trace_pipeline.ts
index 5c5e8a8..60b1812 100644
--- a/tools/winscope/src/app/trace_pipeline.ts
+++ b/tools/winscope/src/app/trace_pipeline.ts
@@ -300,6 +300,7 @@
 
     progressListener?.onProgressUpdate(progressMessage, 0);
 
+    const currArchive: UnzippedArchive = [];
     for (let i = 0; i < files.length; i++) {
       let file = files[i];
 
@@ -325,11 +326,10 @@
           UserNotifier.add(new CorruptedArchive(file));
         }
       } else {
-        unzippedArchives.push([new TraceFile(file, undefined)]);
-        onSubProgressUpdate(100);
+        currArchive.push(new TraceFile(file, undefined));
       }
     }
-
+    unzippedArchives.push(currArchive);
     progressListener?.onProgressUpdate(progressMessage, 100);
 
     return unzippedArchives;
diff --git a/tools/winscope/src/app/trace_pipeline_test.ts b/tools/winscope/src/app/trace_pipeline_test.ts
index fc588d8..7aff854 100644
--- a/tools/winscope/src/app/trace_pipeline_test.ts
+++ b/tools/winscope/src/app/trace_pipeline_test.ts
@@ -448,11 +448,11 @@
   });
 
   it('can filter traces without visualization', async () => {
-    await loadFiles([validSfFile, shellTransitionFile]);
-    await expectLoadResult(2, []);
+    await loadFiles([shellTransitionFile]);
+    await expectLoadResult(1, []);
 
     tracePipeline.filterTracesWithoutVisualization();
-    expect(tracePipeline.getTraces().getSize()).toEqual(1);
+    expect(tracePipeline.getTraces().getSize()).toEqual(0);
     expect(
       tracePipeline.getTraces().getTrace(TraceType.SHELL_TRANSITION),
     ).toBeUndefined();