summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/os/UserManager.java34
-rw-r--r--core/java/android/provider/Settings.java6
-rw-r--r--core/java/android/transition/Transition.java60
-rw-r--r--core/java/android/widget/ShareActionProvider.java15
-rw-r--r--core/java/com/android/internal/app/ChooserActivity.java20
-rw-r--r--core/java/com/android/internal/widget/SwipeDismissLayout.java17
6 files changed, 83 insertions, 69 deletions
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 84639eb..e379621 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -234,6 +234,38 @@ public class UserManager {
*/
public static final String DISALLOW_CONFIG_APPS = "no_config_apps";
+ /**
+ * Key for user restrictions. Specifies if a user is disallowed from mounting
+ * physical external media. The default value is <code>false</code>.
+ * <p/>
+ * Type: Boolean
+ * @see #setUserRestrictions(Bundle)
+ * @see #getUserRestrictions()
+ */
+ public static final String DISALLOW_MOUNT_PHYSICAL_MEDIA = "no_physical_media";
+
+ /**
+ * Key for user restrictions. Specifies if a user is disallowed from adjusting microphone
+ * volume.
+ * The default value is <code>false</code>.
+ * <p/>
+ * Type: Boolean
+ * @see #setUserRestrictions(Bundle)
+ * @see #getUserRestrictions()
+ */
+ public static final String DISALLOW_UNMUTE_MICROPHONE = "no_unmute_microphone";
+
+ /**
+ * Key for user restrictions. Specifies if a user is disallowed from adjusting the master
+ * volume.
+ * The default value is <code>false</code>.
+ * <p/>
+ * Type: Boolean
+ * @see #setUserRestrictions(Bundle)
+ * @see #getUserRestrictions()
+ */
+ public static final String DISALLOW_ADJUST_VOLUME = "no_adjust_volume";
+
/** @hide */
public static final int PIN_VERIFICATION_FAILED_INCORRECT = -3;
/** @hide */
@@ -661,7 +693,7 @@ public class UserManager {
/**
* Returns information for all users on this device. Requires
* {@link android.Manifest.permission#MANAGE_USERS} permission.
- *
+ *
* @param excludeDying specify if the list should exclude users being
* removed.
* @return the list of users that were created.
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index e0ac60b..dc618c8 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2823,7 +2823,6 @@ public final class Settings {
MOVED_TO_GLOBAL.add(Settings.Global.TETHER_SUPPORTED);
MOVED_TO_GLOBAL.add(Settings.Global.USB_MASS_STORAGE_ENABLED);
MOVED_TO_GLOBAL.add(Settings.Global.USE_GOOGLE_MAIL);
- MOVED_TO_GLOBAL.add(Settings.Global.WEB_AUTOFILL_QUERY_URL);
MOVED_TO_GLOBAL.add(Settings.Global.WIFI_COUNTRY_CODE);
MOVED_TO_GLOBAL.add(Settings.Global.WIFI_FRAMEWORK_SCAN_INTERVAL_MS);
MOVED_TO_GLOBAL.add(Settings.Global.WIFI_FREQUENCY_BAND);
@@ -5355,11 +5354,6 @@ public final class Settings {
*/
public static final String USE_GOOGLE_MAIL = "use_google_mail";
- /** Autofill server address (Used in WebView/browser).
- * {@hide} */
- public static final String WEB_AUTOFILL_QUERY_URL =
- "web_autofill_query_url";
-
/**
* Whether Wifi display is enabled/disabled
* 0=disabled. 1=enabled.
diff --git a/core/java/android/transition/Transition.java b/core/java/android/transition/Transition.java
index 2549fde..49a0138 100644
--- a/core/java/android/transition/Transition.java
+++ b/core/java/android/transition/Transition.java
@@ -351,18 +351,8 @@ public abstract class Transition implements Cloneable {
}
ArrayMap<View, TransitionValues> endCopy =
new ArrayMap<View, TransitionValues>(endValues.viewValues);
- SparseArray<TransitionValues> endIdCopy =
- new SparseArray<TransitionValues>(endValues.idValues.size());
- for (int i = 0; i < endValues.idValues.size(); ++i) {
- int id = endValues.idValues.keyAt(i);
- endIdCopy.put(id, endValues.idValues.valueAt(i));
- }
- LongSparseArray<TransitionValues> endItemIdCopy =
- new LongSparseArray<TransitionValues>(endValues.itemIdValues.size());
- for (int i = 0; i < endValues.itemIdValues.size(); ++i) {
- long id = endValues.itemIdValues.keyAt(i);
- endItemIdCopy.put(id, endValues.itemIdValues.valueAt(i));
- }
+ SparseArray<TransitionValues> endIdCopy = endValues.idValues.clone();
+ LongSparseArray<TransitionValues> endItemIdCopy = endValues.itemIdValues.clone();
// Walk through the start values, playing everything we find
// Remove from the end set as we go
ArrayList<TransitionValues> startValuesList = new ArrayList<TransitionValues>();
@@ -376,21 +366,17 @@ public abstract class Transition implements Cloneable {
}
if (!isInListView) {
int id = view.getId();
- start = startValues.viewValues.get(view) != null ?
- startValues.viewValues.get(view) : startValues.idValues.get(id);
- if (endValues.viewValues.get(view) != null) {
- end = endValues.viewValues.get(view);
+ start = startValues.viewValues.get(view);
+ end = endValues.viewValues.get(view);
+ if (end != null) {
endCopy.remove(view);
} else if (id != View.NO_ID) {
- end = endValues.idValues.get(id);
- View removeView = null;
- for (View viewToRemove : endCopy.keySet()) {
- if (viewToRemove.getId() == id) {
- removeView = viewToRemove;
- }
- }
- if (removeView != null) {
- endCopy.remove(removeView);
+ end = endIdCopy.get(id);
+ if (end == null || startValues.viewValues.containsKey(end.view)) {
+ end = null;
+ id = View.NO_ID;
+ } else {
+ endCopy.remove(end.view);
}
}
endIdCopy.remove(id);
@@ -423,36 +409,16 @@ public abstract class Transition implements Cloneable {
}
}
// Now walk through the remains of the end set
+ // We've already matched everything from start to end, everything else doesn't match.
for (View view : endCopy.keySet()) {
int id = view.getId();
if (isValidTarget(view, id)) {
- TransitionValues start = startValues.viewValues.get(view) != null ?
- startValues.viewValues.get(view) : startValues.idValues.get(id);
+ TransitionValues start = null;
TransitionValues end = endCopy.get(view);
- endIdCopy.remove(id);
startValuesList.add(start);
endValuesList.add(end);
}
}
- int endIdCopySize = endIdCopy.size();
- for (int i = 0; i < endIdCopySize; ++i) {
- int id = endIdCopy.keyAt(i);
- if (isValidTarget(null, id)) {
- TransitionValues start = startValues.idValues.get(id);
- TransitionValues end = endIdCopy.get(id);
- startValuesList.add(start);
- endValuesList.add(end);
- }
- }
- int endItemIdCopySize = endItemIdCopy.size();
- for (int i = 0; i < endItemIdCopySize; ++i) {
- long id = endItemIdCopy.keyAt(i);
- // TODO: Deal with targetIDs and itemIDs
- TransitionValues start = startValues.itemIdValues.get(id);
- TransitionValues end = endItemIdCopy.get(id);
- startValuesList.add(start);
- endValuesList.add(end);
- }
ArrayMap<Animator, AnimationInfo> runningAnimators = getRunningAnimators();
long minStartDelay = Long.MAX_VALUE;
int minAnimator = mAnimators.size();
diff --git a/core/java/android/widget/ShareActionProvider.java b/core/java/android/widget/ShareActionProvider.java
index e4ad354..99a7886 100644
--- a/core/java/android/widget/ShareActionProvider.java
+++ b/core/java/android/widget/ShareActionProvider.java
@@ -276,8 +276,13 @@ public class ShareActionProvider extends ActionProvider {
* @see Intent#ACTION_SEND_MULTIPLE
*/
public void setShareIntent(Intent shareIntent) {
- shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
+ if (shareIntent != null) {
+ final String action = shareIntent.getAction();
+ if (Intent.ACTION_SEND.equals(action) || Intent.ACTION_SEND_MULTIPLE.equals(action)) {
+ shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
+ }
+ }
ActivityChooserModel dataModel = ActivityChooserModel.get(mContext,
mShareHistoryFileName);
dataModel.setIntent(shareIntent);
@@ -294,8 +299,12 @@ public class ShareActionProvider extends ActionProvider {
final int itemId = item.getItemId();
Intent launchIntent = dataModel.chooseActivity(itemId);
if (launchIntent != null) {
- launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
- Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
+ final String action = launchIntent.getAction();
+ if (Intent.ACTION_SEND.equals(action) ||
+ Intent.ACTION_SEND_MULTIPLE.equals(action)) {
+ launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
+ Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
+ }
mContext.startActivity(launchIntent);
}
return true;
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 1eda373..106ac0b 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -33,6 +33,14 @@ public class ChooserActivity extends ResolverActivity {
return;
}
Intent target = (Intent)targetParcelable;
+ if (target != null) {
+ final String action = target.getAction();
+ if (Intent.ACTION_SEND.equals(action) ||
+ Intent.ACTION_SEND_MULTIPLE.equals(action)) {
+ target.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
+ Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
+ }
+ }
CharSequence title = intent.getCharSequenceExtra(Intent.EXTRA_TITLE);
if (title == null) {
title = getResources().getText(com.android.internal.R.string.chooseActivity);
@@ -43,13 +51,19 @@ public class ChooserActivity extends ResolverActivity {
initialIntents = new Intent[pa.length];
for (int i=0; i<pa.length; i++) {
if (!(pa[i] instanceof Intent)) {
- Log.w("ChooserActivity", "Initial intent #" + i
- + " not an Intent: " + pa[i]);
+ Log.w("ChooserActivity", "Initial intent #" + i + " not an Intent: " + pa[i]);
finish();
super.onCreate(null);
return;
}
- initialIntents[i] = (Intent)pa[i];
+ final Intent in = (Intent) pa[i];
+ final String action = in.getAction();
+ if (Intent.ACTION_SEND.equals(action) ||
+ Intent.ACTION_SEND_MULTIPLE.equals(action)) {
+ in.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
+ Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
+ }
+ initialIntents[i] = in;
}
}
super.onCreate(savedInstanceState, target, title, initialIntents, null, false);
diff --git a/core/java/com/android/internal/widget/SwipeDismissLayout.java b/core/java/com/android/internal/widget/SwipeDismissLayout.java
index 674d084..bcfa036 100644
--- a/core/java/com/android/internal/widget/SwipeDismissLayout.java
+++ b/core/java/com/android/internal/widget/SwipeDismissLayout.java
@@ -35,7 +35,7 @@ import android.widget.FrameLayout;
public class SwipeDismissLayout extends FrameLayout {
private static final String TAG = "SwipeDismissLayout";
- private static final float DISMISS_MIN_PROGRESS = 0.6f;
+ private static final float DISMISS_MIN_DRAG_WIDTH_RATIO = .4f;
public interface OnDismissedListener {
void onDismissed(SwipeDismissLayout layout);
@@ -244,7 +244,11 @@ public class SwipeDismissLayout extends FrameLayout {
if (!mSwiping) {
float deltaX = ev.getRawX() - mDownX;
float deltaY = ev.getRawY() - mDownY;
- mSwiping = deltaX > mSlop * 2 && Math.abs(deltaY) < mSlop * 2;
+ if ((deltaX * deltaX) + (deltaY * deltaY) > mSlop * mSlop) {
+ mSwiping = deltaX > mSlop * 2 && Math.abs(deltaY) < mSlop * 2;
+ } else {
+ mSwiping = false;
+ }
}
}
@@ -254,12 +258,7 @@ public class SwipeDismissLayout extends FrameLayout {
mVelocityTracker.addMovement(ev);
mVelocityTracker.computeCurrentVelocity(1000);
- float velocityX = mVelocityTracker.getXVelocity();
- float absVelocityX = Math.abs(velocityX);
- float absVelocityY = Math.abs(mVelocityTracker.getYVelocity());
-
- if (deltaX > (getWidth() * DISMISS_MIN_PROGRESS) &&
- absVelocityX < mMinFlingVelocity &&
+ if (deltaX > (getWidth() * DISMISS_MIN_DRAG_WIDTH_RATIO) &&
ev.getRawX() >= mLastX) {
mDismissed = true;
}
@@ -267,7 +266,7 @@ public class SwipeDismissLayout extends FrameLayout {
// Check if the user tried to undo this.
if (mDismissed && mSwiping) {
// Check if the user's finger is actually back
- if (deltaX < (getWidth() * DISMISS_MIN_PROGRESS)) {
+ if (deltaX < (getWidth() * DISMISS_MIN_DRAG_WIDTH_RATIO)) {
mDismissed = false;
}
}