10657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba/*
20657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * Copyright (C) 2014 The Android Open Source Project
30657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba *
40657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * Licensed under the Apache License, Version 2.0 (the "License");
50657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * you may not use this file except in compliance with the License.
60657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * You may obtain a copy of the License at
70657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba *
80657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba *      http://www.apache.org/licenses/LICENSE-2.0
90657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba *
100657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * Unless required by applicable law or agreed to in writing, software
110657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * distributed under the License is distributed on an "AS IS" BASIS,
120657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * See the License for the specific language governing permissions and
140657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * limitations under the License.
150657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba */
160657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba
170657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosibapackage com.android.webview.chromium;
180657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba
190657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosibaimport android.content.Context;
200657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba
210657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba/**
220657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * Helper class used to fix up resource ids.
230657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * This is mostly a copy of the code in frameworks/base/core/java/android/app/LoadedApk.java.
240657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * TODO: Remove if a cleaner mechanism is provided (either public API or AAPT is changed to generate
250657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba * this code).
260657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba */
270657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosibaclass ResourceRewriter {
280657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba
2945702509d4752478188935eaf442c549c2c220beIgnacio Solla    /**
3045702509d4752478188935eaf442c549c2c220beIgnacio Solla     * Rewrite the R 'constants' for the WebView library apk.
3145702509d4752478188935eaf442c549c2c220beIgnacio Solla     */
3245702509d4752478188935eaf442c549c2c220beIgnacio Solla    public static void rewriteRValues(final int packageId) {
3345702509d4752478188935eaf442c549c2c220beIgnacio Solla        // TODO: We should use jarjar to remove the redundant R classes here, but due
3445702509d4752478188935eaf442c549c2c220beIgnacio Solla        // to a bug in jarjar it's not possible to rename classes with '$' in their name.
3545702509d4752478188935eaf442c549c2c220beIgnacio Solla        // See b/15684775.
3645702509d4752478188935eaf442c549c2c220beIgnacio Solla        com.android.webview.chromium.R.onResourcesLoaded(packageId);
3745702509d4752478188935eaf442c549c2c220beIgnacio Solla        org.chromium.ui.R.onResourcesLoaded(packageId);
3845702509d4752478188935eaf442c549c2c220beIgnacio Solla        org.chromium.content.R.onResourcesLoaded(packageId);
390657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba    }
400657a5e0b853cb639b1b5a5a195125f9d6221a11Marcin Kosiba}
41