@@ -84,6 +84,9 @@ public static void filterViews(String spreadsheetId) {
8484 ))
8585 .setCriteria (criteriaMap );
8686
87+ // --- Step 1: Add Filter View ---
88+ // (Request construction remains the same)
89+ // ...
8790 AddFilterViewRequest addFilterViewRequest = new AddFilterViewRequest ().setFilter (filterView );
8891
8992 BatchUpdateSpreadsheetRequest batchRequest1 = new BatchUpdateSpreadsheetRequest ()
@@ -93,11 +96,20 @@ public static void filterViews(String spreadsheetId) {
9396 .batchUpdate (spreadsheetId , batchRequest1 )
9497 .execute ();
9598
96- // --- Step 2: Duplicate Filter View ---
97- // Extract the ID from the previous response
98- int filterId = response1 .getReplies ().get (0 )
99- .getAddFilterView ().getFilter ().getFilterViewId ();
99+ if (response1 .getReplies () == null || response1 .getReplies ().isEmpty ()) {
100+ System .err .println ("Error: No replies returned from AddFilterView request." );
101+ return ;
102+ }
103+
104+ Response reply1 = response1 .getReplies ().get (0 );
105+ if (reply1 .getAddFilterView () == null || reply1 .getAddFilterView ().getFilter () == null ) {
106+ System .err .println ("Error: Response did not contain AddFilterView data." );
107+ return ;
108+ }
109+
110+ int filterId = reply1 .getAddFilterView ().getFilter ().getFilterViewId ();
100111
112+ // --- Step 2: Duplicate Filter View ---
101113 DuplicateFilterViewRequest duplicateRequest = new DuplicateFilterViewRequest ()
102114 .setFilterId (filterId );
103115
@@ -108,6 +120,19 @@ public static void filterViews(String spreadsheetId) {
108120 .batchUpdate (spreadsheetId , batchRequest2 )
109121 .execute ();
110122
123+ if (response2 .getReplies () == null || response2 .getReplies ().isEmpty ()) {
124+ System .err .println ("Error: No replies returned from DuplicateFilterView request." );
125+ return ;
126+ }
127+
128+ Response reply2 = response2 .getReplies ().get (0 );
129+ if (reply2 .getDuplicateFilterView () == null || reply2 .getDuplicateFilterView ().getFilter () == null ) {
130+ System .err .println ("Error: Response did not contain DuplicateFilterView data." );
131+ return ;
132+ }
133+
134+ int newFilterId = reply2 .getDuplicateFilterView ().getFilter ().getFilterViewId ();
135+
111136 // --- Step 3: Update Filter View ---
112137 // Extract the new ID from the duplicate response
113138 int newFilterId = response2 .getReplies ().get (0 )
0 commit comments