summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/camera2/CaptureRequest.java14
-rw-r--r--core/java/android/hardware/camera2/CaptureResult.java14
-rw-r--r--core/java/android/view/View.java8
-rw-r--r--core/java/android/view/ViewGroup.java9
-rw-r--r--docs/html/tools/support-library/features.jd32
-rw-r--r--docs/html/training/material/drawables.jd2
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java8
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java6
8 files changed, 60 insertions, 33 deletions
diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java
index 0849df8..b417496 100644
--- a/core/java/android/hardware/camera2/CaptureRequest.java
+++ b/core/java/android/hardware/camera2/CaptureRequest.java
@@ -867,9 +867,9 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
* metering sequence when it processes this request.</p>
* <p>This entry is normally set to IDLE, or is not
* included at all in the request settings. When included and
- * set to START, the camera device will trigger the autoexposure
+ * set to START, the camera device will trigger the auto-exposure (AE)
* precapture metering sequence.</p>
- * <p>The precapture sequence should triggered before starting a
+ * <p>The precapture sequence should be triggered before starting a
* high-quality still capture for final metering decisions to
* be made, and for firing pre-capture flash pulses to estimate
* scene brightness and required final capture flash power, when
@@ -877,6 +877,14 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
* <p>Normally, this entry should be set to START for only a
* single request, and the application should wait until the
* sequence completes before starting a new one.</p>
+ * <p>When a precapture metering sequence is finished, the camera device
+ * may lock the auto-exposure routine internally to be able to accurately expose the
+ * subsequent still capture image (<code>{@link CaptureRequest#CONTROL_CAPTURE_INTENT android.control.captureIntent} == STILL_CAPTURE</code>).
+ * For this case, the AE may not resume normal scan if no subsequent still capture is
+ * submitted. To ensure that the AE routine restarts normal scan, the application should
+ * submit a request with <code>{@link CaptureRequest#CONTROL_AE_LOCK android.control.aeLock} == true</code>, followed by a request
+ * with <code>{@link CaptureRequest#CONTROL_AE_LOCK android.control.aeLock} == false</code>, if the application decides not to submit a
+ * still capture request after the precapture sequence completes.</p>
* <p>The exact effect of auto-exposure (AE) precapture trigger
* depends on the current AE mode and state; see
* {@link CaptureResult#CONTROL_AE_STATE android.control.aeState} for AE precapture state transition
@@ -895,7 +903,9 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
* Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
* {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
*
+ * @see CaptureRequest#CONTROL_AE_LOCK
* @see CaptureResult#CONTROL_AE_STATE
+ * @see CaptureRequest#CONTROL_CAPTURE_INTENT
* @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_START
diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java
index 1396940..f17100d 100644
--- a/core/java/android/hardware/camera2/CaptureResult.java
+++ b/core/java/android/hardware/camera2/CaptureResult.java
@@ -718,9 +718,9 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
* metering sequence when it processes this request.</p>
* <p>This entry is normally set to IDLE, or is not
* included at all in the request settings. When included and
- * set to START, the camera device will trigger the autoexposure
+ * set to START, the camera device will trigger the auto-exposure (AE)
* precapture metering sequence.</p>
- * <p>The precapture sequence should triggered before starting a
+ * <p>The precapture sequence should be triggered before starting a
* high-quality still capture for final metering decisions to
* be made, and for firing pre-capture flash pulses to estimate
* scene brightness and required final capture flash power, when
@@ -728,6 +728,14 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
* <p>Normally, this entry should be set to START for only a
* single request, and the application should wait until the
* sequence completes before starting a new one.</p>
+ * <p>When a precapture metering sequence is finished, the camera device
+ * may lock the auto-exposure routine internally to be able to accurately expose the
+ * subsequent still capture image (<code>{@link CaptureRequest#CONTROL_CAPTURE_INTENT android.control.captureIntent} == STILL_CAPTURE</code>).
+ * For this case, the AE may not resume normal scan if no subsequent still capture is
+ * submitted. To ensure that the AE routine restarts normal scan, the application should
+ * submit a request with <code>{@link CaptureRequest#CONTROL_AE_LOCK android.control.aeLock} == true</code>, followed by a request
+ * with <code>{@link CaptureRequest#CONTROL_AE_LOCK android.control.aeLock} == false</code>, if the application decides not to submit a
+ * still capture request after the precapture sequence completes.</p>
* <p>The exact effect of auto-exposure (AE) precapture trigger
* depends on the current AE mode and state; see
* {@link CaptureResult#CONTROL_AE_STATE android.control.aeState} for AE precapture state transition
@@ -746,7 +754,9 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
* Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
* {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
*
+ * @see CaptureRequest#CONTROL_AE_LOCK
* @see CaptureResult#CONTROL_AE_STATE
+ * @see CaptureRequest#CONTROL_CAPTURE_INTENT
* @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_START
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index e4a8978..3c05872 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -8440,8 +8440,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
// If the event should be handled by accessibility focus first.
if (event.isTargetAccessibilityFocus()) {
// We don't have focus or no virtual descendant has it, do not handle the event.
- if (!isAccessibilityFocused() && !(getViewRootImpl() != null && getViewRootImpl()
- .getAccessibilityFocusedHost() == this)) {
+ if (!isAccessibilityFocusedViewOrHost()) {
return false;
}
// We have focus and got the event, then use normal event dispatch.
@@ -8490,6 +8489,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
return result;
}
+ boolean isAccessibilityFocusedViewOrHost() {
+ return isAccessibilityFocused() || (getViewRootImpl() != null && getViewRootImpl()
+ .getAccessibilityFocusedHost() == this);
+ }
+
/**
* Filter the touch event to apply security policies.
*
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index fd50c4d..7a36eb6 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -1934,6 +1934,12 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
// Whether this event should be handled by the accessibility focus first.
final boolean targetAccessibilityFocus = ev.isTargetAccessibilityFocus();
+ // If the event targets the accessibility focused view and this is it, start
+ // normal event dispatch. Maybe a descendant is what will handle the click.
+ if (targetAccessibilityFocus && isAccessibilityFocusedViewOrHost()) {
+ ev.setTargetAccessibilityFocus(false);
+ }
+
boolean handled = false;
if (onFilterTouchEventForSecurity(ev)) {
final int action = ev.getAction();
@@ -2681,6 +2687,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
@Override
void onInitializeAccessibilityNodeInfoInternal(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfoInternal(info);
+ if (getAccessibilityNodeProvider() != null) {
+ return;
+ }
if (mAttachInfo != null) {
final ArrayList<View> childrenForAccessibility = mAttachInfo.mTempArrayList;
childrenForAccessibility.clear();
diff --git a/docs/html/tools/support-library/features.jd b/docs/html/tools/support-library/features.jd
index 079dd71..0f0a0c0 100644
--- a/docs/html/tools/support-library/features.jd
+++ b/docs/html/tools/support-library/features.jd
@@ -143,10 +143,9 @@ numbers, can cause unexpected version updates and regression incompatibilities.<
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:support-v4:21.0.+
+com.android.support:support-v4:21.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 21.0 prefix.</p>
<h2 id="multidex">Multidex Support Library</h2>
@@ -171,10 +170,9 @@ com.android.support:support-v4:21.0.+
</p>
<pre>
-com.android.support:multidex:1.0.+
+com.android.support:multidex:1.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 1.0 prefix.</p>
<h2 id="v7">v7 Support Libraries</h2>
@@ -226,10 +224,9 @@ com.android.support:multidex:1.0.+
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:appcompat-v7:21.0.+
+com.android.support:appcompat-v7:21.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 21.0 prefix.</p>
<h3 id="v7-cardview">v7 cardview library</h3>
@@ -249,10 +246,9 @@ libraries with resources</a>.</p>
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:cardview-v7:21.0.+
+com.android.support:cardview-v7:21.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 21.0 prefix.</p>
<h3 id="v7-gridlayout">v7 gridlayout library</h3>
@@ -271,10 +267,9 @@ com.android.support:cardview-v7:21.0.+
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:gridlayout-v7:21.0.+
+com.android.support:gridlayout-v7:21.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 21.0 prefix.</p>
<h3 id="v7-mediarouter">v7 mediarouter library</h3>
@@ -308,7 +303,7 @@ script dependency identifier <code>com.android.support:support-v7-mediarouter:&l
where "&lt;revision&gt;" is the minimum revision at which the library is available. For example:</p>
<pre>
-com.android.support:mediarouter-v7:21.0.+
+com.android.support:mediarouter-v7:21.0.0
</pre>
<p class="caution">The v7 mediarouter library APIs introduced in Support Library
@@ -335,11 +330,9 @@ title card.</p>
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:palette-v7:21.0.+
+com.android.support:palette-v7:21.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 21.0 prefix.</p>
-
<h3 id="v7-recyclerview">v7 recyclerview library</h3>
@@ -360,11 +353,9 @@ libraries with resources</a>.</p>
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:recyclerview-v7:21.0.+
+com.android.support:recyclerview-v7:21.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 21.0 prefix.</p>
-
<h2 id="v8">v8 Support Library</h2>
@@ -405,11 +396,9 @@ com.android.support:recyclerview-v7:21.0.+
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:support-v13:18.0.+
+com.android.support:support-v13:18.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 18.0 prefix.</p>
-
<h2 id="v17-leanback">v17 Leanback Library</h2>
@@ -448,9 +437,8 @@ with resources</a>. </p>
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:leanback-v17:21.0.+
+com.android.support:leanback-v17:21.0.0
</pre>
-<p>This dependency notation specifies the latest release version with the 21.0 prefix.</p>
diff --git a/docs/html/training/material/drawables.jd b/docs/html/training/material/drawables.jd
index 820a004..a2de8e9 100644
--- a/docs/html/training/material/drawables.jd
+++ b/docs/html/training/material/drawables.jd
@@ -73,7 +73,7 @@ app's module:</p>
<pre>
dependencies {
...
- compile 'com.android.support:palette-v7:21.0.+'
+ compile 'com.android.support:palette-v7:21.0.0'
}
</pre>
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
index dfea166..845d53a 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
@@ -90,9 +90,11 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView
post(new Runnable() {
@Override
public void run() {
- mPasswordEntry.requestFocus();
- if (reason != KeyguardSecurityView.SCREEN_ON || mShowImeAtScreenOn) {
- mImm.showSoftInput(mPasswordEntry, InputMethodManager.SHOW_IMPLICIT);
+ if (isShown()) {
+ mPasswordEntry.requestFocus();
+ if (reason != KeyguardSecurityView.SCREEN_ON || mShowImeAtScreenOn) {
+ mImm.showSoftInput(mPasswordEntry, InputMethodManager.SHOW_IMPLICIT);
+ }
}
}
});
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 5b17eaa..cc0a30a 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -8636,7 +8636,11 @@ public class PackageManagerService extends IPackageManager.Stub {
if (DEBUG_INSTALL) Log.v(TAG, "token " + token
+ " to BM for possible restore");
try {
- bm.restoreAtInstall(res.pkg.applicationInfo.packageName, token);
+ if (bm.isBackupServiceActive(UserHandle.USER_OWNER)) {
+ bm.restoreAtInstall(res.pkg.applicationInfo.packageName, token);
+ } else {
+ doRestore = false;
+ }
} catch (RemoteException e) {
// can't happen; the backup manager is local
} catch (Exception e) {