[Security] resolve CRLF attack on RequestIgnoreBatteryOptimizations

1. refer the proposed solution in the b/198783395
2. similar concept is applied in the https://source.corp.google.com/sc-dev/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/model/legacy/PermissionGroups.java;l=118

Bug: 198783395
Test: make SettingsRoboTests
Change-Id: I838825e31b98e62d2683995e59dbf4388f5684fc
diff --git a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
index 7caad60..c6cdcf2 100644
--- a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
+++ b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
@@ -19,6 +19,7 @@
 import android.Manifest;
 import android.content.DialogInterface;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageItemInfo;
 import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
@@ -85,8 +86,11 @@
         }
 
         final AlertController.AlertParams p = mAlertParams;
+        final CharSequence appLabel = ai.loadSafeLabel(getPackageManager(),
+                PackageItemInfo.DEFAULT_MAX_LABEL_SIZE_PX, PackageItemInfo.SAFE_LABEL_FLAG_TRIM
+                        | PackageItemInfo.SAFE_LABEL_FLAG_FIRST_LINE);
         p.mTitle = getText(R.string.high_power_prompt_title);
-        p.mMessage = getString(R.string.high_power_prompt_body, ai.loadLabel(getPackageManager()));
+        p.mMessage = getString(R.string.high_power_prompt_body, appLabel);
         p.mPositiveButtonText = getText(R.string.allow);
         p.mNegativeButtonText = getText(R.string.deny);
         p.mPositiveButtonListener = this;