summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/Camera.java15
-rw-r--r--core/java/android/webkit/LoadListener.java3
-rw-r--r--services/java/com/android/server/WifiService.java13
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;
}