mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-09 22:00:39 +01:00
use sdk 28 for real
requires dropping junit Assert and accessing an old Canvas method via reflection.
This commit is contained in:
parent
bf37ab0fc1
commit
06b6afe612
4 changed files with 34 additions and 4 deletions
|
@ -36,7 +36,7 @@ android {
|
||||||
buildToolsVersion '27.0.3'
|
buildToolsVersion '27.0.3'
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 14
|
minSdkVersion 14
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28 // must match ../build.gradle
|
||||||
versionCode VERSION_CODE_BASE
|
versionCode VERSION_CODE_BASE
|
||||||
versionName VERSION_NAME
|
versionName VERSION_NAME
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class Assert {
|
||||||
if (! val) {
|
if (! val) {
|
||||||
Log.e( TAG, "firing assert!" );
|
Log.e( TAG, "firing assert!" );
|
||||||
DbgUtils.printStack( TAG );
|
DbgUtils.printStack( TAG );
|
||||||
junit.framework.Assert.fail();
|
assert false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,9 @@ import android.graphics.Rect;
|
||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.os.Build;
|
||||||
|
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -574,6 +576,34 @@ public class BoardCanvas extends Canvas implements DrawCtx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Method sSaveMethod;
|
||||||
|
private void saveImpl( Rect rect )
|
||||||
|
{
|
||||||
|
if ( Build.VERSION.SDK_INT >= 21 ) {
|
||||||
|
saveLayer( new RectF(rect), null );
|
||||||
|
} else {
|
||||||
|
if ( null == sSaveMethod ) {
|
||||||
|
try {
|
||||||
|
Class<?> cls = Class.forName("android.graphics.Canvas");
|
||||||
|
sSaveMethod = cls.getDeclaredMethod( "save", new Class[] {int.class} );
|
||||||
|
} catch ( NoSuchMethodException | ClassNotFoundException ex ) {
|
||||||
|
Log.e( TAG, "%s", ex );
|
||||||
|
Assert.fail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final int CLIP_SAVE_FLAG = 0x02;
|
||||||
|
try {
|
||||||
|
sSaveMethod.invoke( this, CLIP_SAVE_FLAG );
|
||||||
|
Log.d( TAG, "saveImpl() worked" );
|
||||||
|
} catch ( java.lang.reflect.InvocationTargetException
|
||||||
|
| IllegalAccessException ex ) {
|
||||||
|
Log.e( TAG, "%s", ex );
|
||||||
|
Assert.fail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean drawTileImpl( Rect rect, String text, int val,
|
private boolean drawTileImpl( Rect rect, String text, int val,
|
||||||
int flags, boolean clearBack )
|
int flags, boolean clearBack )
|
||||||
{
|
{
|
||||||
|
@ -583,7 +613,7 @@ public class BoardCanvas extends Canvas implements DrawCtx {
|
||||||
boolean notEmpty = (flags & CELL_ISEMPTY) == 0;
|
boolean notEmpty = (flags & CELL_ISEMPTY) == 0;
|
||||||
boolean isCursor = (flags & CELL_ISCURSOR) != 0;
|
boolean isCursor = (flags & CELL_ISCURSOR) != 0;
|
||||||
|
|
||||||
save( Canvas.CLIP_SAVE_FLAG );
|
saveImpl( rect );
|
||||||
rect.top += 1;
|
rect.top += 1;
|
||||||
clipRect( rect );
|
clipRect( rect );
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ subprojects {
|
||||||
afterEvaluate {project ->
|
afterEvaluate {project ->
|
||||||
if (project.hasProperty("android")) {
|
if (project.hasProperty("android")) {
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 26
|
compileSdkVersion 28 // must match app/build.gradle
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue