Legal notice

Bug: 8533258
Change-Id: I00e4916f86f29dd476c51a65e8fa5a6c136fd179
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 10cfc78..1152063 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -554,4 +554,7 @@
 
     <!-- The text of the toast warning a download is starting automatically to enable suggestions for the selected language [CHAR LIMIT=100] -->
     <string name="toast_downloading_suggestions">Downloading: suggestions for <xliff:g id="language" example="English">%1$s</xliff:g> will be ready soon.</string>
+
+    <!-- Version text [CHAR LIMIT=30]-->
+    <string name="version_text">Version <xliff:g id="version_number" example="1.0.1864.643521">%1$s</xliff:g></string>
 </resources>
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index 1581e5f..22ae51d 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -182,6 +182,8 @@
             android:key="send_feedback"
             android:title="@string/send_feedback" />
         <PreferenceScreen
+            android:key="about_keyboard" />
+        <PreferenceScreen
             android:key="debug_settings"
             android:title="Debug settings"
             android:persistent="true"
diff --git a/java/src/com/android/inputmethod/latin/DebugSettings.java b/java/src/com/android/inputmethod/latin/DebugSettings.java
index c2aade6..9d47941 100644
--- a/java/src/com/android/inputmethod/latin/DebugSettings.java
+++ b/java/src/com/android/inputmethod/latin/DebugSettings.java
@@ -121,18 +121,8 @@
             return;
         }
         boolean isDebugMode = mDebugMode.isChecked();
-        String version = "";
-        try {
-            final Context context = getActivity();
-            if (context == null) {
-                return;
-            }
-            final String packageName = context.getPackageName();
-            PackageInfo info = context.getPackageManager().getPackageInfo(packageName, 0);
-            version = "Version " + info.versionName;
-        } catch (NameNotFoundException e) {
-            Log.e(TAG, "Could not find version info.");
-        }
+        final String version = getResources().getString(
+                R.string.version_text, Utils.getSdkVersion(getActivity()));
         if (!isDebugMode) {
             mDebugMode.setTitle(version);
             mDebugMode.setSummary("");
diff --git a/java/src/com/android/inputmethod/latin/FeedbackUtils.java b/java/src/com/android/inputmethod/latin/FeedbackUtils.java
index 1e5260e..0582763 100644
--- a/java/src/com/android/inputmethod/latin/FeedbackUtils.java
+++ b/java/src/com/android/inputmethod/latin/FeedbackUtils.java
@@ -17,6 +17,7 @@
 package com.android.inputmethod.latin;
 
 import android.content.Context;
+import android.content.Intent;
 
 public class FeedbackUtils {
     public static boolean isFeedbackFormSupported() {
@@ -25,4 +26,12 @@
 
     public static void showFeedbackForm(Context context) {
     }
+
+    public static int getAboutKeyboardTitleResId() {
+        return 0;
+    }
+
+    public static Intent getAboutKeyboardIntent(Context context) {
+        return null;
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 72e0870..04be1c9 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -78,6 +78,7 @@
             "pref_suppress_language_switch_key";
 
     public static final String PREF_SEND_FEEDBACK = "send_feedback";
+    public static final String PREF_ABOUT_KEYBOARD = "about_keyboard";
 
     private Resources mRes;
     private SharedPreferences mPrefs;
diff --git a/java/src/com/android/inputmethod/latin/SettingsFragment.java b/java/src/com/android/inputmethod/latin/SettingsFragment.java
index 79036c2..2e41368 100644
--- a/java/src/com/android/inputmethod/latin/SettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/SettingsFragment.java
@@ -113,6 +113,7 @@
         }
 
         final Preference feedbackSettings = findPreference(Settings.PREF_SEND_FEEDBACK);
+        final Preference aboutSettings = findPreference(Settings.PREF_ABOUT_KEYBOARD);
         if (feedbackSettings != null) {
             if (FeedbackUtils.isFeedbackFormSupported()) {
                 feedbackSettings.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@@ -122,8 +123,11 @@
                         return true;
                     }
                 });
+                aboutSettings.setTitle(FeedbackUtils.getAboutKeyboardTitleResId());
+                aboutSettings.setIntent(FeedbackUtils.getAboutKeyboardIntent(getActivity()));
             } else {
                 miscSettings.removePreference(feedbackSettings);
+                miscSettings.removePreference(aboutSettings);
             }
         }
 
diff --git a/java/src/com/android/inputmethod/latin/Utils.java b/java/src/com/android/inputmethod/latin/Utils.java
index aff5d17..fc32bd4 100644
--- a/java/src/com/android/inputmethod/latin/Utils.java
+++ b/java/src/com/android/inputmethod/latin/Utils.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.inputmethodservice.InputMethodService;
@@ -473,4 +474,18 @@
         }
         return 0;
     }
+
+    public static String getSdkVersion(Context context) {
+        try {
+            if (context == null) {
+                return "";
+            }
+            final String packageName = context.getPackageName();
+            PackageInfo info = context.getPackageManager().getPackageInfo(packageName, 0);
+            return info.versionName;
+        } catch (NameNotFoundException e) {
+            Log.e(TAG, "Could not find version info.", e);
+        }
+        return "";
+    }
 }