Use the return value of processToolsAtrributes in resource shrinker

This was added in agp in ag/26575749

Bug: b/329584653
Change-Id: I4ebafabcda6fef6dbbc5f4650479fb786b26bef6
Fixes: 329584653
diff --git a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
index e43c68e..c3e2ad4 100644
--- a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
+++ b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
@@ -103,22 +103,16 @@
     } catch (IOException e) {
       throw errorHandler.apply(e);
     }
-    // TODO(b/329584653): Update processToolsAttributes in AGP to return the kept resources and
-    //  trace directly using this instead of iterating the full resource store below.
-    r8ResourceShrinkerModel.getResourceStore().processToolsAttributes();
-    traceLiveResources();
+    // ProcessToolsAttribute returns the resources that becomes live
+    r8ResourceShrinkerModel
+        .getResourceStore()
+        .processToolsAttributes()
+        .forEach(resource -> trace(resource.value));
     for (Supplier<InputStream> manifestProvider : manifestProviders) {
       traceXml("AndroidManifest.xml", manifestProvider.get());
     }
   }
 
-  private void traceLiveResources() {
-    r8ResourceShrinkerModel.getResourceStore().getResources().stream()
-        .filter(Resource::isReachable)
-        .map(r -> r.value)
-        .forEach(this::trace);
-  }
-
   public void setEnqueuerCallback(ClassReferenceCallback enqueuerCallback) {
     assert this.enqueuerCallback == null;
     this.enqueuerCallback = enqueuerCallback;