diff options
Diffstat (limited to 'core/java/android/webkit/JniUtil.java')
-rw-r--r-- | core/java/android/webkit/JniUtil.java | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/core/java/android/webkit/JniUtil.java b/core/java/android/webkit/JniUtil.java deleted file mode 100644 index 01a81c4..0000000 --- a/core/java/android/webkit/JniUtil.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.webkit; - -import android.app.ActivityManager; -import android.content.Context; -import android.net.Uri; -import android.provider.Settings; -import android.util.Log; - -import java.io.File; -import java.io.InputStream; - -class JniUtil { - - static { - System.loadLibrary("webcore"); - System.loadLibrary("chromium_net"); - } - private static final String LOGTAG = "webkit"; - private JniUtil() {} // Utility class, do not instantiate. - - // Used by the Chromium HTTP stack. - private static String sDatabaseDirectory; - private static String sCacheDirectory; - private static Context sContext; - - private static void checkInitialized() { - if (sContext == null) { - throw new IllegalStateException("Call CookieSyncManager::createInstance() or create a webview before using this class"); - } - } - - protected static synchronized void setContext(Context context) { - if (sContext != null) { - return; - } - - sContext = context.getApplicationContext(); - } - - protected static synchronized Context getContext() { - return sContext; - } - - /** - * Called by JNI. Gets the application's database directory, excluding the trailing slash. - * @return String The application's database directory - */ - private static synchronized String getDatabaseDirectory() { - checkInitialized(); - - if (sDatabaseDirectory == null) { - sDatabaseDirectory = sContext.getDatabasePath("dummy").getParent(); - } - - return sDatabaseDirectory; - } - - /** - * Called by JNI. Gets the application's cache directory, excluding the trailing slash. - * @return String The application's cache directory - */ - private static synchronized String getCacheDirectory() { - checkInitialized(); - - if (sCacheDirectory == null) { - File cacheDir = sContext.getCacheDir(); - if (cacheDir == null) { - sCacheDirectory = ""; - } else { - sCacheDirectory = cacheDir.getAbsolutePath(); - } - } - - return sCacheDirectory; - } - - /** - * Called by JNI. Gets the application's package name. - * @return String The application's package name - */ - private static synchronized String getPackageName() { - checkInitialized(); - - return sContext.getPackageName(); - } - - private static final String ANDROID_CONTENT = URLUtil.CONTENT_BASE; - - /** - * Called by JNI. Calculates the size of an input stream by reading it. - * @return long The size of the stream - */ - private static synchronized long contentUrlSize(String url) { - // content:// - if (url.startsWith(ANDROID_CONTENT)) { - try { - // Strip off MIME type. If we don't do this, we can fail to - // load Gmail attachments, because the URL being loaded doesn't - // exactly match the URL we have permission to read. - int mimeIndex = url.lastIndexOf('?'); - if (mimeIndex != -1) { - url = url.substring(0, mimeIndex); - } - Uri uri = Uri.parse(url); - InputStream is = sContext.getContentResolver().openInputStream(uri); - byte[] buffer = new byte[1024]; - int n; - long size = 0; - try { - while ((n = is.read(buffer)) != -1) { - size += n; - } - } finally { - is.close(); - } - return size; - } catch (Exception e) { - Log.e(LOGTAG, "Exception: " + url); - return 0; - } - } else { - return 0; - } - } - - /** - * Called by JNI. - * - * @return Opened input stream to content - * TODO: Make all content loading use this instead of BrowserFrame.java - */ - private static synchronized InputStream contentUrlStream(String url) { - // content:// - if (url.startsWith(ANDROID_CONTENT)) { - try { - // Strip off mimetype, for compatibility with ContentLoader.java - // (used with Android HTTP stack, now removed). - // If we don't do this, we can fail to load Gmail attachments, - // because the URL being loaded doesn't exactly match the URL we - // have permission to read. - int mimeIndex = url.lastIndexOf('?'); - if (mimeIndex != -1) { - url = url.substring(0, mimeIndex); - } - Uri uri = Uri.parse(url); - return sContext.getContentResolver().openInputStream(uri); - } catch (Exception e) { - Log.e(LOGTAG, "Exception: " + url); - return null; - } - } else { - return null; - } - } - - private static synchronized String getAutofillQueryUrl() { - checkInitialized(); - // If the device has not checked in it won't have pulled down the system setting for the - // Autofill Url. In that case we will not make autofill server requests. - return Settings.Global.getString(sContext.getContentResolver(), - Settings.Global.WEB_AUTOFILL_QUERY_URL); - } - - private static boolean canSatisfyMemoryAllocation(long bytesRequested) { - checkInitialized(); - ActivityManager manager = (ActivityManager) sContext.getSystemService( - Context.ACTIVITY_SERVICE); - ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo(); - manager.getMemoryInfo(memInfo); - long leftToAllocate = memInfo.availMem - memInfo.threshold; - return !memInfo.lowMemory && bytesRequested < leftToAllocate; - } -} |