diff options
Diffstat (limited to 'app/src/main')
58 files changed, 235 insertions, 1311 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java index 49d57e30..646e44c7 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -1,11 +1,11 @@ package com.zeapo.pwdstore; -import android.support.v4.app.Fragment; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -32,7 +32,7 @@ import java.util.Stack; public class PasswordFragment extends Fragment{ public interface OnFragmentInteractionListener { - public void onFragmentInteraction(PasswordItem item); + void onFragmentInteraction(PasswordItem item); } // store the pass files list in a stack @@ -41,7 +41,6 @@ public class PasswordFragment extends Fragment{ private Stack<Integer> scrollPosition; private PasswordRecyclerAdapter recyclerAdapter; private RecyclerView recyclerView; - private RecyclerView.LayoutManager mLayoutManager; private OnFragmentInteractionListener mListener; private SharedPreferences settings; @@ -57,9 +56,9 @@ public class PasswordFragment extends Fragment{ String path = getArguments().getString("Path"); settings = PreferenceManager.getDefaultSharedPreferences(getActivity()); - passListStack = new Stack<ArrayList<PasswordItem>>(); - scrollPosition = new Stack<Integer>(); - pathStack = new Stack<File>(); + passListStack = new Stack<>(); + scrollPosition = new Stack<>(); + pathStack = new Stack<>(); recyclerAdapter = new PasswordRecyclerAdapter((PasswordStore) getActivity(), mListener, PasswordRepository.getPasswords(new File(path), PasswordRepository.getRepositoryDirectory(getActivity()))); } @@ -70,7 +69,7 @@ public class PasswordFragment extends Fragment{ View view = inflater.inflate(R.layout.password_recycler_view, container, false); // use a linear layout manager - mLayoutManager = new LinearLayoutManager(getActivity()); + RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity()); recyclerView = (RecyclerView) view.findViewById(R.id.pass_recycler); recyclerView.setLayoutManager(mLayoutManager); @@ -121,10 +120,6 @@ public class PasswordFragment extends Fragment{ } } } - - public void savePosition(Integer position) { - - } }; } catch (ClassCastException e) { throw new ClassCastException(context.toString() @@ -132,13 +127,6 @@ public class PasswordFragment extends Fragment{ } } - @Override - public void onPause() { - super.onPause(); -// mListener.savePosition(mListView.getFirstVisiblePosition()); -// mListView.closeOpenedItems(); - } - /** * clears the adapter content and sets it back to the root view */ diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java index 5b2a7624..f4ea9ec6 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java @@ -13,6 +13,7 @@ import android.graphics.drawable.Icon; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; import android.support.v4.app.ActivityCompat; import android.support.v4.app.FragmentManager; @@ -52,11 +53,9 @@ import java.util.Set; public class PasswordStore extends AppCompatActivity { private static final String TAG = "PwdStrAct"; - private File currentDir; private SharedPreferences settings; private Activity activity; private PasswordFragment plist; - private AlertDialog selectDestinationDialog; private ShortcutManager shortcutManager; private final static int CLONE_REPO_BUTTON = 401; @@ -125,8 +124,7 @@ public class PasswordStore extends AppCompatActivity { } @Override - public void onRequestPermissionsResult(int requestCode, - String permissions[], int[] grantResults) { + public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { switch (requestCode) { case REQUEST_EXTERNAL_STORAGE: { // If request is cancelled, the result arrays are empty. @@ -458,8 +456,8 @@ public class PasswordStore extends AppCompatActivity { return; } - this.currentDir = getCurrentDir(); - Log.i("PWDSTR", "Adding file to : " + this.currentDir.getAbsolutePath()); + File currentDir = getCurrentDir(); + Log.i("PWDSTR", "Adding file to : " + currentDir.getAbsolutePath()); Intent intent = new Intent(this, PgpHandler.class); intent.putExtra("FILE_PATH", getCurrentDir().getAbsolutePath()); diff --git a/app/src/main/java/com/zeapo/pwdstore/SelectFolderFragment.java b/app/src/main/java/com/zeapo/pwdstore/SelectFolderFragment.java index bf378153..e9c9bbab 100644 --- a/app/src/main/java/com/zeapo/pwdstore/SelectFolderFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/SelectFolderFragment.java @@ -1,15 +1,12 @@ package com.zeapo.pwdstore; import android.content.Context; -import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.PreferenceManager; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -33,7 +30,7 @@ import java.util.Stack; public class SelectFolderFragment extends Fragment{ public interface OnFragmentInteractionListener { - public void onFragmentInteraction(PasswordItem item); + void onFragmentInteraction(PasswordItem item); } // store the pass files list in a stack @@ -42,9 +39,7 @@ public class SelectFolderFragment extends Fragment{ private Stack<Integer> scrollPosition; private FolderRecyclerAdapter recyclerAdapter; private RecyclerView recyclerView; - private RecyclerView.LayoutManager mLayoutManager; private OnFragmentInteractionListener mListener; - private SharedPreferences settings; /** * Mandatory empty constructor for the fragment manager to instantiate the @@ -57,10 +52,9 @@ public class SelectFolderFragment extends Fragment{ super.onCreate(savedInstanceState); String path = getArguments().getString("Path"); - settings = PreferenceManager.getDefaultSharedPreferences(getActivity()); - passListStack = new Stack<ArrayList<PasswordItem>>(); - scrollPosition = new Stack<Integer>(); - pathStack = new Stack<File>(); + passListStack = new Stack<>(); + scrollPosition = new Stack<>(); + pathStack = new Stack<>(); recyclerAdapter = new FolderRecyclerAdapter((PgpHandler) getActivity(), mListener, PasswordRepository.getPasswords(new File(path), PasswordRepository.getRepositoryDirectory(getActivity()))); } @@ -71,10 +65,8 @@ public class SelectFolderFragment extends Fragment{ View view = inflater.inflate(R.layout.password_recycler_view, container, false); // use a linear layout manager - mLayoutManager = new LinearLayoutManager(getActivity()); - recyclerView = (RecyclerView) view.findViewById(R.id.pass_recycler); - recyclerView.setLayoutManager(mLayoutManager); + recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); // use divider recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), R.drawable.divider)); @@ -116,10 +108,6 @@ public class SelectFolderFragment extends Fragment{ ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); } } - - public void savePosition(Integer position) { - - } }; } catch (ClassCastException e) { throw new ClassCastException(context.toString() @@ -127,89 +115,6 @@ public class SelectFolderFragment extends Fragment{ } } - @Override - public void onPause() { - super.onPause(); -// mListener.savePosition(mListView.getFirstVisiblePosition()); -// mListView.closeOpenedItems(); - } - - /** - * clears the adapter content and sets it back to the root view - */ - public void updateAdapter() { - passListStack.clear(); - pathStack.clear(); - scrollPosition.clear(); - recyclerAdapter.clear(); - recyclerAdapter.addAll(PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(getActivity()))); - - ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false); - } - - /** - * refreshes the adapter with the latest opened category - */ - public void refreshAdapter() { - recyclerAdapter.clear(); - recyclerAdapter.addAll(pathStack.isEmpty() ? - PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(getActivity())) : - PasswordRepository.getPasswords(pathStack.peek(), PasswordRepository.getRepositoryDirectory(getActivity()))); - } - - /** - * filters the list adapter - * @param filter the filter to apply - */ - public void filterAdapter(String filter) { - Log.d("FRAG", "filter: " + filter); - - if (filter.isEmpty()) { - refreshAdapter(); - } else { - recursiveFilter(filter, pathStack.isEmpty() ? null : pathStack.peek()); - } - } - - /** - * recursively filters a directory and extract all the matching items - * @param filter the filter to apply - * @param dir the directory to filter - */ - private void recursiveFilter(String filter, File dir) { - // on the root the pathStack is empty - ArrayList<PasswordItem> passwordItems = dir == null ? - PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(getActivity())) : - PasswordRepository.getPasswords(dir, PasswordRepository.getRepositoryDirectory(getActivity())); - - boolean rec = settings.getBoolean("filter_recursively", true); - for (PasswordItem item : passwordItems) { - if (item.getType() == PasswordItem.TYPE_CATEGORY && rec) { - recursiveFilter(filter, item.getFile()); - } - boolean matches = item.toString().toLowerCase().contains(filter.toLowerCase()); - boolean inAdapter = recyclerAdapter.getValues().contains(item); - if (matches && !inAdapter) { - recyclerAdapter.add(item); - } else if (!matches && inAdapter) { - recyclerAdapter.remove(recyclerAdapter.getValues().indexOf(item)); - } - } - } - - /** - * Goes back one level back in the path - */ - public void popBack() { - if (passListStack.isEmpty()) - return; - - recyclerView.scrollToPosition(scrollPosition.pop()); - recyclerAdapter.clear(); - recyclerAdapter.addAll(passListStack.pop()); - pathStack.pop(); - } - /** * gets the current directory * @return the current directory @@ -220,8 +125,4 @@ public class SelectFolderFragment extends Fragment{ else return pathStack.peek(); } - - public boolean isNotEmpty() { - return !passListStack.isEmpty(); - } } diff --git a/app/src/main/java/com/zeapo/pwdstore/ToCloneOrNot.java b/app/src/main/java/com/zeapo/pwdstore/ToCloneOrNot.java index ab245746..fb3f4008 100644 --- a/app/src/main/java/com/zeapo/pwdstore/ToCloneOrNot.java +++ b/app/src/main/java/com/zeapo/pwdstore/ToCloneOrNot.java @@ -14,11 +14,6 @@ public class ToCloneOrNot extends Fragment { } @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java index 54e04b70..ad2a1ffe 100644 --- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java +++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java @@ -18,6 +18,7 @@ import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.provider.Settings; +import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; @@ -547,7 +548,7 @@ public class UserPreference extends AppCompatActivity { } @Override - public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { + public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext()); switch (requestCode) { case REQUEST_EXTERNAL_STORAGE: { diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java index 583b5064..4edfc3e3 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java @@ -1,16 +1,17 @@ package com.zeapo.pwdstore.autofill; import android.app.Activity; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.support.v4.content.ContextCompat; -import android.support.v7.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -71,8 +72,9 @@ public class AutofillFragment extends DialogFragment { adapter = new ArrayAdapter<String>(getActivity().getApplicationContext() , android.R.layout.simple_list_item_1, android.R.id.text1) { // set text color to black because default is white... + @NonNull @Override - public View getView(int position, View convertView, ViewGroup parent) { + public View getView(int position, View convertView, @NonNull ViewGroup parent) { TextView textView = (TextView) super.getView(position, convertView, parent); textView.setTextColor(ContextCompat.getColor(getContext(), R.color.grey_black_1000)); return textView; diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillPreferenceActivity.java b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillPreferenceActivity.java index b3991238..7696d82e 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillPreferenceActivity.java +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillPreferenceActivity.java @@ -13,6 +13,7 @@ import android.support.v4.app.NavUtils; import android.support.v4.app.TaskStackBuilder; import android.support.v4.view.MenuItemCompat; import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SearchView; @@ -30,7 +31,6 @@ public class AutofillPreferenceActivity extends AppCompatActivity { private RecyclerView recyclerView; AutofillRecyclerAdapter recyclerAdapter; // let fragment have access - private RecyclerView.LayoutManager layoutManager; private PackageManager pm; @@ -43,9 +43,9 @@ public class AutofillPreferenceActivity extends AppCompatActivity { setContentView(R.layout.autofill_recycler_view); recyclerView = (RecyclerView) findViewById(R.id.autofill_recycler); - layoutManager = new LinearLayoutManager(this); + RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); - recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST)); + recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); pm = getPackageManager(); diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillRecyclerAdapter.java b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillRecyclerAdapter.java index 901ff903..80942c58 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillRecyclerAdapter.java +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillRecyclerAdapter.java @@ -22,7 +22,6 @@ public class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecycl private SortedList<AppInfo> apps; private ArrayList<AppInfo> allApps; // for filtering, maintain a list of all - private PackageManager pm; private AutofillPreferenceActivity activity; Drawable browserIcon = null; @@ -93,7 +92,7 @@ public class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecycl this.apps = new SortedList<>(AppInfo.class, callback); this.apps.addAll(allApps); this.allApps = new ArrayList<>(allApps); - this.pm = pm; + PackageManager pm1 = pm; this.activity = activity; try { browserIcon = activity.getPackageManager().getApplicationIcon("com.android.browser"); diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/DividerItemDecoration.java b/app/src/main/java/com/zeapo/pwdstore/autofill/DividerItemDecoration.java deleted file mode 100644 index bd5ec9de..00000000 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/DividerItemDecoration.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.zeapo.pwdstore.autofill; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Canvas; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.View; - -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -public class DividerItemDecoration extends RecyclerView.ItemDecoration { - - private static final int[] ATTRS = new int[]{ - android.R.attr.listDivider - }; - - public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL; - - public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL; - - private Drawable mDivider; - - private int mOrientation; - - public DividerItemDecoration(Context context, int orientation) { - final TypedArray a = context.obtainStyledAttributes(ATTRS); - mDivider = a.getDrawable(0); - a.recycle(); - setOrientation(orientation); - } - - public void setOrientation(int orientation) { - if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) { - throw new IllegalArgumentException("invalid orientation"); - } - mOrientation = orientation; - } - - @Override - public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { - if (mOrientation == VERTICAL_LIST) { - drawVertical(c, parent); - } else { - drawHorizontal(c, parent); - } - } - - public void drawVertical(Canvas c, RecyclerView parent) { - final int left = parent.getPaddingLeft(); - final int right = parent.getWidth() - parent.getPaddingRight(); - - final int childCount = parent.getChildCount(); - for (int i = 0; i < childCount; i++) { - final View child = parent.getChildAt(i); - final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child - .getLayoutParams(); - final int top = child.getBottom() + params.bottomMargin; - final int bottom = top + mDivider.getIntrinsicHeight(); - mDivider.setBounds(left, top, right, bottom); - mDivider.draw(c); - } - } - - public void drawHorizontal(Canvas c, RecyclerView parent) { - final int top = parent.getPaddingTop(); - final int bottom = parent.getHeight() - parent.getPaddingBottom(); - - final int childCount = parent.getChildCount(); - for (int i = 0; i < childCount; i++) { - final View child = parent.getChildAt(i); - final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child - .getLayoutParams(); - final int left = child.getRight() + params.rightMargin; - final int right = left + mDivider.getIntrinsicHeight(); - mDivider.setBounds(left, top, right, bottom); - mDivider.draw(c); - } - } - - @Override - public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { - if (mOrientation == VERTICAL_LIST) { - outRect.set(0, 0, 0, mDivider.getIntrinsicHeight()); - } else { - outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0); - } - } -} - diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java index e938fdd4..12f2bcad 100644 --- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java +++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java @@ -132,7 +132,7 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne try { this.mServiceConnection.unbindFromService(); } catch (Exception e) { - + // ignore any errors, we'll stop anyway. } } @@ -273,22 +273,12 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne public void handleClick(View view) { switch (view.getId()) { - case R.id.crypto_show_button: - decryptAndVerify(new Intent()); - break; - case R.id.crypto_delete_button: -// deletePassword(); - break; - case R.id.crypto_get_key_ids: - getKeyIds(new Intent()); - break; case R.id.generate_password: DialogFragment df = new pwgenDialogFragment(); df.show(getFragmentManager(), "generator"); default: Log.wtf(Constants.TAG,"This should not happen.... PgpHandler.java#handleClick(View) default reached."); // should not happen - } } @@ -571,7 +561,7 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne // get key ids if (result.hasExtra(OpenPgpApi.RESULT_KEY_IDS)) { long[] ids = result.getLongArrayExtra(OpenPgpApi.RESULT_KEY_IDS); - Set<String> keys = new HashSet<String>(); + Set<String> keys = new HashSet<>(); for (long id : ids) keys.add(String.valueOf(id)); // use Long settings.edit().putStringSet("openpgp_key_ids_set", keys).apply(); @@ -734,44 +724,53 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne if (operation == null){ return; } - if (operation.equals("DECRYPT")) { - setContentView(R.layout.decrypt_layout); - ((TextView) findViewById(R.id.crypto_password_file)).setText(extra.getString("NAME")); - String path = extra - .getString("FILE_PATH") - .replace(PasswordRepository.getRepositoryDirectory(getApplicationContext()).getAbsolutePath(), ""); - String cat = new File(path).getParentFile().getName(); - - ((TextView) findViewById(R.id.crypto_password_category)).setText(cat + "/"); - decryptAndVerify(new Intent()); - } else if (operation.equals("ENCRYPT")) { - setContentView(R.layout.encrypt_layout); - Typeface monoTypeface = Typeface.createFromAsset(getAssets(), "fonts/sourcecodepro.ttf"); - ((EditText) findViewById(R.id.crypto_password_edit)).setTypeface(monoTypeface); - ((EditText) findViewById(R.id.crypto_extra_edit)).setTypeface(monoTypeface); - String cat = extra.getString("FILE_PATH"); - cat = cat.replace(PasswordRepository.getRepositoryDirectory(getApplicationContext()).getAbsolutePath(), ""); - cat = cat + "/"; - ((TextView) findViewById(R.id.crypto_password_category)).setText(cat); - } else if (operation.equals("GET_KEY_ID")) { - getKeyIds(new Intent()); - -// setContentView(R.layout.key_id); -// if (!keyIDs.isEmpty()) { -// String keys = keyIDs.split(",").length > 1 ? keyIDs : keyIDs.split(",")[0]; -// ((TextView) findViewById(R.id.crypto_key_ids)).setText(keys); -// } - } else if (operation.equals("EDIT")) { - setContentView(R.layout.decrypt_layout); - ((TextView) findViewById(R.id.crypto_password_file)).setText(extra.getString("NAME")); - String cat = new File(extra.getString("FILE_PATH").replace(PasswordRepository.getRepositoryDirectory(getApplicationContext()).getAbsolutePath(), "")) - .getParentFile().getName(); - - ((TextView) findViewById(R.id.crypto_password_category)).setText(cat + "/"); - edit(new Intent()); - } else if (operation.equals("SELECTFOLDER")){ - setContentView(R.layout.select_folder_layout); - selectFolder(getIntent()); + switch (operation) { + case "DECRYPT": { + setContentView(R.layout.decrypt_layout); + ((TextView) findViewById(R.id.crypto_password_file)).setText(extra.getString("NAME")); + String path = extra + .getString("FILE_PATH") + .replace(PasswordRepository.getRepositoryDirectory(getApplicationContext()).getAbsolutePath(), ""); + String cat = new File(path).getParentFile().getName(); + + ((TextView) findViewById(R.id.crypto_password_category)).setText(cat + "/"); + decryptAndVerify(new Intent()); + break; + } + case "ENCRYPT": { + setContentView(R.layout.encrypt_layout); + Typeface monoTypeface = Typeface.createFromAsset(getAssets(), "fonts/sourcecodepro.ttf"); + ((EditText) findViewById(R.id.crypto_password_edit)).setTypeface(monoTypeface); + ((EditText) findViewById(R.id.crypto_extra_edit)).setTypeface(monoTypeface); + String cat = extra.getString("FILE_PATH"); + cat = cat.replace(PasswordRepository.getRepositoryDirectory(getApplicationContext()).getAbsolutePath(), ""); + cat = cat + "/"; + ((TextView) findViewById(R.id.crypto_password_category)).setText(cat); + break; + } + case "GET_KEY_ID": + getKeyIds(new Intent()); + +// setContentView(R.layout.key_id); +// if (!keyIDs.isEmpty()) { +// String keys = keyIDs.split(",").length > 1 ? keyIDs : keyIDs.split(",")[0]; +// ((TextView) findViewById(R.id.crypto_key_ids)).setText(keys); +// } + break; + case "EDIT": { + setContentView(R.layout.decrypt_layout); + ((TextView) findViewById(R.id.crypto_password_file)).setText(extra.getString("NAME")); + String cat = new File(extra.getString("FILE_PATH").replace(PasswordRepository.getRepositoryDirectory(getApplicationContext()).getAbsolutePath(), "")) + .getParentFile().getName(); + + ((TextView) findViewById(R.id.crypto_password_category)).setText(cat + "/"); + edit(new Intent()); + break; + } + case "SELECTFOLDER": + setContentView(R.layout.select_folder_layout); + selectFolder(getIntent()); + break; } } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java index 25dba1fc..61e08dc2 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java @@ -12,8 +12,6 @@ import org.eclipse.jgit.api.Git; import java.io.File; public class CloneOperation extends GitOperation { - private static final String TAG = "CLONEOPT"; - /** * Creates a new clone operation * diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java index 66e308b9..6314a4b3 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java @@ -32,8 +32,6 @@ import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; -// TODO move the messages to strings.xml - public class GitActivity extends AppCompatActivity { private static final String TAG = "GitAct"; private static final String emailPattern = "^[^@]+@[^@]+$"; @@ -46,7 +44,6 @@ public class GitActivity extends AppCompatActivity { private File localDir; private String hostname; - private String port; private SharedPreferences settings; @@ -158,13 +155,6 @@ public class GitActivity extends AppCompatActivity { final EditText server_user = ((EditText) findViewById(R.id.server_user)); final EditText server_uri = ((EditText) findViewById(R.id.clone_uri)); - View.OnFocusChangeListener updateListener = new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View view, boolean b) { - updateURI(); - } - }; - server_url.setText(settings.getString("git_remote_server", "")); server_port.setText(settings.getString("git_remote_port", "")); server_user.setText(settings.getString("git_remote_username", "")); @@ -307,7 +297,7 @@ public class GitActivity extends AppCompatActivity { if (server_port.getText().toString().equals("22")) { hostname += server_path.getText().toString(); - ((TextView) findViewById(R.id.warn_url)).setVisibility(View.GONE); + findViewById(R.id.warn_url).setVisibility(View.GONE); } else { TextView warn_url = (TextView) findViewById(R.id.warn_url); if (!server_path.getText().toString().matches("/.*") && !server_port.getText().toString().isEmpty()) { @@ -329,7 +319,7 @@ public class GitActivity extends AppCompatActivity { if (server_port.getText().toString().equals("443")) { hostname.append(server_path.getText().toString()); - ((TextView) findViewById(R.id.warn_url)).setVisibility(View.GONE); + findViewById(R.id.warn_url).setVisibility(View.GONE); } else { hostname.append("/"); hostname.append(server_port.getText().toString()) @@ -417,6 +407,7 @@ public class GitActivity extends AppCompatActivity { /** * Saves the configuration found in the form */ + @SuppressWarnings("BooleanMethodIsAlwaysInverted") private boolean saveConfiguration() { // remember the settings SharedPreferences.Editor editor = settings.edit(); @@ -432,7 +423,7 @@ public class GitActivity extends AppCompatActivity { // 'save' hostname variable for use by addRemote() either here or later // in syncRepository() hostname = ((EditText) findViewById(R.id.clone_uri)).getText().toString(); - port = ((EditText) findViewById(R.id.server_port)).getText().toString(); + String port = ((EditText) findViewById(R.id.server_port)).getText().toString(); // don't ask the user, take off the protocol that he puts in hostname = hostname.replaceFirst("^.+://", ""); ((TextView) findViewById(R.id.clone_uri)).setText(hostname); diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java index f6b05f4c..4002d24e 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java @@ -27,7 +27,6 @@ import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; import java.io.File; public abstract class GitOperation { - private static final String TAG = "GitOpt"; public static final int GET_SSH_KEY_FROM_CLONE = 201; protected final Repository repository; diff --git a/app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java b/app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java index e156ca4d..b958546e 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java @@ -1,7 +1,5 @@ package com.zeapo.pwdstore.git.config; -import android.content.SharedPreferences; - import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java b/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java index 7d798a81..7b55dccf 100644 --- a/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java @@ -103,7 +103,7 @@ public class pwgenDialogFragment extends DialogFragment { return ad; } - private boolean setPreferences () { + private void setPreferences () { ArrayList<String> preferences = new ArrayList<>(); if (!((CheckBox) getDialog().findViewById(R.id.numerals)).isChecked()) { preferences.add("0"); @@ -123,9 +123,9 @@ public class pwgenDialogFragment extends DialogFragment { EditText editText = (EditText) getDialog().findViewById(R.id.lengthNumber); try { int length = Integer.valueOf(editText.getText().toString()); - return pwgen.setPrefs(getActivity().getApplicationContext(), preferences, length); + pwgen.setPrefs(getActivity().getApplicationContext(), preferences, length); } catch(NumberFormatException e) { - return pwgen.setPrefs(getActivity().getApplicationContext(), preferences); + pwgen.setPrefs(getActivity().getApplicationContext(), preferences); } } } diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/EntryRecyclerAdapter.java b/app/src/main/java/com/zeapo/pwdstore/utils/EntryRecyclerAdapter.java index 5247c6a3..a36b1124 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/EntryRecyclerAdapter.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/EntryRecyclerAdapter.java @@ -19,10 +19,10 @@ import java.util.TreeSet; public abstract class EntryRecyclerAdapter extends RecyclerView.Adapter<EntryRecyclerAdapter.ViewHolder> { private final Activity activity; - protected final ArrayList<PasswordItem> values; - protected final Set<Integer> selectedItems = new TreeSet<>(); + private final ArrayList<PasswordItem> values; + final Set<Integer> selectedItems = new TreeSet<>(); - public EntryRecyclerAdapter(Activity activity, ArrayList<PasswordItem> values) { + EntryRecyclerAdapter(Activity activity, ArrayList<PasswordItem> values) { this.activity = activity; this.values = values; } @@ -52,7 +52,7 @@ public abstract class EntryRecyclerAdapter extends RecyclerView.Adapter<EntryRec this.notifyItemInserted(getItemCount()); } - public void toggleSelection(int position) { + void toggleSelection(int position) { if (!selectedItems.remove(position)) { selectedItems.add(position); } @@ -106,11 +106,6 @@ public abstract class EntryRecyclerAdapter extends RecyclerView.Adapter<EntryRec } holder.type.setText(pass.getFullPathToParent()); - if (pass.getType() == PasswordItem.TYPE_CATEGORY) { -// holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_200)); - } else { -// holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_50)); - } holder.view.setOnClickListener(getOnClickListener(holder, pass)); @@ -134,14 +129,14 @@ public abstract class EntryRecyclerAdapter extends RecyclerView.Adapter<EntryRec // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and // you provide access to all the views for a data item in a view holder - public static class ViewHolder extends RecyclerView.ViewHolder { + static class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case - public View view; - public TextView name; - public TextView type; - public ImageView typeImage; + public final View view; + public final TextView name; + final TextView type; + final ImageView typeImage; - public ViewHolder(View v) { + ViewHolder(View v) { super(v); view = v; name = (TextView) view.findViewById(R.id.label); diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java index 404091b2..cfdb829d 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java @@ -1,5 +1,7 @@ package com.zeapo.pwdstore.utils; +import android.support.annotation.NonNull; + import java.io.File; public class PasswordItem implements Comparable{ @@ -12,7 +14,6 @@ public class PasswordItem implements Comparable{ private PasswordItem parent; private File file; private String fullPathToParent; - public boolean selected = false; /** Create a password item * @@ -93,14 +94,15 @@ public class PasswordItem implements Comparable{ } @Override - public boolean equals(Object o){ - PasswordItem other = (PasswordItem) o; + public boolean equals(Object o) { // Makes it possible to have a category and a password with the same name - return (other.getFile().equals(this.getFile())); -} + return o != null + && o.getClass() == PasswordItem.class + && ((PasswordItem) o).getFile().equals(this.getFile()); + } @Override - public int compareTo(Object o) { + public int compareTo(@NonNull Object o) { PasswordItem other = (PasswordItem) o; // Appending the type will make the sort type dependent return (this.getType() + this.getName()) diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java index ab86d2e1..d97e3294 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java @@ -27,7 +27,6 @@ import static java.util.Collections.sort; public class PasswordRepository { private static Repository repository; - private static boolean initialized = false; protected PasswordRepository(){ } @@ -165,13 +164,13 @@ public class PasswordRepository { * @return the list of gpg files in that directory */ public static ArrayList<File> getFilesList(File path){ - if (!path.exists()) return new ArrayList<File>(); + if (!path.exists()) return new ArrayList<>(); Log.d("REPO", "current path: " + path.getPath()); - ArrayList<File> files = new ArrayList<File>(Arrays.asList(path.listFiles((FileFilter) FileFilterUtils.directoryFileFilter()))); - files.addAll( new ArrayList<File>((List<File>)FileUtils.listFiles(path, new String[] {"gpg"}, false))); + ArrayList<File> files = new ArrayList<>(Arrays.asList(path.listFiles((FileFilter) FileFilterUtils.directoryFileFilter()))); + files.addAll(new ArrayList<>((List<File>) FileUtils.listFiles(path, new String[]{"gpg"}, false))); - return new ArrayList<File>(files); + return new ArrayList<>(files); } /** @@ -183,9 +182,9 @@ public class PasswordRepository { //We need to recover the passwords then parse the files ArrayList<File> passList = getFilesList(path); - if (passList.size() == 0) return new ArrayList<PasswordItem>(); + if (passList.size() == 0) return new ArrayList<>(); - ArrayList<PasswordItem> passwordList = new ArrayList<PasswordItem>(); + ArrayList<PasswordItem> passwordList = new ArrayList<>(); for (File file : passList) { if (file.isFile()) { @@ -203,7 +202,7 @@ public class PasswordRepository { /** * Sets the git user name - * @param String username username + * @param username username */ public static void setUserName(String username) { setStringConfig("user", null, "name", username); @@ -211,7 +210,7 @@ public class PasswordRepository { /** * Sets the git user email - * @param String email email + * @param email email */ public static void setUserEmail(String email) { setStringConfig("user", null, "email", email); @@ -219,10 +218,10 @@ public class PasswordRepository { /** * Sets a git config value - * @param String section config section name - * @param String subsection config subsection name - * @param String name config name - * @param String value the value to be set + * @param section config section name + * @param subsection config subsection name + * @param name config name + * @param value the value to be set */ private static void setStringConfig(String section, String subsection, String name, String value) { if (isInitialized()) { diff --git a/app/src/main/res/drawable-hdpi/ic_action_accounts.png b/app/src/main/res/drawable-hdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index ae02bea6..00000000 --- a/app/src/main/res/drawable-hdpi/ic_action_accounts.png +++ /dev/null diff --git a/app/src/main/res/drawable-hdpi/ic_action_discard.png b/app/src/main/res/drawable-hdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index 703b31f8..00000000 --- a/app/src/main/res/drawable-hdpi/ic_action_discard.png +++ /dev/null diff --git a/app/src/main/res/drawable-mdpi/ic_action_accounts.png b/app/src/main/res/drawable-mdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index 2a703c14..00000000 --- a/app/src/main/res/drawable-mdpi/ic_action_accounts.png +++ /dev/null diff --git a/app/src/main/res/drawable-mdpi/ic_action_discard.png b/app/src/main/res/drawable-mdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index 248fb09c..00000000 --- a/app/src/main/res/drawable-mdpi/ic_action_discard.png +++ /dev/null diff --git a/app/src/main/res/drawable-xhdpi/ic_action_accounts.png b/app/src/main/res/drawable-xhdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index d2cb5819..00000000 --- a/app/src/main/res/drawable-xhdpi/ic_action_accounts.png +++ /dev/null diff --git a/app/src/main/res/drawable-xhdpi/ic_action_discard.png b/app/src/main/res/drawable-xhdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index 9eeeed12..00000000 --- a/app/src/main/res/drawable-xhdpi/ic_action_discard.png +++ /dev/null diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_accounts.png b/app/src/main/res/drawable-xxhdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index 568a47be..00000000 --- a/app/src/main/res/drawable-xxhdpi/ic_action_accounts.png +++ /dev/null diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_discard.png b/app/src/main/res/drawable-xxhdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index cb1260a4..00000000 --- a/app/src/main/res/drawable-xxhdpi/ic_action_discard.png +++ /dev/null diff --git a/app/src/main/res/drawable/actionbar_background.xml b/app/src/main/res/drawable/actionbar_background.xml deleted file mode 100644 index 220eee39..00000000 --- a/app/src/main/res/drawable/actionbar_background.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> - <solid android:color="@android:color/holo_orange_dark" /> -</shape>
\ No newline at end of file diff --git a/app/src/main/res/drawable/blue_rectangle.xml b/app/src/main/res/drawable/blue_rectangle.xml deleted file mode 100644 index 61cb44f5..00000000 --- a/app/src/main/res/drawable/blue_rectangle.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> - <item> - <shape android:shape="rectangle" - android:dither="true"> - <corners android:radius="2dp"/> - <solid android:color="#ccc" /> - - </shape> - </item> - - <item> - <shape android:shape="rectangle" android:dither="true"> - <corners android:radius="2dp" /> - <solid android:color="@android:color/holo_blue_light" /> - - <padding android:bottom="8dp" - android:left="8dp" - android:right="8dp" - android:top="8dp" /> - </shape> - </item> -</layer-list>
\ No newline at end of file diff --git a/app/src/main/res/layout/activity_git_clone.xml b/app/src/main/res/layout/activity_git_clone.xml index d923350a..8001f94d 100644 --- a/app/src/main/res/layout/activity_git_clone.xml +++ b/app/src/main/res/layout/activity_git_clone.xml @@ -106,14 +106,16 @@ android:inputType="textWebEmailAddress" /> <TextView + android:id="@+id/label_server_port" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text=":" - android:paddingBottom="8dp" - android:id="@+id/label_server_port" android:layout_centerVertical="true" android:layout_toLeftOf="@+id/server_port" - android:layout_toStartOf="@+id/server_port" /> + android:layout_toStartOf="@+id/server_port" + android:paddingBottom="8dp" + android:text=":" + tools:ignore="HardcodedText" /> + <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -166,11 +168,11 @@ android:background="@drawable/bottom_line"/> <EditText - android:hint="Repository URI" android:id="@+id/clone_uri" android:layout_width="match_parent" android:layout_height="wrap_content" - android:inputType="textWebEmailAddress"/> + android:hint="@string/repository_uri" + android:inputType="textWebEmailAddress" /> <TextView android:layout_width="match_parent" @@ -206,13 +208,13 @@ <Button android:id="@+id/clone_button" - android:text="Clone!" + android:text="@string/clone_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="cloneRepository"/> <Button android:id="@+id/save_button" - android:text="Save" + android:text="@string/crypto_save" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="saveConfiguration"/> diff --git a/app/src/main/res/layout/activity_git_config.xml b/app/src/main/res/layout/activity_git_config.xml index 2955809b..c03ddc05 100644 --- a/app/src/main/res/layout/activity_git_config.xml +++ b/app/src/main/res/layout/activity_git_config.xml @@ -11,7 +11,7 @@ <LinearLayout android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:orientation="vertical"> <TextView @@ -85,7 +85,7 @@ <Button android:id="@+id/save_button" - android:text="Save" + android:text="@string/crypto_save" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="applyGitConfigs"/> diff --git a/app/src/main/res/layout/activity_pgp_handler.xml b/app/src/main/res/layout/activity_pgp_handler.xml deleted file mode 100644 index 71dcff3e..00000000 --- a/app/src/main/res/layout/activity_pgp_handler.xml +++ /dev/null @@ -1,52 +0,0 @@ -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:paddingLeft="@dimen/activity_horizontal_margin" - android:paddingRight="@dimen/activity_horizontal_margin" - android:paddingTop="@dimen/activity_vertical_margin" - android:paddingBottom="@dimen/activity_vertical_margin" - tools:context="com.zeapo.pwdstore.crypto.PgpHandler" - android:orientation="vertical" - android:background="@color/background"> - - <GridLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@android:color/holo_orange_dark" - android:text="Large Text" - android:id="@+id/crypto_password_file" - android:layout_gravity="center_vertical" - android:layout_marginLeft="8dp" - android:layout_column="0" - android:layout_row="0"/> - - <ImageButton - android:id="@+id/crypto_show_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:src="@android:drawable/ic_input_get" - android:background="@android:drawable/screen_background_light_transparent" - android:layout_gravity="center_vertical" - android:visibility="invisible" - android:onClick="decrypt" - android:layout_column="2" - android:layout_row="0"/> - - - <LinearLayout - android:id="@+id/crypto_container" - android:orientation="vertical" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_column="0" - android:layout_row="2" - android:layout_columnSpan="3" /> - - </GridLayout> -</LinearLayout> diff --git a/app/src/main/res/layout/activity_pwdstore.xml b/app/src/main/res/layout/activity_pwdstore.xml index 84c7af06..dd30d3fc 100644 --- a/app/src/main/res/layout/activity_pwdstore.xml +++ b/app/src/main/res/layout/activity_pwdstore.xml @@ -2,7 +2,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".pwdstore" + tools:context=".PasswordStore" android:orientation="vertical"> <LinearLayout diff --git a/app/src/main/res/layout/app_list_item.xml b/app/src/main/res/layout/app_list_item.xml deleted file mode 100644 index 15758cd5..00000000 --- a/app/src/main/res/layout/app_list_item.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="40dp" - android:gravity="center_vertical" - android:orientation="horizontal" - android:paddingLeft="8dp" - android:paddingRight="8dp"> - - <ImageView - android:id="@android:id/icon1" - android:layout_width="24dp" - android:layout_height="24dp" /> - - <TextView - android:id="@android:id/text1" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginLeft="8dp" - android:gravity="center_vertical" - android:textAppearance="?android:attr/textAppearanceListItemSmall" /> - -</LinearLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/child_row_layout.xml b/app/src/main/res/layout/child_row_layout.xml deleted file mode 100644 index d61586a9..00000000 --- a/app/src/main/res/layout/child_row_layout.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent" - android:id="@+id/child_row_layout" - android:layout_marginTop="@dimen/activity_vertical_margin"> - - <ImageButton - android:id="@+id/crypto_delete_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:src="@drawable/ic_action_discard" - android:background="@drawable/red_rectangle" - android:layout_gravity="center_vertical" - android:layout_column="1" - android:layout_row="0"/> - - <ImageButton - android:id="@+id/crypto_show_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:src="@drawable/ic_action_accounts" - android:background="@drawable/blue_rectangle" - android:layout_gravity="center_vertical" - android:layout_marginLeft="8dp" - android:layout_column="2" - android:layout_row="0"/> - -</GridLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/decrypt_layout.xml b/app/src/main/res/layout/decrypt_layout.xml index 2a94dfee..f076dbad 100644 --- a/app/src/main/res/layout/decrypt_layout.xml +++ b/app/src/main/res/layout/decrypt_layout.xml @@ -19,26 +19,28 @@ android:orientation="vertical"> <TextView + android:id="@+id/crypto_password_category" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="@color/grey_500" - android:text="CATEGORY HERE" - android:id="@+id/crypto_password_category" android:layout_gravity="center_vertical" - android:textSize="18dp" + android:layout_marginLeft="16dp" + android:text="CATEGORY HERE" + android:textColor="@color/grey_500" android:textIsSelectable="false" - android:layout_marginLeft="16dp" /> + android:textSize="18dp" + tools:ignore="HardcodedText" /> <TextView + android:id="@+id/crypto_password_file" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/activity_horizontal_margin" + android:text="PASSWORD FILE NAME HERE" + android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium" android:textColor="@color/accent" + android:textSize="24dp" android:textStyle="bold" - android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium" - android:text="PASSWORD FILE NAME HERE" - android:id="@+id/crypto_password_file" - android:layout_marginLeft="@dimen/activity_horizontal_margin" - android:textSize="24dp" /> + tools:ignore="HardcodedText" /> </LinearLayout> <ImageView @@ -170,5 +172,4 @@ </LinearLayout> - </ScrollView>
\ No newline at end of file diff --git a/app/src/main/res/layout/encrypt_layout.xml b/app/src/main/res/layout/encrypt_layout.xml index 30ccfba4..ebb5e4dd 100644 --- a/app/src/main/res/layout/encrypt_layout.xml +++ b/app/src/main/res/layout/encrypt_layout.xml @@ -14,29 +14,31 @@ android:orientation="vertical"> <TextView + android:id="@+id/crypto_password_category" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="@color/grey_500" - android:text="CATEGORY HERE" - android:id="@+id/crypto_password_category" android:layout_gravity="center_vertical" - android:textSize="18dp" + android:layout_marginLeft="@dimen/activity_horizontal_margin" + android:text="CATEGORY HERE" + android:textColor="@color/grey_500" android:textIsSelectable="false" - android:layout_marginLeft="@dimen/activity_horizontal_margin" /> + android:textSize="18dp" + tools:ignore="HardcodedText" /> <EditText - android:layout_gravity="center_vertical" + android:id="@+id/crypto_password_file_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" - android:id="@+id/crypto_password_file_edit" + android:layout_gravity="center_vertical" android:hint="@string/crypto_name_hint" android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium" + android:textColor="@color/accent" android:textSize="24dp" - android:textColor="@color/accent" /> + tools:ignore="TextFields" /> </LinearLayout> <ScrollView android:layout_width="fill_parent" - android:layout_height="fill_parent" + android:layout_height="0dp" android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginBottom="@dimen/activity_vertical_margin" android:layout_weight="1"> @@ -65,11 +67,9 @@ <EditText android:id="@+id/crypto_password_edit" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="0dp" android:typeface="monospace" - android:layout_weight="1" - android:layout_toRightOf="@+id/textView2" - android:layout_toEndOf="@+id/textView2" /> + android:layout_weight="1" /> <Button android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/fragment_autofill.xml b/app/src/main/res/layout/fragment_autofill.xml index dd9f8419..ef825c4b 100644 --- a/app/src/main/res/layout/fragment_autofill.xml +++ b/app/src/main/res/layout/fragment_autofill.xml @@ -1,25 +1,28 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical" - android:paddingBottom="20dp" - android:paddingLeft="24dp" - android:paddingRight="24dp" - android:paddingTop="20dp"> + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingBottom="20dp" + android:paddingLeft="24dp" + android:paddingRight="24dp" + android:paddingTop="20dp"> - <android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:hintTextAppearance="@style/TextAppearance.AppCompat"> + <android.support.design.widget.TextInputLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:hintTextAppearance="@style/TextAppearance.AppCompat"> <EditText android:id="@+id/webURL" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="URL" - android:inputType="textUri"/> + android:inputType="textUri" + tools:ignore="HardcodedText" /> </android.support.design.widget.TextInputLayout> <RadioGroup diff --git a/app/src/main/res/layout/fragment_pwgen.xml b/app/src/main/res/layout/fragment_pwgen.xml index c3dad4bf..4c3812a7 100644 --- a/app/src/main/res/layout/fragment_pwgen.xml +++ b/app/src/main/res/layout/fragment_pwgen.xml @@ -6,7 +6,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:orientation="vertical" android:paddingBottom="20dp" android:paddingLeft="24dp" @@ -26,7 +26,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" - android:weightSum="2"> + android:weightSum="2" + android:baselineAligned="false"> <LinearLayout android:layout_width="match_parent" @@ -98,8 +99,6 @@ android:text="@string/pwgen_pronounceable" /> </LinearLayout> - - </LinearLayout> </LinearLayout> </ScrollView> diff --git a/app/src/main/res/layout/key_id.xml b/app/src/main/res/layout/key_id.xml deleted file mode 100644 index 2c95ce8d..00000000 --- a/app/src/main/res/layout/key_id.xml +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent" - android:paddingLeft="@dimen/activity_horizontal_margin" - android:paddingRight="@dimen/activity_horizontal_margin" - android:paddingTop="@dimen/activity_vertical_margin" - android:paddingBottom="@dimen/activity_vertical_margin" - android:background="@color/background"> - - <GridLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/rectangle"> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Key-id: " - android:layout_column="0" - android:layout_gravity="center_vertical"/> - <TextView - android:id="@+id/crypto_key_ids" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="No key selected" - android:layout_marginLeft="@dimen/activity_horizontal_margin" - android:textStyle="bold" - android:textColor="@android:color/holo_purple" - android:layout_column="1" - android:layout_gravity="center_vertical"/> - <ImageButton - android:id="@+id/crypto_get_key_ids" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_column="3" - android:src="@drawable/ic_action_accounts" - android:background="@android:color/transparent" - android:onClick="handleClick" - android:layout_gravity="center_vertical"/> - </GridLayout> - - -</LinearLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/openpgp_provider.xml b/app/src/main/res/layout/openpgp_provider.xml deleted file mode 100644 index f7c46b5f..00000000 --- a/app/src/main/res/layout/openpgp_provider.xml +++ /dev/null @@ -1,158 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" -android:id="@+id/parent_scroll" -android:fillViewport="true" -android:layout_width="match_parent" -android:layout_height="match_parent"> - -<LinearLayout - android:padding="8dp" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Encrypt UserIds (split with ',')" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - - <EditText - android:id="@+id/crypto_provider_demo_encrypt_user_id" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="dominik@dominikschuermann.de" - android:textAppearance="@android:style/TextAppearance.Small" /> - - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Message" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - - <ScrollView - android:id="@+id/child_scroll1" - android:fillViewport="true" - android:layout_width="match_parent" - android:layout_height="120dp"> - - <EditText - android:id="@+id/crypto_provider_demo_message" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:scrollHorizontally="true" - android:scrollbars="vertical" - android:text="message" - android:hint="cleartext message" - android:textAppearance="@android:style/TextAppearance.Small" /> - </ScrollView> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Ciphertext" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - <ScrollView - android:id="@+id/child_scroll2" - android:fillViewport="true" - android:layout_width="match_parent" - android:layout_height="120dp"> - - <EditText - android:id="@+id/crypto_provider_demo_ciphertext" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:text="ciphertext" - android:hint="ciphertext" - android:textAppearance="@android:style/TextAppearance.Small" /> - </ScrollView> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <Button - android:id="@+id/crypto_provider_demo_sign" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:text="Sign" - android:layout_gravity="center_vertical" /> - - <Button - android:id="@+id/crypto_provider_demo_encrypt" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:text="Encrypt" - android:layout_gravity="center_vertical" /> - - <Button - android:id="@+id/crypto_provider_demo_sign_and_encrypt" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:text="Sign and Encrypt" - android:layout_gravity="center_vertical" /> - </LinearLayout> - - <Button - android:id="@+id/crypto_provider_demo_decrypt_and_verify" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Decrypt and Verify" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Account ID:" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - <EditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Alice <alice@example.com>" - android:id="@+id/crypto_provider_demo_account" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Get key:" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - <EditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="0x718c070100012282" - android:id="@+id/crypto_provider_demo_get_key_edit" /> - - <Button - android:id="@+id/crypto_provider_demo_get_key" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Get key" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Get key ids:" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - <EditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="dominik@dominikschuermann.de" - android:id="@+id/crypto_provider_demo_get_key_ids_edit" /> - - <Button - android:id="@+id/crypto_provider_demo_get_key_ids" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Get key ids" /> - -</LinearLayout> -</ScrollView>
\ No newline at end of file diff --git a/app/src/main/res/layout/password_row_layout.xml b/app/src/main/res/layout/password_row_layout.xml index 5860fe48..43df2ecf 100644 --- a/app/src/main/res/layout/password_row_layout.xml +++ b/app/src/main/res/layout/password_row_layout.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:card_view="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/activatedBackgroundIndicator"> @@ -23,20 +23,21 @@ android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:paddingRight="8dp" /> + android:paddingRight="8dp"/> <TextView android:id="@+id/type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="start" - android:singleLine="true" android:text="TYPE" android:textSize="14dp" android:textColor="@color/grey_500" android:layout_alignTop="@+id/type_image" android:layout_toRightOf="@+id/type_image" - android:layout_toEndOf="@+id/type_image" /> + android:layout_toEndOf="@+id/type_image" + android:maxLines="1" + tools:ignore="HardcodedText" /> <TextView android:id="@+id/label" @@ -48,7 +49,8 @@ android:textSize="18dp" android:layout_below="@+id/type" android:layout_alignLeft="@+id/type" - android:layout_alignStart="@+id/type" /> + android:layout_alignStart="@+id/type" + tools:ignore="HardcodedText" /> </RelativeLayout> </LinearLayout>
\ No newline at end of file diff --git a/app/src/main/res/menu/agp_intents.xml b/app/src/main/res/menu/agp_intents.xml deleted file mode 100644 index 8aa52dfa..00000000 --- a/app/src/main/res/menu/agp_intents.xml +++ /dev/null @@ -1,9 +0,0 @@ -<menu xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - xmlns:pwstore="http://schemas.android.com/apk/res-auto" - tools:context="com.zeapo.pwdstore.AgpIntentsActivity" > - <item android:id="@+id/action_settings" - android:title="@string/action_settings" - android:orderInCategory="100" - pwstore:showAsAction="never" /> -</menu> diff --git a/app/src/main/res/menu/context_pass.xml b/app/src/main/res/menu/context_pass.xml index bcdb383c..cb1e9ee9 100644 --- a/app/src/main/res/menu/context_pass.xml +++ b/app/src/main/res/menu/context_pass.xml @@ -1,22 +1,25 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" tools:context=".pwdstore"> - <item android:id="@+id/menu_move_password" + <item + android:id="@+id/menu_move_password" android:icon="@drawable/ic_folder_white_24dp" - app:showAsAction="ifRoom" - android:title="Move"/> + android:title="@string/move" + app:showAsAction="ifRoom" /> - <item android:id="@+id/menu_edit_password" + <item + android:id="@+id/menu_edit_password" android:icon="@drawable/ic_edit_white_24dp" - app:showAsAction="ifRoom" - android:title="Edit"/> + android:title="@string/edit" + app:showAsAction="ifRoom" /> - <item android:id="@+id/menu_delete_password" + <item + android:id="@+id/menu_delete_password" android:icon="@drawable/ic_delete_white_24dp" - app:showAsAction="ifRoom" - android:title="Delete"/> + android:title="@string/delete" + app:showAsAction="ifRoom" /> </menu> diff --git a/app/src/main/res/menu/pgp_handler_new_password.xml b/app/src/main/res/menu/pgp_handler_new_password.xml index 0e2ef32c..6c7e12c9 100644 --- a/app/src/main/res/menu/pgp_handler_new_password.xml +++ b/app/src/main/res/menu/pgp_handler_new_password.xml @@ -2,12 +2,12 @@ xmlns:tools="http://schemas.android.com/tools" xmlns:pwstore="http://schemas.android.com/apk/res-auto" tools:context="com.zeapo.pwdstore.crypto.PgpHandler" > - <item android:title="Cancel" + <item android:title="@string/crypto_cancel" android:icon="@drawable/ic_clear_white_24dp" pwstore:showAsAction="ifRoom" android:id="@+id/crypto_cancel_add" /> - <item android:title="Save" + <item android:title="@string/crypto_save" android:icon="@drawable/ic_done_white_24dp" pwstore:showAsAction="ifRoom" android:id="@+id/crypto_confirm_add" diff --git a/app/src/main/res/menu/pgp_handler_select_folder.xml b/app/src/main/res/menu/pgp_handler_select_folder.xml index 9bfba01b..c18ede62 100644 --- a/app/src/main/res/menu/pgp_handler_select_folder.xml +++ b/app/src/main/res/menu/pgp_handler_select_folder.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" xmlns:pwstore="http://schemas.android.com/apk/res-auto" tools:context="com.zeapo.pwdstore.crypto.PgpHandler" > - <item android:title="Select" + <item android:title="@string/crypto_select" android:icon="@drawable/ic_done_white_24dp" pwstore:showAsAction="ifRoom" android:id="@+id/crypto_select" diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 0f9ef325..5feaec77 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -3,11 +3,8 @@ <!-- Activity names --> <string name="app_name">Password Store</string> - <string name="activity_clone_name">Klonovat Git repozitář</string> - <string name="clone_settings">Klonování</string> <string name="action_settings">Nastavení</string> - <string name="hello_world">Hello world!</string> <string name="dialog_delete_title">Adresář již existuje</string> <string name="dialog_delete_msg">Cílový adresář již existuje. Aktuální verze podporuje pouze jedno úložiště. Opravdu smazat aktuální adresář úložiště hesel:</string> <string name="dialog_delete">Smazat adresář</string> @@ -18,23 +15,16 @@ <string name="creation_dialog_text">Naklonujte nebo vytvořte nový repozitář před pokusem přidat heslo nebo spustit synchronizaci.</string> <string name="store_git">/store/.git</string> <string name="key_dialog_text">Před inicializací repozitáře je třeba vybrat "ID PGP klíče"</string> - <string name="connection_dialog_text">Jakou metodu připojení upřednostňujete?</string> <string name="delete_dialog_text">Opravdu chcete smazat heslo /"</string> <!-- git commits --> - <string name="initialization_commit_text">[ANDROID PwdStore] Initialized store with keyID: </string> <string name="add_commit_text">[ANDROID PwdStore] Add  </string> - <string name="remove_commit_text">[ANDROID PwdStore] Remove  </string> <string name="edit_commit_text">[ANDROID PwdStore] Edit  </string> <string name="from_store">  from store.</string> <!-- PGPHandler --> <string name="provider_toast_text">Nebyl vybrán poskytovatel OpenPGP!</string> - <string name="okc_progress_text">Čekání na OpenKeychain…</string> <string name="clipboard_password_toast_text">Heslo zkopírováno do schránky, máte %d sekund na jeho zkopírování.</string> - <string name="name_settings_toast_text">Až to bude možné, tak si zadejte jméno účtu v nastavení</string> - <string name="account_settings_dialog_text">Zadejte si v nastavení svůj OpenKeychain účet (email)</string> - <string name="account_settings_dialog_title">Jméno účtu je prázdné!</string> <string name="file_toast_text">Zadejte prosím jméno souboru</string> <string name="empty_toast_text">Nelze zadat prázdné heslo nebo další obsah</string> @@ -44,7 +34,6 @@ <string name="jgit_error_dialog_text">Zpráva od jgit: \n</string> <!-- Git Handler --> - <string name="read_only_dialog_text">Chystáte se použít repozitář bez práva zápisu, nebudete schopni do něj ukládat</string> <string name="forget_username_dialog_text">Zapomněli jste uvést přihlašovací jméno?</string> <string name="set_information_dialog_text">Je třeba zadat informaci o serveru před vlastní synchronizací</string> <string name="ssh_preferences_dialog_text">Importujte nebo si prosím vygenerujte svůj SSH klíč v nastavení aplikace</string> @@ -56,7 +45,6 @@ <string name="password_dialog_text">Zadejte prosím heslo k tomuto repozitáři</string> <!-- Clone fragment --> - <string name="clone_fragment_text">Vítejte v aplikaci Password Store\n\n Na této obrazovce můžete buď vytvořit nový repozitář nebo klonovat dostupný repozitář na svůj přístroj.</string> <string name="clone">Klonovat ze serveru</string> <string name="initialize">Použít místní adresář</string> @@ -78,34 +66,23 @@ <string name="warn_malformed_url_port">Při použití vlastního portu, zadejte absolutní cestu (začíná "/")</string> <!-- PGP Handler --> - <string name="title_activity_pgp_handler">PgpHandler</string> <string name="crypto_name_hint">jméno</string> <string name="crypto_pass_label">Heslo</string> <string name="crypto_extra_label">Extra</string> <!-- DECRYPT Layout --> - <string name="crypto_category">Kategorie</string> <string name="action_search">Hledat</string> <!-- Preferences --> <string name="pref_git_title">Git</string> - <string name="pref_server_title">Server</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_remote_title">Vzdálené umístění</string> - <string name="pref_remote_hint">cesta/k/repozitáři</string> - <string name="pref_git_username_title">Jméno</string> - <string name="pref_git_username_hint">username</string> <string name="pref_edit_server_info">Upravit nastavení git serveru</string> <string name="pref_ssh_title">Importovat SSH klíč</string> <string name="pref_ssh_keygen_title">Generovat SSH klíč</string> <string name="pref_ssh_see_key_title">Zobrazit vygenerovaný veřejný SSH klíč</string> <string name="pref_git_delete_repo">Smazat repozitář</string> <string name="pref_dialog_delete_title">Vyčistit repozitář</string> - <string name="pref_dialog_delete_msg">Opravdu smazat aktuální adresář úložiště hesel? Toto neodstraní vaše nastavení.</string> <string name="pref_crypto_title">Šifrování</string> <string name="pref_provider_title">Vybrat poskytovatele OpenPGP</string> - <string name="pref_provider_account_title">Nastavit OpenPGP účet</string> - <string name="pref_provider_account_hint">mail@somewhere.tld</string> <string name="pref_key_title">Vybrat ID OpenPGP klíče</string> <string name="pref_general_title">Všeobecné</string> <string name="pref_password_title">Čas zobrazení hesla</string> @@ -122,7 +99,6 @@ <string name="pref_autofill_enable_msg2">Jakmile bude služba zapnuta, po kliknutí na pole hesla bude zobrazeno dialogové okno pokud je pro používanou aplikaci heslo dostupné.</string> <string name="pref_autofill_enable_msg3">Password Store se automaticky pokouší najít odpovídající heslo k aplikacím. Toto výchozí nastavení spolu s nastavením pro jednotlivé aplikace lze změnit.</string> <string name="pref_autofill_apps_title">Nastavení aplikace a webové stránky</string> - <string name="pref_autofill_apps_hint">Upravit automatické vyplňování u vybraných aplikací.</string> <string name="pref_autofill_default_title">Automaticky párovat ve výchozím nastavení</string> <string name="pref_autofill_default_hint">Ve výchozím nastavení \'Automaticky párovat\' u aplikací bez vybraného nastavení. Jinak, \'Nikdy nepárovat.\'</string> <string name="pref_autofill_always_title">Vždy zobrazit dialog</string> @@ -163,13 +139,10 @@ <string name="git_push">Uložit na server</string> <string name="show_password_pref_title">Zobrazit heslo</string> <string name="show_password_pref_summary">Hlídat viditelnost hesel po dešifrování, toto nevypíná možnost kopírovat heslo</string> - <string name="toast_password_copied">Heslo zkopírováno do schránky</string> <string name="pwd_generate_button">Generovat</string> - <string name="category_string">"Kategorie: "</string> <!-- Autofill --> <string name="autofill_description">Automaticky vyplňuje pole hesel v aplikacích. Funguje pouze pro verzi Androidu 4.3 a vyšší. Není závislé na schránce pro Android verze 5.0 a vyšší.</string> - <string name="autofill_fill">Vyplnit</string> <string name="autofill_apps_default">Použít výchozí nastavení</string> <string name="autofill_apps_first">Automaticky spárovat</string> <string name="autofill_apps_match_ellipsis">Spárovat s…</string> @@ -177,9 +150,7 @@ <string name="autofill_apps_never">Nikdy nepárovat</string> <string name="autofill_apps_delete">Smazat</string> <string name="refresh_list">Obnovit seznam</string> - <string name="settings">Nastavení</string> <string name="no_repo_selected">Nebyl vybrát externí repozitář</string> - <string name="no_repo_selected2">Nebyl vybrát externí repozitář</string> <string name="send_plaintext_password_to">Odeslat heslo jako plaintext za použití…</string> <string name="show_password">Pokaż hasło</string> </resources>
\ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index cfb2d2d2..51fc9455 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -3,11 +3,8 @@ <!-- Activity names --> <string name="app_name">Password Store</string> - <string name="activity_clone_name">Klone ein Git Repo</string> - <string name="clone_settings">Klonen</string> <string name="action_settings">Einstellungen</string> - <string name="hello_world">Hallo Welt!</string> <string name="dialog_delete_title">Ordner existiert bereits</string> <string name="dialog_delete_msg">Zielordner existiert bereits. Aktuelle Version unterstützt nur eine einzige Datenquelle. Möchtest du die aktuelle Datenquelle löschen:</string> <string name="dialog_delete">Ordner löschen</string> @@ -18,23 +15,19 @@ <string name="creation_dialog_text">Bitte klone oder erstelle ein neues Repository, bevor du versuchst ein Passwort hinzuzufügen oder jegliche Synchronisation-Operation durchführst.</string> <string name="store_git">/store/.git</string> <string name="key_dialog_text">Du musst deine PGP-Key ID auwählen, bevor das Repository intialisiert wird.</string> - <string name="connection_dialog_text">Welche Verbindung bevorzugst du?</string> <string name="delete_dialog_text">Bist du dir sicher, dass du das Passwort löschen möchtest \"</string> + <string name="move">Verschieben</string> + <string name="edit">Bearbeiten</string> + <string name="delete">Löschen</string> <!-- git commits --> - <string name="initialization_commit_text">[ANDROID PwdStore] Initialized store with keyID: </string> <string name="add_commit_text">[ANDROID PwdStore] Add  </string> - <string name="remove_commit_text">[ANDROID PwdStore] Remove  </string> <string name="from_store">  from store.</string> <!-- PGPHandler --> <string name="provider_toast_text">Kein OpenPGP-Provider ausgewählt!</string> - <string name="okc_progress_text">Warte auf OpenKeychain…</string> <string name="clipboard_password_toast_text">Passwort ist in der Zwischenablage, du hast %d Sekunden, um es einzufügen.</string> <string name="clipboard_username_toast_text">Benutzername ist in der Zwischenablage</string> - <string name="name_settings_toast_text">Bitte setze deinen Accountnamen in den Einstellungen.</string> - <string name="account_settings_dialog_text">Bitte setze deinen OpenKeychain Account (E-Mail) in den Einstellungen</string> - <string name="account_settings_dialog_title">Accountname ist leer!</string> <string name="file_toast_text">Bitte setze einen Pfad</string> <string name="empty_toast_text">Du kannst kein leeres Passwort setzen oder leere Extra-Angaben</string> @@ -44,7 +37,6 @@ <string name="jgit_error_dialog_text">Message from jgit: \n</string> <!-- Git Handler --> - <string name="read_only_dialog_text">Du kannst nicht auf ein schreibgeschütztes (read-only) Repository pushen.</string> <string name="forget_username_dialog_text">Hast du vergessen einen Nutzernamen zu vergeben?</string> <string name="set_information_dialog_text">You have to set the information about the server before synchronizing with the server</string> <string name="ssh_preferences_dialog_text">Please import or generate your SSH key file in the preferences</string> @@ -54,9 +46,9 @@ <string name="passphrase_dialog_title">Authentifizieren</string> <string name="passphrase_dialog_text">Bitte setze ein Passwort für deinen SSH-Key. Lasse das Feld leer, wenn kein Passwort vergeben werden soll.</string> <string name="password_dialog_text">Bitte setze ein Passwort für dieses Repository</string> + <string name="clone_button">Klone!</string> <!-- Clone fragment --> - <string name="clone_fragment_text">Willkommen zu Password Store\n\n In dieser Ansicht kannst du entweder ein neues Repository anlegen oder ein bestehendes auf dieses Gerät klonen.</string> <string name="clone">Klone von Server</string> <string name="initialize">Nutze lokalen Ordner</string> @@ -79,13 +71,14 @@ <string name="invalid_email_dialog_text">Bitte valide Email eingeben</string> <!-- PGP Handler --> - <string name="title_activity_pgp_handler">PGP-Handler</string> <string name="crypto_name_hint">Name</string> <string name="crypto_pass_label">Passwort</string> <string name="crypto_extra_label">Extra</string> + <string name="crypto_select">Auswählen</string> + <string name="crypto_cancel">Abbrechen</string> + <string name="crypto_save">Speichern</string> <!-- DECRYPT Layout --> - <string name="crypto_category">Kategorie</string> <string name="action_search">Suche</string> <string name="password">Passwort:</string> <string name="extra_content">Weiterer Inhalt:</string> @@ -97,12 +90,6 @@ <!-- Preferences --> <string name="pref_git_title">Git</string> - <string name="pref_server_title">Server</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_remote_title">Entfernter Ort</string> - <string name="pref_remote_hint">path/to/repository</string> - <string name="pref_git_username_title">Nutzername</string> - <string name="pref_git_username_hint">Nutzername</string> <string name="pref_edit_server_info">Git-Server Einstellungen</string> <string name="pref_edit_git_config">Git Konfiguration bearbeiten</string> <string name="pref_ssh_title">Importiere SSH-Key</string> @@ -110,11 +97,8 @@ <string name="pref_ssh_see_key_title">Zeige erstellten öffentlichen SSH-Key</string> <string name="pref_git_delete_repo">Repository löschen</string> <string name="pref_dialog_delete_title">Repository löschen</string> - <string name="pref_dialog_delete_msg">Möchtest du dan aktuellen Passwortordner löschen? Deine Einstellungen werden beibehalten.</string> <string name="pref_crypto_title">Kryptografie</string> <string name="pref_provider_title">Wähle OpenPGP-Provider</string> - <string name="pref_provider_account_title">Wähle deinen OpenPGP-Account</string> - <string name="pref_provider_account_hint">mail@somewhere.tld</string> <string name="pref_key_title">Wähle OpenPGP-Key ID</string> <string name="pref_general_title">Allgemein</string> <string name="pref_password_title">Ablaufzeit des Passworts</string> @@ -132,7 +116,6 @@ <string name="pref_autofill_enable_msg2">Wenn der Hintergrunddienst aktiviert ist, erscheint immer dann ein Dialog, wenn du auf ein Passwortfeld in einer App klickst und ein dazu passender Eintrag existiert.</string> <string name="pref_autofill_enable_msg3">Password Store versucht das Passwort zu der App automatisch herauszufinden. Du kannst diese Standard-Einstellung ändern und den Abgleich per App anpassen.</string> <string name="pref_autofill_apps_title">App und Websiten Einstellungen</string> - <string name="pref_autofill_apps_hint">Ändere die Autofill Einstellungen für spezielle Apps.</string> <string name="pref_autofill_default_title">Standardmäßig automatisch abgleichen</string> <string name="pref_autofill_default_hint">Standard auf \'Automatisch abgleichen\' für Apps ohne eine Standardeinstellung, andernfalls \'Niemals abgleichen.\'</string> <string name="pref_autofill_always_title">Zeige den Autofill-Dialog immer</string> @@ -143,6 +126,12 @@ <string name="pref_external_repository">Externes Repository</string> <string name="pref_external_repository_summary">Nutze ein externes Repository</string> <string name="pref_select_external_repository">Wähle ein externes Repository</string> + <string name="prefs_use_default_file_picker">Benutze Standardauswahl für Dateien</string> + <string name="prefs_clear_after_copy_title">Zwischenablage automatisch leeren</string> + <string name="prefs_clear_after_copy_summary">Nach automatischen oder manuellen Kopieren des Passwords wird die Zwischenablage automatisch geleert</string> + <string name="prefs_export_passwords_title">Passwörter exportieren</string> + <string name="prefs_export_passwords_summary">Exportiert die verschlüsselten Passwörter in ein externes Verzeichnis</string> + <string name="prefs_version">Version</string> <!-- pwgen fragment --> <string name="pwgen_generate">Generieren</string> @@ -179,13 +168,10 @@ <string name="show_password_pref_summary">Soll das entschlüsselte Passwort sichtbar sein? Dies deaktiviert nicht das Kopieren.</string> <string name="show_extra_content_pref_title">Zeige weiteren Inhalt</string> <string name="show_extra_content_pref_summary">Soll weiterer Inhalt sichtbar sein?</string> - <string name="toast_password_copied">Passwort befindet sich zum Einfügen in der Zwischenablage</string> <string name="pwd_generate_button">Generieren</string> - <string name="category_string">"Kategorie: "</string> <!-- Autofill --> <string name="autofill_description">Füge das Passwort automatisch in Apps ein (Autofill). Funktioniert nur unter Android 4.3 und höher. Dies basiert nicht auf der Zwischenablage für Android 5.0 oder höher.</string> - <string name="autofill_fill">Einfügen</string> <string name="autofill_apps_default">Nutze Standardeinstellung</string> <string name="autofill_apps_first">Automatisch abgleichen</string> <string name="autofill_apps_match_ellipsis">Abgleichen mit…</string> @@ -195,9 +181,7 @@ <string name="autofill_pick">Auswählen…</string> <string name="autofill_pick_and_match">Auswählen und merken…</string> <string name="no_repo_selected">Kein externes Repository ausgewählt</string> - <string name="no_repo_selected2">Kein externes Repository ausgewählt</string> <string name="edit_commit_text">[ANDROID PwdStore] Edit  </string> <string name="send_plaintext_password_to">Passwort senden als Nur-Text mit behilfe von…</string> - <string name="settings">Einstellungen</string> <string name="show_password">Password wiedergeben</string> </resources> diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index d496f79a..a98a1787 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -3,11 +3,8 @@ <!-- Activity names --> <string name="app_name">Password Store</string> - <string name="activity_clone_name">Clone un dépôt Git</string> - <string name="clone_settings">Clone</string> <string name="action_settings">Paramètres</string> - <string name="hello_world">Bonjour Monde!</string> <string name="dialog_delete_title">Répertoire déjà existant</string> <string name="dialog_delete_msg">Répertoire cible déjà existant. La version actuelle ne supporte qu\'un seul gestionnaire. Voulez vous supprimer le répertoire actual du gestionnaire de mots de passe:</string> <string name="dialog_delete">Suprimer le répertoire</string> @@ -18,23 +15,16 @@ <string name="creation_dialog_text">Clonez ou créez un dépôt suivant avant d\'essayer d\'ajouter un mot de pass ou d\'effectuer une opération de synchornisation.</string> <string name="store_git">/store/.git</string> <string name="key_dialog_text">Vous devez sélectionner votre "PGP-Key ID" avant d\'initialiser le dépôt</string> - <string name="connection_dialog_text">Quelle connexion préférez vous?</string> <string name="delete_dialog_text">Êtes-vous sûr de vouloir supprimer le mot de passe /"</string> <!-- git commits --> - <string name="initialization_commit_text">[ANDROID PwdStore] Initialisation du gestionnaire avec le keyID: </string> <string name="add_commit_text">[ANDROID PwdStore] Ajouter  </string> - <string name="remove_commit_text">[ANDROID PwdStore] Supprimer  </string> <string name="edit_commit_text">[ANDROID PwdStore] Editer  </string> <string name="from_store">  depuis le dépôt.</string> <!-- PGPHandler --> <string name="provider_toast_text">Aucun prestataire OpenPGP sélectionné!</string> - <string name="okc_progress_text">Attente de OpenKeychain…</string> <string name="clipboard_password_toast_text">Mot de passe copié dans le presse papier, vous avez %d secondes pour coller celui-ci.</string> - <string name="name_settings_toast_text">Renseignez le nom de votre compte dans les paramètres dès que vous pouvez</string> - <string name="account_settings_dialog_text">Renseignez votre compte OpenKeychain (email) dans les préférences</string> - <string name="account_settings_dialog_title">Nom du compte absent!</string> <string name="file_toast_text">Renseignez un nom de fichier</string> <string name="empty_toast_text">Vous ne pouvez pas utiliser un mot de passe vide ou des données supplémentaires vide</string> @@ -44,7 +34,6 @@ <string name="jgit_error_dialog_text">Message de jgit: \n</string> <!-- Git Handler --> - <string name="read_only_dialog_text">Vous êtes sur le point d\'utiliserun dépôt en lecture-seule, il ne sera pas possible d\'effectuer de poussez les données vers celui-ci</string> <string name="forget_username_dialog_text">Avez-vous oublié to renseigner votre nom d\'utilisateur?</string> <string name="set_information_dialog_text">Vous devez renseignez les informations à propos du serveur avant d\'effectuer une synchronisation avec celui-ci</string> <string name="ssh_preferences_dialog_text">Vous devez importer ou générer votre fichier de clef SSH dans les préférences</string> @@ -56,7 +45,6 @@ <string name="password_dialog_text">Renseignez le mot de passe pour ce dépôt</string> <!-- Clone fragment --> - <string name="clone_fragment_text">Bienvenue sur Password Store\n\n Dans cet écran vous pouvez soit créer un nouveau dépôt ou cloner votre dépôt Git sur cet appareil.</string> <string name="clone">Cloner depuis le serveur</string> <string name="initialize">Utiliser un répertoire local</string> @@ -78,34 +66,23 @@ <string name="warn_malformed_url_port">Lors de l\'utilisation d\'un numéro de port personnalisé, fournissez un chemin absolu (commençant par "/")</string> <!-- PGP Handler --> - <string name="title_activity_pgp_handler">PgpHandler</string> <string name="crypto_name_hint">nom</string> <string name="crypto_pass_label">Mot de passe</string> <string name="crypto_extra_label">Extra</string> <!-- DECRYPT Layout --> - <string name="crypto_category">Catégorie</string> <string name="action_search">Chercher</string> <!-- Preferences --> <string name="pref_git_title">Git</string> - <string name="pref_server_title">Serveur</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_remote_title">Remote location</string> - <string name="pref_remote_hint">chemin/du/repertoire</string> - <string name="pref_git_username_title">Nom d\'utilisateur</string> - <string name="pref_git_username_hint">nom-d-utilisateur</string> <string name="pref_edit_server_info">Editer les paramètres du serveur Git</string> <string name="pref_ssh_title">Importer une clef SSH</string> <string name="pref_ssh_keygen_title">Générer une paire de clefs SSH</string> <string name="pref_ssh_see_key_title">Voir la clef publique SSH générée</string> <string name="pref_git_delete_repo">Supprimer le dépôt</string> <string name="pref_dialog_delete_title">Effacer le dépôt</string> - <string name="pref_dialog_delete_msg">Voulez-vous efface le répertoire du gesionnaire de mot de passe actuel? Ceci n\'effacera pas votre configuration.</string> <string name="pref_crypto_title">Chiffrement</string> <string name="pref_provider_title">Sélection du prestataire OpenPGP</string> - <string name="pref_provider_account_title">Renseignez votre compte OpenPGP</string> - <string name="pref_provider_account_hint">mail@quelque-part.tld</string> <string name="pref_key_title">Sélection de votre identifiant OpenPGP</string> <string name="pref_general_title">Général</string> <string name="pref_password_title">Durée de disponibilité du mot de passe</string> @@ -123,7 +100,6 @@ <string name="pref_autofill_enable_msg2">Lorsque le service est activé une fenêtre de dialogue apparaitra lorsque vous cliquez sur un champ de type mot de passe.</string> <string name="pref_autofill_enable_msg3">Password Store proposera alors le mot de passe. Vous pouvez changer ce réglage ou effectuer une correspondance spéfique par application.</string> <string name="pref_autofill_apps_title">Paramètres Application et site web</string> - <string name="pref_autofill_apps_hint">Personnalisation du remplissage automatique spécifique par application.</string> <string name="pref_autofill_default_title">Correspondance automatique par défaut</string> <string name="pref_autofill_default_hint">Default to \"Automatically match\" for apps without custom settings. Otherwise, \"Never match.\"</string> <string name="pref_autofill_always_title">Toujours montrer la fenêtre de dialogue</string> @@ -167,13 +143,10 @@ <string name="git_push">Pousser sur le serveur</string> <string name="show_password_pref_title">Montrer le mot de passe</string> <string name="show_password_pref_summary">Contrôle la visibilité des mots de passe une fois déchifrées, ceci n\'empêche pas de copier le mot de passe</string> - <string name="toast_password_copied">Mot de passe copié dans le presse-papier</string> <string name="pwd_generate_button">Générer</string> - <string name="category_string">"Catégorie: "</string> <!-- Autofill --> <string name="autofill_description">Remplissage automatique des champs de type mot de passe dans les applications. Ne fonctionne que sur les version d\'Android 4.3 et supérieure. Ne dépend pas du presse-papier pour les version d\'Android 5.0 et supérieure.</string> - <string name="autofill_fill">Remplissage</string> <string name="autofill_apps_default">Utiliser les paramètres par défaut</string> <string name="autofill_apps_first">Correspondance automatique</string> <string name="autofill_apps_match_ellipsis">Correspondance avec…</string> @@ -181,9 +154,7 @@ <string name="autofill_apps_never">Aucun correspondance</string> <string name="autofill_apps_delete">Supprimer</string> <string name="refresh_list">Rafraichir la liste</string> - <string name="settings">Paramètres</string> <string name="no_repo_selected">Pas de dépôt externe séléctionné</string> - <string name="no_repo_selected2">Pas de dépôt externe séléctionné</string> <string name="send_plaintext_password_to">Envoyer le mot de passe en clair via…</string> <string name="show_password">Montrer le mot de passe</string> </resources> diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 5c15f3eb..9ab13ff0 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -3,11 +3,8 @@ <!-- Activity names --> <string name="app_name">Password Store</string> - <string name="activity_clone_name">Git リポジトリをクローン</string> - <string name="clone_settings">クローン</string> <string name="action_settings">設定</string> - <string name="hello_world">Hello world!</string> <string name="dialog_delete_title">ディレクトリーはすでに存在します</string> <string name="dialog_delete_msg">対象のディレクトリーはすでに存在します。 現在のバージョンは1つのストアのみをサポートしています。 現在のパスワードストアのディレクトリーを削除しますか:</string> <string name="dialog_delete">ディレクトリーを削除</string> @@ -18,23 +15,16 @@ <string name="creation_dialog_text">パスワードや同期操作を追加する前に、以下の新しいリポジトリをクローンまたは作成してください。</string> <string name="store_git">/store/.git</string> <string name="key_dialog_text">リポジトリを初期化する前に "PGP 鍵 ID"を選択する必要があります</string> - <string name="connection_dialog_text">どの接続方法がお好みですか?</string> <string name="delete_dialog_text">パスワードを削除してもよろしいですか /"</string> <!-- git commits --> - <string name="initialization_commit_text">[ANDROID PwdStore] 次の鍵 ID で初期化しました: </string> <string name="add_commit_text">[ANDROID PwdStore] 追加  </string> - <string name="remove_commit_text">[ANDROID PwdStore] 削除  </string> <string name="edit_commit_text">[ANDROID PwdStore] 編集  </string> <string name="from_store">  ストアから。</string> <!-- PGPHandler --> <string name="provider_toast_text">OpenPGP プロバイダが選択されていません!</string> - <string name="okc_progress_text">OpenKeychain の待機中…</string> <string name="clipboard_password_toast_text">パスワードをクリップボードにコピーしました %d 秒以内に張り付けしてください。</string> - <string name="name_settings_toast_text">できるだけ設定に毎回アカウント名を設定してください</string> - <string name="account_settings_dialog_text">プリファレンスに OpenKeychain アカウント (メールアドレス) を設定してください</string> - <string name="account_settings_dialog_title">アカウント名が空です!</string> <string name="file_toast_text">ファイル名を入力してください</string> <string name="empty_toast_text">空のパスワードを使用したり、追加のコンテンツを空にすることはできません</string> @@ -44,7 +34,6 @@ <string name="jgit_error_dialog_text">jgit からのメッセージ: \n</string> <!-- Git Handler --> - <string name="read_only_dialog_text">読み取り専用のリポジトリを使用しようとしています。そのリポジトリにプッシュすることはできません</string> <string name="forget_username_dialog_text">ユーザー名の指定を忘れましたか?</string> <string name="set_information_dialog_text">サーバーと同期する前に、サーバーに関する情報を設定する必要があります</string> <string name="ssh_preferences_dialog_text">プリファレンスで SSH 鍵ファイルをインポートまたは生成してください</string> @@ -56,7 +45,6 @@ <string name="password_dialog_text">このリポジトリのパスワードを入力してください</string> <!-- Clone fragment --> - <string name="clone_fragment_text">Password Store へようこそ\n\n この画面で、新しいリポジトリを作成するか、お使いのデバイスに git リポジトリをクローンすることができます。</string> <string name="clone">サーバーからクローン</string> <string name="initialize">ローカルディレクトリーを使用する</string> @@ -78,34 +66,23 @@ <string name="warn_malformed_url_port">カスタムポートを使用する場合は、絶対パスを入力 ("/" で始まる)</string> <!-- PGP Handler --> - <string name="title_activity_pgp_handler">PgpHandler</string> <string name="crypto_name_hint">名前</string> <string name="crypto_pass_label">パスワード</string> <string name="crypto_extra_label">追加</string> <!-- DECRYPT Layout --> - <string name="crypto_category">カテゴリー</string> <string name="action_search">検索</string> <!-- Preferences --> <string name="pref_git_title">Git</string> - <string name="pref_server_title">サーバー</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_remote_title">リモートの場所</string> - <string name="pref_remote_hint">path/to/repository</string> - <string name="pref_git_username_title">ユーザー名</string> - <string name="pref_git_username_hint">ユーザー名</string> <string name="pref_edit_server_info">git サーバー設定を編集</string> <string name="pref_ssh_title">SSH 鍵のインポート</string> <string name="pref_ssh_keygen_title">SSH 鍵ペアを生成</string> <string name="pref_ssh_see_key_title">生成した公開 SSH 鍵を表示</string> <string name="pref_git_delete_repo">リポジトリを削除</string> <string name="pref_dialog_delete_title">リポジトリをクリア</string> - <string name="pref_dialog_delete_msg">現在のパスワードストアディレクトリーを削除しますか? これで設定がクリアされることはありません。</string> <string name="pref_crypto_title">暗号化</string> <string name="pref_provider_title">OpenPGP プロバイダーを選択</string> - <string name="pref_provider_account_title">OpenPGP アカウントを設定</string> - <string name="pref_provider_account_hint">mail@somewhere.tld</string> <string name="pref_key_title">OpenPGP 鍵 ID を選択</string> <string name="pref_general_title">全般</string> <string name="pref_password_title">パスワード表示時間</string> @@ -123,7 +100,6 @@ <string name="pref_autofill_enable_msg2">サービスがオンになると、アプリのパスワードフィールドをクリックすとダイアログが表示され、一致するアプリのパスワードが存在すると表示されます。</string> <string name="pref_autofill_enable_msg3">Password Store は、自動的にアプリをパスワードと照合します。 このデフォルト設定を変更することも、アプリごとに設定を変更することもできます。</string> <string name="pref_autofill_apps_title">アプリとウェブサイトの設定</string> - <string name="pref_autofill_apps_hint">特定のアプリの自動入力設定をカスタマイズします。</string> <string name="pref_autofill_default_title">デフォルトで自動的に一致</string> <string name="pref_autofill_default_hint">カスタム設定のないアプリは、デフォルトは \'自動的に一致\' になります。 それ以外の場合は、\'一致しない\'。</string> <string name="pref_autofill_always_title">常にダイアログを表示</string> @@ -167,13 +143,10 @@ <string name="git_push">リモートにプッシュ</string> <string name="show_password_pref_title">パスワードを表示</string> <string name="show_password_pref_summary">一度復号化されたパスワードの可視性を制御します。これはパスワードのコピーを無効にしません</string> - <string name="toast_password_copied">パスワードをクリップボードにコピーしました</string> <string name="pwd_generate_button">生成</string> - <string name="category_string">"カテゴリー: "</string> <!-- Autofill --> <string name="autofill_description">アプリのパスワードフィールドを自動入力します。 Android バージョン 4.3 以降でのみ動作します。 Android 5.0 以降のクリップボードには依存しません。</string> - <string name="autofill_fill">入力</string> <string name="autofill_apps_default">デフォルト設定を使用する</string> <string name="autofill_apps_first">自動的に一致</string> <string name="autofill_apps_match_ellipsis">一致…</string> @@ -181,9 +154,7 @@ <string name="autofill_apps_never">一致しない</string> <string name="autofill_apps_delete">削除</string> <string name="refresh_list">リストを更新</string> - <string name="settings">設定</string> <string name="no_repo_selected">外部リポジトリが選択されていません</string> - <string name="no_repo_selected2">外部リポジトリが選択されていません</string> <string name="send_plaintext_password_to">パスワードをプレーンテキストとして送信…</string> <string name="show_password">パスワードを表示</string> </resources> diff --git a/app/src/main/res/values-large/refs.xml b/app/src/main/res/values-large/refs.xml deleted file mode 100644 index 91cab110..00000000 --- a/app/src/main/res/values-large/refs.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - - <!-- - Layout alias to replace the single-pane version of the layout with a - two-pane version on Large screens. - - For more on layout aliases, see: - http://developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters - --> - -</resources>
\ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e2711cc3..b0f3dc78 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -3,11 +3,8 @@ <!-- Activity names --> <string name="app_name">Password Store</string> - <string name="activity_clone_name">Клонировать Git репозиторий</string> - <string name="clone_settings">Клонировать</string> <string name="action_settings">Настройки</string> - <string name="hello_world">Привет, мир!</string> <string name="dialog_delete_title">Директория уже существует</string> <string name="dialog_delete_msg">Директория уже существует. Текущая версия поддерживает только одно хранилище. Хотите удалить существующее хранилище?</string> <string name="dialog_delete">Удалить директорию</string> @@ -18,23 +15,16 @@ <string name="creation_dialog_text">Пожалуйста, клонируйте или добавьте новый репозиторий перед тем, как добавлять пароль или выполнять операцию синхронизации.</string> <string name="store_git">/store/.git</string> <string name="key_dialog_text">Вы должны выбрать ваш "PGP-Key ID" перед инициализацией хранилища</string> - <string name="connection_dialog_text">Выберите предпочтительный метод соединения</string> <string name="delete_dialog_text">Вы уверены что хотите удалить пароль /"</string> <!-- git commits --> - <string name="initialization_commit_text">[ANDROID PwdStore] инициализировал хранилище с ключом keyID: </string> <string name="add_commit_text">[ANDROID PwdStore] Добавил  </string> - <string name="remove_commit_text">[ANDROID PwdStore] Удалил  </string> <string name="edit_commit_text">[ANDROID PwdStore] Редактировал  </string> <string name="from_store">  из хранилища.</string> <!-- PGPHandler --> <string name="provider_toast_text">Не выбран поставщик OpenPGP!</string> - <string name="okc_progress_text">Ожидание OpenKeychain…</string> <string name="clipboard_password_toast_text">Пароль скопирован в буфер обмена, у вас есть %d секунд чтобы вставить его.</string> - <string name="name_settings_toast_text">Пожалуйста, задайте имя пользователя в настройках</string> - <string name="account_settings_dialog_text">Пожалуйста, задайте почту для OpenKeychain в настройках</string> - <string name="account_settings_dialog_title">Пустое имя пользователя!</string> <string name="file_toast_text">Пожалуйста, укажите имя файла</string> <string name="empty_toast_text">Вы не можете использовать пустой пароль или пустое поле информации</string> @@ -44,7 +34,6 @@ <string name="jgit_error_dialog_text">Сообщение от jgit: \n</string> <!-- Git Handler --> - <string name="read_only_dialog_text">Вы собираетесь использовать репозиторий только для чтения и не сможете вносить изменения</string> <string name="forget_username_dialog_text">Вы забыли указать имя пользователя?</string> <string name="set_information_dialog_text">Вы должны указать информацию о сервере до выполнения синхронизации</string> <string name="ssh_preferences_dialog_text">Пожалуйста, импортируйте или сгенерируйте SSH ключ в настройках</string> @@ -56,7 +45,6 @@ <string name="password_dialog_text">Пожалуйста, предоставьте пароль для репозитория</string> <!-- Clone fragment --> - <string name="clone_fragment_text">Начните работу с Password Store\n\n Здесь вы можете создать новый репозиторий либо клонировать его на ваше устройство.</string> <string name="clone">Клонировать с сервера</string> <string name="initialize">Использовать локальную директорию</string> @@ -78,34 +66,23 @@ <string name="warn_malformed_url_port">При использовании нестандартных портов, предоставьте полный путь (начинается с "/")</string> <!-- PGP Handler --> - <string name="title_activity_pgp_handler">Обработчик PGP</string> <string name="crypto_name_hint">имя</string> <string name="crypto_pass_label">Пароль</string> <string name="crypto_extra_label">Дополнительно</string> <!-- DECRYPT Layout --> - <string name="crypto_category">Категория</string> <string name="action_search">Поиск</string> <!-- Preferences --> <string name="pref_git_title">Git</string> - <string name="pref_server_title">Сервер</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_remote_title">Удаленное расположение</string> - <string name="pref_remote_hint">path/to/repository</string> - <string name="pref_git_username_title">Имя пользователя</string> - <string name="pref_git_username_hint">username</string> <string name="pref_edit_server_info">Отредактирова настройки сервера git</string> <string name="pref_ssh_title">Импортировать SSH ключ</string> <string name="pref_ssh_keygen_title">Сгенерировать пару SSH ключей</string> <string name="pref_ssh_see_key_title">Просмотреть сгенерированный публичный SSH ключ</string> <string name="pref_git_delete_repo">Удалить репозиторий</string> <string name="pref_dialog_delete_title">Очистить репозиторий</string> - <string name="pref_dialog_delete_msg">Вы хотите удалить текущее хранилище паролей? Это не сбросит ваши настройки</string> <string name="pref_crypto_title">Шифрование</string> <string name="pref_provider_title">Выберите поставщика OpenPGP</string> - <string name="pref_provider_account_title">Настройте OpenPGP аккаунт</string> - <string name="pref_provider_account_hint">mail@somewhere.tld</string> <string name="pref_key_title">Выберите OpenPGP Key id</string> <string name="pref_general_title">Общие</string> <string name="pref_password_title">Время в буфере</string> @@ -122,7 +99,6 @@ <string name="pref_autofill_enable_msg2">После активации сервиса, при клике на поле ввода пароля в приложении появится диалоговое окно, если подходящий пароль существует</string> <string name="pref_autofill_enable_msg3">Password Store пытается сопоставлять пароли с приложениями автоматически. Вы можете изменить это поведение.</string> <string name="pref_autofill_apps_title">Настройки приложений и веб сайтов</string> - <string name="pref_autofill_apps_hint">Настройки автозаполнения для конкретного приложения.</string> <string name="pref_autofill_default_title">Автоматически сопоставлять по умолчанию</string> <string name="pref_autofill_default_hint">По умолчанию \'Автоматически сопоставлять\' для приложений без пользовательских настроек. В другом случае, \'Никогда не сопоставлять\'</string> <string name="pref_autofill_always_title">Всегда показывать диалоговое окно</string> @@ -163,13 +139,10 @@ <string name="git_push">Пуш на удаленный сервер</string> <string name="show_password_pref_title">Показать пароль</string> <string name="show_password_pref_summary">Видимость расшифрованных паролей, это не влияет на копирование в буфер</string> - <string name="toast_password_copied">Пароль скопирован в буфер обмена</string> <string name="pwd_generate_button">Сгенерировать</string> - <string name="category_string">"Категория: "</string> <!-- Autofill --> <string name="autofill_description">Автозаполнение паролей в приложениях. Работает только в Android 4.3 и выше. Не использует буфер обмена в Android 5.0 и выше.</string> - <string name="autofill_fill">Заполнить</string> <string name="autofill_apps_default">Использовать настройки по умолчанию</string> <string name="autofill_apps_first">Автоматически сопоставлять</string> <string name="autofill_apps_match_ellipsis">Сопоставить с … </string> @@ -177,9 +150,7 @@ <string name="autofill_apps_never">Никогда не сопоставлять</string> <string name="autofill_apps_delete">Удалить</string> <string name="refresh_list">Обновить список</string> - <string name="settings">Настройки</string> <string name="no_repo_selected">Не выбран внешний репозиторий</string> - <string name="no_repo_selected2">Не выбрын внешний репозиторий</string> <string name="send_plaintext_password_to">Отправить пароль в открытом виде с помощью …</string> <string name="show_password">Показать пароль</string> </resources> diff --git a/app/src/main/res/values-sw600dp/refs.xml b/app/src/main/res/values-sw600dp/refs.xml deleted file mode 100644 index 91cab110..00000000 --- a/app/src/main/res/values-sw600dp/refs.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - - <!-- - Layout alias to replace the single-pane version of the layout with a - two-pane version on Large screens. - - For more on layout aliases, see: - http://developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters - --> - -</resources>
\ No newline at end of file diff --git a/app/src/main/res/values-zh-rCH/strings.xml b/app/src/main/res/values-zh-rCH/strings.xml index 997914a4..ba6dfa5a 100644 --- a/app/src/main/res/values-zh-rCH/strings.xml +++ b/app/src/main/res/values-zh-rCH/strings.xml @@ -1,11 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Password Store</string> - <string name="account_settings_dialog_text">请在设置中设置您的 OpenKeyChain 账户 (email)</string> - <string name="account_settings_dialog_title">用户名为空!</string> <string name="action_search">搜索</string> <string name="action_settings">设置</string> - <string name="activity_clone_name">Clone 一个 Git repo</string> <string name="add_commit_text">[ANDROID PwdStore] 添加  </string> <string name="autofill_apps_default">使用默认设置</string> <string name="autofill_apps_delete">删除</string> @@ -13,16 +10,10 @@ <string name="autofill_apps_match">匹配</string> <string name="autofill_apps_never">从不匹配</string> <string name="autofill_description">在app中自动输入密码. 此功能只在 Andorid 4.3 及以上版本中可用. 在 Andorid 5.0 及以上版本中不依赖剪贴板</string> - <string name="autofill_fill">输入</string> - <string name="category_string">“类别:\"</string> <string name="clipboard_password_toast_text">密码已复制到剪贴板, 你有 %d 秒的时间将其粘贴到其他地方.</string> <string name="clone">从服务器Clone</string> - <string name="clone_fragment_text">欢迎使用 Password Store 你可以选择创建新的版本库或将你已有的 git 版本库克隆到你的设备上</string> - <string name="clone_settings">Clone</string> - <string name="connection_dialog_text">你喜欢哪种连接方式?</string> <string name="connection_mode">认证模式</string> <string name="creation_dialog_text">在尝试添加密码或任何同步操作前请在下方克隆或添加一个新的 Repo</string> - <string name="crypto_category">类别</string> <string name="default_https_port">443</string> <string name="default_ssh_port">22</string> <string name="crypto_pass_label">密码</string> @@ -47,21 +38,15 @@ <string name="git_pull">Git Pull</string> <string name="git_push">Git Push</string> <string name="git_sync">同步 Repo</string> - <string name="hello_world">Hello world!</string> - <string name="initialization_commit_text">[ANDROID PwdStore] Initialized store with keyID:</string> <string name="initialize">使用本地目录</string> <string name="jgit_error_dialog_text">Message from jgit:</string> <string name="jgit_error_dialog_title">内部错误</string> <string name="key_dialog_text">在初始化 Repo 之前你必须选择你的\"PGP-Key ID\"</string> - <string name="name_settings_toast_text">请尽快在设置中设置您的用户名</string> <string name="no_repo_selected">未选择外部 Repo</string> - <string name="no_repo_selected2">未选择外部 Repo</string> - <string name="okc_progress_text">正等待 OpenKeyChain…</string> <string name="passphrase_dialog_text">请为您的 SSH 密钥提供口令. 若口令为空则请留空</string> <string name="passphrase_dialog_title">认证</string> <string name="password_dialog_text">请提供当前 Repo 的密码</string> <string name="pref_autofill_always_title">总是显示对话框</string> - <string name="pref_autofill_apps_hint">为特定的app自定义自动填充设置</string> <string name="pref_autofill_apps_title">应用及网站设置</string> <string name="pref_autofill_default_hint">无自定义设置的应用将默认采用 \'自动匹配\' . 否则将采用\'从不匹配\'</string> <string name="pref_autofill_default_title">默认为自动匹配</string> @@ -73,7 +58,6 @@ <string name="pref_clear_clipboard_title">清空剪贴版20次</string> <string name="pref_copy_dialog_title">解密成功后自动将密码复制到剪贴板</string> <string name="pref_copy_title">自动复制密码</string> - <string name="pref_dialog_delete_msg">你确认 要删除当前的 Password Store 目录吗? 这将会清空你的所有设置</string> <string name="pref_dialog_delete_title">清空 Repo</string> <string name="pref_edit_server_info">修改 Git 服务器设置</string> <string name="pref_external_repository">外部 Repo</string> @@ -82,21 +66,13 @@ <string name="pref_git_delete_repo">删除 Repo</string> <string name="pref_git_delete_repo_summary">删除本地的 (隐藏) Repo</string> <string name="pref_git_title">Git</string> - <string name="pref_git_username_hint">username</string> - <string name="pref_git_username_title">用户名</string> <string name="pref_key_title">选择 OpenPGP Key Id</string> <string name="pref_password_dialog_title">选择密码在剪贴板中保存的时间限制</string> <string name="pref_password_title">密码保存时限</string> - <string name="pref_provider_account_hint">mail@somewhere.tld</string> - <string name="pref_provider_account_title">选择你的 OpenPGP 账户</string> <string name="pref_provider_title">选择 OpenPGP 应用</string> <string name="pref_recursive_filter">搜索子文件夹</string> <string name="pref_recursive_filter_hint">在当前目录的子目录中查找密码</string> - <string name="pref_remote_hint">path/to/repository</string> - <string name="pref_remote_title">远程位置</string> <string name="pref_select_external_repository">选择外部 Repo</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_server_title">Server</string> <string name="pref_ssh_keygen_title">生成 SSH 密钥对</string> <string name="pref_ssh_see_key_title">查看生成的 SSH 公钥</string> <string name="pref_ssh_title">导入 SSH 密钥</string> @@ -108,9 +84,7 @@ <string name="pwgen_numerals">数字</string> <string name="pwgen_symbols">特殊符号</string> <string name="pwgen_uppercase">大写</string> - <string name="read_only_dialog_text">你将使用一个只读的 Repo, 你无法将其提交</string> <string name="refresh_list">刷新列表</string> - <string name="remove_commit_text">[ANDROID PwdStore] Remove  </string> <string name="running_dialog_text">执行命令中…</string> <string name="send_plaintext_password_to">将密码以纯文本发送…</string> <string name="server_name">服务器</string> @@ -123,7 +97,6 @@ <string name="server_user">用户名</string> <string name="server_user_hint">git_username</string> <string name="set_information_dialog_text">你必须在与服务器同步前设置服务器信息</string> - <string name="settings">设置</string> <string name="show_password">显示密码</string> <string name="show_password_pref_summary">控制密码被解密后的可见性, 这并不影响密码的复制</string> <string name="show_password_pref_title">显示密码</string> @@ -143,8 +116,6 @@ <string name="ssh_preferences_dialog_title">无SSH密钥</string> <string name="store_git">/store/.git</string> <string name="title_activity_git_clone">Repo 信息</string> - <string name="title_activity_pgp_handler">PgpHandler</string> - <string name="toast_password_copied">密码已复制到剪贴板</string> <string name="warn_malformed_url_port">如果使用自定义端口, 请提供绝对路径 (从根目录开始)</string> <string name="dialog_positive">现在就去</string> <string name="server_resulting_url">生成的 URL</string> diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 088ab0be..43e51818 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1,11 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Password Store</string> - <string name="account_settings_dialog_text">請設定 OpenKeyChain 帳號 (email)</string> - <string name="account_settings_dialog_title">使用者名稱為空!</string> <string name="action_search">搜尋</string> <string name="action_settings">設定</string> - <string name="activity_clone_name">Clone Git repo</string> <string name="add_commit_text">[ANDROID PwdStore] Add  </string> <string name="autofill_apps_default">使用預設值</string> <string name="autofill_apps_delete">刪除</string> @@ -13,16 +10,10 @@ <string name="autofill_apps_match">自動填入</string> <string name="autofill_apps_never">手動</string> <string name="autofill_description">在app中自動填入密碼. 此功能只能在 Andorid 4.3 及以上版本中使用. 在 Andorid 5.0 及以上版本中不需要剪貼簿</string> - <string name="autofill_fill">輸入</string> - <string name="category_string">“分類:\"</string> <string name="clipboard_password_toast_text">密碼已複製到剪貼簿, 你有 %d 秒的時間將其貼上到其他地方.</string> <string name="clone">從伺服器 Clone</string> - <string name="clone_fragment_text">歡迎使用 Password Store 你可以選擇建立新的 Repo 或將你已有的 git repo clone 到你的裝置上</string> - <string name="clone_settings">Clone</string> - <string name="connection_dialog_text">你偏好哪種連線方式?</string> <string name="connection_mode">認證模式</string> <string name="creation_dialog_text">在嘗試新增密碼或任何同步操作之前請在下方 clone 或新增一個新的 Repo</string> - <string name="crypto_category">類別</string> <string name="default_https_port">443</string> <string name="default_ssh_port">22</string> <string name="crypto_pass_label">密碼</string> @@ -47,21 +38,15 @@ <string name="git_pull">Git Pull</string> <string name="git_push">Git Push</string> <string name="git_sync">同步 Repo</string> - <string name="hello_world">Hello world!</string> - <string name="initialization_commit_text">[ANDROID PwdStore] Initialized store with keyID:</string> <string name="initialize">使用本機目錄</string> <string name="jgit_error_dialog_text">Message from jgit:</string> <string name="jgit_error_dialog_title">内部錯誤</string> <string name="key_dialog_text">在初始化 Repo 之前你必須選擇你的\"PGP-Key ID\"</string> - <string name="name_settings_toast_text">请盡快在選項中設定你的使用者名稱</string> <string name="no_repo_selected">未選擇外部 Repo</string> - <string name="no_repo_selected2">未選擇外部 Repo</string> - <string name="okc_progress_text">正在等待 OpenKeyChain…</string> <string name="passphrase_dialog_text">請為你的 SSH 金鑰設定密碼. 若密碼為空請留空</string> <string name="passphrase_dialog_title">認證</string> <string name="password_dialog_text">請提供目前 Repo 的密碼</string> <string name="pref_autofill_always_title">總是顯示對話框</string> - <string name="pref_autofill_apps_hint">為特定的 app 自定義自動填入設定</string> <string name="pref_autofill_apps_title">app 及網站設定</string> <string name="pref_autofill_default_hint">無自定設定的 app 將預設使用 \'自動選取\' . 否則將使用\'手動\'</string> <string name="pref_autofill_default_title">使用自動選取</string> @@ -73,7 +58,6 @@ <string name="pref_clear_clipboard_title">清空剪貼簿 20 次</string> <string name="pref_copy_dialog_title">解密成功後自動將密碼複製到剪貼簿</string> <string name="pref_copy_title">自動複製密碼</string> - <string name="pref_dialog_delete_msg">你確定要刪除目前的 Password Store 目錄嗎? 這將會重置你所有的設定</string> <string name="pref_dialog_delete_title">清空 Repo</string> <string name="pref_edit_server_info">修改 Git 伺服器設定</string> <string name="pref_external_repository">外部 Repo</string> @@ -82,21 +66,13 @@ <string name="pref_git_delete_repo">刪除 Repo</string> <string name="pref_git_delete_repo_summary">刪除本機的 (隱藏) Repo</string> <string name="pref_git_title">Git</string> - <string name="pref_git_username_hint">username</string> - <string name="pref_git_username_title">使用者名稱</string> <string name="pref_key_title">選擇 OpenPGP Key Id</string> <string name="pref_password_dialog_title">選擇密碼在剪貼簿中保存的時間限制</string> <string name="pref_password_title">密碼保存時限</string> - <string name="pref_provider_account_hint">mail@somewhere.tld</string> - <string name="pref_provider_account_title">選擇你的 OpenPGP 帳號</string> <string name="pref_provider_title">選擇 OpenPGP app</string> <string name="pref_recursive_filter">搜尋子資料夾</string> <string name="pref_recursive_filter_hint">在目前目錄的子目錄中查詢密碼</string> - <string name="pref_remote_hint">path/to/repository</string> - <string name="pref_remote_title">遠端位置</string> <string name="pref_select_external_repository">選擇外部 Repo</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_server_title">Server</string> <string name="pref_ssh_keygen_title">生成 SSH 金鑰</string> <string name="pref_ssh_see_key_title">顯示生成的 SSH 公鑰</string> <string name="pref_ssh_title">匯入 SSH 私鑰</string> @@ -108,9 +84,7 @@ <string name="pwgen_numerals">數字</string> <string name="pwgen_symbols">特殊符號</string> <string name="pwgen_uppercase">大寫</string> - <string name="read_only_dialog_text">你使用了一個唯讀的 Repo, 你無法 commit</string> <string name="refresh_list">重新整理</string> - <string name="remove_commit_text">[ANDROID PwdStore] Remove  </string> <string name="running_dialog_text">執行中…</string> <string name="send_plaintext_password_to">將密碼以純文字傳送…</string> <string name="server_name">伺服器</string> @@ -123,7 +97,6 @@ <string name="server_user">使用者名稱</string> <string name="server_user_hint">git_username</string> <string name="set_information_dialog_text">你必須在與伺服器同步前設定伺服器資訊</string> - <string name="settings">設定</string> <string name="show_password">顯示密碼</string> <string name="show_password_pref_summary">控制密碼被解密後是否顯示密碼, 這不影響密碼的複製</string> <string name="show_password_pref_title">顯示密碼</string> @@ -143,8 +116,6 @@ <string name="ssh_preferences_dialog_title">無 SSH 金鑰</string> <string name="store_git">/store/.git</string> <string name="title_activity_git_clone">Repo 訊息</string> - <string name="title_activity_pgp_handler">PgpHandler</string> - <string name="toast_password_copied">密碼已複製到剪貼簿</string> <string name="warn_malformed_url_port">如果使用自定 port, 請使用绝對路徑 (從根目錄開始)</string> <string name="dialog_positive">確定</string> <string name="server_resulting_url">生成的 URL</string> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 7e1e3814..6293755e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,279 +2,17 @@ <resources> <color name="accent">#ff7043</color> <color name="background">#eee</color> - - <color name="red_50">#fde0dc</color> - <color name="red_100">#f9bdbb</color> - <color name="red_200">#f69988</color> - <color name="red_300">#f36c60</color> - <color name="red_400">#e84e40</color> - <color name="red_500">#e51c23</color> - <color name="red_600">#dd191d</color> - <color name="red_700">#d01716</color> - <color name="red_800">#c41411</color> - <color name="red_900">#b0120a</color> - <color name="red_A100">#ff7997</color> - <color name="red_A200">#ff5177</color> - <color name="red_A400">#ff2d6f</color> - <color name="red_A700">#e00032</color> - - <color name="pink_50">#fce4ec</color> - <color name="pink_100">#f8bbd0</color> - <color name="pink_200">#f48fb1</color> - <color name="pink_300">#f06292</color> - <color name="pink_400">#ec407a</color> - <color name="pink_500">#e91e63</color> - <color name="pink_600">#d81b60</color> - <color name="pink_700">#c2185b</color> - <color name="pink_800">#ad1457</color> - <color name="pink_900">#880e4f</color> - <color name="pink_A100">#ff80ab</color> - <color name="pink_A200">#ff4081</color> - <color name="pink_A400">#f50057</color> - <color name="pink_A700">#c51162</color> - - <color name="purple_50">#f3e5f5</color> - <color name="purple_100">#e1bee7</color> - <color name="purple_200">#ce93d8</color> - <color name="purple_300">#ba68c8</color> - <color name="purple_400">#ab47bc</color> - <color name="purple_500">#9c27b0</color> - <color name="purple_600">#8e24aa</color> - <color name="purple_700">#7b1fa2</color> - <color name="purple_800">#6a1b9a</color> - <color name="purple_900">#4a148c</color> - <color name="purple_A100">#ea80fc</color> - <color name="purple_A200">#e040fb</color> - <color name="purple_A400">#d500f9</color> - <color name="purple_A700">#aa00ff</color> - - <color name="dark_purple_50">#ede7f6</color> - <color name="dark_purple_100">#d1c4e9</color> - <color name="dark_purple_200">#b39ddb</color> - <color name="dark_purple_300">#9575cd</color> - <color name="dark_purple_400">#7e57c2</color> - <color name="dark_purple_500">#673ab7</color> - <color name="dark_purple_600">#5e35b1</color> - <color name="dark_purple_700">#512da8</color> - <color name="dark_purple_800">#4527a0</color> - <color name="dark_purple_900">#311b92</color> - <color name="dark_purple_A100">#b388ff</color> - <color name="dark_purple_A200">#7c4dff</color> - <color name="dark_purple_A400">#651fff</color> - <color name="dark_purple_A700">#6200ea</color> - - <color name="indigo_50">#e8eaf6</color> - <color name="indigo_100">#c5cae9</color> - <color name="indigo_200">#9fa8da</color> - <color name="indigo_300">#7986cb</color> - <color name="indigo_400">#5c6bc0</color> - <color name="indigo_500">#3f51b5</color> - <color name="indigo_600">#3949ab</color> - <color name="indigo_700">#303f9f</color> - <color name="indigo_800">#283593</color> - <color name="indigo_900">#1a237e</color> - <color name="indigo_A100">#8c9eff</color> - <color name="indigo_A200">#536dfe</color> - <color name="indigo_A400">#3d5afe</color> - <color name="indigo_A700">#304ffe</color> - - <color name="blue_50">#e7e9fd</color> - <color name="blue_100">#d0d9ff</color> - <color name="blue_200">#afbfff</color> - <color name="blue_300">#91a7ff</color> - <color name="blue_400">#738ffe</color> - <color name="blue_500">#5677fc</color> - <color name="blue_600">#4e6cef</color> - <color name="blue_700">#455ede</color> - <color name="blue_800">#3b50ce</color> - <color name="blue_900">#2a36b1</color> - <color name="blue_A100">#a6baff</color> - <color name="blue_A200">#6889ff</color> - <color name="blue_A400">#4d73ff</color> - <color name="blue_A700">#4d69ff</color> - - <color name="light_blue_50">#e1f5fe</color> - <color name="light_blue_100">#b3e5fc</color> - <color name="light_blue_200">#81d4fa</color> - <color name="light_blue_300">#4fc3f7</color> - <color name="light_blue_400">#29b6f6</color> - <color name="light_blue_500">#03a9f4</color> - <color name="light_blue_600">#039be5</color> - <color name="light_blue_700">#0288d1</color> - <color name="light_blue_800">#0277bd</color> - <color name="light_blue_900">#01579b</color> - <color name="light_blue_A100">#80d8ff</color> - <color name="light_blue_A200">#40c4ff</color> - <color name="light_blue_A400">#00b0ff</color> - <color name="light_blue_A700">#0091ea</color> - - <color name="cyan_50">#e0f7fa</color> - <color name="cyan_100">#b2ebf2</color> - <color name="cyan_200">#80deea</color> - <color name="cyan_300">#4dd0e1</color> - <color name="cyan_400">#26c6da</color> - <color name="cyan_500">#00bcd4</color> - <color name="cyan_600">#00acc1</color> - <color name="cyan_700">#0097a7</color> - <color name="cyan_800">#00838f</color> - <color name="cyan_900">#006064</color> - <color name="cyan_A100">#84ffff</color> - <color name="cyan_A200">#18ffff</color> - <color name="cyan_A400">#00e5ff</color> - <color name="cyan_A700">#00b8d4</color> - - <color name="teal_50">#e0f2f1</color> - <color name="teal_100">#b2dfdb</color> - <color name="teal_200">#80cbc4</color> - <color name="teal_300">#4db6ac</color> - <color name="teal_400">#26a69a</color> - <color name="teal_500">#9688</color> - <color name="teal_600">#00897b</color> - <color name="teal_700">#00796b</color> - <color name="teal_800">#00695c</color> - <color name="teal_900">#004d40</color> - <color name="teal_A100">#a7ffeb</color> - <color name="teal_A200">#64ffda</color> - <color name="teal_A400">#1de9b6</color> - <color name="teal_A700">#00bfa5</color> - - <color name="green_50">#d0f8ce</color> - <color name="green_100">#a3e9a4</color> - <color name="green_200">#72d572</color> - <color name="green_300">#42bd41</color> - <color name="green_400">#2baf2b</color> - <color name="green_500">#259b24</color> - <color name="green_600">#0a8f08</color> - <color name="green_700">#0a7e07</color> - <color name="green_800">#056f00</color> - <color name="green_900">#0d5302</color> - <color name="green_A100">#a2f78d</color> - <color name="green_A200">#5af158</color> - <color name="green_A400">#14e715</color> - <color name="green_A700">#12c700</color> - - <color name="light_green_50">#f1f8e9</color> - <color name="light_green_100">#dcedc8</color> - <color name="light_green_200">#c5e1a5</color> - <color name="light_green_300">#aed581</color> - <color name="light_green_400">#9ccc65</color> - <color name="light_green_500">#8bc34a</color> - <color name="light_green_600">#7cb342</color> - <color name="light_green_700">#689f38</color> - <color name="light_green_800">#558b2f</color> - <color name="light_green_900">#33691e</color> - <color name="light_green_A100">#ccff90</color> - <color name="light_green_A200">#b2ff59</color> - <color name="light_green_A400">#76ff03</color> - <color name="light_green_A700">#64dd17</color> - - <color name="lime_50">#f9fbe7</color> - <color name="lime_100">#f0f4c3</color> - <color name="lime_200">#e6ee9c</color> - <color name="lime_300">#dce775</color> - <color name="lime_400">#d4e157</color> - <color name="lime_500">#cddc39</color> - <color name="lime_600">#c0ca33</color> - <color name="lime_700">#afb42b</color> - <color name="lime_800">#9e9d24</color> - <color name="lime_900">#827717</color> - <color name="lime_A100">#f4ff81</color> - <color name="lime_A200">#eeff41</color> - <color name="lime_A400">#c6ff00</color> - <color name="lime_A700">#aeea00</color> - - <color name="yellow_50">#fffde7</color> - <color name="yellow_100">#fff9c4</color> - <color name="yellow_200">#fff59d</color> - <color name="yellow_300">#fff176</color> - <color name="yellow_400">#ffee58</color> - <color name="yellow_500">#ffeb3b</color> - <color name="yellow_600">#fdd835</color> - <color name="yellow_700">#fbc02d</color> - <color name="yellow_800">#f9a825</color> - <color name="yellow_900">#f57f17</color> - <color name="yellow_A100">#ffff8d</color> - <color name="yellow_A200">#ffff00</color> - <color name="yellow_A400">#ffea00</color> - <color name="yellow_A700">#ffd600</color> - - <color name="amber_50">#fff8e1</color> - <color name="amber_100">#ffecb3</color> - <color name="amber_200">#ffe082</color> - <color name="amber_300">#ffd54f</color> - <color name="amber_400">#ffca28</color> - <color name="amber_500">#ffc107</color> - <color name="amber_600">#ffb300</color> - <color name="amber_700">#ffa000</color> - <color name="amber_800">#ff8f00</color> - <color name="amber_900">#ff6f00</color> - <color name="amber_A100">#ffe57f</color> - <color name="amber_A200">#ffd740</color> - <color name="amber_A400">#ffc400</color> - <color name="amber_A700">#ffab00</color> - - <color name="orange_50">#fff3e0</color> - <color name="orange_100">#ffe0b2</color> - <color name="orange_200">#ffcc80</color> - <color name="orange_300">#ffb74d</color> - <color name="orange_400">#ffa726</color> - <color name="orange_500">#ff9800</color> - <color name="orange_600">#fb8c00</color> - <color name="orange_700">#f57c00</color> - <color name="orange_800">#ef6c00</color> - <color name="orange_900">#e65100</color> - <color name="orange_A100">#ffd180</color> - <color name="orange_A200">#ffab40</color> - <color name="orange_A400">#ff9100</color> - <color name="orange_A700">#ff6d00</color> - - <color name="deep_orange_50">#fbe9e7</color> - <color name="deep_orange_100">#ffccbc</color> + <color name="blue_grey_50">#eceff1</color> + <color name="blue_grey_500">#607d8b</color> + <color name="blue_grey_200">#b0bec5</color> + <color name="blue_grey_700">#455a64</color> + <color name="blue_grey_900">#263238</color> <color name="deep_orange_200">#ffab91</color> - <color name="deep_orange_300">#ff8a65</color> - <color name="deep_orange_400">#ff7043</color> - <color name="deep_orange_500">#ff5722</color> - <color name="deep_orange_600">#f4511e</color> - <color name="deep_orange_700">#e64a19</color> - <color name="deep_orange_800">#d84315</color> - <color name="deep_orange_900">#bf360c</color> - <color name="deep_orange_A100">#ff9e80</color> - <color name="deep_orange_A200">#ff6e40</color> - <color name="deep_orange_A400">#ff3d00</color> - <color name="deep_orange_A700">#dd2c00</color> - - <color name="brown_50">#efebe9</color> - <color name="brown_100">#d7ccc8</color> - <color name="brown_200">#bcaaa4</color> - <color name="brown_300">#a1887f</color> - <color name="brown_400">#8d6e63</color> - <color name="brown_500">#795548</color> - <color name="brown_600">#6d4c41</color> - <color name="brown_700">#5d4037</color> - <color name="brown_800">#4e342e</color> - <color name="brown_900">#3e2723</color> - - <color name="grey_50">#fafafa</color> - <color name="grey_100">#f5f5f5</color> - <color name="grey_200">#eeeeee</color> <color name="grey_300">#e0e0e0</color> - <color name="grey_400">#bdbdbd</color> <color name="grey_500">#9e9e9e</color> <color name="grey_600">#757575</color> - <color name="grey_700">#616161</color> - <color name="grey_800">#424242</color> - <color name="grey_900">#212121</color> - <color name="grey_black_1000">#000000</color> <color name="grey_white_1000">#ffffff</color> - - <color name="blue_grey_50">#eceff1</color> - <color name="blue_grey_100">#cfd8dc</color> - <color name="blue_grey_200">#b0bec5</color> - <color name="blue_grey_300">#90a4ae</color> - <color name="blue_grey_400">#78909c</color> - <color name="blue_grey_500">#607d8b</color> - <color name="blue_grey_600">#546e7a</color> - <color name="blue_grey_700">#455a64</color> - <color name="blue_grey_800">#37474f</color> - <color name="blue_grey_900">#263238</color> + <color name="grey_black_1000">#000000</color> + <color name="teal_900">#004d40</color> + <color name="teal_A700">#00bfa5</color> </resources> diff --git a/app/src/main/res/values/refs.xml b/app/src/main/res/values/refs.xml deleted file mode 100644 index 830f4848..00000000 --- a/app/src/main/res/values/refs.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - - <!-- - Layout alias to replace the single-pane version of the layout with a - two-pane version on Large screens. - - For more on layout aliases, see: - http://developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters - --> -</resources>
\ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 51b23002..6003c585 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,11 +3,8 @@ <!-- Activity names --> <string name="app_name">Password Store</string> - <string name="activity_clone_name">Clone a Git repo</string> - <string name="clone_settings">Clone</string> <string name="action_settings">Settings</string> - <string name="hello_world">Hello world!</string> <string name="dialog_delete_title">Directory already exist</string> <string name="dialog_delete_msg">Target directory already exist. Current version support only a single store. Do you want to delete the current password store directory:</string> <string name="dialog_delete">Delete directory</string> @@ -19,24 +16,20 @@ <string name="creation_dialog_text">Please clone or create a new repository below before trying to add a password or any synchronization operation.</string> <string name="store_git">/store/.git</string> <string name="key_dialog_text">You have to select your "PGP-Key ID" before initializing the repository</string> - <string name="connection_dialog_text">Which connection method do you prefer?</string> <string name="delete_dialog_text">Are you sure you want to delete the password /"</string> + <string name="move">Move</string> + <string name="edit">Edit</string> + <string name="delete">Delete</string> <!-- git commits --> - <string name="initialization_commit_text">[ANDROID PwdStore] Initialized store with keyID: </string> <string name="add_commit_text">[ANDROID PwdStore] Add  </string> - <string name="remove_commit_text">[ANDROID PwdStore] Remove  </string> <string name="edit_commit_text">[ANDROID PwdStore] Edit  </string> <string name="from_store">  from store.</string> <!-- PGPHandler --> <string name="provider_toast_text">No OpenPGP Provider selected!</string> - <string name="okc_progress_text">Waiting for OpenKeychain…</string> <string name="clipboard_password_toast_text">Password copied to clipboard, you have %d seconds to paste it somewhere.</string> <string name="clipboard_username_toast_text">Username copied to clipboard</string> - <string name="name_settings_toast_text">Please set your account name in settings whenever you can</string> - <string name="account_settings_dialog_text">Please set your OpenKeychain account (email) in the preferences</string> - <string name="account_settings_dialog_title">Account name empty!</string> <string name="file_toast_text">Please provide a file name</string> <string name="empty_toast_text">You cannot use an empty password or empty extra content</string> @@ -46,7 +39,6 @@ <string name="jgit_error_dialog_text">Message from jgit: \n</string> <!-- Git Handler --> - <string name="read_only_dialog_text">You are about to use a read-only repository, you will not be able to push to it</string> <string name="forget_username_dialog_text">Did you forget to specify a username?</string> <string name="set_information_dialog_text">You have to set the information about the server before synchronizing with the server</string> <string name="ssh_preferences_dialog_text">Please import or generate your SSH key file in the preferences</string> @@ -58,7 +50,6 @@ <string name="password_dialog_text">Please provide the password for this repository</string> <!-- Clone fragment --> - <string name="clone_fragment_text">Welcome to Password Store\n\n In this screen you can either create a new repository or clone your git repository onto your device.</string> <string name="clone">Clone from server</string> <string name="initialize">Use local directory</string> @@ -86,15 +77,17 @@ <string name="git_user_email" translatable="false">Email</string> <string name="git_user_email_hint" translatable="false">email</string> <string name="invalid_email_dialog_text">Please enter a valid email address</string> + <string name="clone_button">Clone!</string> <!-- PGP Handler --> - <string name="title_activity_pgp_handler">PgpHandler</string> <string name="crypto_name_hint">name</string> <string name="crypto_pass_label">Password</string> <string name="crypto_extra_label">Extra</string> + <string name="crypto_select">Select</string> + <string name="crypto_cancel">Cancel</string> + <string name="crypto_save">Save</string> <!-- DECRYPT Layout --> - <string name="crypto_category">Category</string> <string name="action_search">Search</string> <string name="password">Password:</string> <string name="extra_content">Extra content:</string> @@ -106,12 +99,6 @@ <!-- Preferences --> <string name="pref_git_title">Git</string> - <string name="pref_server_title">Server</string> - <string name="pref_server_hint">server.com</string> - <string name="pref_remote_title">Remote location</string> - <string name="pref_remote_hint">path/to/repository</string> - <string name="pref_git_username_title">Username</string> - <string name="pref_git_username_hint">username</string> <string name="pref_edit_server_info">Edit git server settings</string> <string name="pref_edit_git_config">Edit git config</string> <string name="pref_ssh_title">Import SSH key</string> @@ -119,11 +106,8 @@ <string name="pref_ssh_see_key_title">View generated public SSH key</string> <string name="pref_git_delete_repo">Delete repository</string> <string name="pref_dialog_delete_title">Clear repository</string> - <string name="pref_dialog_delete_msg">Do you want to delete the current password store directory? This will not clear your configuration.</string> <string name="pref_crypto_title">Crypto</string> <string name="pref_provider_title">Select OpenPGP Provider</string> - <string name="pref_provider_account_title">Set your OpenPGP account</string> - <string name="pref_provider_account_hint">mail@somewhere.tld</string> <string name="pref_key_title">Select OpenPGP Key id</string> <string name="pref_general_title">General</string> <string name="pref_password_title">Password Show Time</string> @@ -141,7 +125,6 @@ <string name="pref_autofill_enable_msg2">Once the service is on, a dialog will appear when you click on a password field in an app if a matching password for the app exists.</string> <string name="pref_autofill_enable_msg3">Password Store attempts to match apps with passwords automatically. You can change this default setting and also matching settings per-app.</string> <string name="pref_autofill_apps_title">App and website settings</string> - <string name="pref_autofill_apps_hint">Customize autofill settings for specific apps.</string> <string name="pref_autofill_default_title">Automatically match by default</string> <string name="pref_autofill_default_hint">Default to \'Automatically match\' for apps without custom settings. Otherwise, \'Never match.\'</string> <string name="pref_autofill_always_title">Always show dialog</string> @@ -152,6 +135,12 @@ <string name="pref_external_repository">External repository</string> <string name="pref_external_repository_summary">Use an external password repository</string> <string name="pref_select_external_repository">Select external repository</string> + <string name="prefs_use_default_file_picker">Use default file picker</string> + <string name="prefs_clear_after_copy_title">Automatically clear the clipboard after copy</string> + <string name="prefs_clear_after_copy_summary">After an automatic copy or a manual copy of the password, the clipboard will be automatically cleared.</string> + <string name="prefs_export_passwords_title">Export Passwords</string> + <string name="prefs_export_passwords_summary">Exports the encrypted passwords to an external directory</string> + <string name="prefs_version">Version</string> <!-- pwgen fragment --> <string name="pwgen_generate">Generate</string> @@ -187,13 +176,10 @@ <string name="show_password_pref_summary">Control the visibility of the passwords once decrypted, this does not disable the password copy</string> <string name="show_extra_content_pref_title">Show extra content</string> <string name="show_extra_content_pref_summary">Control the visibility of the extra content once decrypted</string> - <string name="toast_password_copied">Password copied into the clipboard</string> <string name="pwd_generate_button">Generate</string> - <string name="category_string">"Category: "</string> <!-- Autofill --> <string name="autofill_description">Autofills password fields in apps. Only works for Android versions 4.3 and up. Does not rely on the clipboard for Android versions 5.0 and up.</string> - <string name="autofill_fill">Fill</string> <string name="autofill_apps_default">Use default setting</string> <string name="autofill_apps_first">Automatically match</string> <string name="autofill_apps_match_ellipsis">Match with…</string> @@ -203,9 +189,8 @@ <string name="autofill_pick">Pick…</string> <string name="autofill_pick_and_match">Pick and match…</string> <string name="refresh_list">Refresh list</string> - <string name="settings">Settings</string> <string name="no_repo_selected">No external repository selected</string> - <string name="no_repo_selected2">No external repository selected</string> <string name="send_plaintext_password_to">Send password as plaintext using…</string> <string name="show_password">Show password</string> + <string name="repository_uri">Repository URI</string> </resources> diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml index cd072353..87e77aae 100644 --- a/app/src/main/res/xml/preference.xml +++ b/app/src/main/res/xml/preference.xml @@ -66,8 +66,8 @@ <CheckBoxPreference android:defaultValue="true" android:key="clear_after_copy" - android:summary="After an automatic copy or a manual copy of the password, the clipboard will be automatically cleared." - android:title="Automatically clear the clipboard after copy" /> + android:summary="@string/prefs_clear_after_copy_summary" + android:title="@string/prefs_clear_after_copy_title" /> <CheckBoxPreference android:defaultValue="true" android:key="filter_recursively" @@ -100,8 +100,8 @@ <PreferenceCategory android:title="@string/pref_misc_title"> <Preference android:key="export_passwords" - android:title="Export Passwords" - android:summary="Exports the encrypted passwords to an external directory"/> + android:title="@string/prefs_export_passwords_title" + android:summary="@string/prefs_export_passwords_summary"/> <CheckBoxPreference android:defaultValue="false" @@ -112,10 +112,10 @@ <CheckBoxPreference android:defaultValue="false" android:key="use_android_file_picker" - android:title="Use default file picker" /> + android:title="@string/prefs_use_default_file_picker" /> </PreferenceCategory> <Preference android:key="app_version" - android:title="Version" /> + android:title="@string/prefs_version" /> </PreferenceScreen> |