Merge "Fixing issue with popup arrow direction in RTL." into ub-launcher3-burnaby
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 03e9bbf..873ca32 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -83,6 +83,7 @@
android:windowSoftInputMode="adjustPan"
android:screenOrientation="nosensor"
android:resumeWhilePausing="true"
+ android:taskAffinity=""
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
index d9bfc30..88dc3e2 100644
--- a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
+++ b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
@@ -16,6 +16,7 @@
package com.android.launcher3;
+import android.Manifest.permission;
import android.animation.LayoutTransition;
import android.annotation.TargetApi;
import android.app.ActionBar;
@@ -37,10 +38,12 @@
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
+import android.Manifest;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
+import android.os.Process;
import android.provider.MediaStore;
import android.util.Log;
import android.util.Pair;
@@ -680,6 +683,16 @@
}
protected Bitmap getThumbnailOfLastPhoto() {
+ boolean canReadExternalStorage = getActivity().checkPermission(
+ Manifest.permission.READ_EXTERNAL_STORAGE, Process.myPid(), Process.myUid()) ==
+ PackageManager.PERMISSION_GRANTED;
+
+ if (!canReadExternalStorage) {
+ // MediaStore.Images.Media.EXTERNAL_CONTENT_URI requires
+ // the READ_EXTERNAL_STORAGE permission
+ return null;
+ }
+
Cursor cursor = MediaStore.Images.Media.query(getContext().getContentResolver(),
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Images.ImageColumns._ID,
diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
index 399ef97..b8916a7 100644
--- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
+++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
@@ -192,9 +192,6 @@
@Thunk final ZoomInInterpolator mZoomInInterpolator = new ZoomInInterpolator();
- // These properties refer to the background protection gradient used for AllApps and Widget tray.
- @Thunk ValueAnimator mBackgroundFadeOutAnimation;
-
@Thunk float mSpringLoadedShrinkFactor;
@Thunk float mOverviewModeShrinkFactor;
@Thunk float mWorkspaceScrimAlpha;
@@ -548,25 +545,29 @@
* @param animated whether or not to set the background alpha immediately
* @duration duration of the animation
*/
- private void animateBackgroundGradient(TransitionStates states, boolean animated, int duration) {
+ private void animateBackgroundGradient(TransitionStates states,
+ boolean animated, int duration) {
+
final DragLayer dragLayer = mLauncher.getDragLayer();
final float startAlpha = dragLayer.getBackgroundAlpha();
float finalAlpha = states.stateIsNormal ? 0 : mWorkspaceScrimAlpha;
if (finalAlpha != startAlpha) {
if (animated) {
- mBackgroundFadeOutAnimation =
+ // These properties refer to the background protection gradient used for AllApps
+ // and Widget tray.
+ ValueAnimator bgFadeOutAnimation =
LauncherAnimUtils.ofFloat(mWorkspace, startAlpha, finalAlpha);
- mBackgroundFadeOutAnimation.addUpdateListener(
- new ValueAnimator.AnimatorUpdateListener() {
+ bgFadeOutAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @Override
public void onAnimationUpdate(ValueAnimator animation) {
dragLayer.setBackgroundAlpha(
((Float)animation.getAnimatedValue()).floatValue());
}
});
- mBackgroundFadeOutAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
- mBackgroundFadeOutAnimation.setDuration(duration);
- mStateAnimator.play(mBackgroundFadeOutAnimation);
+ bgFadeOutAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
+ bgFadeOutAnimation.setDuration(duration);
+ mStateAnimator.play(bgFadeOutAnimation);
} else {
dragLayer.setBackgroundAlpha(finalAlpha);
}
@@ -577,17 +578,10 @@
* Cancels the current animation.
*/
private void cancelAnimation() {
- cancelAnimator(mStateAnimator);
- mStateAnimator = null;
- }
-
- /**
- * Cancels the specified animation.
- */
- private void cancelAnimator(Animator animator) {
- if (animator != null) {
- animator.setDuration(0);
- animator.cancel();
+ if (mStateAnimator != null) {
+ mStateAnimator.setDuration(0);
+ mStateAnimator.cancel();
}
+ mStateAnimator = null;
}
}
\ No newline at end of file