summaryrefslogtreecommitdiff
path: root/partnerconfig
diff options
context:
space:
mode:
authorSetup Wizard Team <android-setup-team-eng@google.com>2019-05-15 10:21:11 +0800
committerCyril Lee <cyrillee@google.com>2019-05-16 11:01:07 +0000
commit14649e7964684e7cbe3dd7e7404b0c9f2d986db1 (patch)
treeacd721824306013c5801c02e2494d2e5cf6e49cb /partnerconfig
parent3266cd8b60eab2ff75573e7df5ff62b2a8f7db00 (diff)
downloadsetupcompat-14649e7964684e7cbe3dd7e7404b0c9f2d986db1.tar.gz
Import updated Android SetupCompat Library 248257541
Copied from google3/third_party/java_src/android_libs/setupcompat Bug: 129349466 Test: mm Included changes: - 248257541 Fix font size of Header/sub-header when font and display ... - 248061227 Fix text color been change since button sets to enable fr... - 247713170 Remove the permission require of SetupCompatService PiperOrigin-RevId: 248257541 Change-Id: I2ccb6b8f1a47e060da5a722886f3ed46fb0b1bc6
Diffstat (limited to 'partnerconfig')
-rw-r--r--partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java31
1 files changed, 29 insertions, 2 deletions
diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java
index b437f2b..6dd71b2 100644
--- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java
+++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java
@@ -30,6 +30,7 @@ import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import com.google.android.setupcompat.partnerconfig.PartnerConfig.ResourceType;
@@ -237,7 +238,8 @@ public class PartnerConfigHelper {
}
if (partnerResourceCache.containsKey(resourceConfig)) {
- return (float) partnerResourceCache.get(resourceConfig);
+ return getDimensionFromTypedValue(
+ context, (TypedValue) partnerResourceCache.get(resourceConfig));
}
float result = defaultValue;
@@ -245,7 +247,13 @@ public class PartnerConfigHelper {
ResourceEntry resourceEntry = getResourceEntryFromKey(resourceConfig.getResourceName());
Resources resource = getResourcesByPackageName(context, resourceEntry.getPackageName());
result = resource.getDimension(resourceEntry.getResourceId());
- partnerResourceCache.put(resourceConfig, result);
+ TypedValue value =
+ getTypedValueFromResource(
+ resource, resourceEntry.getResourceId(), TypedValue.TYPE_DIMENSION);
+ partnerResourceCache.put(resourceConfig, value);
+ result =
+ getDimensionFromTypedValue(
+ context, (TypedValue) partnerResourceCache.get(resourceConfig));
} catch (PackageManager.NameNotFoundException | NullPointerException exception) {
// fall through
}
@@ -331,4 +339,23 @@ public class PartnerConfigHelper {
public static synchronized void resetForTesting() {
instance = null;
}
+
+ private TypedValue getTypedValueFromResource(Resources resource, int resId, int type) {
+ TypedValue value = new TypedValue();
+ resource.getValue(resId, value, true);
+ if (value.type != type) {
+ throw new NotFoundException(
+ "Resource ID #0x"
+ + Integer.toHexString(resId)
+ + " type #0x"
+ + Integer.toHexString(value.type)
+ + " is not valid");
+ }
+ return value;
+ }
+
+ private float getDimensionFromTypedValue(Context context, TypedValue value) {
+ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
+ return value.getDimension(displayMetrics);
+ }
}