[android] Fix Canvas.quickReject() crash on API 15

Also tidy android.os.Build refs
Fixes #2976
This commit is contained in:
Leith Bade
2015-11-09 21:33:30 +11:00
parent 83cf2197fa
commit 1a68241bb0
3 changed files with 7 additions and 5 deletions

View File

@@ -35,7 +35,7 @@ public final class SpriteFactory {
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) mMapView.getContext().getSystemService(Context.WINDOW_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
realMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getRealMetrics(realMetrics);
}

View File

@@ -617,7 +617,7 @@ public final class MapView extends FrameLayout {
.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.getMemoryInfo(memoryInfo);
long maxMemory = memoryInfo.availMem;
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
maxMemory = memoryInfo.totalMem;
}
mNativeMapView = new

View File

@@ -227,8 +227,10 @@ final class UserLocationView extends View {
RectF dotBounds = mShowDirection ? mUserLocationBearingDrawableBoundsF : mUserLocationDrawableBoundsF;
dotBounds = mStaleMarker ? mUserLocationStaleDrawableBoundsF : dotBounds;
boolean willDraw =
mShowAccuracy && !mStaleMarker && !canvas.quickReject(mAccuracyPath, Canvas.EdgeType.AA);
boolean willDraw = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN || !canvas.isHardwareAccelerated()) {
willDraw = mShowAccuracy && !mStaleMarker && !canvas.quickReject(mAccuracyPath, Canvas.EdgeType.AA);
}
willDraw |= !canvas.quickReject(dotBounds, Canvas.EdgeType.AA);
if (willDraw) {
@@ -463,7 +465,7 @@ final class UserLocationView extends View {
private boolean isStale(Location location) {
if (location != null) {
long ageInNanos;
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
ageInNanos = SystemClock.elapsedRealtimeNanos() -
location.getElapsedRealtimeNanos();
} else {