Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbce0ac3 authored by Andreas Gampe's avatar Andreas Gampe
Browse files

OtaDexopt: Ensure float format for progress command

The progress value will be forwarded to update_engine, which expects
a "."-based float representation. Use Locale.ROOT when printing.

Bug: 37760573
Test: m
Test: adb root && adb shell cmd otadexopt prepare && \
      adb shell cmd otadexopt progress | grep 0.00
Test: Switch to German, reboot, \
      adb root && adb shell cmd otadexopt prepare && \
      adb shell cmd otadexopt progress | grep 0.00

Change-Id: I99ffdd3aefa77d77b73fb7b94accefc0f2eb3c0a
parent cad3c325
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.os.RemoteException;
import android.os.ShellCommand;

import java.io.PrintWriter;
import java.util.Locale;

class OtaDexoptShellCommand extends ShellCommand {
    final IOtaDexopt mInterface;
@@ -93,7 +94,10 @@ class OtaDexoptShellCommand extends ShellCommand {
    private int runOtaProgress() throws RemoteException {
        final float progress = mInterface.getProgress();
        final PrintWriter pw = getOutPrintWriter();
        pw.format("%.2f", progress);
        // Note: The float output is parsed by update_engine. It does needs to be non-localized,
        //       as it's always expected to be "0.xy," never "0,xy" or similar. So use the ROOT
        //       Locale for formatting. (b/37760573)
        pw.format(Locale.ROOT, "%.2f", progress);
        return 0;
    }