Browse Source

Fix #11 Add Keyboard setting button

isundil 7 years ago
parent
commit
d7f0b06ccf

+ 22 - 8
app/src/main/java/info/knacki/pass/settings/ui/SettingsActivity.java

@@ -25,6 +25,8 @@ import android.support.v7.app.ActionBar;
 import android.util.SparseArray;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.inputmethod.InputMethodInfo;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.Toast;
 
 import java.io.ByteArrayInputStream;
@@ -137,8 +139,9 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
                 || PasswordPreferenceFragment.class.getName().equals(fragmentName);
     }
 
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
     public static class GeneralPreferenceFragment extends PreferenceFragment {
+        public static final String INPUT_METHOD_SETTINGS = "android.settings.INPUT_METHOD_SETTINGS";
+
         @Override
         public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
@@ -146,11 +149,17 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
             setHasOptionsMenu(true);
 
             findPreference(getResources().getString(R.string.id_softSettings)).setOnPreferenceClickListener(preference -> {
-                //FIXME
+                startActivity(new Intent(INPUT_METHOD_SETTINGS));
                 return true;
             });
         }
 
+        @Override
+        public void onResume() {
+            super.onResume();
+            findPreference(getResources().getString(R.string.id_softSettings)).setSummary(IsKeyboardEnabled() ? R.string.pref_summary_keyboard_enabled : R.string.pref_summary_enable_keyboard);
+        }
+
         @Override
         public boolean onOptionsItemSelected(MenuItem item) {
             int id = item.getItemId();
@@ -160,9 +169,17 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
             }
             return super.onOptionsItemSelected(item);
         }
+
+        public boolean IsKeyboardEnabled() {
+            InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(INPUT_METHOD_SERVICE);
+
+            for (InputMethodInfo i: inputManager.getEnabledInputMethodList())
+                if (i.getPackageName().equals(getActivity().getApplicationContext().getPackageName()))
+                    return true;
+            return false;
+        }
     }
 
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
     public static class EncryptionPreferenceFragment extends PreferenceFragment {
         String[] fEncryptionMethodNames;
 
@@ -220,7 +237,6 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
         }
     }
 
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
     public static class VCSPreferenceFragment extends PreferenceFragment {
         @Override
         public void onCreate(Bundle savedInstanceState) {
@@ -462,10 +478,9 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
         }
     }
 
-    public final static int ACTIVITY_REQUEST_CODE_BROWSEGPG = 1;
-
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
     public static class GPGPreferenceFragment extends PreferenceFragment {
+        public final static int ACTIVITY_REQUEST_CODE_BROWSEGPG = 1;
+
         @Override
         public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
@@ -608,7 +623,6 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
         }
     }
 
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
     public static class PasswordPreferenceFragment extends PreferenceFragment {
         @Override
         public void onCreate(Bundle savedInstanceState) {

+ 2 - 0
app/src/main/res/values-fr/lang.xml

@@ -52,6 +52,8 @@
         <item>Fort</item>
         <item>Personalisé</item>
     </array>
+    <string name="pref_summary_keyboard_enabled"></string>
+    <string name="pref_summary_enable_keyboard">Autoriser le clavier pour la saisie des mots de passes</string>
     <string name="pref_gpg_title_username_mail">Username</string>
     <string name="pref_gpg_username">Username</string>
     <string name="pref_gpg_usermail">Mail Address</string>

+ 2 - 0
app/src/main/res/values/lang.xml

@@ -52,6 +52,8 @@
         <item>Strong</item>
         <item>Custom</item>
     </array>
+    <string name="pref_summary_keyboard_enabled">Keyboard is enabled</string>
+    <string name="pref_summary_enable_keyboard">Allow pass keyboard</string>
     <string name="pref_gpg_title_username_mail">Username</string>
     <string name="pref_gpg_username">Username</string>
     <string name="pref_gpg_usermail">Addresse Mail</string>