summaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/AndroidManifest.xml13
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java4
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordStore.java8
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/UserPreference.java10
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/AutofillRecyclerAdapter.java39
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java4
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java4
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java10
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java10
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgen/PRNGFixes.java5
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgen/pw_phonemes.java2
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgen/pw_rand.java2
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgen/randnum.java2
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java2
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/EntryRecyclerAdapter.java6
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java21
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java3
-rw-r--r--app/src/main/res/drawable-nodpi/autofill_ins_1.png (renamed from app/src/main/res/drawable/autofill_ins_1.png)bin11931 -> 11931 bytes
-rw-r--r--app/src/main/res/drawable-nodpi/autofill_ins_2.png (renamed from app/src/main/res/drawable/autofill_ins_2.png)bin6851 -> 6851 bytes
-rw-r--r--app/src/main/res/drawable-nodpi/autofill_ins_3.png (renamed from app/src/main/res/drawable/autofill_ins_3.png)bin10726 -> 10726 bytes
-rw-r--r--app/src/main/res/drawable/rectangle.xml21
-rw-r--r--app/src/main/res/layout/activity_git_clone.xml16
-rw-r--r--app/src/main/res/layout/activity_git_config.xml4
-rw-r--r--app/src/main/res/layout/autofill_instructions.xml11
-rw-r--r--app/src/main/res/layout/autofill_recycler_view.xml3
-rw-r--r--app/src/main/res/layout/autofill_row_layout.xml8
-rw-r--r--app/src/main/res/layout/decrypt_layout.xml9
-rw-r--r--app/src/main/res/layout/encrypt_layout.xml3
-rw-r--r--app/src/main/res/layout/fragment_autofill.xml3
-rw-r--r--app/src/main/res/layout/fragment_pwgen.xml11
-rw-r--r--app/src/main/res/layout/fragment_show_ssh_key.xml4
-rw-r--r--app/src/main/res/layout/fragment_ssh_keygen.xml7
-rw-r--r--app/src/main/res/layout/fragment_to_clone_or_not.xml7
-rw-r--r--app/src/main/res/layout/password_recycler_view.xml3
-rw-r--r--app/src/main/res/layout/password_row_layout.xml7
-rw-r--r--app/src/main/res/values-de/strings.xml6
-rw-r--r--app/src/main/res/values/strings.xml5
37 files changed, 136 insertions, 137 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index fed637d9..98884e13 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,14 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.zeapo.pwdstore">
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.zeapo.pwdstore">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
- <application android:allowBackup="true" android:icon="@drawable/ic_launcher"
- android:label="@string/app_name" android:theme="@style/AppTheme">
+ <application android:allowBackup="true"
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name"
+ android:theme="@style/AppTheme"
+ android:supportsRtl="true">
<activity android:name=".PasswordStore" android:label="@string/app_name"
android:configChanges="orientation|screenSize">
<intent-filter>
@@ -57,7 +61,8 @@
<activity android:name=".autofill.AutofillActivity"
android:parentActivityName=".PasswordStore"
android:documentLaunchMode="intoExisting"
- android:excludeFromRecents="true">
+ android:excludeFromRecents="true"
+ tools:ignore="UnusedAttribute">
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value="com.zeapo.pwdstore.PasswordStore" />
diff --git a/app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java b/app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java
index 7bc66b62..bc174318 100644
--- a/app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java
+++ b/app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java
@@ -8,7 +8,7 @@ import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.View;
-public class DividerItemDecoration extends RecyclerView.ItemDecoration {
+class DividerItemDecoration extends RecyclerView.ItemDecoration {
private static final int[] ATTRS = new int[]{android.R.attr.listDivider};
@@ -26,7 +26,7 @@ public class DividerItemDecoration extends RecyclerView.ItemDecoration {
/**
* Custom divider will be used
*/
- public DividerItemDecoration(Context context, int resId) {
+ DividerItemDecoration(Context context, int resId) {
mDivider = ContextCompat.getDrawable(context, resId);
}
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java
index fb8ec8c7..6c232ab8 100644
--- a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java
+++ b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java
@@ -294,7 +294,7 @@ public class PasswordStore extends AppCompatActivity {
checkLocalRepository();
}
- public void initializeRepositoryInfo() {
+ private void initializeRepositoryInfo() {
if (settings.getBoolean("git_external", false) && settings.getString("git_external_repo", null) != null) {
File dir = new File(settings.getString("git_external_repo", null));
@@ -521,13 +521,13 @@ public class PasswordStore extends AppCompatActivity {
/**
* Updates the adapter with the current view of passwords
*/
- public void refreshListAdapter() {
+ private void refreshListAdapter() {
if ((null != plist)) {
plist.refreshAdapter();
}
}
- public void filterListAdapter(String filter) {
+ private void filterListAdapter(String filter) {
if ((null != plist)) {
plist.filterAdapter(filter);
}
@@ -643,7 +643,7 @@ public class PasswordStore extends AppCompatActivity {
}
}
- protected void initRepository(final int operation) {
+ private void initRepository(final int operation) {
PasswordRepository.closeRepository();
new AlertDialog.Builder(this)
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java
index 9ac88ef6..e39ad1c6 100644
--- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java
+++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java
@@ -285,7 +285,7 @@ public class UserPreference extends AppCompatActivity {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
- public void selectExternalGitRepository() {
+ private void selectExternalGitRepository() {
final Activity activity = this;
new AlertDialog.Builder(this).
setTitle("Choose where to store the passwords").
@@ -332,7 +332,7 @@ public class UserPreference extends AppCompatActivity {
/**
* Opens a file explorer to import the private key
*/
- public void getSshKeyWithPermissions(boolean useDefaultPicker) {
+ private void getSshKeyWithPermissions(boolean useDefaultPicker) {
final Activity activity = this;
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.READ_EXTERNAL_STORAGE)) {
@@ -362,7 +362,7 @@ public class UserPreference extends AppCompatActivity {
/**
* Opens a file explorer to import the private key
*/
- public void getSshKey(boolean useDefaultPicker) {
+ private void getSshKey(boolean useDefaultPicker) {
if (useDefaultPicker) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
@@ -382,7 +382,7 @@ public class UserPreference extends AppCompatActivity {
}
}
- public void exportPasswordsWithPermissions() {
+ private void exportPasswordsWithPermissions() {
final Activity activity = this;
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
@@ -421,7 +421,7 @@ public class UserPreference extends AppCompatActivity {
/**
* Opens a key generator to generate a public/private key pair
*/
- public void makeSshKey(boolean fromPreferences) {
+ private void makeSshKey(boolean fromPreferences) {
Intent intent = new Intent(getApplicationContext(), SshKeyGen.class);
startActivity(intent);
if (!fromPreferences) {
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 80942c58..b28687d8 100644
--- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillRecyclerAdapter.java
+++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillRecyclerAdapter.java
@@ -18,23 +18,23 @@ import com.zeapo.pwdstore.R;
import java.util.ArrayList;
import java.util.List;
-public class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecyclerAdapter.ViewHolder> {
+class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecyclerAdapter.ViewHolder> {
private SortedList<AppInfo> apps;
private ArrayList<AppInfo> allApps; // for filtering, maintain a list of all
private AutofillPreferenceActivity activity;
- Drawable browserIcon = null;
+ private Drawable browserIcon = null;
- public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+ class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public View view;
public TextView name;
- public TextView secondary;
+ TextView secondary;
public ImageView icon;
- public String packageName;
- public String appName;
- public Boolean isWeb;
+ String packageName;
+ String appName;
+ Boolean isWeb;
- public ViewHolder(View view) {
+ ViewHolder(View view) {
super(view);
this.view = view;
name = (TextView) view.findViewById(R.id.app_name);
@@ -50,13 +50,13 @@ public class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecycl
}
- public static class AppInfo {
- public String packageName;
- public String appName;
- public boolean isWeb;
+ static class AppInfo {
+ String packageName;
+ String appName;
+ boolean isWeb;
public Drawable icon;
- public AppInfo(String packageName, String appName, boolean isWeb, Drawable icon) {
+ AppInfo(String packageName, String appName, boolean isWeb, Drawable icon) {
this.packageName = packageName;
this.appName = appName;
this.isWeb = isWeb;
@@ -69,7 +69,7 @@ public class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecycl
}
}
- public AutofillRecyclerAdapter(List<AppInfo> allApps, final PackageManager pm
+ AutofillRecyclerAdapter(List<AppInfo> allApps, final PackageManager pm
, AutofillPreferenceActivity activity) {
SortedList.Callback<AppInfo> callback = new SortedListAdapterCallback<AppInfo>(this) {
// don't take into account secondary text. This is good enough
@@ -92,7 +92,6 @@ public class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecycl
this.apps = new SortedList<>(AppInfo.class, callback);
this.apps.addAll(allApps);
this.allApps = new ArrayList<>(allApps);
- PackageManager pm1 = pm;
this.activity = activity;
try {
browserIcon = activity.getPackageManager().getApplicationIcon("com.android.browser");
@@ -155,28 +154,28 @@ public class AutofillRecyclerAdapter extends RecyclerView.Adapter<AutofillRecycl
return apps.size();
}
- public int getPosition(String appName) {
+ int getPosition(String appName) {
return apps.indexOf(new AppInfo(null, appName, false, null));
}
// for websites, URL = packageName == appName
- public void addWebsite(String packageName) {
+ void addWebsite(String packageName) {
apps.add(new AppInfo(packageName, packageName, true, browserIcon));
allApps.add(new AppInfo(packageName, packageName, true, browserIcon));
}
- public void removeWebsite(String packageName) {
+ void removeWebsite(String packageName) {
apps.remove(new AppInfo(null, packageName, false, null));
allApps.remove(new AppInfo(null, packageName, false, null)); // compare with equals
}
- public void updateWebsite(String oldPackageName, String packageName) {
+ void updateWebsite(String oldPackageName, String packageName) {
apps.updateItemAt(getPosition(oldPackageName), new AppInfo (packageName, packageName, true, browserIcon));
allApps.remove(new AppInfo(null, oldPackageName, false, null)); // compare with equals
allApps.add(new AppInfo(null, packageName, false, null));
}
- public void filter(String s) {
+ void filter(String s) {
if (s.isEmpty()) {
apps.addAll(allApps);
return;
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 8f75a31f..c4013dc6 100644
--- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
+++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
@@ -1,5 +1,6 @@
package com.zeapo.pwdstore.crypto;
+import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.DialogFragment;
import android.app.PendingIntent;
@@ -666,8 +667,6 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne
/**
* Encrypts a password file
- *
- * @param data
*/
public void encrypt(Intent data) {
data.setAction(OpenPgpApi.ACTION_ENCRYPT);
@@ -730,6 +729,7 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne
}
// TODO (low priority but still...) android M potential permissions crashes
+ @SuppressLint("SetTextI18n")
@Override
public void onBound(IOpenPgpService2 service) {
Log.i("PGP", "ISBOUND!!");
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 6314a4b3..51ab863d 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java
+++ b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java
@@ -456,8 +456,6 @@ public class GitActivity extends AppCompatActivity {
/**
* Save the repository information to the shared preferences settings
- *
- * @param view
*/
public void saveConfiguration(View view) {
if (!saveConfiguration())
@@ -500,8 +498,6 @@ public class GitActivity extends AppCompatActivity {
/**
* Clones the repository, the directory exists, deletes it
- *
- * @param view
*/
public void cloneRepository(View view) {
if (PasswordRepository.getRepository(null) == null) {
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 4002d24e..6f886687 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java
+++ b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.java
@@ -30,9 +30,9 @@ public abstract class GitOperation {
public static final int GET_SSH_KEY_FROM_CLONE = 201;
protected final Repository repository;
- protected final Activity callingActivity;
- protected UsernamePasswordCredentialsProvider provider;
- protected GitCommand command;
+ final Activity callingActivity;
+ UsernamePasswordCredentialsProvider provider;
+ GitCommand command;
/**
* Creates a new git operation
@@ -52,7 +52,7 @@ public abstract class GitOperation {
* @param password the password
* @return the current object
*/
- public GitOperation setAuthentication(String username, String password) {
+ GitOperation setAuthentication(String username, String password) {
SshSessionFactory.setInstance(new GitConfigSessionFactory());
this.provider = new UsernamePasswordCredentialsProvider(username, password);
return this;
@@ -66,7 +66,7 @@ public abstract class GitOperation {
* @param passphrase the passphrase
* @return the current object
*/
- public GitOperation setAuthentication(File sshKey, String username, String passphrase) {
+ GitOperation setAuthentication(File sshKey, String username, String passphrase) {
JschConfigSessionFactory sessionFactory = new SshConfigSessionFactory(sshKey.getAbsolutePath(), username, passphrase);
SshSessionFactory.setInstance(sessionFactory);
this.provider = null;
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java b/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java
index 0094b22c..089993d3 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java
+++ b/app/src/main/java/com/zeapo/pwdstore/git/SyncOperation.java
@@ -16,11 +16,11 @@ import org.eclipse.jgit.api.StatusCommand;
import java.io.File;
public class SyncOperation extends GitOperation {
- protected AddCommand addCommand;
- protected StatusCommand statusCommand;
- protected CommitCommand commitCommand;
- protected PullCommand pullCommand;
- protected PushCommand pushCommand;
+ private AddCommand addCommand;
+ private StatusCommand statusCommand;
+ private CommitCommand commitCommand;
+ private PullCommand pullCommand;
+ private PushCommand pushCommand;
/**
* Creates a new git operation
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgen/PRNGFixes.java b/app/src/main/java/com/zeapo/pwdstore/pwgen/PRNGFixes.java
index 201e821d..aabc27b2 100644
--- a/app/src/main/java/com/zeapo/pwdstore/pwgen/PRNGFixes.java
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgen/PRNGFixes.java
@@ -185,16 +185,12 @@ public final class PRNGFixes {
/**
* Input stream for reading from Linux PRNG or {@code null} if not yet
* opened.
- *
- * @GuardedBy("sLock")
*/
private static DataInputStream sUrandomIn;
/**
* Output stream for writing to Linux PRNG or {@code null} if not yet
* opened.
- *
- * @GuardedBy("sLock")
*/
private static OutputStream sUrandomOut;
@@ -224,6 +220,7 @@ public final class PRNGFixes {
}
}
+ @SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
@Override
protected void engineNextBytes(byte[] bytes) {
if (!mSeeded) {
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_phonemes.java b/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_phonemes.java
index 1b312232..297c21c5 100644
--- a/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_phonemes.java
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_phonemes.java
@@ -1,6 +1,6 @@
package com.zeapo.pwdstore.pwgen;
-public class pw_phonemes {
+class pw_phonemes {
private static final int CONSONANT = 0x0001;
private static final int VOWEL = 0x0002;
private static final int DIPTHONG = 0x0004;
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_rand.java b/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_rand.java
index 945aaf71..9afd5e4a 100644
--- a/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_rand.java
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgen/pw_rand.java
@@ -1,6 +1,6 @@
package com.zeapo.pwdstore.pwgen;
-public class pw_rand {
+class pw_rand {
/**
* Generates a completely random password.
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgen/randnum.java b/app/src/main/java/com/zeapo/pwdstore/pwgen/randnum.java
index 83cf4b03..583d0863 100644
--- a/app/src/main/java/com/zeapo/pwdstore/pwgen/randnum.java
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgen/randnum.java
@@ -3,7 +3,7 @@ package com.zeapo.pwdstore.pwgen;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
-public class randnum {
+class randnum {
private static SecureRandom random;
static {
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java b/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java
index 7b55dccf..2a04be0e 100644
--- a/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgenDialogFragment.java
@@ -1,5 +1,6 @@
package com.zeapo.pwdstore;
+import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.app.DialogFragment;
@@ -30,6 +31,7 @@ public class pwgenDialogFragment extends DialogFragment {
}
+ @SuppressLint("SetTextI18n")
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
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 a36b1124..f1d2c36b 100644
--- a/app/src/main/java/com/zeapo/pwdstore/utils/EntryRecyclerAdapter.java
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/EntryRecyclerAdapter.java
@@ -1,5 +1,6 @@
package com.zeapo.pwdstore.utils;
+import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.support.annotation.NonNull;
@@ -83,7 +84,7 @@ public abstract class EntryRecyclerAdapter extends RecyclerView.Adapter<EntryRec
}
@NonNull
- protected View.OnLongClickListener getOnLongClickListener(ViewHolder holder, PasswordItem pass) {
+ View.OnLongClickListener getOnLongClickListener(ViewHolder holder, PasswordItem pass) {
return new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
@@ -93,6 +94,7 @@ public abstract class EntryRecyclerAdapter extends RecyclerView.Adapter<EntryRec
}
// Replace the contents of a view (invoked by the layout manager)
+ @SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
final PasswordItem pass = getValues().get(position);
@@ -118,7 +120,7 @@ public abstract class EntryRecyclerAdapter extends RecyclerView.Adapter<EntryRec
holder.itemView.setBackgroundResource(R.color.deep_orange_200);
holder.type.setTextColor(Color.BLACK);
} else {
- holder.itemView.setBackgroundResource(Color.alpha(1));
+ holder.itemView.setBackgroundColor(Color.alpha(1));
holder.type.setTextColor(ContextCompat.getColor(activity, R.color.grey_500));
}
}
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 cfdb829d..f45abc38 100644
--- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java
@@ -18,11 +18,8 @@ public class PasswordItem implements Comparable{
/** Create a password item
*
* Make it protected so that we use a builder
- * @param name
- * @param parent
- * @param type
*/
- protected PasswordItem(String name, PasswordItem parent, char type, File file, File rootDir) {
+ private PasswordItem(String name, PasswordItem parent, char type, File file, File rootDir) {
this.name = name;
this.parent = parent;
this.type = type;
@@ -31,38 +28,24 @@ public class PasswordItem implements Comparable{
}
/** Create a new Category item
- *
- * @param name
- * @param parent
- * @return
*/
public static PasswordItem newCategory(String name, File file, PasswordItem parent, File rootDir) {
return new PasswordItem(name, parent, TYPE_CATEGORY, file, rootDir);
}
/** Create a new parentless category item
- *
- * @param name
- * @return
*/
public static PasswordItem newCategory(String name, File file, File rootDir) {
return new PasswordItem(name, null, TYPE_CATEGORY, file, rootDir);
}
/** Create a new password item
- *
- * @param name
- * @param parent
- * @return
*/
public static PasswordItem newPassword(String name, File file, PasswordItem parent, File rootDir) {
return new PasswordItem(name, parent, TYPE_PASSWORD, file, rootDir);
}
/** Create a new parentless password item
- *
- * @param name
- * @return
*/
public static PasswordItem newPassword(String name, File file, File rootDir) {
return new PasswordItem(name, null, TYPE_PASSWORD, file, rootDir);
@@ -72,7 +55,7 @@ public class PasswordItem implements Comparable{
return this.type;
}
- public String getName(){
+ private String getName(){
return this.name;
}
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 d97e3294..b1ee7ed0 100644
--- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
@@ -19,7 +19,6 @@ import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
import java.util.Set;
import static java.util.Collections.sort;
@@ -168,7 +167,7 @@ public class PasswordRepository {
Log.d("REPO", "current path: " + path.getPath());
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)));
+ files.addAll(new ArrayList<>(FileUtils.listFiles(path, new String[]{"gpg"}, false)));
return new ArrayList<>(files);
}
diff --git a/app/src/main/res/drawable/autofill_ins_1.png b/app/src/main/res/drawable-nodpi/autofill_ins_1.png
index 56052303..56052303 100644
--- a/app/src/main/res/drawable/autofill_ins_1.png
+++ b/app/src/main/res/drawable-nodpi/autofill_ins_1.png
Binary files differ
diff --git a/app/src/main/res/drawable/autofill_ins_2.png b/app/src/main/res/drawable-nodpi/autofill_ins_2.png
index 36767847..36767847 100644
--- a/app/src/main/res/drawable/autofill_ins_2.png
+++ b/app/src/main/res/drawable-nodpi/autofill_ins_2.png
Binary files differ
diff --git a/app/src/main/res/drawable/autofill_ins_3.png b/app/src/main/res/drawable-nodpi/autofill_ins_3.png
index 8e423209..8e423209 100644
--- a/app/src/main/res/drawable/autofill_ins_3.png
+++ b/app/src/main/res/drawable-nodpi/autofill_ins_3.png
Binary files differ
diff --git a/app/src/main/res/drawable/rectangle.xml b/app/src/main/res/drawable/rectangle.xml
deleted file mode 100644
index 27546153..00000000
--- a/app/src/main/res/drawable/rectangle.xml
+++ /dev/null
@@ -1,21 +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="@color/blue_grey_200" />
-
- </shape>
- </item>
-
- <item android:bottom="2dp" android:left="1dp" android:right="1dp">
- <shape android:shape="rectangle" android:dither="true">
- <corners android:radius="2dp" />
- <solid android:color="@android:color/white" />
-
- <padding android:bottom="2dp" android:left="1dp"/>
- </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 8001f94d..e24fbf99 100644
--- a/app/src/main/res/layout/activity_git_clone.xml
+++ b/app/src/main/res/layout/activity_git_clone.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
@@ -20,7 +20,7 @@
android:text="@string/server_name"
android:textStyle="bold"
style="@android:style/TextAppearance.Large"
- android:gravity="left"
+ android:gravity="start"
android:paddingBottom="6dp"
android:textColor="@color/blue_grey_500"
android:background="@drawable/bottom_line"/>
@@ -71,6 +71,7 @@
android:hint="@string/server_user_hint"
android:id="@+id/server_user"
android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp"
android:layout_toEndOf="@+id/label_server_user"
android:layout_toRightOf="@+id/label_server_user"
android:layout_alignParentRight="true"
@@ -99,11 +100,13 @@
android:hint="@string/server_url_hint"
android:id="@+id/server_url"
android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp"
android:layout_toEndOf="@+id/label_server_url"
android:layout_toRightOf="@+id/label_server_url"
android:layout_toLeftOf="@+id/label_server_port"
android:layout_toStartOf="@+id/label_server_port"
- android:inputType="textWebEmailAddress" />
+ android:inputType="textWebEmailAddress"
+ tools:ignore="TextFields" />
<TextView
android:id="@+id/label_server_port"
@@ -122,6 +125,7 @@
android:hint="@string/server_port_hint"
android:id="@+id/server_port"
android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
android:inputType="number"/>
</RelativeLayout>
@@ -147,6 +151,7 @@
android:layout_height="wrap_content"
android:hint="@string/server_path_hint"
android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp"
android:id="@+id/server_path"
android:layout_toEndOf="@+id/label_server_path"
android:layout_toRightOf="@+id/label_server_path"
@@ -162,7 +167,7 @@
android:text="@string/server_resulting_url"
android:textStyle="bold"
style="@android:style/TextAppearance.Large"
- android:gravity="left"
+ android:gravity="start"
android:paddingBottom="6dp"
android:textColor="@color/blue_grey_500"
android:background="@drawable/bottom_line"/>
@@ -172,7 +177,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/repository_uri"
- android:inputType="textWebEmailAddress" />
+ android:inputType="textWebEmailAddress"
+ tools:ignore="TextFields" />
<TextView
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/activity_git_config.xml b/app/src/main/res/layout/activity_git_config.xml
index c03ddc05..87db8c9c 100644
--- a/app/src/main/res/layout/activity_git_config.xml
+++ b/app/src/main/res/layout/activity_git_config.xml
@@ -20,7 +20,7 @@
android:text="@string/git_config"
android:textStyle="bold"
style="@android:style/TextAppearance.Large"
- android:gravity="left"
+ android:gravity="start"
android:paddingBottom="6dp"
android:textColor="@color/blue_grey_500"
android:background="@drawable/bottom_line"/>
@@ -47,6 +47,7 @@
android:hint="@string/git_user_name_hint"
android:id="@+id/git_user_name"
android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp"
android:layout_toEndOf="@+id/label_git_user_name"
android:layout_toRightOf="@+id/label_git_user_name"
android:layout_alignParentRight="true"
@@ -76,6 +77,7 @@
android:hint="@string/git_user_email_hint"
android:id="@+id/git_user_email"
android:layout_marginLeft="35dp"
+ android:layout_marginStart="35dp"
android:layout_toEndOf="@+id/label_git_user_email"
android:layout_toRightOf="@+id/label_git_user_email"
android:layout_alignParentRight="true"
diff --git a/app/src/main/res/layout/autofill_instructions.xml b/app/src/main/res/layout/autofill_instructions.xml
index 0316dd91..333cd5fa 100644
--- a/app/src/main/res/layout/autofill_instructions.xml
+++ b/app/src/main/res/layout/autofill_instructions.xml
@@ -5,7 +5,7 @@
<LinearLayout
android:layout_width="fill_parent"
- android:layout_height="fill_parent"
+ android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="20dp"
android:paddingLeft="24dp"
@@ -26,7 +26,8 @@
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:adjustViewBounds="true"
- android:src="@drawable/autofill_ins_1" />
+ android:src="@drawable/autofill_ins_1"
+ android:contentDescription="@string/autofill_ins_1_hint" />
<ImageView
android:id="@+id/imageView2"
@@ -34,7 +35,8 @@
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:adjustViewBounds="true"
- android:src="@drawable/autofill_ins_2" />
+ android:src="@drawable/autofill_ins_2"
+ android:contentDescription="@string/autofill_ins_2_hint" />
<TextView
android:id="@+id/textView3"
@@ -49,7 +51,8 @@
android:layout_height="114dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
- android:src="@drawable/autofill_ins_3" />
+ android:src="@drawable/autofill_ins_3"
+ android:contentDescription="@string/autofill_ins_3_hint" />
<TextView
android:id="@+id/textView4"
diff --git a/app/src/main/res/layout/autofill_recycler_view.xml b/app/src/main/res/layout/autofill_recycler_view.xml
index 0b637440..6260be08 100644
--- a/app/src/main/res/layout/autofill_recycler_view.xml
+++ b/app/src/main/res/layout/autofill_recycler_view.xml
@@ -32,5 +32,6 @@
app:borderWidth="0dp"
android:layout_margin="@dimen/fab_compat_margin"
android:layout_alignParentBottom="true"
- android:layout_alignParentRight="true"/>
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"/>
</RelativeLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/autofill_row_layout.xml b/app/src/main/res/layout/autofill_row_layout.xml
index 117a76fc..e07a73d3 100644
--- a/app/src/main/res/layout/autofill_row_layout.xml
+++ b/app/src/main/res/layout/autofill_row_layout.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<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="64dp"
android:background="@drawable/autofill_row_background"
@@ -17,14 +18,16 @@
<ImageView
android:id="@+id/app_icon"
android:layout_width="48dp"
- android:layout_height="48dp" />
+ android:layout_height="48dp"
+ android:contentDescription="@string/app_icon_hint"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="8dp"
android:gravity="center_vertical"
- android:orientation="vertical">
+ android:orientation="vertical"
+ tools:ignore="RtlHardcoded">
<TextView
android:id="@+id/app_name"
@@ -41,5 +44,4 @@
</LinearLayout>
-
</LinearLayout> \ 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 f076dbad..5d9e66ab 100644
--- a/app/src/main/res/layout/decrypt_layout.xml
+++ b/app/src/main/res/layout/decrypt_layout.xml
@@ -24,6 +24,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
+ android:layout_marginStart="16dp"
android:text="CATEGORY HERE"
android:textColor="@color/grey_500"
android:textIsSelectable="false"
@@ -35,6 +36,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
+ android:layout_marginStart="@dimen/activity_horizontal_margin"
android:text="PASSWORD FILE NAME HERE"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
android:textColor="@color/accent"
@@ -48,7 +50,8 @@
android:layout_height="wrap_content"
android:src="@drawable/divider"
android:layout_marginTop="16dp"
- android:layout_marginBottom="16dp" />
+ android:layout_marginBottom="16dp"
+ tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/crypto_container"
@@ -127,7 +130,7 @@
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/crypto_copy_username"
- android:layout_toEndOf="@id/crypto_copy_username"
+ android:layout_toStartOf="@id/crypto_copy_username"
android:text="@string/username"
android:textColor="@android:color/black"
android:textStyle="bold" />
@@ -140,7 +143,7 @@
android:layout_alignParentStart="true"
android:layout_below="@id/crypto_username_show_label"
android:layout_toLeftOf="@id/crypto_copy_username"
- android:layout_toEndOf="@id/crypto_copy_username"
+ android:layout_toStartOf="@id/crypto_copy_username"
android:textColor="@android:color/black"
android:textIsSelectable="true"
android:typeface="monospace" />
diff --git a/app/src/main/res/layout/encrypt_layout.xml b/app/src/main/res/layout/encrypt_layout.xml
index ebb5e4dd..fffc9032 100644
--- a/app/src/main/res/layout/encrypt_layout.xml
+++ b/app/src/main/res/layout/encrypt_layout.xml
@@ -19,6 +19,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
+ android:layout_marginStart="@dimen/activity_horizontal_margin"
android:text="CATEGORY HERE"
android:textColor="@color/grey_500"
android:textIsSelectable="false"
@@ -77,7 +78,7 @@
android:id="@+id/generate_password"
android:text="@string/pwd_generate_button"
android:onClick="handleClick"
- android:layout_gravity="right" />
+ android:layout_gravity="end" />
<TextView
android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/fragment_autofill.xml b/app/src/main/res/layout/fragment_autofill.xml
index ef825c4b..652ea1db 100644
--- a/app/src/main/res/layout/fragment_autofill.xml
+++ b/app/src/main/res/layout/fragment_autofill.xml
@@ -67,7 +67,8 @@
android:layout_height="wrap_content"
android:text="+"
android:id="@+id/matchButton"
- android:layout_gravity="center_horizontal"/>
+ android:layout_gravity="center_horizontal"
+ tools:ignore="HardcodedText" />
<RadioButton
android:id="@+id/never"
diff --git a/app/src/main/res/layout/fragment_pwgen.xml b/app/src/main/res/layout/fragment_pwgen.xml
index 4c3812a7..b5293920 100644
--- a/app/src/main/res/layout/fragment_pwgen.xml
+++ b/app/src/main/res/layout/fragment_pwgen.xml
@@ -1,10 +1,9 @@
-<ScrollView
- xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView 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">
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
@@ -25,9 +24,9 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:baselineAligned="false"
android:orientation="horizontal"
- android:weightSum="2"
- android:baselineAligned="false">
+ android:weightSum="2">
<LinearLayout
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/fragment_show_ssh_key.xml b/app/src/main/res/layout/fragment_show_ssh_key.xml
index 36808f37..f9b3b469 100644
--- a/app/src/main/res/layout/fragment_show_ssh_key.xml
+++ b/app/src/main/res/layout/fragment_show_ssh_key.xml
@@ -3,9 +3,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="20dp"
android:paddingLeft="24dp"
diff --git a/app/src/main/res/layout/fragment_ssh_keygen.xml b/app/src/main/res/layout/fragment_ssh_keygen.xml
index dc1168d4..5f09e401 100644
--- a/app/src/main/res/layout/fragment_ssh_keygen.xml
+++ b/app/src/main/res/layout/fragment_ssh_keygen.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
@@ -23,7 +24,7 @@
android:layout_height="wrap_content"
android:spinnerMode="dropdown" />
- <android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
+ <android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
@@ -45,7 +46,7 @@
android:checked="false"
android:text="@string/ssh_keygen_show_passphrase" />
- <android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
+ <android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
diff --git a/app/src/main/res/layout/fragment_to_clone_or_not.xml b/app/src/main/res/layout/fragment_to_clone_or_not.xml
index 2b5b1619..170bd1aa 100644
--- a/app/src/main/res/layout/fragment_to_clone_or_not.xml
+++ b/app/src/main/res/layout/fragment_to_clone_or_not.xml
@@ -17,6 +17,7 @@
android:id="@+id/imageView"
android:layout_gravity="center"
android:src="@drawable/ic_launcher"
+ android:contentDescription="@string/app_icon_hint"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
@@ -44,7 +45,8 @@
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
- android:textAllCaps="true"/>
+ android:textAllCaps="true"
+ tools:ignore="RelativeOverlap" />
</RelativeLayout>
<RelativeLayout
@@ -77,7 +79,8 @@
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
- android:textSize="11sp" />
+ android:textSize="11sp"
+ tools:ignore="RelativeOverlap" />
</RelativeLayout>
diff --git a/app/src/main/res/layout/password_recycler_view.xml b/app/src/main/res/layout/password_recycler_view.xml
index bef664ba..9c56210f 100644
--- a/app/src/main/res/layout/password_recycler_view.xml
+++ b/app/src/main/res/layout/password_recycler_view.xml
@@ -26,5 +26,6 @@
app:borderWidth="0dp"
android:layout_margin="@dimen/fab_compat_margin"
android:layout_alignParentBottom="true"
- android:layout_alignParentRight="true"/>
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/password_row_layout.xml b/app/src/main/res/layout/password_row_layout.xml
index 43df2ecf..285af1cf 100644
--- a/app/src/main/res/layout/password_row_layout.xml
+++ b/app/src/main/res/layout/password_row_layout.xml
@@ -12,18 +12,21 @@
android:paddingBottom="8dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
- android:gravity="left">
+ android:gravity="start">
<ImageView
android:layout_width="40dp"
android:layout_height="32dp"
android:id="@+id/type_image"
android:src="@drawable/ic_folder_grey600_24dp"
+ android:contentDescription="@string/folder_icon_hint"
android:alpha="0.5"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
- android:paddingRight="8dp"/>
+ android:paddingRight="8dp"
+ android:paddingEnd="8dp"
+ tools:ignore="RtlSymmetry" />
<TextView
android:id="@+id/type"
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 843b7140..80b16cd9 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -174,6 +174,9 @@
<string name="send_plaintext_password_to">Passwort senden als Nur-Text mit behilfe von…</string>
<string name="show_password">Password wiedergeben</string>
<string name="repository_uri">Repository URI</string>
+ <string name="app_icon_hint">App Icon</string>
+ <string name="folder_icon_hint">Verzeichnis Icon</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>
@@ -188,4 +191,7 @@
<string name="autofill_paste">Einfügen</string>
<string name="autofill_paste_username">Benutzername einfügen?\n\n%s</string>
<string name="autofill_toast_username">Wähle ein editierbares Feld um den Benutzernamen einzufügen.\nDer Benutzername ist für %d Sekunden verfügbar.</string>
+ <string name="autofill_ins_1_hint">Bildschirmfoto Accessibility Services</string>
+ <string name="autofill_ins_2_hint">Bildschirmfoto des Schalters in Accessibility Services</string>
+ <string name="autofill_ins_3_hint">Bildschirmfoto von Autofill in Aktion</string>
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index edb2347c..8700a917 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -182,6 +182,8 @@
<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>
+ <string name="app_icon_hint">App icon</string>
+ <string name="folder_icon_hint">Folder icon</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>
@@ -196,4 +198,7 @@
<string name="autofill_paste">Paste</string>
<string name="autofill_paste_username">Paste username?\n\n%s</string>
<string name="autofill_toast_username">Select an editable field to past the username.\nUsername is available for %d seconds.</string>
+ <string name="autofill_ins_1_hint">Screenshot of accessibility services</string>
+ <string name="autofill_ins_2_hint">Screenshot of toggle in accessibility services</string>
+ <string name="autofill_ins_3_hint">Screenshot of autofill service in action</string>
</resources>