diff options
| -rw-r--r-- | core/java/android/hardware/Camera.java | 15 | ||||
| -rw-r--r-- | core/java/android/webkit/LoadListener.java | 3 | ||||
| -rw-r--r-- | services/java/com/android/server/WifiService.java | 13 |
3 files changed, 23 insertions, 8 deletions
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index 3806fa8..0c1c7ec 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -229,7 +229,9 @@ public class Camera { public final void setPreviewCallback(PreviewCallback cb) { mPreviewCallback = cb; mOneShot = false; - setHasPreviewCallback(cb != null, false); + // Always use one-shot mode. We fake camera preview mode by + // doing one-shot preview continuously. + setHasPreviewCallback(cb != null, true); } /** @@ -280,10 +282,19 @@ public class Camera { case CAMERA_MSG_PREVIEW_FRAME: if (mPreviewCallback != null) { - mPreviewCallback.onPreviewFrame((byte[])msg.obj, mCamera); + PreviewCallback cb = mPreviewCallback; if (mOneShot) { + // Clear the callback variable before the callback + // in case the app calls setPreviewCallback from + // the callback function mPreviewCallback = null; + } else { + // We're faking the camera preview mode to prevent + // the app from being flooded with preview frames. + // Set to oneshot mode again. + setHasPreviewCallback(true, true); } + cb.onPreviewFrame((byte[])msg.obj, mCamera); } return; diff --git a/core/java/android/webkit/LoadListener.java b/core/java/android/webkit/LoadListener.java index 5995121..4c17f99 100644 --- a/core/java/android/webkit/LoadListener.java +++ b/core/java/android/webkit/LoadListener.java @@ -408,8 +408,7 @@ class LoadListener extends Handler implements EventHandler { mStatusCode == HTTP_MOVED_PERMANENTLY || mStatusCode == HTTP_TEMPORARY_REDIRECT) && mNativeLoader != 0) { - if (!mFromCache && mRequestHandle != null - && !mRequestHandle.getMethod().equals("POST")) { + if (!mFromCache && mRequestHandle != null) { mCacheResult = CacheManager.createCacheFile(mUrl, mStatusCode, headers, mMimeType, false); } diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index a3589c7..32ad6c6 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -1702,8 +1702,10 @@ public class WifiService extends IWifiManager.Stub { } private boolean acquireWifiLockLocked(WifiLock wifiLock) { + Log.d(TAG, "acquireWifiLockLocked: " + wifiLock); + mLocks.addLock(wifiLock); - + int uid = Binder.getCallingUid(); long ident = Binder.clearCallingIdentity(); try { @@ -1721,7 +1723,7 @@ public class WifiService extends IWifiManager.Stub { } finally { Binder.restoreCallingIdentity(ident); } - + updateWifiState(); return true; } @@ -1735,8 +1737,11 @@ public class WifiService extends IWifiManager.Stub { private boolean releaseWifiLockLocked(IBinder lock) { boolean hadLock; - + WifiLock wifiLock = mLocks.removeLock(lock); + + Log.d(TAG, "releaseWifiLockLocked: " + wifiLock); + hadLock = (wifiLock != null); if (hadLock) { @@ -1758,7 +1763,7 @@ public class WifiService extends IWifiManager.Stub { Binder.restoreCallingIdentity(ident); } } - + // TODO - should this only happen if you hadLock? updateWifiState(); return hadLock; } |
