Remove deprecated api use in StringOptimizer

Change-Id: Iaba299e713824fd7df477504328ddf1ab1f40b27
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
index f60a3fe..3eeaae6 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
@@ -35,6 +35,7 @@
 import com.android.tools.r8.ir.conversion.passes.result.CodeRewriterResult;
 import com.android.tools.r8.ir.optimize.AffectedValues;
 import com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo;
+import com.android.tools.r8.shaking.KeepClassInfo;
 import java.io.UTFDataFormatException;
 import java.util.function.BiFunction;
 import java.util.function.Function;
@@ -308,8 +309,10 @@
         continue;
       }
       boolean mayBeRenamed =
-          appView.enableWholeProgramOptimizations()
-              && appView.withLiveness().appInfo().isMinificationAllowed(holder);
+          holder.isProgramClass()
+              && appView
+                  .getKeepInfoOrDefault(holder.asProgramClass(), KeepClassInfo.top())
+                  .isMinificationAllowed(options);
       // b/120138731: Filter out escaping uses. In such case, the result of this optimization will
       // be stored somewhere, which can lead to a regression if the corresponding class is in a deep
       // package hierarchy. For local cases, it is likely a one-time computation, but make sure the