From 9f2158f094c8ab1c8911398d07bcdc68f00eebbf Mon Sep 17 00:00:00 2001 From: Andy2 Date: Tue, 1 Nov 2011 18:43:36 -0700 Subject: [PATCH] add dict_getStartsWith to jni --- xwords4/android/XWords4/jni/xwjni.c | 22 +++++++++++++++++++ .../org/eehouse/android/xw4/jni/XwJNI.java | 2 ++ 2 files changed, 24 insertions(+) diff --git a/xwords4/android/XWords4/jni/xwjni.c b/xwords4/android/XWords4/jni/xwjni.c index ccc1097f2..df71a3ace 100644 --- a/xwords4/android/XWords4/jni/xwjni.c +++ b/xwords4/android/XWords4/jni/xwjni.c @@ -1455,4 +1455,26 @@ Java_org_eehouse_android_xw4_jni_XwJNI_dict_1iter_1nthWord } return result; } + +JNIEXPORT jint JNICALL +Java_org_eehouse_android_xw4_jni_XwJNI_dict_1iter_1getStartsWith +( JNIEnv* env, jclass C, jint closure, jstring jprefix ) +{ + jint result = -1; + DictIterData* data = (DictIterData*)closure; + if ( NULL != data ) { + Tile tiles[MAX_COLS]; + XP_U16 nTiles = VSIZE(tiles); + const char* prefix = (*env)->GetStringUTFChars( env, jprefix, NULL ); + if ( dict_tilesForString( data->dict, prefix, tiles, &nTiles ) ) { + IndexData* idata = NULL; + DictPosition pos = dict_getStartsWith( data->dict, idata, tiles, + nTiles ); + result = pos; + } + (*env)->ReleaseStringUTFChars( env, jprefix, prefix ); + } + return result; +} + #endif /* XWFEATURE_BOARDWORDS */ diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/XwJNI.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/XwJNI.java index 613300669..ad3299826 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/XwJNI.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/XwJNI.java @@ -244,4 +244,6 @@ public class XwJNI { public static native void dict_iter_makeIndex( int closure ); public static native String[] dict_iter_getPrefixes( int closure ); public static native int[] dict_iter_getIndices( int closure ); + public static native int dict_iter_getStartsWith( int closure, + String prefix ); }