Merge "Increase char limit for message"
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 28dabf6..4973a99 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -129,9 +129,6 @@
     <!-- Description for option to enable auto capitalization of sentences -->
     <string name="auto_cap_summary">Capitalize the first word of each sentence</string>
 
-    <!-- Option to edit personal dictionary. [CHAR_LIMIT=30]-->
-    <string name="edit_personal_dictionary">Personal dictionary</string>
-
     <!-- Option to configure dictionaries -->
     <string name="configure_dictionaries_title">Add-on dictionaries</string>
     <!-- Name of the main dictionary, as opposed to auxiliary dictionaries (medical/entertainment/sports...) -->
diff --git a/java/res/xml/prefs_screen_correction.xml b/java/res/xml/prefs_screen_correction.xml
index a943dc1..d3f5c26 100644
--- a/java/res/xml/prefs_screen_correction.xml
+++ b/java/res/xml/prefs_screen_correction.xml
@@ -20,11 +20,6 @@
     android:title="@string/settings_screen_correction"
     android:key="screen_correction">
     <PreferenceScreen
-        android:key="edit_personal_dictionary"
-        android:title="@string/edit_personal_dictionary">
-        <intent android:action="android.settings.USER_DICTIONARY_SETTINGS" />
-    </PreferenceScreen>
-    <PreferenceScreen
         android:key="configure_dictionaries_key"
         android:title="@string/configure_dictionaries_title">
         <intent
diff --git a/java/src/com/android/inputmethod/latin/DictionaryStats.java b/java/src/com/android/inputmethod/latin/DictionaryStats.java
index a6b37aa..1976971 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryStats.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryStats.java
@@ -20,28 +20,32 @@
 import java.math.BigDecimal;
 import java.util.Locale;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public class DictionaryStats {
     public static final int NOT_AN_ENTRY_COUNT = -1;
 
     public final Locale mLocale;
-    public final String mDictName;
-    public final String mDictFilePath;
+    public final String mDictType;
+    public final String mDictFileName;
     public final long mDictFileSize;
     public final int mContentVersion;
 
-    public DictionaryStats(final Locale locale, final String dictName, final File dictFile,
+    public DictionaryStats(
+            @Nonnull final Locale locale,
+            @Nonnull final String dictType,
+            @Nonnull final String dictFileName,
+            @Nullable final File dictFile,
             final int contentVersion) {
         mLocale = locale;
-        mDictName = dictName;
-        mDictFilePath = (dictFile == null) ? null : dictFile.getName();
+        mDictType = dictType;
         mDictFileSize = (dictFile == null || !dictFile.exists()) ? 0 : dictFile.length();
+        mDictFileName = dictFileName;
         mContentVersion = contentVersion;
     }
 
     public String getFileSizeString() {
-        if (mDictFileSize == 0) {
-            return "0";
-        }
         BigDecimal bytes = new BigDecimal(mDictFileSize);
         BigDecimal kb = bytes.divide(new BigDecimal(1024), 2, BigDecimal.ROUND_HALF_UP);
         if (kb.longValue() == 0) {
@@ -56,14 +60,14 @@
 
     @Override
     public String toString() {
-        final StringBuilder builder = new StringBuilder(mDictName);
-        if (mDictName.equals(Dictionary.TYPE_MAIN)) {
+        final StringBuilder builder = new StringBuilder(mDictType);
+        if (mDictType.equals(Dictionary.TYPE_MAIN)) {
             builder.append(" (");
             builder.append(mContentVersion);
             builder.append(")");
         }
         builder.append(": ");
-        builder.append(mDictFilePath);
+        builder.append(mDictFileName);
         builder.append(" / ");
         builder.append(getFileSizeString());
         return builder.toString();
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index 1ef7061..37899d2 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -654,7 +654,7 @@
         asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() {
             @Override
             public void run() {
-                result.set(new DictionaryStats(mLocale, dictName, dictFile, 0));
+                result.set(new DictionaryStats(mLocale, dictName, dictName, dictFile, 0));
             }
         });
         return result.get(null /* defaultValue */, TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS);
diff --git a/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java
index 62834cd..aa73a9a 100644
--- a/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java
@@ -16,29 +16,20 @@
 
 package com.android.inputmethod.latin.settings;
 
-import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
-import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.os.Build;
 import android.os.Bundle;
 import android.preference.Preference;
-import android.preference.TwoStatePreference;
 
 import com.android.inputmethod.dictionarypack.DictionarySettingsActivity;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.userdictionary.UserDictionaryList;
-import com.android.inputmethod.latin.userdictionary.UserDictionarySettings;
-
-import java.util.TreeSet;
 
 /**
  * "Text correction" settings sub screen.
  *
  * This settings sub screen handles the following text correction preferences.
- * - Personal dictionary
  * - Add-on dictionaries
  * - Block offensive words
  * - Auto-correction
@@ -68,39 +59,5 @@
         if (0 >= number) {
             removePreference(Settings.PREF_CONFIGURE_DICTIONARIES_KEY);
         }
-
-        final Preference editPersonalDictionary =
-                findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY);
-        final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent();
-        final ResolveInfo ri = USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS ? null
-                : pm.resolveActivity(
-                        editPersonalDictionaryIntent, PackageManager.MATCH_DEFAULT_ONLY);
-        if (ri == null) {
-            overwriteUserDictionaryPreference(editPersonalDictionary);
-        }
-    }
-
-    private void overwriteUserDictionaryPreference(final Preference userDictionaryPreference) {
-        final Activity activity = getActivity();
-        final TreeSet<String> localeList = UserDictionaryList.getUserDictionaryLocalesSet(activity);
-        if (null == localeList) {
-            // The locale list is null if and only if the user dictionary service is
-            // not present or disabled. In this case we need to remove the preference.
-            getPreferenceScreen().removePreference(userDictionaryPreference);
-        } else if (localeList.size() <= 1) {
-            userDictionaryPreference.setFragment(UserDictionarySettings.class.getName());
-            // If the size of localeList is 0, we don't set the locale parameter in the
-            // extras. This will be interpreted by the UserDictionarySettings class as
-            // meaning "the current locale".
-            // Note that with the current code for UserDictionaryList#getUserDictionaryLocalesSet()
-            // the locale list always has at least one element, since it always includes the current
-            // locale explicitly. @see UserDictionaryList.getUserDictionaryLocalesSet().
-            if (localeList.size() == 1) {
-                final String locale = (String)localeList.toArray()[0];
-                userDictionaryPreference.getExtras().putString("locale", locale);
-            }
-        } else {
-            userDictionaryPreference.setFragment(UserDictionaryList.class.getName());
-        }
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java
index 715f7bb..e9645ee 100644
--- a/java/src/com/android/inputmethod/latin/settings/Settings.java
+++ b/java/src/com/android/inputmethod/latin/settings/Settings.java
@@ -55,7 +55,6 @@
     // PREF_VOICE_MODE_OBSOLETE is obsolete. Use PREF_VOICE_INPUT_KEY instead.
     public static final String PREF_VOICE_MODE_OBSOLETE = "voice_mode";
     public static final String PREF_VOICE_INPUT_KEY = "pref_voice_input_key";
-    public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary";
     public static final String PREF_CONFIGURE_DICTIONARIES_KEY = "configure_dictionaries_key";
     // PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE is obsolete. Use PREF_AUTO_CORRECTION instead.
     public static final String PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE =