Use try-with-resource statement for dream metadata to ensure proper

cleanup.

This ensures the memory is properly cleaned up if an exception is thrown
while building the DreamMetadata object.

Bug: 234343900
Test: locally on device
Change-Id: I29b2bed30c216d5e353fa0a8b0da74579b33cecb
This commit is contained in:
Lucas Silva
2022-06-01 15:01:11 -04:00
parent a834a9bd52
commit b30b1683e1

View File

@@ -1130,18 +1130,16 @@ public class DreamService extends Service implements Window.Callback {
final PackageManager pm = context.getPackageManager();
final TypedArray rawMetadata = readMetadata(pm, serviceInfo);
if (rawMetadata == null) return null;
final DreamMetadata metadata = new DreamMetadata(
convertToComponentName(rawMetadata.getString(
com.android.internal.R.styleable.Dream_settingsActivity), serviceInfo),
rawMetadata.getDrawable(
com.android.internal.R.styleable.Dream_previewImage),
rawMetadata.getBoolean(R.styleable.Dream_showClockAndComplications,
DEFAULT_SHOW_COMPLICATIONS));
rawMetadata.recycle();
return metadata;
try (TypedArray rawMetadata = readMetadata(pm, serviceInfo)) {
if (rawMetadata == null) return null;
return new DreamMetadata(
convertToComponentName(rawMetadata.getString(
com.android.internal.R.styleable.Dream_settingsActivity), serviceInfo),
rawMetadata.getDrawable(
com.android.internal.R.styleable.Dream_previewImage),
rawMetadata.getBoolean(R.styleable.Dream_showClockAndComplications,
DEFAULT_SHOW_COMPLICATIONS));
}
}
/**