Merge "Adds version for LangId model." into oc-dev am: 62600cdd72
am: f7091ebcb7

Change-Id: Ifda679d870e8b516c52c2673eefa2f13aa39b69c
diff --git a/lang_id/lang-id.cc b/lang_id/lang-id.cc
index ee0958e..d4507e6 100644
--- a/lang_id/lang-id.cc
+++ b/lang_id/lang-id.cc
@@ -137,6 +137,7 @@
         context.Get("reliability_thresh", kDefaultProbabilityThreshold);
     min_text_size_in_bytes_ =
         context.Get("min_text_size_in_bytes", kDefaultMinTextSizeInBytes);
+    version_ = context.Get("version", 0);
 
     if (!lang_id_brain_interface_.Init(&context)) {
       return;
@@ -213,6 +214,8 @@
 
   bool is_valid() const { return valid_; }
 
+  int version() const { return version_; }
+
  private:
   // Returns name of the (in-memory) file for the indicated TaskInput from
   // context.
@@ -338,6 +341,9 @@
   // confidence score.
   int min_text_size_in_bytes_ = kDefaultMinTextSizeInBytes;
 
+  // Version of the model.
+  int version_ = -1;
+
   // Known languages: softmax label i (an integer) means languages_.element(i)
   // (something like "en", "fr", "ru", etc).
   ListOfStrings languages_;
@@ -387,6 +393,8 @@
 
 bool LangId::is_valid() const { return pimpl_->is_valid(); }
 
+int LangId::version() const { return pimpl_->version(); }
+
 }  // namespace lang_id
 }  // namespace nlp_core
 }  // namespace libtextclassifier
diff --git a/lang_id/lang-id.h b/lang_id/lang-id.h
index d0315c8..7e4f6d1 100644
--- a/lang_id/lang-id.h
+++ b/lang_id/lang-id.h
@@ -88,6 +88,9 @@
   // constructor above.
   bool is_valid() const;
 
+  // Returns version number for the model.
+  int version() const;
+
  private:
   // Returns a vector of probabilities of languages of the text.
   std::vector<float> ScoreLanguages(const std::string &text) const;
diff --git a/textclassifier_jni.cc b/textclassifier_jni.cc
index 4ce08a0..4cb4af5 100644
--- a/textclassifier_jni.cc
+++ b/textclassifier_jni.cc
@@ -49,12 +49,12 @@
 
 JNIEXPORT jstring JNICALL
 Java_android_view_textclassifier_SmartSelection_nativeGetLanguage(JNIEnv* env,
-                                                                  jobject thiz,
+                                                                  jobject clazz,
                                                                   jint fd);
 
 JNIEXPORT jint JNICALL
 Java_android_view_textclassifier_SmartSelection_nativeGetVersion(JNIEnv* env,
-                                                                 jobject thiz,
+                                                                 jobject clazz,
                                                                  jint fd);
 
 // LangId.
@@ -70,6 +70,9 @@
 JNIEXPORT void JNICALL Java_android_view_textclassifier_LangId_nativeClose(
     JNIEnv* env, jobject thiz, jlong ptr);
 
+JNIEXPORT int JNICALL Java_android_view_textclassifier_LangId_nativeGetVersion(
+    JNIEnv* env, jobject clazz, jint fd);
+
 #ifdef __cplusplus
 }
 #endif
@@ -236,3 +239,9 @@
   LangId* lang_id = reinterpret_cast<LangId*>(ptr);
   delete lang_id;
 }
+
+JNIEXPORT int JNICALL Java_android_view_textclassifier_LangId_nativeGetVersion(
+    JNIEnv* env, jobject clazz, jint fd) {
+  std::unique_ptr<LangId> lang_id(new LangId(fd));
+  return lang_id->version();
+}