Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ada4b5a authored by Steve Kondik's avatar Steve Kondik
Browse files

Merge branch 'LA.BF64.1.2.2_rb4.7' of git://codeaurora.org/platform/frameworks/base into cm-13.0

Change-Id: I008f052e4e27b44457c8343d20f6e1ba943c8e1f
parents 5ceb8731 5ccaaff4
Loading
Loading
Loading
Loading
+92 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015, The Linux Foundation. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above
 *       copyright notice, this list of conditions and the following
 *       disclaimer in the documentation and/or other materials provided
 *       with the distribution.
 *     * Neither the name of The Linux Foundation nor the names of its
 *       contributors may be used to endorse or promote products derived
 *       from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package android.util;

import android.content.Context;

/**
 *@hide
 */
public class NativeTextHelper {

    /**
     * parse the string to current language.
     *
     * @param context base context of the application
     * @param originalString original string
     * @param defPackage the target package where the local language strings
     *            defined
     * @param originNamesId the id of the original string array.
     * @param localNamesId the id of the local string keys.
     * @return local language string
     */
    private static final String getLocalString(Context context, String originalString,
            String defPackage, int originNamesId, int localNamesId) {
        String[] origNames = context.getResources().getStringArray(originNamesId);
        String[] localNames = context.getResources().getStringArray(localNamesId);
        for (int i = 0; i < origNames.length; i++) {
            if (origNames[i].equalsIgnoreCase(originalString)) {
                return context.getString(context.getResources().getIdentifier(localNames[i],
                        "string", defPackage));
            }
        }
        return originalString;
    }

    /**
     * parse the string to current language string in public resources.
     *
     * @param context base context of the application
     * @param originalString original string
     * @param originNamesId the id of the original string array.
     * @param localNamesId the id of the local string keys.
     * @return local language string
     */
    public static final String getLocalString(Context context, String originalString,
            int originNamesId, int localNamesId) {
        return getLocalString(context, originalString, "android", originNamesId, localNamesId);
    }

    /**
     * parse the string to current language string in current resources.
     *
     * @param context base context of the application
     * @param originalString original string
     * @param originNamesId the id of the original string array.
     * @param localNamesId the id of the local string keys.
     * @return local language string
     */
    public static final String getInternalLocalString(Context context, String originalString,
            int originNamesId,
            int localNamesId) {
        return getLocalString(context, originalString, context.getPackageName(), originNamesId,
                localNamesId);
    }

}
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ static volatile int32_t gNumDeathRefs = 0;
static void incRefsCreated(JNIEnv* env)
{
    int old = android_atomic_inc(&gNumRefsCreated);
    if (old == 200) {
    if (old == 2000) {
        android_atomic_and(0, &gNumRefsCreated);
        env->CallStaticVoidMethod(gBinderInternalOffsets.mClass,
                gBinderInternalOffsets.mForceGc);
+21 −10
Original line number Diff line number Diff line
@@ -499,17 +499,28 @@ static int findSupportedAbi(JNIEnv *env, jlong apkHandle, jobjectArray supported
            }
        }
    }
    int asset_status = NO_NATIVE_LIBRARIES;

    if(status <= 0) {
        // Scan the 'assets' folder only if
        // the abi (after scanning the lib folder)
        // is not already set to 32-bit (i.e '1' or '2').

        int asset_status = NO_NATIVE_LIBRARIES;
        int rc = initAssetsVerifierLib();

        if (rc == LIB_INITED_AND_SUCCESS) {
            asset_status = GetAssetsStatusFunc(zipFile, supportedAbis, numAbis);
        } else {
            ALOGV("Failed to load assets verifier: %d", rc);
        }
    if (asset_status == 1) {
        // override the status if asset_status hints at 32-bit abi
        status = 1;
        if(asset_status >= 0) {
            // Override the ABI only if
            // 'asset_status' is a valid ABI (64-bit or 32-bit).
            // This is to prevent cases where 'lib' folder
            // has native libraries, but
            // 'assets' folder has none.
            status = asset_status;
        }
    }

    for (int i = 0; i < numAbis; ++i) {
+4 −0
Original line number Diff line number Diff line
@@ -1519,4 +1519,8 @@
      <item quantity="other">已选择 <xliff:g id="COUNT_1">%1$d</xliff:g></item>
      <item quantity="one">已选择 <xliff:g id="COUNT_0">%1$d</xliff:g></item>
    </plurals>
    <!-- Carrier Name -->
    <string name="China_Mobile">中国移动</string>
    <string name="China_Unicom">中国联通</string>
    <string name="China_Telecom">中国电信</string>
</resources>
+4 −0
Original line number Diff line number Diff line
@@ -1516,4 +1516,8 @@
      <item quantity="other">已選取 <xliff:g id="COUNT_1">%1$d</xliff:g> 個項目</item>
      <item quantity="one">已選取 <xliff:g id="COUNT_0">%1$d</xliff:g> 個項目</item>
    </plurals>
    <!-- Carrier Name -->
    <string name="China_Mobile">中國移動</string>
    <string name="China_Unicom">中國聯通</string>
    <string name="China_Telecom">中國電信</string>
</resources>
Loading