mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-17 17:48:20 +00:00
Version code cleanup
> Renaming Lmp to Lollipop > Lollipop_MR1 instead of directly using 22 > Using M APIs directly instead of reflection Change-Id: I10a307f46e3be15b3299f549a2fd7e0e215a6a1b
This commit is contained in:
@@ -223,14 +223,12 @@ public class WallpaperCropActivity extends BaseActivity implements Handler.Callb
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
protected boolean isActivityDestroyed() {
|
||||
return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
&& isDestroyed();
|
||||
return Utilities.ATLEAST_JB_MR1 && isDestroyed();
|
||||
}
|
||||
|
||||
@Thunk void addReusableBitmap(TileSource src) {
|
||||
synchronized (mReusableBitmaps) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT
|
||||
&& src instanceof BitmapRegionTileSource) {
|
||||
if (Utilities.ATLEAST_KITKAT && src instanceof BitmapRegionTileSource) {
|
||||
Bitmap preview = ((BitmapRegionTileSource) src).getBitmap();
|
||||
if (preview != null && preview.isMutable()) {
|
||||
mReusableBitmaps.add(preview);
|
||||
|
||||
@@ -977,10 +977,8 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
|
||||
|
||||
if (partner == null || !partner.hideDefaultWallpaper()) {
|
||||
// Add an entry for the default wallpaper (stored in system resources)
|
||||
WallpaperTileInfo defaultWallpaperInfo =
|
||||
(Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
|
||||
? getPreKKDefaultWallpaperInfo()
|
||||
: getDefaultWallpaper();
|
||||
WallpaperTileInfo defaultWallpaperInfo = Utilities.ATLEAST_KITKAT
|
||||
? getDefaultWallpaper() : getPreKKDefaultWallpaperInfo();
|
||||
if (defaultWallpaperInfo != null) {
|
||||
bundled.add(0, defaultWallpaperInfo);
|
||||
}
|
||||
|
||||
@@ -510,7 +510,7 @@ public class BubbleTextView extends TextView
|
||||
mIcon.setBounds(0, 0, iconSize, iconSize);
|
||||
}
|
||||
if (mLayoutHorizontal) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
setCompoundDrawablesRelative(mIcon, null, null, null);
|
||||
} else {
|
||||
setCompoundDrawables(mIcon, null, null, null);
|
||||
|
||||
@@ -24,7 +24,6 @@ import android.animation.ValueAnimator.AnimatorUpdateListener;
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.ColorMatrix;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.graphics.PointF;
|
||||
@@ -93,7 +92,7 @@ public abstract class ButtonDropTarget extends TextView
|
||||
// drawableLeft and drawableStart.
|
||||
mDrawable = getResources().getDrawable(resId);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
setCompoundDrawablesRelativeWithIntrinsicBounds(mDrawable, null, null, null);
|
||||
} else {
|
||||
setCompoundDrawablesWithIntrinsicBounds(mDrawable, null, null, null);
|
||||
@@ -114,7 +113,7 @@ public abstract class ButtonDropTarget extends TextView
|
||||
@Override
|
||||
public final void onDragEnter(DragObject d) {
|
||||
d.dragView.setColor(mHoverColor);
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
animateTextColor(mHoverColor);
|
||||
} else {
|
||||
if (mCurrentFilter == null) {
|
||||
@@ -131,8 +130,8 @@ public abstract class ButtonDropTarget extends TextView
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
protected void resetHoverColor() {
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
protected void resetHoverColor() {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
animateTextColor(mOriginalTextColor.getDefaultColor());
|
||||
} else {
|
||||
mDrawable.setColorFilter(null);
|
||||
|
||||
@@ -131,7 +131,7 @@ public class DragView extends View {
|
||||
measure(ms, ms);
|
||||
mPaint = new Paint(Paint.FILTER_BITMAP_FLAG);
|
||||
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
setElevation(getResources().getDimension(R.dimen.drag_elevation));
|
||||
}
|
||||
}
|
||||
@@ -252,14 +252,14 @@ public class DragView extends View {
|
||||
setColorScale(color, m2);
|
||||
m1.postConcat(m2);
|
||||
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
animateFilterTo(m1.getArray());
|
||||
} else {
|
||||
mPaint.setColorFilter(new ColorMatrixColorFilter(m1));
|
||||
invalidate();
|
||||
}
|
||||
} else {
|
||||
if (!Utilities.isLmpOrAbove() || mCurrentFilter == null) {
|
||||
if (!Utilities.ATLEAST_LOLLIPOP || mCurrentFilter == null) {
|
||||
mPaint.setColorFilter(null);
|
||||
invalidate();
|
||||
} else {
|
||||
|
||||
@@ -453,7 +453,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
||||
|
||||
Animator openFolderAnim = null;
|
||||
final Runnable onCompleteRunnable;
|
||||
if (!Utilities.isLmpOrAbove()) {
|
||||
if (!Utilities.ATLEAST_LOLLIPOP) {
|
||||
positionAndSizeAsIcon();
|
||||
centerAboutIcon();
|
||||
|
||||
@@ -568,7 +568,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
mFolderName.animate().setDuration(FOLDER_NAME_ANIMATION_DURATION)
|
||||
.translationX(0)
|
||||
.setInterpolator(Utilities.isLmpOrAbove() ?
|
||||
.setInterpolator(Utilities.ATLEAST_LOLLIPOP ?
|
||||
AnimationUtils.loadInterpolator(mLauncher,
|
||||
android.R.interpolator.fast_out_slow_in)
|
||||
: new LogDecelerateInterpolator(100, 0));
|
||||
|
||||
@@ -116,8 +116,6 @@ import java.io.FileDescriptor;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -360,18 +358,6 @@ public class Launcher extends Activity
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove this field and call method directly when Launcher3 can depend on M APIs
|
||||
private static Method sClipRevealMethod = null;
|
||||
static {
|
||||
Class<?> activityOptionsClass = ActivityOptions.class;
|
||||
try {
|
||||
sClipRevealMethod = activityOptionsClass.getDeclaredMethod("makeClipRevealAnimation",
|
||||
View.class, int.class, int.class, int.class, int.class);
|
||||
} catch (Exception e) {
|
||||
// Earlier version
|
||||
}
|
||||
}
|
||||
|
||||
@Thunk Runnable mBuildLayersRunnable = new Runnable() {
|
||||
public void run() {
|
||||
if (mWorkspace != null) {
|
||||
@@ -667,7 +653,7 @@ public class Launcher extends Activity
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
public static int generateViewId() {
|
||||
if (Build.VERSION.SDK_INT >= 17) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
return View.generateViewId();
|
||||
} else {
|
||||
// View.generateViewId() is not available. The following fallback logic is a copy
|
||||
@@ -1653,18 +1639,18 @@ public class Launcher extends Activity
|
||||
}
|
||||
registerReceiver(mReceiver, filter);
|
||||
FirstFrameAnimatorHelper.initializeDrawListener(getWindow().getDecorView());
|
||||
setupTransparentSystemBarsForLmp();
|
||||
setupTransparentSystemBarsForLollipop();
|
||||
mAttached = true;
|
||||
mVisible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up transparent navigation and status bars in LMP.
|
||||
* Sets up transparent navigation and status bars in Lollipop.
|
||||
* This method is a no-op for other platform versions.
|
||||
*/
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
private void setupTransparentSystemBarsForLmp() {
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
private void setupTransparentSystemBarsForLollipop() {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
Window window = getWindow();
|
||||
window.getAttributes().systemUiVisibility |=
|
||||
(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
@@ -2883,8 +2869,7 @@ public class Launcher extends Activity
|
||||
Bundle optsBundle = null;
|
||||
if (useLaunchAnimation) {
|
||||
ActivityOptions opts = null;
|
||||
if (sClipRevealMethod != null) {
|
||||
// TODO: call method directly when Launcher3 can depend on M APIs
|
||||
if (Utilities.ATLEAST_MARSHMALLOW) {
|
||||
int left = 0, top = 0;
|
||||
int width = v.getMeasuredWidth(), height = v.getMeasuredHeight();
|
||||
if (v instanceof TextView) {
|
||||
@@ -2898,22 +2883,12 @@ public class Launcher extends Activity
|
||||
height = bounds.height();
|
||||
}
|
||||
}
|
||||
try {
|
||||
opts = (ActivityOptions) sClipRevealMethod.invoke(null, v,
|
||||
left, top, width, height);
|
||||
} catch (IllegalAccessException e) {
|
||||
Log.d(TAG, "Could not call makeClipRevealAnimation: " + e);
|
||||
sClipRevealMethod = null;
|
||||
} catch (InvocationTargetException e) {
|
||||
Log.d(TAG, "Could not call makeClipRevealAnimation: " + e);
|
||||
sClipRevealMethod = null;
|
||||
}
|
||||
}
|
||||
if (opts == null && !Utilities.isLmpOrAbove()) {
|
||||
opts = ActivityOptions.makeClipRevealAnimation(v, left, top, width, height);
|
||||
} else if (!Utilities.ATLEAST_LOLLIPOP) {
|
||||
// Below L, we use a scale up animation
|
||||
opts = ActivityOptions.makeScaleUpAnimation(v, 0, 0,
|
||||
v.getMeasuredWidth(), v.getMeasuredHeight());
|
||||
} else if (opts == null && Utilities.isLmpMR1()) {
|
||||
} else if (Utilities.ATLEAST_LOLLIPOP_MR1) {
|
||||
// On L devices, we use the device default slide-up transition.
|
||||
// On L MR1 devices, we a custom version of the slide-up transition which
|
||||
// doesn't have the delay present in the device default.
|
||||
@@ -3028,7 +3003,7 @@ public class Launcher extends Activity
|
||||
|
||||
ObjectAnimator oa = LauncherAnimUtils.ofPropertyValuesHolder(mFolderIconImageView, alpha,
|
||||
scaleX, scaleY);
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
oa.setInterpolator(new LogDecelerateInterpolator(100, 0));
|
||||
}
|
||||
oa.setDuration(getResources().getInteger(R.integer.config_folderExpandDuration));
|
||||
@@ -4324,13 +4299,14 @@ public class Launcher extends Activity
|
||||
return oriMap[(d.getRotation() + indexOffset) % 4];
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
|
||||
public void lockScreenOrientation() {
|
||||
if (mRotationEnabled) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
if (Utilities.ATLEAST_JB_MR2) {
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
|
||||
} else {
|
||||
setRequestedOrientation(mapConfigurationOriActivityInfoOri(getResources()
|
||||
.getConfiguration().orientation));
|
||||
} else {
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4534,7 +4510,7 @@ public class Launcher extends Activity
|
||||
public ItemInfo createAppDragInfo(Intent appLaunchIntent) {
|
||||
// Called from search suggestion
|
||||
UserHandleCompat user = null;
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
UserHandle userHandle = appLaunchIntent.getParcelableExtra(Intent.EXTRA_USER);
|
||||
if (userHandle != null) {
|
||||
user = UserHandleCompat.fromUser(userHandle);
|
||||
|
||||
@@ -127,7 +127,7 @@ public class LauncherAppState {
|
||||
LauncherModel setLauncher(Launcher launcher) {
|
||||
getLauncherProvider().setLauncherProviderChangeListener(launcher);
|
||||
mModel.initialize(launcher);
|
||||
mAccessibilityDelegate = ((launcher != null) && Utilities.isLmpOrAbove()) ?
|
||||
mAccessibilityDelegate = ((launcher != null) && Utilities.ATLEAST_LOLLIPOP) ?
|
||||
new LauncherAccessibilityDelegate(launcher) : null;
|
||||
return mModel;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper {
|
||||
@Override
|
||||
public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
|
||||
throws IOException {
|
||||
if (!Utilities.isLmpOrAbove()) {
|
||||
if (!Utilities.ATLEAST_LOLLIPOP) {
|
||||
// No restore for old devices.
|
||||
Log.i(TAG, "You shall not pass!!!");
|
||||
Log.d(TAG, "Restore is only supported on devices running Lollipop and above.");
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
package com.android.launcher3;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.PropertyValuesHolder;
|
||||
import android.annotation.TargetApi;
|
||||
@@ -36,6 +34,7 @@ import android.view.View.OnLongClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
|
||||
import com.android.launcher3.util.Thunk;
|
||||
|
||||
class LauncherClings implements OnClickListener {
|
||||
@@ -225,7 +224,7 @@ class LauncherClings implements OnClickListener {
|
||||
|
||||
// Restricted secondary users (child mode) will potentially have very few apps
|
||||
// seeded when they start up for the first time. Clings won't work well with that
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
if (Utilities.ATLEAST_JB_MR2) {
|
||||
UserManager um = (UserManager) mLauncher.getSystemService(Context.USER_SERVICE);
|
||||
Bundle restrictions = um.getUserRestrictions();
|
||||
if (restrictions.getBoolean(UserManager.DISALLOW_MODIFY_ACCOUNTS, false)) {
|
||||
|
||||
@@ -402,7 +402,7 @@ public class LauncherProvider extends ContentProvider {
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
|
||||
private AutoInstallsLayout createWorkspaceLoaderFromAppRestriction() {
|
||||
// UserManager.getApplicationRestrictions() requires minSdkVersion >= 18
|
||||
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
if (!Utilities.ATLEAST_JB_MR2) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ public class LauncherStateTransitionAnimation {
|
||||
final boolean animated, final PrivateTransitionCallbacks pCb) {
|
||||
final AnimatorSet animation = LauncherAnimUtils.createAnimatorSet();
|
||||
final Resources res = mLauncher.getResources();
|
||||
final boolean material = Utilities.isLmpOrAbove();
|
||||
final boolean material = Utilities.ATLEAST_LOLLIPOP;
|
||||
final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
|
||||
final int itemsAlphaStagger =
|
||||
res.getInteger(R.integer.config_overlayItemsAlphaStagger);
|
||||
@@ -358,12 +358,11 @@ public class LauncherStateTransitionAnimation {
|
||||
dispatchOnLauncherTransitionStart(toView, animated, false);
|
||||
|
||||
// Enable all necessary layers
|
||||
boolean isLmpOrAbove = Utilities.isLmpOrAbove();
|
||||
for (View v : layerViews.keySet()) {
|
||||
if (layerViews.get(v) == BUILD_AND_SET_LAYER) {
|
||||
v.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
||||
}
|
||||
if (isLmpOrAbove && Utilities.isViewAttachedToWindow(v)) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP && Utilities.isViewAttachedToWindow(v)) {
|
||||
v.buildLayer();
|
||||
}
|
||||
}
|
||||
@@ -486,7 +485,7 @@ public class LauncherStateTransitionAnimation {
|
||||
final PrivateTransitionCallbacks pCb) {
|
||||
final AnimatorSet animation = LauncherAnimUtils.createAnimatorSet();
|
||||
final Resources res = mLauncher.getResources();
|
||||
final boolean material = Utilities.isLmpOrAbove();
|
||||
final boolean material = Utilities.ATLEAST_LOLLIPOP;
|
||||
final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
|
||||
final int itemsAlphaStagger =
|
||||
res.getInteger(R.integer.config_overlayItemsAlphaStagger);
|
||||
@@ -668,12 +667,11 @@ public class LauncherStateTransitionAnimation {
|
||||
dispatchOnLauncherTransitionStart(toView, animated, false);
|
||||
|
||||
// Enable all necessary layers
|
||||
boolean isLmpOrAbove = Utilities.isLmpOrAbove();
|
||||
for (View v : layerViews.keySet()) {
|
||||
if (layerViews.get(v) == BUILD_AND_SET_LAYER) {
|
||||
v.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
||||
}
|
||||
if (isLmpOrAbove && Utilities.isViewAttachedToWindow(v)) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP && Utilities.isViewAttachedToWindow(v)) {
|
||||
v.buildLayer();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2293,7 +2293,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
|
||||
// Besides disabling the accessibility long-click, this also prevents this view from getting
|
||||
// accessibility focus.
|
||||
info.setLongClickable(false);
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
info.removeAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public class PendingAppWidgetHostView extends LauncherAppWidgetHostView implemen
|
||||
setBackgroundResource(R.drawable.quantum_panel_dark);
|
||||
setWillNotDraw(false);
|
||||
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
setElevation(getResources().getDimension(R.dimen.pending_widget_elevation));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ public class UninstallDropTarget extends ButtonDropTarget {
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
|
||||
public static boolean supportsDrop(Context context, Object info) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
if (Utilities.ATLEAST_JB_MR2) {
|
||||
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
Bundle restrictions = userManager.getUserRestrictions();
|
||||
if (restrictions.getBoolean(UserManager.DISALLOW_APPS_CONTROL, false)
|
||||
|
||||
@@ -87,6 +87,24 @@ public final class Utilities {
|
||||
private static final int[] sLoc0 = new int[2];
|
||||
private static final int[] sLoc1 = new int[2];
|
||||
|
||||
// TODO: use Build.VERSION_CODES when available
|
||||
public static final boolean ATLEAST_MARSHMALLOW = Build.VERSION.SDK_INT >= 23;
|
||||
|
||||
public static final boolean ATLEAST_LOLLIPOP_MR1 =
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1;
|
||||
|
||||
public static final boolean ATLEAST_LOLLIPOP =
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
|
||||
|
||||
public static final boolean ATLEAST_KITKAT =
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
|
||||
|
||||
public static final boolean ATLEAST_JB_MR1 =
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1;
|
||||
|
||||
public static final boolean ATLEAST_JB_MR2 =
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
|
||||
|
||||
// To turn on these properties, type
|
||||
// adb shell setprop log.tag.PROPERTY_NAME [VERBOSE | SUPPRESS]
|
||||
private static final String FORCE_ENABLE_ROTATION_PROPERTY = "launcher_force_rotate";
|
||||
@@ -110,23 +128,6 @@ public final class Utilities {
|
||||
return sForceEnableRotation || context.getResources().getBoolean(R.bool.allow_rotation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates if the device is running LMP or higher.
|
||||
*/
|
||||
public static boolean isLmpOrAbove() {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
|
||||
}
|
||||
|
||||
public static boolean isLmpMR1OrAbove() {
|
||||
// TODO(adamcohen): update to Build.VERSION_CODES.LOLLIPOP_MR1 once building against 22;
|
||||
return Build.VERSION.SDK_INT >= 22;
|
||||
}
|
||||
|
||||
public static boolean isLmpMR1() {
|
||||
// TODO(adamcohen): update to Build.VERSION_CODES.LOLLIPOP_MR1 once building against 22;
|
||||
return Build.VERSION.SDK_INT == 22;
|
||||
}
|
||||
|
||||
public static Bitmap createIconBitmap(Cursor c, int iconIndex, Context context) {
|
||||
byte[] data = c.getBlob(iconIndex);
|
||||
try {
|
||||
@@ -517,7 +518,7 @@ public final class Utilities {
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.KITKAT)
|
||||
public static boolean isViewAttachedToWindow(View v) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
if (ATLEAST_KITKAT) {
|
||||
return v.isAttachedToWindow();
|
||||
} else {
|
||||
// A proxy call which returns null, if the view is not attached to the window.
|
||||
@@ -544,7 +545,7 @@ public final class Utilities {
|
||||
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
|
||||
for (AppWidgetProviderInfo info : appWidgetManager.getInstalledProviders()) {
|
||||
if (info.provider.getPackageName().equals(providerPkg)) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (ATLEAST_JB_MR1) {
|
||||
if ((info.widgetCategory & AppWidgetProviderInfo.WIDGET_CATEGORY_SEARCHBOX) != 0) {
|
||||
return info;
|
||||
} else if (defaultWidgetForSearchPackage == null) {
|
||||
@@ -655,7 +656,7 @@ public final class Utilities {
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
public static boolean isRtl(Resources res) {
|
||||
return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) &&
|
||||
return ATLEAST_JB_MR1 &&
|
||||
(res.getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL);
|
||||
}
|
||||
|
||||
|
||||
@@ -2013,7 +2013,7 @@ public class Workspace extends PagedView
|
||||
}
|
||||
|
||||
public void updateAccessibilityFlags() {
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
int total = getPageCount();
|
||||
for (int i = numCustomPages(); i < total; i++) {
|
||||
updateAccessibilityFlags((CellLayout) getPageAt(i), i);
|
||||
|
||||
@@ -40,7 +40,7 @@ public abstract class AppWidgetManagerCompat {
|
||||
public static AppWidgetManagerCompat getInstance(Context context) {
|
||||
synchronized (sInstanceLock) {
|
||||
if (sInstance == null) {
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
sInstance = new AppWidgetManagerCompatVL(context.getApplicationContext());
|
||||
} else {
|
||||
sInstance = new AppWidgetManagerCompatV16(context.getApplicationContext());
|
||||
|
||||
@@ -54,10 +54,10 @@ class AppWidgetManagerCompatV16 extends AppWidgetManagerCompat {
|
||||
@Override
|
||||
public boolean bindAppWidgetIdIfAllowed(int appWidgetId, AppWidgetProviderInfo info,
|
||||
Bundle options) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
return mAppWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId, info.provider);
|
||||
} else {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
return mAppWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId, info.provider, options);
|
||||
} else {
|
||||
return mAppWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId, info.provider);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ public abstract class LauncherAppsCompat {
|
||||
public static LauncherAppsCompat getInstance(Context context) {
|
||||
synchronized (sInstanceLock) {
|
||||
if (sInstance == null) {
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
sInstance = new LauncherAppsCompatVL(context.getApplicationContext());
|
||||
} else {
|
||||
sInstance = new LauncherAppsCompatV16(context.getApplicationContext());
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.util.Thunk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -188,7 +189,7 @@ public class LauncherAppsCompatV16 extends LauncherAppsCompat {
|
||||
// when moving a package or mounting/un-mounting external storage. Assume that
|
||||
// it is a replacing operation.
|
||||
final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING,
|
||||
Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT);
|
||||
!Utilities.ATLEAST_KITKAT);
|
||||
String[] packages = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
|
||||
for (OnAppsChangedCallbackCompat callback : getCallbacks()) {
|
||||
callback.onPackagesAvailable(packages, user, replacing);
|
||||
|
||||
@@ -34,7 +34,7 @@ public abstract class PackageInstallerCompat {
|
||||
public static PackageInstallerCompat getInstance(Context context) {
|
||||
synchronized (sInstanceLock) {
|
||||
if (sInstance == null) {
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
sInstance = new PackageInstallerCompatVL(context);
|
||||
} else {
|
||||
sInstance = new PackageInstallerCompatV16();
|
||||
|
||||
@@ -34,7 +34,7 @@ public class UserHandleCompat {
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
public static UserHandleCompat myUserHandle() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
return new UserHandleCompat(android.os.Process.myUserHandle());
|
||||
} else {
|
||||
return new UserHandleCompat();
|
||||
@@ -55,7 +55,7 @@ public class UserHandleCompat {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
return mUser.toString();
|
||||
} else {
|
||||
return "";
|
||||
@@ -67,7 +67,7 @@ public class UserHandleCompat {
|
||||
if (!(other instanceof UserHandleCompat)) {
|
||||
return false;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
return mUser.equals(((UserHandleCompat) other).mUser);
|
||||
} else {
|
||||
return true;
|
||||
@@ -76,7 +76,7 @@ public class UserHandleCompat {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
return mUser.hashCode();
|
||||
} else {
|
||||
return 0;
|
||||
@@ -89,7 +89,7 @@ public class UserHandleCompat {
|
||||
* profiles so this is a no-op.
|
||||
*/
|
||||
public void addToIntent(Intent intent, String name) {
|
||||
if (Utilities.isLmpOrAbove() && mUser != null) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP && mUser != null) {
|
||||
intent.putExtra(name, mUser);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,9 +34,9 @@ public abstract class UserManagerCompat {
|
||||
public static UserManagerCompat getInstance(Context context) {
|
||||
synchronized (sInstanceLock) {
|
||||
if (sInstance == null) {
|
||||
if (Utilities.isLmpOrAbove()) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP) {
|
||||
sInstance = new UserManagerCompatVL(context.getApplicationContext());
|
||||
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
} else if (Utilities.ATLEAST_JB_MR1) {
|
||||
sInstance = new UserManagerCompatV17(context.getApplicationContext());
|
||||
} else {
|
||||
sInstance = new UserManagerCompatV16();
|
||||
|
||||
@@ -68,7 +68,7 @@ public class ManagedProfileHeuristic {
|
||||
private static final long AUTO_ADD_TO_FOLDER_DURATION = 8 * 60 * 60 * 1000;
|
||||
|
||||
public static ManagedProfileHeuristic get(Context context, UserHandleCompat user) {
|
||||
if (Utilities.isLmpOrAbove() && !UserHandleCompat.myUserHandle().equals(user)) {
|
||||
if (Utilities.ATLEAST_LOLLIPOP && !UserHandleCompat.myUserHandle().equals(user)) {
|
||||
return new ManagedProfileHeuristic(context, user);
|
||||
}
|
||||
return null;
|
||||
@@ -296,7 +296,7 @@ public class ManagedProfileHeuristic {
|
||||
* Verifies that entries corresponding to {@param users} exist and removes all invalid entries.
|
||||
*/
|
||||
public static void processAllUsers(List<UserHandleCompat> users, Context context) {
|
||||
if (!Utilities.isLmpOrAbove()) {
|
||||
if (!Utilities.ATLEAST_LOLLIPOP) {
|
||||
return;
|
||||
}
|
||||
UserManagerCompat userManager = UserManagerCompat.getInstance(context);
|
||||
|
||||
@@ -47,7 +47,7 @@ public class UiThreadCircularReveal {
|
||||
float progress = arg0.getAnimatedFraction();
|
||||
outlineProvider.setProgress(progress);
|
||||
revealView.invalidateOutline();
|
||||
if (!Utilities.isLmpMR1OrAbove()) {
|
||||
if (!Utilities.ATLEAST_LOLLIPOP_MR1) {
|
||||
revealView.invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@ import android.graphics.Point;
|
||||
import android.os.Build;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.android.launcher3.Utilities;
|
||||
|
||||
/**
|
||||
* Utility methods for wallpaper management.
|
||||
*/
|
||||
@@ -99,7 +101,7 @@ public final class WallpaperUtils {
|
||||
int maxDim = Math.max(maxDims.x, maxDims.y);
|
||||
int minDim = Math.max(minDims.x, minDims.y);
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
Point realSize = new Point();
|
||||
windowManager.getDefaultDisplay().getRealSize(realSize);
|
||||
maxDim = Math.max(realSize.x, realSize.y);
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.android.launcher3.DragLayer;
|
||||
import com.android.launcher3.DragSource;
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.LauncherAppWidgetProviderInfo;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.compat.AppWidgetManagerCompat;
|
||||
import com.android.launcher3.util.Thunk;
|
||||
|
||||
@@ -131,7 +132,7 @@ public class WidgetHostViewLoader implements DragListener {
|
||||
public static Bundle getDefaultOptionsForWidget(Launcher launcher, PendingAddWidgetInfo info) {
|
||||
Bundle options = null;
|
||||
Rect rect = new Rect();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
AppWidgetResizeFrame.getWidgetSizeRanges(launcher, info.spanX, info.spanY, rect);
|
||||
Rect padding = AppWidgetHostView.getDefaultPaddingForWidget(launcher,
|
||||
info.componentName, null);
|
||||
|
||||
@@ -169,7 +169,7 @@ public class WidgetsListAdapter extends Adapter<WidgetsRowViewHolder> {
|
||||
|
||||
// if the end padding is 0, then container view (horizontal scroll view) doesn't respect
|
||||
// the end of the linear layout width + the start padding and doesn't allow scrolling.
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (Utilities.ATLEAST_JB_MR1) {
|
||||
cellList.setPaddingRelative(mIndent, 0, 1, 0);
|
||||
} else {
|
||||
cellList.setPadding(mIndent, 0, 1, 0);
|
||||
|
||||
Reference in New Issue
Block a user