Convert native changing config flags to Java flags

Also adds more annotations.

Bug: 33080269
Test: ResourcesTest#testChangingConfiguration
Change-Id: I08d438821b96e3d74da1c1c34009673c77caf27e
This commit is contained in:
Alan Viverette
2017-01-26 14:00:20 -05:00
parent 85895792f0
commit 9ad386b37c
3 changed files with 20 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ import android.annotation.ArrayRes;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.StringRes;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration.NativeConfig;
import android.os.ParcelFileDescriptor;
import android.util.Log;
@@ -183,6 +184,11 @@ public final class AssetManager implements AutoCloseable {
if (block < 0) {
return null;
}
// Convert the changing configurations flags populated by native code.
outValue.changingConfigurations = ActivityInfo.activityInfoConfigNativeToJava(
outValue.changingConfigurations);
if (outValue.type == TypedValue.TYPE_STRING) {
return mStringBlocks[block].get(outValue.data);
}
@@ -220,6 +226,11 @@ public final class AssetManager implements AutoCloseable {
if (block < 0) {
return false;
}
// Convert the changing configurations flags populated by native code.
outValue.changingConfigurations = ActivityInfo.activityInfoConfigNativeToJava(
outValue.changingConfigurations);
if (outValue.type == TypedValue.TYPE_STRING) {
outValue.string = mStringBlocks[block].get(outValue.data);
}
@@ -266,6 +277,11 @@ public final class AssetManager implements AutoCloseable {
if (block < 0) {
return false;
}
// Convert the changing configurations flags populated by native code.
outValue.changingConfigurations = ActivityInfo.activityInfoConfigNativeToJava(
outValue.changingConfigurations);
if (outValue.type == TypedValue.TYPE_STRING) {
final StringBlock[] blocks = ensureStringBlocks();
outValue.string = blocks[block].get(outValue.data);

View File

@@ -39,6 +39,7 @@ import android.annotation.StyleRes;
import android.annotation.StyleableRes;
import android.annotation.XmlRes;
import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo.Config;
import android.graphics.Movie;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
@@ -1604,7 +1605,7 @@ public class Resources {
* {@link ActivityInfo}
* @see ActivityInfo
*/
public int getChangingConfigurations() {
public @Config int getChangingConfigurations() {
return mThemeImpl.getChangingConfigurations();
}

View File

@@ -30,6 +30,7 @@ import android.annotation.StyleRes;
import android.annotation.StyleableRes;
import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo.Config;
import android.content.res.Configuration.NativeConfig;
import android.content.res.Resources.NotFoundException;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
@@ -1197,7 +1198,7 @@ public class ResourcesImpl {
@Config int getChangingConfigurations() {
synchronized (mKey) {
final int nativeChangingConfig =
final @NativeConfig int nativeChangingConfig =
AssetManager.getThemeChangingConfigurations(mTheme);
return ActivityInfo.activityInfoConfigNativeToJava(nativeChangingConfig);
}