DicTraverseSession.java revision c4e4dfe17dd60d200b851d228ce718543900a1fc
1f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright/* 2f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * Copyright (C) 2012, The Android Open Source Project 3f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * 4f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * Licensed under the Apache License, Version 2.0 (the "License"); 5f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * you may not use this file except in compliance with the License. 6f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * You may obtain a copy of the License at 7f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * 8f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * http://www.apache.org/licenses/LICENSE-2.0 9f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * 10f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * Unless required by applicable law or agreed to in writing, software 11f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * distributed under the License is distributed on an "AS IS" BASIS, 12f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * See the License for the specific language governing permissions and 14f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * limitations under the License. 15f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright */ 16f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 17f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wrightpackage com.android.inputmethod.latin; 18f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 19f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wrightimport java.util.Locale; 20f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 21f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wrightpublic class DicTraverseSession { 22f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright static { 23f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright JniUtils.loadNativeLibrary(); 24f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright } 25f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 26f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright private long mNativeDicTraverseSession; 27f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 28f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright public DicTraverseSession(Locale locale) { 29f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright mNativeDicTraverseSession = createNativeDicTraverseSession( 30f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright locale != null ? locale.toString() : ""); 31f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright } 32f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 33f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright private native long setDicTraverseSessionNative(String locale); 34f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright private native void releaseDicTraverseSessionNative(long nativeDicTraverseSession); 35f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 36 private final long createNativeDicTraverseSession(String locale) { 37 return setDicTraverseSessionNative(locale); 38 } 39 40 private void closeInternal() { 41 if (mNativeDicTraverseSession != 0) { 42 releaseDicTraverseSessionNative(mNativeDicTraverseSession); 43 mNativeDicTraverseSession = 0; 44 } 45 } 46 47 public void close() { 48 closeInternal(); 49 } 50 51 @Override 52 protected void finalize() throws Throwable { 53 try { 54 closeInternal(); 55 } finally { 56 super.finalize(); 57 } 58 } 59} 60