@HiddenApi @Implementation
  protected final Number openXmlAssetNative(int cookie, String fileName) throws FileNotFoundException {
    CppAssetManager am = assetManagerForJavaObject();
    if (am == null) {
      return RuntimeEnvironment.castNativePtr(0);
    }

    ALOGV("openXmlAsset in %s (Java object %s)\n", am, ShadowArscAssetManager.class);

    String fileName8 = fileName;
    if (fileName8 == null) {
      return RuntimeEnvironment.castNativePtr(0);
    }

    int assetCookie = cookie;
    Asset a;
    if (isTruthy(assetCookie)) {
      a = am.openNonAsset(assetCookie, fileName8, AccessMode.ACCESS_BUFFER);
    } else {
      final Ref<Integer> assetCookieRef = new Ref<>(assetCookie);
      a = am.openNonAsset(fileName8, AccessMode.ACCESS_BUFFER, assetCookieRef);
      assetCookie = assetCookieRef.get();
    }

    if (a == null) {
      throw new FileNotFoundException(fileName8);
    }

    final DynamicRefTable dynamicRefTable =
        am.getResources().getDynamicRefTableForCookie(assetCookie);
    ResXMLTree block = new ResXMLTree(dynamicRefTable);
    int err = block.setTo(a.getBuffer(true), (int) a.getLength(), true);
    a.close();
//    delete a;

    if (err != NO_ERROR) {
      throw new FileNotFoundException("Corrupt XML binary file");
    }

    return RuntimeEnvironment.castNativePtr(
        Registries.NATIVE_RES_XML_TREES.register(block));
  }
@HiddenApi @Implementation
  protected final Number openXmlAssetNative(int cookie, String fileName) throws FileNotFoundException {
    CppAssetManager am = assetManagerForJavaObject();
    if (am == null) {
      return RuntimeEnvironment.castNativePtr(0);
    }

    ALOGV("openXmlAsset in %s (Java object %s)\n", am, ShadowArscAssetManager.class);

    String fileName8 = fileName;
    if (fileName8 == null) {
      return RuntimeEnvironment.castNativePtr(0);
    }

    int assetCookie = cookie;
    Asset a;
    if (isTruthy(assetCookie)) {
      a = am.openNonAsset(assetCookie, fileName8, AccessMode.ACCESS_BUFFER);
    } else {
      final Ref<Integer> assetCookieRef = new Ref<>(assetCookie);
      a = am.openNonAsset(fileName8, AccessMode.ACCESS_BUFFER, assetCookieRef);
      assetCookie = assetCookieRef.get();
    }

    if (a == null) {
      throw new FileNotFoundException(fileName8);
    }

    final DynamicRefTable dynamicRefTable =
        am.getResources().getDynamicRefTableForCookie(assetCookie);
    ResXMLTree block = new ResXMLTree(dynamicRefTable);
    int err = block.setTo(a.getBuffer(true), (int) a.getLength(), true);
    a.close();


    if (err != NO_ERROR) {
      throw new FileNotFoundException("Corrupt XML binary file");
    }

    return RuntimeEnvironment.castNativePtr(
        Registries.NATIVE_RES_XML_TREES.register(block));
  }
@ HiddenApi @ Implementation protected final Number openXmlAssetNative ( int cookie , String fileName ) throws FileNotFoundException { CppAssetManager am = assetManagerForJavaObject ( ) ; if ( am == null ) { return RuntimeEnvironment . castNativePtr ( 0 ) ; } ALOGV ( "openXmlAsset in %s (Java object %s)\n" , am , ShadowArscAssetManager . class ) ; String fileName8 = fileName ; if ( fileName8 == null ) { return RuntimeEnvironment . castNativePtr ( 0 ) ; } int assetCookie = cookie ; Asset a ; if ( isTruthy ( assetCookie ) ) { a = am . openNonAsset ( assetCookie , fileName8 , AccessMode . ACCESS_BUFFER ) ; } else { final Ref < Integer > assetCookieRef = new Ref <> ( assetCookie ) ; a = am . openNonAsset ( fileName8 , AccessMode . ACCESS_BUFFER , assetCookieRef ) ; assetCookie = assetCookieRef . get ( ) ; } if ( a == null ) { throw new FileNotFoundException ( fileName8 ) ; } final DynamicRefTable dynamicRefTable = am . getResources ( ) . getDynamicRefTableForCookie ( assetCookie ) ; ResXMLTree block = new ResXMLTree ( dynamicRefTable ) ; int err = block . setTo ( a . getBuffer ( true ) , ( int ) a . getLength ( ) , true ) ; a . close ( ) ; //    delete a; if ( err != NO_ERROR ) { throw new FileNotFoundException ( "Corrupt XML binary file" ) ; } return RuntimeEnvironment . castNativePtr ( Registries . NATIVE_RES_XML_TREES . register ( block ) ) ; }
int getThemeChangingConfigurations(long theme);
int getThemeChangingConfigurations ( long theme ) ;