am 5319b2bb: Merge "Removing all dependencies of launcher code on wallpaper-picker" into ub-launcher3-burnaby
* commit '5319b2bb3ba25fa658f58c18130c91d9efb1f677': Removing all dependencies of launcher code on wallpaper-picker
This commit is contained in:
+1
-1
@@ -128,7 +128,7 @@
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.android.launcher3.LauncherWallpaperPickerActivity"
|
||||
android:name="com.android.launcher3.WallpaperPickerActivity"
|
||||
android:theme="@style/Theme.WallpaperPicker"
|
||||
android:label="@string/pick_wallpaper"
|
||||
android:icon="@mipmap/ic_launcher_wallpaper"
|
||||
|
||||
@@ -16,20 +16,12 @@
|
||||
|
||||
package com.android.gallery3d.common;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Point;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.android.gallery3d.exif.ExifInterface;
|
||||
import com.android.launcher3.WallpaperCropActivity;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.IOException;
|
||||
@@ -49,92 +41,6 @@ public class BitmapUtils {
|
||||
: initialSize / 8 * 8;
|
||||
}
|
||||
|
||||
public static Bitmap resizeBitmapByScale(
|
||||
Bitmap bitmap, float scale, boolean recycle) {
|
||||
int width = Math.round(bitmap.getWidth() * scale);
|
||||
int height = Math.round(bitmap.getHeight() * scale);
|
||||
if (width == bitmap.getWidth()
|
||||
&& height == bitmap.getHeight()) return bitmap;
|
||||
Bitmap target = Bitmap.createBitmap(width, height, getConfig(bitmap));
|
||||
Canvas canvas = new Canvas(target);
|
||||
canvas.scale(scale, scale);
|
||||
Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG);
|
||||
canvas.drawBitmap(bitmap, 0, 0, paint);
|
||||
if (recycle) bitmap.recycle();
|
||||
return target;
|
||||
}
|
||||
|
||||
private static Bitmap.Config getConfig(Bitmap bitmap) {
|
||||
Bitmap.Config config = bitmap.getConfig();
|
||||
if (config == null) {
|
||||
config = Bitmap.Config.ARGB_8888;
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
/**
|
||||
* As a ratio of screen height, the total distance we want the parallax effect to span
|
||||
* horizontally
|
||||
*/
|
||||
public static float wallpaperTravelToScreenWidthRatio(int width, int height) {
|
||||
float aspectRatio = width / (float) height;
|
||||
|
||||
// At an aspect ratio of 16/10, the wallpaper parallax effect should span 1.5 * screen width
|
||||
// At an aspect ratio of 10/16, the wallpaper parallax effect should span 1.2 * screen width
|
||||
// We will use these two data points to extrapolate how much the wallpaper parallax effect
|
||||
// to span (ie travel) at any aspect ratio:
|
||||
|
||||
final float ASPECT_RATIO_LANDSCAPE = 16/10f;
|
||||
final float ASPECT_RATIO_PORTRAIT = 10/16f;
|
||||
final float WALLPAPER_WIDTH_TO_SCREEN_RATIO_LANDSCAPE = 1.5f;
|
||||
final float WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT = 1.2f;
|
||||
|
||||
// To find out the desired width at different aspect ratios, we use the following two
|
||||
// formulas, where the coefficient on x is the aspect ratio (width/height):
|
||||
// (16/10)x + y = 1.5
|
||||
// (10/16)x + y = 1.2
|
||||
// We solve for x and y and end up with a final formula:
|
||||
final float x =
|
||||
(WALLPAPER_WIDTH_TO_SCREEN_RATIO_LANDSCAPE - WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT) /
|
||||
(ASPECT_RATIO_LANDSCAPE - ASPECT_RATIO_PORTRAIT);
|
||||
final float y = WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT - x * ASPECT_RATIO_PORTRAIT;
|
||||
return x * aspectRatio + y;
|
||||
}
|
||||
|
||||
private static Point sDefaultWallpaperSize;
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
public static Point getDefaultWallpaperSize(Resources res, WindowManager windowManager) {
|
||||
if (sDefaultWallpaperSize == null) {
|
||||
Point minDims = new Point();
|
||||
Point maxDims = new Point();
|
||||
windowManager.getDefaultDisplay().getCurrentSizeRange(minDims, maxDims);
|
||||
|
||||
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) {
|
||||
Point realSize = new Point();
|
||||
windowManager.getDefaultDisplay().getRealSize(realSize);
|
||||
maxDim = Math.max(realSize.x, realSize.y);
|
||||
minDim = Math.min(realSize.x, realSize.y);
|
||||
}
|
||||
|
||||
// We need to ensure that there is enough extra space in the wallpaper
|
||||
// for the intended parallax effects
|
||||
final int defaultWidth, defaultHeight;
|
||||
if (res.getConfiguration().smallestScreenWidthDp >= 720) {
|
||||
defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
|
||||
defaultHeight = maxDim;
|
||||
} else {
|
||||
defaultWidth = Math.max((int) (minDim * WallpaperCropActivity.WALLPAPER_SCREENS_SPAN), maxDim);
|
||||
defaultHeight = maxDim;
|
||||
}
|
||||
sDefaultWallpaperSize = new Point(defaultWidth, defaultHeight);
|
||||
}
|
||||
return sDefaultWallpaperSize;
|
||||
}
|
||||
|
||||
public static int getRotationFromExif(Context context, Uri uri) {
|
||||
return BitmapUtils.getRotationFromExifHelper(null, 0, context, uri);
|
||||
}
|
||||
|
||||
+2
-11
@@ -16,15 +16,6 @@
|
||||
|
||||
package com.android.launcher3;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
// TODO: Remove this class
|
||||
public class LauncherWallpaperPickerActivity extends WallpaperPickerActivity {
|
||||
@Override
|
||||
public void startActivityForResultSafely(Intent intent, int requestCode) {
|
||||
Utilities.startActivityForResultSafely(this, intent, requestCode);
|
||||
}
|
||||
@Override
|
||||
public boolean enableRotation() {
|
||||
return Utilities.isRotationEnabled(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,13 +38,13 @@ import android.os.Message;
|
||||
import android.util.Log;
|
||||
import android.view.Display;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.gallery3d.common.BitmapCropTask;
|
||||
import com.android.gallery3d.common.BitmapUtils;
|
||||
import com.android.gallery3d.common.Utils;
|
||||
import com.android.launcher3.util.Thunk;
|
||||
import com.android.launcher3.util.WallpaperUtils;
|
||||
import com.android.photos.BitmapRegionTileSource;
|
||||
import com.android.photos.BitmapRegionTileSource.BitmapSource;
|
||||
import com.android.photos.BitmapRegionTileSource.BitmapSource.InBitmapProvider;
|
||||
@@ -57,8 +57,8 @@ import java.util.WeakHashMap;
|
||||
public class WallpaperCropActivity extends Activity implements Handler.Callback {
|
||||
private static final String LOGTAG = "Launcher3.CropActivity";
|
||||
|
||||
protected static final String WALLPAPER_WIDTH_KEY = "wallpaper.width";
|
||||
protected static final String WALLPAPER_HEIGHT_KEY = "wallpaper.height";
|
||||
protected static final String WALLPAPER_WIDTH_KEY = WallpaperUtils.WALLPAPER_WIDTH_KEY;
|
||||
protected static final String WALLPAPER_HEIGHT_KEY = WallpaperUtils.WALLPAPER_HEIGHT_KEY;
|
||||
|
||||
/**
|
||||
* The maximum bitmap size we allow to be returned through the intent.
|
||||
@@ -68,7 +68,7 @@ public class WallpaperCropActivity extends Activity implements Handler.Callback
|
||||
* array instead of a Bitmap instance to avoid overhead.
|
||||
*/
|
||||
public static final int MAX_BMAP_IN_INTENT = 750000;
|
||||
public static final float WALLPAPER_SCREENS_SPAN = 2f;
|
||||
public static final float WALLPAPER_SCREENS_SPAN = WallpaperUtils.WALLPAPER_SCREENS_SPAN;
|
||||
|
||||
private static final int MSG_LOAD_IMAGE = 1;
|
||||
|
||||
@@ -290,10 +290,6 @@ public class WallpaperCropActivity extends Activity implements Handler.Callback
|
||||
return getResources().getBoolean(R.bool.allow_rotation);
|
||||
}
|
||||
|
||||
public static String getSharedPreferencesKey() {
|
||||
return LauncherFiles.WALLPAPER_CROP_PREFERENCES_KEY;
|
||||
}
|
||||
|
||||
protected void setWallpaper(Uri uri, final boolean finishActivityWhenDone) {
|
||||
int rotation = BitmapUtils.getRotationFromExif(this, uri);
|
||||
BitmapCropTask cropTask = new BitmapCropTask(
|
||||
@@ -319,7 +315,7 @@ public class WallpaperCropActivity extends Activity implements Handler.Callback
|
||||
// this device
|
||||
int rotation = BitmapUtils.getRotationFromExif(res, resId);
|
||||
Point inSize = mCropView.getSourceDimensions();
|
||||
Point outSize = BitmapUtils.getDefaultWallpaperSize(getResources(),
|
||||
Point outSize = WallpaperUtils.getDefaultWallpaperSize(getResources(),
|
||||
getWindowManager());
|
||||
RectF crop = Utils.getMaxCropRect(
|
||||
inSize.x, inSize.y, outSize.x, outSize.y, false);
|
||||
@@ -352,7 +348,7 @@ public class WallpaperCropActivity extends Activity implements Handler.Callback
|
||||
d.getSize(displaySize);
|
||||
boolean isPortrait = displaySize.x < displaySize.y;
|
||||
|
||||
Point defaultWallpaperSize = BitmapUtils.getDefaultWallpaperSize(getResources(),
|
||||
Point defaultWallpaperSize = WallpaperUtils.getDefaultWallpaperSize(getResources(),
|
||||
getWindowManager());
|
||||
// Get the crop
|
||||
RectF cropRect = mCropView.getCrop();
|
||||
@@ -435,7 +431,7 @@ public class WallpaperCropActivity extends Activity implements Handler.Callback
|
||||
}
|
||||
|
||||
protected void updateWallpaperDimensions(int width, int height) {
|
||||
String spKey = getSharedPreferencesKey();
|
||||
String spKey = LauncherFiles.WALLPAPER_CROP_PREFERENCES_KEY;
|
||||
SharedPreferences sp = getSharedPreferences(spKey, Context.MODE_MULTI_PROCESS);
|
||||
SharedPreferences.Editor editor = sp.edit();
|
||||
if (width != 0 && height != 0) {
|
||||
@@ -446,36 +442,10 @@ public class WallpaperCropActivity extends Activity implements Handler.Callback
|
||||
editor.remove(WALLPAPER_HEIGHT_KEY);
|
||||
}
|
||||
editor.commit();
|
||||
|
||||
suggestWallpaperDimension(getResources(),
|
||||
WallpaperUtils.suggestWallpaperDimension(getResources(),
|
||||
sp, getWindowManager(), WallpaperManager.getInstance(this), true);
|
||||
}
|
||||
|
||||
public static void suggestWallpaperDimension(Resources res,
|
||||
final SharedPreferences sharedPrefs,
|
||||
WindowManager windowManager,
|
||||
final WallpaperManager wallpaperManager, boolean fallBackToDefaults) {
|
||||
final Point defaultWallpaperSize = BitmapUtils.getDefaultWallpaperSize(res, windowManager);
|
||||
// If we have saved a wallpaper width/height, use that instead
|
||||
|
||||
int savedWidth = sharedPrefs.getInt(WALLPAPER_WIDTH_KEY, -1);
|
||||
int savedHeight = sharedPrefs.getInt(WALLPAPER_HEIGHT_KEY, -1);
|
||||
|
||||
if (savedWidth == -1 || savedHeight == -1) {
|
||||
if (!fallBackToDefaults) {
|
||||
return;
|
||||
} else {
|
||||
savedWidth = defaultWallpaperSize.x;
|
||||
savedHeight = defaultWallpaperSize.y;
|
||||
}
|
||||
}
|
||||
|
||||
if (savedWidth != wallpaperManager.getDesiredMinimumWidth() ||
|
||||
savedHeight != wallpaperManager.getDesiredMinimumHeight()) {
|
||||
wallpaperManager.suggestDesiredDimensions(savedWidth, savedHeight);
|
||||
}
|
||||
}
|
||||
|
||||
static class LoadRequest {
|
||||
BitmapSource src;
|
||||
boolean touchEnabled;
|
||||
|
||||
@@ -71,6 +71,7 @@ import com.android.gallery3d.common.BitmapCropTask;
|
||||
import com.android.gallery3d.common.BitmapUtils;
|
||||
import com.android.gallery3d.common.Utils;
|
||||
import com.android.launcher3.util.Thunk;
|
||||
import com.android.launcher3.util.WallpaperUtils;
|
||||
import com.android.photos.BitmapRegionTileSource;
|
||||
import com.android.photos.BitmapRegionTileSource.BitmapSource;
|
||||
import com.android.photos.views.TiledImageRenderer.TileSource;
|
||||
@@ -239,7 +240,7 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
|
||||
|
||||
@Override
|
||||
public float getScale(TileSource src) {
|
||||
Point wallpaperSize = BitmapUtils.getDefaultWallpaperSize(
|
||||
Point wallpaperSize = WallpaperUtils.getDefaultWallpaperSize(
|
||||
a.getResources(), a.getWindowManager());
|
||||
RectF crop = Utils.getMaxCropRect(
|
||||
src.getImageWidth(), src.getImageHeight(),
|
||||
@@ -1109,9 +1110,12 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
|
||||
return view;
|
||||
}
|
||||
|
||||
// In Launcher3, we override this with a method that catches exceptions
|
||||
// from starting activities; didn't want to copy and paste code into here
|
||||
public void startActivityForResultSafely(Intent intent, int requestCode) {
|
||||
startActivityForResult(intent, requestCode);
|
||||
Utilities.startActivityForResultSafely(this, intent, requestCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean enableRotation() {
|
||||
return Utilities.isRotationEnabled(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2409,13 +2409,6 @@ public class Launcher extends Activity
|
||||
sFolders.remove(folder.id);
|
||||
}
|
||||
|
||||
protected ComponentName getWallpaperPickerComponent() {
|
||||
if (mLauncherCallbacks != null) {
|
||||
return mLauncherCallbacks.getWallpaperPickerComponent();
|
||||
}
|
||||
return new ComponentName(getPackageName(), LauncherWallpaperPickerActivity.class.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers various content observers. The current implementation registers
|
||||
* only a favorites observer to keep track of the favorites applications.
|
||||
@@ -2780,9 +2773,8 @@ public class Launcher extends Activity
|
||||
*/
|
||||
protected void onClickWallpaperPicker(View v) {
|
||||
if (LOGD) Log.d(TAG, "onClickWallpaperPicker");
|
||||
final Intent pickWallpaper = new Intent(Intent.ACTION_SET_WALLPAPER);
|
||||
pickWallpaper.setComponent(getWallpaperPickerComponent());
|
||||
startActivityForResult(pickWallpaper, REQUEST_PICK_WALLPAPER);
|
||||
startActivityForResult(new Intent(Intent.ACTION_SET_WALLPAPER).setPackage(getPackageName()),
|
||||
REQUEST_PICK_WALLPAPER);
|
||||
|
||||
if (mLauncherCallbacks != null) {
|
||||
mLauncherCallbacks.onClickWallpaperPicker(v);
|
||||
|
||||
@@ -20,7 +20,8 @@ public class LauncherFiles {
|
||||
public static final String LAUNCHER_PREFERENCES = "launcher.preferences";
|
||||
public static final String SHARED_PREFERENCES_KEY = "com.android.launcher3.prefs";
|
||||
public static final String WALLPAPER_CROP_PREFERENCES_KEY =
|
||||
WallpaperCropActivity.class.getName();
|
||||
"com.android.launcher3.WallpaperCropActivity";
|
||||
|
||||
public static final String WALLPAPER_IMAGES_DB = "saved_wallpaper_images.db";
|
||||
public static final String WIDGET_PREVIEWS_DB = "widgetpreviews.db";
|
||||
public static final String APP_ICONS_DB = "app_icons.db";
|
||||
|
||||
@@ -70,6 +70,7 @@ import com.android.launcher3.compat.PackageInstallerCompat;
|
||||
import com.android.launcher3.compat.PackageInstallerCompat.PackageInstallInfo;
|
||||
import com.android.launcher3.compat.UserHandleCompat;
|
||||
import com.android.launcher3.util.Thunk;
|
||||
import com.android.launcher3.util.WallpaperUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -1314,10 +1315,10 @@ public class Workspace extends SmoothPagedView
|
||||
protected void setWallpaperDimension() {
|
||||
new AsyncTask<Void, Void, Void>() {
|
||||
public Void doInBackground(Void ... args) {
|
||||
String spKey = WallpaperCropActivity.getSharedPreferencesKey();
|
||||
String spKey = LauncherFiles.WALLPAPER_CROP_PREFERENCES_KEY;
|
||||
SharedPreferences sp =
|
||||
mLauncher.getSharedPreferences(spKey, Context.MODE_MULTI_PROCESS);
|
||||
LauncherWallpaperPickerActivity.suggestWallpaperDimension(mLauncher.getResources(),
|
||||
WallpaperUtils.suggestWallpaperDimension(mLauncher.getResources(),
|
||||
sp, mLauncher.getWindowManager(), mWallpaperManager,
|
||||
mLauncher.overrideWallpaperDimensions());
|
||||
return null;
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3.util;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.WallpaperManager;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Point;
|
||||
import android.os.Build;
|
||||
import android.view.WindowManager;
|
||||
|
||||
/**
|
||||
* Utility methods for wallpaper management.
|
||||
*/
|
||||
public final class WallpaperUtils {
|
||||
|
||||
public static final String WALLPAPER_WIDTH_KEY = "wallpaper.width";
|
||||
public static final String WALLPAPER_HEIGHT_KEY = "wallpaper.height";
|
||||
public static final float WALLPAPER_SCREENS_SPAN = 2f;
|
||||
|
||||
public static void suggestWallpaperDimension(Resources res,
|
||||
final SharedPreferences sharedPrefs,
|
||||
WindowManager windowManager,
|
||||
final WallpaperManager wallpaperManager, boolean fallBackToDefaults) {
|
||||
final Point defaultWallpaperSize = WallpaperUtils.getDefaultWallpaperSize(res, windowManager);
|
||||
// If we have saved a wallpaper width/height, use that instead
|
||||
|
||||
int savedWidth = sharedPrefs.getInt(WALLPAPER_WIDTH_KEY, -1);
|
||||
int savedHeight = sharedPrefs.getInt(WALLPAPER_HEIGHT_KEY, -1);
|
||||
|
||||
if (savedWidth == -1 || savedHeight == -1) {
|
||||
if (!fallBackToDefaults) {
|
||||
return;
|
||||
} else {
|
||||
savedWidth = defaultWallpaperSize.x;
|
||||
savedHeight = defaultWallpaperSize.y;
|
||||
}
|
||||
}
|
||||
|
||||
if (savedWidth != wallpaperManager.getDesiredMinimumWidth() ||
|
||||
savedHeight != wallpaperManager.getDesiredMinimumHeight()) {
|
||||
wallpaperManager.suggestDesiredDimensions(savedWidth, savedHeight);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* As a ratio of screen height, the total distance we want the parallax effect to span
|
||||
* horizontally
|
||||
*/
|
||||
public static float wallpaperTravelToScreenWidthRatio(int width, int height) {
|
||||
float aspectRatio = width / (float) height;
|
||||
|
||||
// At an aspect ratio of 16/10, the wallpaper parallax effect should span 1.5 * screen width
|
||||
// At an aspect ratio of 10/16, the wallpaper parallax effect should span 1.2 * screen width
|
||||
// We will use these two data points to extrapolate how much the wallpaper parallax effect
|
||||
// to span (ie travel) at any aspect ratio:
|
||||
|
||||
final float ASPECT_RATIO_LANDSCAPE = 16/10f;
|
||||
final float ASPECT_RATIO_PORTRAIT = 10/16f;
|
||||
final float WALLPAPER_WIDTH_TO_SCREEN_RATIO_LANDSCAPE = 1.5f;
|
||||
final float WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT = 1.2f;
|
||||
|
||||
// To find out the desired width at different aspect ratios, we use the following two
|
||||
// formulas, where the coefficient on x is the aspect ratio (width/height):
|
||||
// (16/10)x + y = 1.5
|
||||
// (10/16)x + y = 1.2
|
||||
// We solve for x and y and end up with a final formula:
|
||||
final float x =
|
||||
(WALLPAPER_WIDTH_TO_SCREEN_RATIO_LANDSCAPE - WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT) /
|
||||
(ASPECT_RATIO_LANDSCAPE - ASPECT_RATIO_PORTRAIT);
|
||||
final float y = WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT - x * ASPECT_RATIO_PORTRAIT;
|
||||
return x * aspectRatio + y;
|
||||
}
|
||||
|
||||
private static Point sDefaultWallpaperSize;
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
public static Point getDefaultWallpaperSize(Resources res, WindowManager windowManager) {
|
||||
if (sDefaultWallpaperSize == null) {
|
||||
Point minDims = new Point();
|
||||
Point maxDims = new Point();
|
||||
windowManager.getDefaultDisplay().getCurrentSizeRange(minDims, maxDims);
|
||||
|
||||
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) {
|
||||
Point realSize = new Point();
|
||||
windowManager.getDefaultDisplay().getRealSize(realSize);
|
||||
maxDim = Math.max(realSize.x, realSize.y);
|
||||
minDim = Math.min(realSize.x, realSize.y);
|
||||
}
|
||||
|
||||
// We need to ensure that there is enough extra space in the wallpaper
|
||||
// for the intended parallax effects
|
||||
final int defaultWidth, defaultHeight;
|
||||
if (res.getConfiguration().smallestScreenWidthDp >= 720) {
|
||||
defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
|
||||
defaultHeight = maxDim;
|
||||
} else {
|
||||
defaultWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);
|
||||
defaultHeight = maxDim;
|
||||
}
|
||||
sDefaultWallpaperSize = new Point(defaultWidth, defaultHeight);
|
||||
}
|
||||
return sDefaultWallpaperSize;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user