From ec353b0c390f7b3f45b950171e56c6ddcd0a9607 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Thu, 26 Feb 2015 21:58:25 +0530 Subject: [PATCH 01/53] initial Log Display function --- .../keychain/ui/LogDisplayFragment.java | 102 ++++++++++++++++++ .../drawable-hdpi/ic_action_save_white.png | Bin 0 -> 394 bytes .../drawable-mdpi/ic_action_save_white.png | Bin 0 -> 362 bytes .../drawable-xhdpi/ic_action_save_white.png | Bin 0 -> 441 bytes .../drawable-xxhdpi/ic_action_save_white.png | Bin 0 -> 495 bytes .../src/main/res/menu/log_display.xml | 11 ++ OpenKeychain/src/main/res/values/strings.xml | 4 + 7 files changed, 117 insertions(+) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/menu/log_display.xml diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java index 2baebc83d..a44274c67 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java @@ -23,8 +23,13 @@ import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.ListFragment; +import android.support.v4.view.MenuItemCompat; +import android.support.v7.widget.SearchView; import android.util.TypedValue; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; @@ -32,12 +37,26 @@ import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogEntryParcel; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogLevel; import org.sufficientlysecure.keychain.operations.results.OperationResult.SubLogEntryParcel; +import org.sufficientlysecure.keychain.provider.KeychainContract; +import org.sufficientlysecure.keychain.provider.KeychainDatabase; +import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.util.ExportHelper; +import org.sufficientlysecure.keychain.util.FileHelper; +import org.sufficientlysecure.keychain.util.Log; +import org.sufficientlysecure.keychain.util.Preferences; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Iterator; public class LogDisplayFragment extends ListFragment implements OnItemClickListener { @@ -46,6 +65,12 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe OperationResult mResult; public static final String EXTRA_RESULT = "log"; + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setHasOptionsMenu(true); + } @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -70,6 +95,83 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe getListView().setFastScrollEnabled(true); getListView().setDividerHeight(0); + + } + + @Override + public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) { + Toast.makeText(this.getActivity(),"Options created",Toast.LENGTH_SHORT).show(); + inflater.inflate(R.menu.log_display, menu); + + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch(item.getItemId()) { + case R.id.menu_log_display_export_log: + exportLog(); + break; + } + + return super.onOptionsItemSelected(item); + } + + private void exportLog() { + Toast.makeText(this.getActivity(),"Exporting log",Toast.LENGTH_LONG).show(); + showExportLogDialog(new File(Constants.Path.APP_DIR, "export.log")); + } + + private void writeToLogFile(final OperationResult.OperationLog operationLog, final File f) { + + PrintWriter pw = null; + try { + pw = new PrintWriter(f); + } catch(IOException e) { + e.printStackTrace(); + } + + Iterator logIterator = operationLog.iterator(); + + while(logIterator.hasNext()) { + + pw.println(getPrintableLogEntry(logIterator.next())); + } + + pw.close(); + } + + /** + * returns an indented String of a LogEntryParcel + * @param entry log entry whose String representation is to be obtained + * @return the passed log entry in a readable format + */ + private String getPrintableLogEntry(OperationResult.LogEntryParcel entry) { + String printable = ""; + + return entry.toString(); + } + + private void showExportLogDialog(final File exportFile) { + + String title = this.getString(R.string.title_export_log); + + String message = this.getString(R.string.specify_file_to_export_log_to); + + FileHelper.saveFile(new FileHelper.FileDialogCallback() { + @Override + public void onFileSelected(File file, boolean checked) { + writeToLogFile(getOperationLog(),file); + } + }, this.getActivity().getSupportFragmentManager(), title, message, exportFile, null); + } + + private OperationResult.OperationLog getOperationLog(){ + OperationResult operationResult = this.getActivity().getIntent().getParcelableExtra( + LogDisplayFragment.EXTRA_RESULT); + OperationResult.OperationLog operationResultLog = operationResult.getLog(); + + return operationResultLog; } @Override diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save_white.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save_white.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe36a1ec3d5519890f4a978080ab567401f6cf4 GIT binary patch literal 394 zcmV;50d@X~P)GDd`KZz4U!n2!bF8Vg~}1uL2sk0CtQ#x7_sKTZkQf3;ueQ2hi^I2o#WqBmqd8LtzI#nGqM_^ zoRLLaNL(B<>5+u=m4G&hi=)A1H3?Sb`xlI5`=&c~& z#0^M9hTOp3(iVY8w?3j1GYU;AN;qnI#9;>CifKY5;6o;cz4o?hA|Dj+se(7Kp=9X$ z+dF-LPQ2ZTRqsE#iLtg(POIL3w4#vsz89TNpfyzY*H%pE?8b#r=%1pHsg}}6o9TT^ oxkR9H;INe-2!bGv!bgAs0M`Oe{s;Z08UO$Q07*qoM6N<$f`(h64gdfE literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save_white.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save_white.png new file mode 100644 index 0000000000000000000000000000000000000000..664260d8c6a01580f05c23e407a270f9b7425d18 GIT binary patch literal 362 zcmV-w0hRuVP)|n{gP19FMD7c7%}D z)uDE_$GML$fJR#~IAX@WydXD@{eWVx#yeHE7i@eCz{N9i^77iSF{Qdx0F;b@NLNU+ z1o7Asz$l1x#e%Q41`xCed#Es35DP$t{85XYS?Ei({;{YLHBq`AA;m6h;0@)T{w4M9 zO98Y9o$$H+PwniGhU!o18GZ$#_6*qvIvedKz7H1xH4m^YQ;5mAyaUJmUC*r zmAbAekPeF&DcA)KDQckf^iP8TaB&oKEDt44WBMt_ldk{+0K^$qNLVDtO8@`>07*qo IM6N<$f?n;B_5c6? literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save_white.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save_white.png new file mode 100644 index 0000000000000000000000000000000000000000..dde278b5e2186411cc5d71f54f5b7fc278066e90 GIT binary patch literal 441 zcmV;q0Y?6bP)@_6J5wKF2%}Nf{+psjI zdDFy3;z>io^2fJaH8Go0G!AW4BrGD&VS|J+R{>v3NI}3?5>gTHv4oTad?X&)Pcx)8=rJT8VDP!XXvOe~ zL6$-61;gBC)(BrVy8Z@Vk?{WiE>2HFJz2ZT71_b+(8E4Kge zJH?hVF4?}fcaPkCEib=)%w_|r_^St z%72+{p$}zLWmcbP=t)&(ePZz7%K1iBRnLr~lta5Ft^TB%x0~^Ku3Orn%c^UnM0DL* zM5Z}7BywV>{xq{NX|*vhaWF8lED#9&qaf_Gr)-x<~`r7%GBHY8@qE!*O? zN&mJb=LWAJpq>5#A5>c&Crx;*?~~@8>%ATvd<+Z=c + + + + + diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index e01f1c049..9d980500d 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -42,6 +42,7 @@ "Exchange Keys" "Advanced Key Info" "Keys" + "Export Log" "Identities" @@ -106,6 +107,7 @@ "Search cloud" "Export all keys" "Show advanced info" + "Export Log" "Message" @@ -237,6 +239,8 @@ "Note: only subkeys support ElGamal." "Couldn't find key %08X." + "Please specify file to export to. \nWARNING: File will be overwritten if it exists." + " "%d bad secret key ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead."" "%d bad secret keys ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead."" From d776bd2888907b3bc953f48e9c490afe8275c4e1 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Sat, 28 Feb 2015 01:30:17 +0530 Subject: [PATCH 02/53] refined log output --- .../keychain/ui/LogDisplayFragment.java | 75 ++++++++++++++++++- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java index ec7eee3ac..94d9a60c9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java @@ -147,9 +147,75 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe * @return the passed log entry in a readable format */ private String getPrintableLogEntry(OperationResult.LogEntryParcel entry) { - String printable = ""; + String subLogText=null; + if (entry instanceof SubLogEntryParcel) { + Log.d("ADI DisplayFragment",entry.toString()); - return entry.toString(); + OperationResult result = ((SubLogEntryParcel) entry).getSubResult(); + LogEntryParcel subEntry = result.getLog().getLast(); + if (subEntry != null) { + String subPadding=""; + for(int i=0;i 0 + && subEntry.mParameters[0] instanceof Integer) { + subLogText+=getResources().getQuantityString(subEntry.mType.getMsgId(), + (Integer) subEntry.mParameters[0], + subEntry.mParameters); + } else { + subLogText+=getResources().getString(subEntry.mType.getMsgId(), + subEntry.mParameters); + } + } + + } else { + Log.d("ADIExportLogDisplayFragment","NOTSUBLOG:"+entry.toString()); + } + + String logText = ""; + switch (entry.mType.mLevel) { + case DEBUG: logText="[DEBUG]"; break; + case INFO: logText="[INFO]"; break; + case WARN: logText="[WARN]"; break; + case ERROR: logText="[WARN]"; break; + case START: logText="[START]"; break; + case OK: logText="[OK]"; break; + case CANCELLED: logText="[CANCELLED]"; break; + } + + // special case: first parameter may be a quantity + if (entry.mParameters != null && entry.mParameters.length > 0 + && entry.mParameters[0] instanceof Integer) { + logText += getResources().getQuantityString(entry.mType.getMsgId(), + (Integer) entry.mParameters[0], + entry.mParameters); + } else { + logText += getResources().getString(entry.mType.getMsgId(), + entry.mParameters); + } + + String padding = ""; + for(int i =0;i Date: Sat, 28 Feb 2015 02:11:39 +0530 Subject: [PATCH 03/53] cleaned up log export --- .../keychain/ui/LogDisplayFragment.java | 29 ++++++------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java index 94d9a60c9..997b977ff 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java @@ -118,7 +118,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe } private void exportLog() { - Toast.makeText(this.getActivity(),"Exporting log",Toast.LENGTH_LONG).show(); + showExportLogDialog(new File(Constants.Path.APP_DIR, "export.log")); } @@ -149,7 +149,6 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe private String getPrintableLogEntry(OperationResult.LogEntryParcel entry) { String subLogText=null; if (entry instanceof SubLogEntryParcel) { - Log.d("ADI DisplayFragment",entry.toString()); OperationResult result = ((SubLogEntryParcel) entry).getSubResult(); LogEntryParcel subEntry = result.getLog().getLast(); @@ -158,7 +157,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe for(int i=0;i parent, View view, int position, long id) { LogEntryParcel parcel = mAdapter.getItem(position); @@ -300,7 +291,6 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe if (entry instanceof SubLogEntryParcel) { ih.mSub.setVisibility(View.VISIBLE); convertView.setClickable(false); - Log.d("ADI DisplayFragment",entry.toString()); convertView.setPadding((entry.mIndent) * dipFactor, 0, 0, 0); OperationResult result = ((SubLogEntryParcel) entry).getSubResult(); @@ -332,7 +322,6 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe } } else { - Log.d("ADI DisplayFragment","NOT:"+entry.toString()); ih.mSub.setVisibility(View.GONE); ih.mSecond.setVisibility(View.GONE); convertView.setClickable(true); From 95e9e2ac30407722ac08fff055ac9839babbffc4 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Sun, 1 Mar 2015 02:02:39 +0530 Subject: [PATCH 04/53] added logging, notify for log export --- .../operations/results/OperationResult.java | 7 ++ .../keychain/ui/LogDisplayFragment.java | 74 +++++++++++++------ OpenKeychain/src/main/res/values/strings.xml | 7 ++ 3 files changed, 67 insertions(+), 21 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java index f79900aab..aef61075f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java @@ -707,6 +707,13 @@ public abstract class OperationResult implements Parcelable { MSG_DEL_CONSOLIDATE (LogLevel.DEBUG, R.string.msg_del_consolidate), MSG_DEL_OK (LogLevel.OK, R.plurals.msg_del_ok), MSG_DEL_FAIL (LogLevel.WARN, R.plurals.msg_del_fail), + + //export log + MSG_EXPORT_LOG(LogLevel.START,R.string.msg_export_log_start), + MSG_EXPORT_LOG_EXPORT_ERROR_NO_FILE(LogLevel.ERROR,R.string.msg_export_log_error_no_file), + MSG_EXPORT_LOG_EXPORT_ERROR_FOPEN(LogLevel.ERROR,R.string.msg_export_log_error_fopen), + MSG_EXPORT_LOG_EXPORT_ERROR_WRITING(LogLevel.ERROR,R.string.msg_export_log_error_writing), + MSG_EXPORT_LOG_EXPORT_SUCCESS (LogLevel.OK, R.string.msg_export_log_success), ; public final int mMsgId; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java index 997b977ff..bd77294c1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java @@ -22,9 +22,8 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; +import android.os.Parcel; import android.support.v4.app.ListFragment; -import android.support.v4.view.MenuItemCompat; -import android.support.v7.widget.SearchView; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.Menu; @@ -37,7 +36,6 @@ import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -45,16 +43,11 @@ import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogEntryParcel; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogLevel; import org.sufficientlysecure.keychain.operations.results.OperationResult.SubLogEntryParcel; -import org.sufficientlysecure.keychain.provider.KeychainContract; -import org.sufficientlysecure.keychain.provider.KeychainDatabase; -import org.sufficientlysecure.keychain.ui.util.Notify; -import org.sufficientlysecure.keychain.util.ExportHelper; import org.sufficientlysecure.keychain.util.FileHelper; import org.sufficientlysecure.keychain.util.Log; -import org.sufficientlysecure.keychain.util.Preferences; import java.io.File; -import java.io.IOException; +import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Iterator; @@ -100,7 +93,6 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe @Override public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) { - Toast.makeText(this.getActivity(),"Options created",Toast.LENGTH_SHORT).show(); inflater.inflate(R.menu.log_display, menu); super.onCreateOptionsMenu(menu, inflater); @@ -123,24 +115,64 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe } private void writeToLogFile(final OperationResult.OperationLog operationLog, final File f) { + OperationResult.OperationLog currLog = new OperationResult.OperationLog(); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG,0); + + boolean error = false; PrintWriter pw = null; - try { - pw = new PrintWriter(f); - } catch(IOException e) { - e.printStackTrace(); - } Iterator logIterator = operationLog.iterator(); + try { + pw = new PrintWriter(f); - while(logIterator.hasNext()) { + while(logIterator.hasNext()) { - pw.println(getPrintableLogEntry(logIterator.next())); + pw.println(getPrintableLogEntry(logIterator.next())); + if(pw.checkError()) {//IOException + Log.e(Constants.TAG, "Log Export I/O Exception "+f.getAbsolutePath()); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING,1); + error = true; + break; + } + } + } catch(FileNotFoundException e) { + Log.e(Constants.TAG, "File not found for exporting log "+f.getAbsolutePath()); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_FOPEN, 1); + error = true; + } + if(pw!=null) { + pw.close(); + error = error && pw.checkError();//check for errors on closing PrintWriter object too } - pw.close(); - } + if(!error) currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_SUCCESS,1); + int opResultCode = error?OperationResult.RESULT_ERROR:OperationResult.RESULT_OK; + OperationResult opResult = new LogExportResult(opResultCode,currLog); + opResult.createNotify(getActivity()).show(); + } + private static class LogExportResult extends OperationResult { + + public LogExportResult(int result, OperationLog log) { + super(result, log); + } + + /** trivial but necessary to implement the Parcelable protocol. */ + public LogExportResult(Parcel source) { + super(source); + } + + public static Creator CREATOR = new Creator() { + public LogExportResult createFromParcel(final Parcel source) { + return new LogExportResult(source); + } + + public LogExportResult[] newArray(final int size) { + return new LogExportResult[size]; + } + }; + } /** * returns an indented String of a LogEntryParcel * @param entry log entry whose String representation is to be obtained @@ -162,7 +194,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe case DEBUG: subLogText+="[DEBUG]"; break; case INFO: subLogText+="[INFO]"; break; case WARN: subLogText+="[WARN]"; break; - case ERROR: subLogText+="[WARN]"; break; + case ERROR: subLogText+="[ERROR]"; break; case START: subLogText+="[START]"; break; case OK: subLogText+="[OK]"; break; case CANCELLED: subLogText+="[CANCELLED]"; break; @@ -192,7 +224,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe case DEBUG: logText="[DEBUG]"; break; case INFO: logText="[INFO]"; break; case WARN: logText="[WARN]"; break; - case ERROR: logText="[WARN]"; break; + case ERROR: logText="[ERROR]"; break; case START: logText="[START]"; break; case OK: logText="[OK]"; break; case CANCELLED: logText="[CANCELLED]"; break; diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 917c64bda..ed1dd1233 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -1168,6 +1168,13 @@ "An error occurred when searching for keys." + + "Exporting log" + "Error opening file" + "No file name specified!" + "I/O error writing to file!" + "Log exported successfully!" + "Click to clear cached passphrases" "OpenKeychain has cached %d passphrases" From e69ee812d2a73ef6d4a1c2df3e180bb61fa050e3 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Sun, 1 Mar 2015 11:31:46 +0530 Subject: [PATCH 05/53] supports sub logs in log export --- .../keychain/ui/LogDisplayFragment.java | 121 ++++++++---------- 1 file changed, 54 insertions(+), 67 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java index bd77294c1..ad5f9d53c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java @@ -121,21 +121,14 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe boolean error = false; PrintWriter pw = null; - - Iterator logIterator = operationLog.iterator(); try { pw = new PrintWriter(f); - - while(logIterator.hasNext()) { - - pw.println(getPrintableLogEntry(logIterator.next())); + pw.print(getPrintableOperationLog(operationLog,"")); if(pw.checkError()) {//IOException Log.e(Constants.TAG, "Log Export I/O Exception "+f.getAbsolutePath()); currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING,1); error = true; - break; } - } } catch(FileNotFoundException e) { Log.e(Constants.TAG, "File not found for exporting log "+f.getAbsolutePath()); currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_FOPEN, 1); @@ -143,7 +136,10 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe } if(pw!=null) { pw.close(); - error = error && pw.checkError();//check for errors on closing PrintWriter object too + if(!error && pw.checkError()) {//check if it is only pw.close() which generated error + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING,1); + error = true; + } } if(!error) currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_SUCCESS,1); @@ -173,78 +169,69 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe } }; } + /** - * returns an indented String of a LogEntryParcel - * @param entry log entry whose String representation is to be obtained - * @return the passed log entry in a readable format + * returns an indented String of an entire OperationLog + * @param operationLog log to be converted to indented, printable format + * @param basePadding padding to add at the start of all log entries, made for use with SubLogs + * @return printable, indented version of passed operationLog */ - private String getPrintableLogEntry(OperationResult.LogEntryParcel entry) { - String subLogText=null; - if (entry instanceof SubLogEntryParcel) { - - OperationResult result = ((SubLogEntryParcel) entry).getSubResult(); - LogEntryParcel subEntry = result.getLog().getLast(); - if (subEntry != null) { - String subPadding=""; - for(int i=0;i 0 - && subEntry.mParameters[0] instanceof Integer) { - subLogText+=getResources().getQuantityString(subEntry.mType.getMsgId(), - (Integer) subEntry.mParameters[0], - subEntry.mParameters); - } else { - subLogText+=getResources().getString(subEntry.mType.getMsgId(), - subEntry.mParameters); - } - } - + private String getPrintableOperationLog(OperationResult.OperationLog operationLog, String basePadding) { + String log = ""; + Iterator logIterator = operationLog.iterator(); + while(logIterator.hasNext()) { + log += getPrintableLogEntry(logIterator.next(), basePadding)+"\n"; } + log = log.substring(0,log.length()-1);//gets rid of extra new line + return log; + } + /** + * returns an indented String of a LogEntryParcel including any sub-logs it may contain + * @param entryParcel log entryParcel whose String representation is to be obtained + * @return indented version of passed log entryParcel in a readable format + */ + private String getPrintableLogEntry(OperationResult.LogEntryParcel entryParcel, + String basePadding) { String logText = ""; + final String indent = " ";//4 spaces = 1 Indent level - String padding = ""; - for(int i =0;i 0 - && entry.mParameters[0] instanceof Integer) { - logText += getResources().getQuantityString(entry.mType.getMsgId(), - (Integer) entry.mParameters[0], - entry.mParameters); + if (entryParcel.mParameters != null && entryParcel.mParameters.length > 0 + && entryParcel.mParameters[0] instanceof Integer) { + logText += getResources().getQuantityString(entryParcel.mType.getMsgId(), + (Integer) entryParcel.mParameters[0], + entryParcel.mParameters); } else { - logText += getResources().getString(entry.mType.getMsgId(), - entry.mParameters); + logText += getResources().getString(entryParcel.mType.getMsgId(), + entryParcel.mParameters); } - logText = padding + logText; + if (entryParcel instanceof SubLogEntryParcel) { - if(subLogText!=null) //subLog exists - logText = logText+"\n"+padding+subLogText; + OperationResult subResult = ((SubLogEntryParcel) entryParcel).getSubResult(); + LogEntryParcel subEntry = subResult.getLog().getLast(); + if (subEntry != null) { + //the first line of log of subResult is same as entryParcel, so replace logText + logText = getPrintableOperationLog(subResult.getLog(),padding); + } + } return logText; } @@ -300,7 +287,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe mSecondImg = secondImg; } } - //adithyaphilip: Check if convertView.setPadding is redundant + // Check if convertView.setPadding is redundant @Override public View getView(int position, View convertView, ViewGroup parent) { LogEntryParcel entry = getItem(position); From 05ef61afd5ba85e4da0e3e7242bf44821e278150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 2 Mar 2015 18:21:10 +0100 Subject: [PATCH 06/53] Update API lib --- extern/openpgp-api-lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/openpgp-api-lib b/extern/openpgp-api-lib index c866dc22b..1861415d7 160000 --- a/extern/openpgp-api-lib +++ b/extern/openpgp-api-lib @@ -1 +1 @@ -Subproject commit c866dc22bcfa004ec2c46bc86c08694e76d1058d +Subproject commit 1861415d77f46a466a0ae654ee72f5768f1eed14 From 7e4c39c79d1adb58f3181c9674309b1faaecc864 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Mon, 2 Mar 2015 18:44:09 +0100 Subject: [PATCH 07/53] rescale qr code bitmap in background --- .../keychain/ui/ViewKeyActivity.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 0be6c26f6..83e928ec6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -633,16 +633,15 @@ public class ViewKeyActivity extends BaseActivity implements protected Bitmap doInBackground(Void... unused) { String qrCodeContent = Constants.FINGERPRINT_SCHEME + ":" + fingerprint; // render with minimal size - return QrCodeUtils.getQRCodeBitmap(qrCodeContent, 0); + Bitmap qrCode = QrCodeUtils.getQRCodeBitmap(qrCodeContent, 0); + // scale the image up to our actual size. we do this in code rather + // than let the ImageView do this because we don't require filtering. + return Bitmap.createScaledBitmap(qrCode, mQrCode.getHeight(), + mQrCode.getHeight(), false); } protected void onPostExecute(Bitmap qrCode) { - // scale the image up to our actual size. we do this in code rather - // than let the ImageView do this because we don't require filtering. - Bitmap scaled = Bitmap.createScaledBitmap(qrCode, - mQrCode.getHeight(), mQrCode.getHeight(), - false); - mQrCode.setImageBitmap(scaled); + mQrCode.setImageBitmap(qrCode); // simple fade-in animation AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f); From ea24b5169e1d9e7b866252a464aaa43481e3e2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 2 Mar 2015 18:50:38 +0100 Subject: [PATCH 08/53] Reorder build.gradle --- OpenKeychain/build.gradle | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index 4567f54dc..606df0464 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -3,11 +3,25 @@ apply plugin: 'witness' dependencies { // NOTE: Always use fixed version codes not dynamic ones, e.g. 0.7.3 instead of 0.7.+, see README for more information + // NOTE: libraries are pinned to a specific build, see below + // from local Android SDK compile 'com.android.support:support-v4:21.0.3' compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.android.support:recyclerview-v7:21.0.3' compile 'com.android.support:cardview-v7:21.0.3' + + // JCenter etc. + compile 'com.eftimoff:android-patternview:1.0.0@aar' + compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar' + compile 'com.journeyapps:zxing-android-integration:2.0.1@aar' + compile 'com.google.zxing:core:3.0.1' + compile 'com.jpardogo.materialtabstrip:library:1.0.9' + compile 'it.neokree:MaterialNavigationDrawer:1.3.1' + compile 'com.nispok:snackbar:2.9.1' + compile 'com.getbase:floatingactionbutton:1.8.0' + + // libs as submodules compile project(':extern:openpgp-api-lib') compile project(':extern:openkeychain-api-lib') compile project(':extern:html-textview') @@ -20,16 +34,6 @@ dependencies { compile project(':extern:KeybaseLib:Lib') compile project(':extern:TokenAutoComplete:library') compile project(':extern:safeslinger-exchange') - - // NOTE: libraries are pinned to a specific build, see below - compile 'com.eftimoff:android-patternview:1.0.0@aar' - compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar' - compile 'com.journeyapps:zxing-android-integration:2.0.1@aar' - compile 'com.google.zxing:core:3.0.1' - compile 'com.jpardogo.materialtabstrip:library:1.0.9' - compile 'it.neokree:MaterialNavigationDrawer:1.3.1' - compile 'com.nispok:snackbar:2.9.1' - compile 'com.getbase:floatingactionbutton:1.8.0' } // Output of ./gradlew -q calculateChecksums From 363d41ed1d4910fa5b8651d3bd95d1c61bc0352c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 00:26:15 +0100 Subject: [PATCH 09/53] Cleanup of contact sync, debugging --- .../keychain/KeychainApplication.java | 28 +-- .../keychain/util/ContactHelper.java | 200 ++++++++++-------- 2 files changed, 130 insertions(+), 98 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java index 01f6735ea..a4dc12a37 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java @@ -140,20 +140,22 @@ public class KeychainApplication extends Application { } static void brandGlowEffect(Context context, int brandColor) { - try { - // terrible hack to brand the edge overscroll glow effect - // https://gist.github.com/menny/7878762#file-brandgloweffect_full-java + // no hack on Android 5 + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + try { + // terrible hack to brand the edge overscroll glow effect + // https://gist.github.com/menny/7878762#file-brandgloweffect_full-java - //glow - int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android"); - Drawable androidGlow = context.getResources().getDrawable(glowDrawableId); - androidGlow.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN); - //edge - int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable", "android"); - Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId); - androidEdge.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN); - } catch (Resources.NotFoundException e) { - // no hack on Android 5 + //glow + int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android"); + Drawable androidGlow = context.getResources().getDrawable(glowDrawableId); + androidGlow.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN); + //edge + int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable", "android"); + Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId); + androidEdge.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN); + } catch (Resources.NotFoundException e) { + } } } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index 3cf201ed7..28480cee5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -20,15 +20,18 @@ package org.sufficientlysecure.keychain.util; import android.accounts.Account; import android.accounts.AccountManager; import android.annotation.TargetApi; +import android.content.ContentProviderClient; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.ContentUris; +import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Build; +import android.os.RemoteException; import android.provider.ContactsContract; import android.util.Patterns; @@ -125,33 +128,33 @@ public class ContactHelper { * @return */ private static Set getContactNamesFromEmails(Context context, Set emails) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { - Set names = new HashSet<>(); - for (String email : emails) { - ContentResolver resolver = context.getContentResolver(); - Cursor profileCursor = resolver.query( - ContactsContract.CommonDataKinds.Email.CONTENT_URI, - new String[]{ContactsContract.CommonDataKinds.Email.ADDRESS, - ContactsContract.Contacts.DISPLAY_NAME}, - ContactsContract.CommonDataKinds.Email.ADDRESS + "=?", - new String[]{email}, null - ); - if (profileCursor == null) return null; - - Set currNames = new HashSet<>(); - while (profileCursor.moveToNext()) { - String name = profileCursor.getString(1); - if (name != null) { - currNames.add(name); - } - } - profileCursor.close(); - names.addAll(currNames); + Set names = new HashSet<>(); + for (String email : emails) { + ContentResolver resolver = context.getContentResolver(); + Cursor profileCursor = resolver.query( + ContactsContract.CommonDataKinds.Email.CONTENT_URI, + new String[]{ + ContactsContract.CommonDataKinds.Email.ADDRESS, + ContactsContract.Contacts.DISPLAY_NAME + }, + ContactsContract.CommonDataKinds.Email.ADDRESS + "=?", + new String[]{email}, null + ); + if (profileCursor == null) { + return null; } - return names; - } else { - return new HashSet<>(); + + Set currNames = new HashSet<>(); + while (profileCursor.moveToNext()) { + String name = profileCursor.getString(1); + if (name != null) { + currNames.add(name); + } + } + profileCursor.close(); + names.addAll(currNames); } + return names; } /** @@ -162,38 +165,37 @@ public class ContactHelper { * @return */ private static Set getMainProfileContactEmails(Context context) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { - ContentResolver resolver = context.getContentResolver(); - Cursor profileCursor = resolver.query( - Uri.withAppendedPath( - ContactsContract.Profile.CONTENT_URI, - ContactsContract.Contacts.Data.CONTENT_DIRECTORY), - new String[]{ContactsContract.CommonDataKinds.Email.ADDRESS, - ContactsContract.CommonDataKinds.Email.IS_PRIMARY}, - - // Selects only email addresses - ContactsContract.Contacts.Data.MIMETYPE + "=?", - new String[]{ - ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, - }, - // Show primary rows first. Note that there won't be a primary email address if the - // user hasn't specified one. - ContactsContract.Contacts.Data.IS_PRIMARY + " DESC" - ); - if (profileCursor == null) return null; - - Set emails = new HashSet<>(); - while (profileCursor.moveToNext()) { - String email = profileCursor.getString(0); - if (email != null) { - emails.add(email); - } - } - profileCursor.close(); - return emails; - } else { - return new HashSet<>(); + ContentResolver resolver = context.getContentResolver(); + Cursor profileCursor = resolver.query( + Uri.withAppendedPath( + ContactsContract.Profile.CONTENT_URI, + ContactsContract.Contacts.Data.CONTENT_DIRECTORY), + new String[]{ + ContactsContract.CommonDataKinds.Email.ADDRESS, + ContactsContract.CommonDataKinds.Email.IS_PRIMARY + }, + // Selects only email addresses + ContactsContract.Contacts.Data.MIMETYPE + "=?", + new String[]{ + ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, + }, + // Show primary rows first. Note that there won't be a primary email address if the + // user hasn't specified one. + ContactsContract.Contacts.Data.IS_PRIMARY + " DESC" + ); + if (profileCursor == null) { + return null; } + + Set emails = new HashSet<>(); + while (profileCursor.moveToNext()) { + String email = profileCursor.getString(0); + if (email != null) { + emails.add(email); + } + } + profileCursor.close(); + return emails; } /** @@ -204,26 +206,27 @@ public class ContactHelper { * @return */ private static List getMainProfileContactName(Context context) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { - ContentResolver resolver = context.getContentResolver(); - Cursor profileCursor = resolver.query(ContactsContract.Profile.CONTENT_URI, - new String[]{ContactsContract.Profile.DISPLAY_NAME}, - null, null, null); - if (profileCursor == null) return null; - - Set names = new HashSet<>(); - // should only contain one entry! - while (profileCursor.moveToNext()) { - String name = profileCursor.getString(0); - if (name != null) { - names.add(name); - } - } - profileCursor.close(); - return new ArrayList<>(names); - } else { - return new ArrayList<>(); + ContentResolver resolver = context.getContentResolver(); + Cursor profileCursor = resolver.query( + ContactsContract.Profile.CONTENT_URI, + new String[]{ + ContactsContract.Profile.DISPLAY_NAME + }, + null, null, null); + if (profileCursor == null) { + return null; } + + Set names = new HashSet<>(); + // should only contain one entry! + while (profileCursor.moveToNext()) { + String name = profileCursor.getString(0); + if (name != null) { + names.add(name); + } + } + profileCursor.close(); + return new ArrayList<>(names); } public static List getContactMails(Context context) { @@ -231,7 +234,9 @@ public class ContactHelper { Cursor mailCursor = resolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.Email.DATA}, null, null, null); - if (mailCursor == null) return new ArrayList<>(); + if (mailCursor == null) { + return new ArrayList<>(); + } Set mails = new HashSet<>(); while (mailCursor.moveToNext()) { @@ -249,7 +254,9 @@ public class ContactHelper { Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts.DISPLAY_NAME}, null, null, null); - if (cursor == null) return new ArrayList<>(); + if (cursor == null) { + return new ArrayList<>(); + } Set names = new HashSet<>(); while (cursor.moveToNext()) { @@ -276,7 +283,9 @@ public class ContactHelper { } public static Bitmap photoFromFingerprint(ContentResolver contentResolver, String fingerprint) { - if (fingerprint == null) return null; + if (fingerprint == null) { + return null; + } if (!photoCache.containsKey(fingerprint)) { photoCache.put(fingerprint, loadPhotoFromFingerprint(contentResolver, fingerprint)); } @@ -287,12 +296,16 @@ public class ContactHelper { if (fingerprint == null) return null; try { int rawContactId = findRawContactId(contentResolver, fingerprint); - if (rawContactId == -1) return null; + if (rawContactId == -1) { + return null; + } Uri rawContactUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId); Uri contactUri = ContactsContract.RawContacts.getContactLookupUri(contentResolver, rawContactUri); InputStream photoInputStream = ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri); - if (photoInputStream == null) return null; + if (photoInputStream == null) { + return null; + } return BitmapFactory.decodeStream(photoInputStream); } catch (Throwable ignored) { return null; @@ -304,7 +317,19 @@ public class ContactHelper { */ public static void writeKeysToContacts(Context context) { ContentResolver resolver = context.getContentResolver(); - Set contactFingerprints = getRawContactFingerprints(resolver); + Set deletedKeys = getRawContactFingerprints(resolver); + +// ContentProviderClient client = resolver.acquireContentProviderClient(ContactsContract.AUTHORITY_URI); +// ContentValues values = new ContentValues(); +// Account account = new Account(Constants.ACCOUNT_NAME, Constants.ACCOUNT_TYPE); +// values.put(ContactsContract.Settings.ACCOUNT_NAME, account.name); +// values.put(ContactsContract.Settings.ACCOUNT_TYPE, account.type); +// values.put(ContactsContract.Settings.UNGROUPED_VISIBLE, true); +// try { +// client.insert(ContactsContract.Settings.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build(), values); +// } catch (RemoteException e) { +// e.printStackTrace(); +// } // Load all Keys from OK Cursor cursor = resolver.query(KeychainContract.KeyRings.buildUnifiedKeyRingsUri(), KEYS_TO_CONTACT_PROJECTION, @@ -313,7 +338,10 @@ public class ContactHelper { while (cursor.moveToNext()) { String[] primaryUserId = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID)); String fingerprint = KeyFormattingUtils.convertFingerprintToHex(cursor.getBlob(INDEX_FINGERPRINT)); - contactFingerprints.remove(fingerprint); + deletedKeys.remove(fingerprint); + + Log.d(Constants.TAG, "fingerprint: " + fingerprint); + String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_KEY_ID)); long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID); boolean isExpired = !cursor.isNull(INDEX_EXPIRY) @@ -322,10 +350,11 @@ public class ContactHelper { int rawContactId = findRawContactId(resolver, fingerprint); ArrayList ops = new ArrayList<>(); - Log.d(Constants.TAG, "raw contact id: "+rawContactId); + Log.d(Constants.TAG, "raw contact id: " + rawContactId); // Do not store expired or revoked keys in contact db - and remove them if they already exist if (isExpired || isRevoked) { + Log.d(Constants.TAG, "Expired or revoked: Deleting " + rawContactId); if (rawContactId != -1) { resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ID_SELECTION, new String[]{Integer.toString(rawContactId)}); @@ -334,6 +363,8 @@ public class ContactHelper { // Create a new rawcontact with corresponding key if it does not exist yet if (rawContactId == -1) { + Log.d(Constants.TAG, "Insert new raw contact with fingerprint " + fingerprint); + insertContact(ops, context, fingerprint); writeContactKey(ops, context, rawContactId, masterKeyId, keyIdShort); } @@ -353,11 +384,10 @@ public class ContactHelper { } // Delete fingerprints that are no longer present in OK - for (String fingerprint : contactFingerprints) { + for (String fingerprint : deletedKeys) { resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, new String[]{Constants.ACCOUNT_TYPE, fingerprint}); } - } /** From d3f54d3ace1cc4d81a89df5b3c48a2af959b5119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 00:26:36 +0100 Subject: [PATCH 10/53] Revert "rescale qr code bitmap in background" size of view may not be available in background thread. This reverts commit 7e4c39c79d1adb58f3181c9674309b1faaecc864. --- .../keychain/ui/ViewKeyActivity.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 83e928ec6..0be6c26f6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -633,15 +633,16 @@ public class ViewKeyActivity extends BaseActivity implements protected Bitmap doInBackground(Void... unused) { String qrCodeContent = Constants.FINGERPRINT_SCHEME + ":" + fingerprint; // render with minimal size - Bitmap qrCode = QrCodeUtils.getQRCodeBitmap(qrCodeContent, 0); - // scale the image up to our actual size. we do this in code rather - // than let the ImageView do this because we don't require filtering. - return Bitmap.createScaledBitmap(qrCode, mQrCode.getHeight(), - mQrCode.getHeight(), false); + return QrCodeUtils.getQRCodeBitmap(qrCodeContent, 0); } protected void onPostExecute(Bitmap qrCode) { - mQrCode.setImageBitmap(qrCode); + // scale the image up to our actual size. we do this in code rather + // than let the ImageView do this because we don't require filtering. + Bitmap scaled = Bitmap.createScaledBitmap(qrCode, + mQrCode.getHeight(), mQrCode.getHeight(), + false); + mQrCode.setImageBitmap(scaled); // simple fade-in animation AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f); From 1a12eb1a7af9f7fc80846f1925aeab72a752eb6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 00:27:33 +0100 Subject: [PATCH 11/53] Cleanup settings.gradle --- settings.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/settings.gradle b/settings.gradle index d12c56b58..bb7db9f86 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,10 +7,8 @@ include ':extern:spongycastle:core' include ':extern:spongycastle:pg' include ':extern:spongycastle:pkix' include ':extern:spongycastle:prov' -include ':extern:SuperToasts:supertoasts' include ':extern:minidns' include ':extern:KeybaseLib:Lib' include ':extern:TokenAutoComplete:library' include ':extern:safeslinger-exchange' -include ':extern:android-lockpattern:code' include ':OpenKeychain-Test' From 73a1ceb7323f951e92cdb5ce577689adf880d799 Mon Sep 17 00:00:00 2001 From: Morgan Gangwere Date: Tue, 3 Mar 2015 00:51:44 -0700 Subject: [PATCH 12/53] Fix root cause of #1077 When importing lots of keys, lots of messages about the status of keys is generated, including some debug slime and general fluff that isn't really needed a lot of the time. As a result, a serious bug can come along after key imports or certain operations which cause a log to become parceled. This commit implements a pool to "dehydrate" logs into: they are placed into the pool (a ConcurrentHashMap) and a UUID assigned to them, which is parceled along. When the OperationResult is un-parceled, it reads in the appropriate UUID bits and rehydrates the appropriate log. In order to avoid any memory leaks, the log pool removes a reference to the log itself, allowing the log to die a natural death at the hands of the GC.. --- .../operations/results/OperationResult.java | 76 +++++++++++++++++-- 1 file changed, 70 insertions(+), 6 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java index f79900aab..02379e917 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java @@ -38,6 +38,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; /** Represent the result of an operation. * @@ -52,6 +54,63 @@ public abstract class OperationResult implements Parcelable { public static final String EXTRA_RESULT = "operation_result"; + + /** + * A HashMap of UUID:OperationLog which contains logs that we don't need + * to care about. This is used such that when we become parceled, we are + * well below the 1Mbit boundary that is specified. + */ + private static ConcurrentHashMap dehydratedLogs; + static { + // Static initializer for ConcurrentHashMap + dehydratedLogs = new ConcurrentHashMap(); + } + + /** + * Dehydrate a log (such that it is available after deparcelization) + * + * Returns the NULL uuid (0) if you hand it null. + * @param log An OperationLog to dehydrate + * @return a UUID, the ticket for your dehydrated log + * + */ + private static UUID dehydrateLog(OperationLog log) { + if(log == null) { + return new UUID(0,0); + } + else { + UUID ticket = UUID.randomUUID(); + dehydratedLogs.put(ticket, log); + return ticket; + } + } + + /*** + * Rehydrate a log after going through parcelization, invalidating its place in the + * dehydration pool. + * This is used such that when parcelized, the parcel is no larger than 1mbit. + * @param ticket A UUID ticket that identifies the log in question. + * @return An OperationLog. + */ + private static OperationLog rehydrateLog(UUID ticket) { + if(ticket.getMostSignificantBits() == 0 && ticket.getLeastSignificantBits() == 0) { + return null; + } + else + { + OperationLog log = dehydratedLogs.get(ticket); + invalidateDehydrateTicket(ticket); + return log; + } + } + private static void invalidateDehydrateTicket(UUID ticket) { + if(ticket.getLeastSignificantBits() != 0 && ticket.getMostSignificantBits() != 0 + && dehydratedLogs.containsKey(ticket)) + { + dehydratedLogs.remove(ticket); + } + } + /** Holds the overall result, the number specifying varying degrees of success: * - The first bit is 0 on overall success, 1 on overall failure * - The second bit indicates if the action was cancelled - may still be an error or success! @@ -65,7 +124,7 @@ public abstract class OperationResult implements Parcelable { public static final int RESULT_WARNINGS = 4; /// A list of log entries tied to the operation result. - final OperationLog mLog; + protected OperationLog mLog; public OperationResult(int result, OperationLog log) { mResult = result; @@ -74,8 +133,11 @@ public abstract class OperationResult implements Parcelable { public OperationResult(Parcel source) { mResult = source.readInt(); - mLog = new OperationLog(); - mLog.addAll(source.createTypedArrayList(LogEntryParcel.CREATOR)); + long mostSig = source.readLong(); + long leastSig = source.readLong(); + UUID mTicket = new UUID(mostSig, leastSig); + // fetch the dehydrated log out of storage (this removes it from the dehydration pool) + mLog = rehydrateLog(mTicket); } public int getResult() { @@ -739,9 +801,11 @@ public abstract class OperationResult implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mResult); - if (mLog != null) { - dest.writeTypedList(mLog.toList()); - } + // Get a ticket for our log. + UUID mTicket = dehydrateLog(mLog); + // And write out the UUID most and least significant bits. + dest.writeLong(mTicket.getMostSignificantBits()); + dest.writeLong(mTicket.getLeastSignificantBits()); } public static class OperationLog implements Iterable { From 06d76ccd0cdf510196a2f52efc7abd3b2b127b3c Mon Sep 17 00:00:00 2001 From: Ishan Khanna Date: Tue, 3 Mar 2015 14:46:28 +0530 Subject: [PATCH 13/53] Fixes Issue #1081 The App crashed because the Adapter was trying to call a method on a null object. Where was the null object? CheckBox was null because in the Layout file view_key_adv_user_id_item.xml There is no such widget with id = user_id_item_check_box Fix : I removed the two lines which were causing the bug, and now the screen loads perfectly. --- .../keychain/ui/adapter/UserIdsAddedAdapter.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java index 01218a4e4..970855c77 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java @@ -24,7 +24,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; -import android.widget.CheckBox; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; @@ -73,10 +72,8 @@ public class UserIdsAddedAdapter extends ArrayAdapter { holder.vDelete.setVisibility(View.VISIBLE); // always visible // not used: - CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.user_id_item_check_box); View certifiedLayout = convertView.findViewById(R.id.user_id_item_certified_layout); ImageView editImage = (ImageView) convertView.findViewById(R.id.user_id_item_edit_image); - checkBox.setVisibility(View.GONE); certifiedLayout.setVisibility(View.GONE); editImage.setVisibility(View.GONE); From 2ea0f609f29bf8458fd4f5b5170caad8fc0525cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 13:16:56 +0100 Subject: [PATCH 14/53] Remove old min sdk check --- .../keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java index f46e253c0..fc618c9eb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java @@ -151,9 +151,7 @@ public class EditSubkeyExpiryDialogFragment extends DialogFragment { ); } - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { - datePicker.setMinDate(creationCal.getTime().getTime()); - } + datePicker.setMinDate(creationCal.getTime().getTime()); alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override From 5da57f05825372350f0d5521ac401c114cef9836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 15:56:03 +0100 Subject: [PATCH 15/53] Update patternview lib, remove workaround --- OpenKeychain/build.gradle | 22 +++++++++++----------- OpenKeychain/src/main/AndroidManifest.xml | 2 -- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index 606df0464..97c8a6d5e 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -12,7 +12,7 @@ dependencies { compile 'com.android.support:cardview-v7:21.0.3' // JCenter etc. - compile 'com.eftimoff:android-patternview:1.0.0@aar' + compile 'com.eftimoff:android-patternview:1.0.1@aar' compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar' compile 'com.journeyapps:zxing-android-integration:2.0.1@aar' compile 'com.google.zxing:core:3.0.1' @@ -44,6 +44,16 @@ dependencyVerification { 'com.android.support:appcompat-v7:5dbeb5316d0a6027d646ae552804c3baa5e3bd53f7f33db50904d51505c8a0e5', 'com.android.support:recyclerview-v7:e525ad3f33c84bb12b73d2dc975b55364a53f0f2d0697e043efba59ba73e22d2', 'com.android.support:cardview-v7:45c48c2ab056bc7a8573970b10f8902742c5d443f180dae43c56557397ac39af', + 'com.eftimoff:android-patternview:cec80e7265b8d8278b3c55b5fcdf551e4600ac2c8bf60d8dd76adca538af0b1e', + 'com.journeyapps:zxing-android-embedded:5d6ba3931bd0b999695e363b571e95bd6bc9956340c1e6ce740cd0bff3d89a50', + 'com.journeyapps:zxing-android-integration:6f50bb07c057ac94319777ddfbb66f5d4f6190393418b2fc861e0e60d06f3c0d', + 'com.google.zxing:core:38c49045765281e4c170062fa3f48e4e988629bf985cab850c7497be5eaa72a1', + 'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa', + 'it.neokree:MaterialNavigationDrawer:1174d751a54689fccf53c1fbcdf439745926ae19024f4f1017afb6b29643c57d', + 'com.nispok:snackbar:59dc092a44c877e9ce5f9040c632d99e62d8932b0a4d67ba0ec9e35467d9047c', + 'com.getbase:floatingactionbutton:e63966148212e9685afad2370780ea239b6dbd2a06f6a3f919b98882318e6a32', + 'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de', + 'com.balysv:material-ripple:587f19c1e27f16c7dc67ff9ac73838aa1451086ef05a15cee38bee3e4e1454ae', //'OpenKeychain.extern:openpgp-api-lib:b17bb282321351e4b00b4cd6422a57aadc13decae264019a88707bcb556439ea', //'OpenKeychain.extern:openkeychain-api-lib:5f95f01c066069d4bde68992fd8da5faac21510d009b1fdae7a2e28e43e82cf4', //'OpenKeychain.extern:html-textview:b58e343cf4c145e91f888806d06a2a7770a9e9331a72f08cfcf1128db30dcff3', @@ -56,16 +66,6 @@ dependencyVerification { //'OpenKeychain.extern.KeybaseLib:Lib:af9bff087148e0859430d0b99ece096c41b315c5dc1ed500a68580b9b0e5ab11', //'OpenKeychain.extern.TokenAutoComplete:library:40d4212a95e947efdb02f2ca66c95a27d49fba848471a6317eca2b9cc18e8780', //'OpenKeychain.extern:safeslinger-exchange:94a1ce68217af7499579a042758283b1530912c53241bdfa06d1a079a5ae3faf', - 'com.eftimoff:android-patternview:a031eaed3b5cef8ea06c2d4a6e27693937f89ae483598d61b7027eeee0bed408', - 'com.journeyapps:zxing-android-embedded:5d6ba3931bd0b999695e363b571e95bd6bc9956340c1e6ce740cd0bff3d89a50', - 'com.journeyapps:zxing-android-integration:6f50bb07c057ac94319777ddfbb66f5d4f6190393418b2fc861e0e60d06f3c0d', - 'com.google.zxing:core:38c49045765281e4c170062fa3f48e4e988629bf985cab850c7497be5eaa72a1', - 'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa', - 'it.neokree:MaterialNavigationDrawer:1174d751a54689fccf53c1fbcdf439745926ae19024f4f1017afb6b29643c57d', - 'com.nispok:snackbar:59dc092a44c877e9ce5f9040c632d99e62d8932b0a4d67ba0ec9e35467d9047c', - 'com.getbase:floatingactionbutton:e63966148212e9685afad2370780ea239b6dbd2a06f6a3f919b98882318e6a32', - 'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de', - 'com.balysv:material-ripple:587f19c1e27f16c7dc67ff9ac73838aa1451086ef05a15cee38bee3e4e1454ae', ] } diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index d74a71fff..a1a6ed02e 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -67,10 +67,8 @@ - Date: Tue, 3 Mar 2015 08:47:16 -0700 Subject: [PATCH 16/53] Cleanup for style Some nitpicks were had. Also, change the null UUID to a constant. --- .../operations/results/OperationResult.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java index 02379e917..519efcd62 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java @@ -53,7 +53,7 @@ import java.util.concurrent.ConcurrentHashMap; public abstract class OperationResult implements Parcelable { public static final String EXTRA_RESULT = "operation_result"; - + public static final UUID NULL_UUID = new UUID(0,0); /** * A HashMap of UUID:OperationLog which contains logs that we don't need @@ -76,7 +76,7 @@ public abstract class OperationResult implements Parcelable { */ private static UUID dehydrateLog(OperationLog log) { if(log == null) { - return new UUID(0,0); + return NULL_UUID; } else { UUID ticket = UUID.randomUUID(); @@ -93,21 +93,14 @@ public abstract class OperationResult implements Parcelable { * @return An OperationLog. */ private static OperationLog rehydrateLog(UUID ticket) { - if(ticket.getMostSignificantBits() == 0 && ticket.getLeastSignificantBits() == 0) { + // UUID.equals isn't well documented; we use compareTo instead. + if( NULL_UUID.compareTo(ticket) == 0 ) { return null; } - else - { + else { OperationLog log = dehydratedLogs.get(ticket); - invalidateDehydrateTicket(ticket); - return log; - } - } - private static void invalidateDehydrateTicket(UUID ticket) { - if(ticket.getLeastSignificantBits() != 0 && ticket.getMostSignificantBits() != 0 - && dehydratedLogs.containsKey(ticket)) - { dehydratedLogs.remove(ticket); + return log; } } From be06c4cd5839d9860485fc96e152794c68484e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 19:04:40 +0100 Subject: [PATCH 17/53] Use spinner DatePicker, not full calendar, also on Android 5 --- .../src/main/res/layout/add_subkey_dialog.xml | 83 +++++++++++-------- .../res/layout/edit_subkey_expiry_dialog.xml | 13 ++- 2 files changed, 59 insertions(+), 37 deletions(-) diff --git a/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml index d32b1496f..4b5058a81 100644 --- a/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml +++ b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml @@ -1,5 +1,6 @@ @@ -90,42 +91,6 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical" /> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml index a692db574..0931eb6a7 100644 --- a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml +++ b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml @@ -1,5 +1,6 @@ + + - \ No newline at end of file From ce37b7255dd551ca666e3c511c4d30eec535ed69 Mon Sep 17 00:00:00 2001 From: jiangkai Date: Tue, 3 Mar 2015 10:09:04 -0800 Subject: [PATCH 18/53] get more material icon script --- Graphics/get-material-icons.sh | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Graphics/get-material-icons.sh b/Graphics/get-material-icons.sh index f24735642..b1d4c7a0e 100755 --- a/Graphics/get-material-icons.sh +++ b/Graphics/get-material-icons.sh @@ -11,6 +11,30 @@ python copy OpenKeychain av white repeat 24 python copy OpenKeychain av grey repeat 24 python copy OpenKeychain editor white mode_edit 24 +python copy OpenKeychain action grey delete 24 +python copy OpenKeychain action grey done 24 +python copy OpenKeychain action grey search 24 +python copy OpenKeychain action grey settings 24 +python copy OpenKeychain action grey view_list 24 +python copy OpenKeychain action grey lock 24 +python copy OpenKeychain action grey lock_open 24 +python copy OpenKeychain alert grey warning 24 +python copy OpenKeychain av grey play_arrow 24 +python copy OpenKeychain communication grey import_export 24 +python copy OpenKeychain content grey content_copy 24 +python copy OpenKeychain content grey content_paste 24 +python copy OpenKeychain content grey save 24 +python copy OpenKeychain content grey select_all 24 +python copy OpenKeychain editor grey mode_edit 24 +python copy OpenKeychain file grey cloud 24 +python copy OpenKeychain file grey folder 24 +python copy OpenKeychain file grey file_download 24 +python copy OpenKeychain file grey file_upload 24 +python copy OpenKeychain navigation grey close 24 +python copy OpenKeychain social grey person 24 +python copy OpenKeychain social grey person_add 24 +python copy OpenKeychain social grey share 24 + # navigation drawer sections python copy OpenKeychain communication black vpn_key 24 python copy OpenKeychain action black lock 24 @@ -25,4 +49,4 @@ python copy OpenKeychain av white play_arrow 24 python copy OpenKeychain file white folder 24 # multi select -python copy OpenKeychain action white lock 24 \ No newline at end of file +python copy OpenKeychain action white lock 24 From ba1cd87d397ee79abb0e85fece56333c504f4722 Mon Sep 17 00:00:00 2001 From: jiangkai Date: Tue, 3 Mar 2015 10:36:38 -0800 Subject: [PATCH 19/53] download new material design icons --- .../res/drawable-hdpi/ic_action_accounts.png | Bin 641 -> 669 bytes .../res/drawable-hdpi/ic_close_grey_24dp.png | Bin 0 -> 329 bytes .../res/drawable-hdpi/ic_cloud_grey_24dp.png | Bin 0 -> 416 bytes .../ic_content_copy_grey_24dp.png | Bin 0 -> 287 bytes .../ic_content_paste_grey_24dp.png | Bin 0 -> 325 bytes .../res/drawable-hdpi/ic_delete_grey_24dp.png | Bin 0 -> 248 bytes .../res/drawable-hdpi/ic_done_grey_24dp.png | Bin 0 -> 326 bytes .../ic_file_download_grey_24dp.png | Bin 0 -> 276 bytes .../ic_file_upload_grey_24dp.png | Bin 0 -> 262 bytes .../res/drawable-hdpi/ic_folder_grey_24dp.png | Bin 0 -> 227 bytes .../main/res/drawable-hdpi/ic_generic_man.png | Bin 2375 -> 381 bytes .../ic_import_export_grey_24dp.png | Bin 0 -> 300 bytes .../res/drawable-hdpi/ic_lock_grey_24dp.png | Bin 0 -> 409 bytes .../drawable-hdpi/ic_lock_open_grey_24dp.png | Bin 0 -> 408 bytes .../drawable-hdpi/ic_mode_edit_grey_24dp.png | Bin 0 -> 351 bytes .../drawable-hdpi/ic_person_add_grey_24dp.png | Bin 0 -> 394 bytes .../res/drawable-hdpi/ic_person_grey_24dp.png | Bin 0 -> 381 bytes .../drawable-hdpi/ic_play_arrow_grey_24dp.png | Bin 0 -> 301 bytes .../res/drawable-hdpi/ic_save_grey_24dp.png | Bin 0 -> 344 bytes .../res/drawable-hdpi/ic_search_grey_24dp.png | Bin 0 -> 522 bytes .../drawable-hdpi/ic_select_all_grey_24dp.png | Bin 0 -> 314 bytes .../drawable-hdpi/ic_settings_grey_24dp.png | Bin 0 -> 572 bytes .../res/drawable-hdpi/ic_share_grey_24dp.png | Bin 0 -> 513 bytes .../drawable-hdpi/ic_view_list_grey_24dp.png | Bin 0 -> 209 bytes .../drawable-hdpi/ic_warning_grey_24dp.png | Bin 0 -> 443 bytes .../res/drawable-mdpi/ic_action_accounts.png | Bin 506 -> 499 bytes .../res/drawable-mdpi/ic_close_grey_24dp.png | Bin 0 -> 269 bytes .../res/drawable-mdpi/ic_cloud_grey_24dp.png | Bin 0 -> 307 bytes .../ic_content_copy_grey_24dp.png | Bin 0 -> 217 bytes .../ic_content_paste_grey_24dp.png | Bin 0 -> 242 bytes .../res/drawable-mdpi/ic_delete_grey_24dp.png | Bin 0 -> 199 bytes .../res/drawable-mdpi/ic_done_grey_24dp.png | Bin 0 -> 244 bytes .../ic_file_download_grey_24dp.png | Bin 0 -> 213 bytes .../ic_file_upload_grey_24dp.png | Bin 0 -> 211 bytes .../res/drawable-mdpi/ic_folder_grey_24dp.png | Bin 0 -> 207 bytes .../main/res/drawable-mdpi/ic_generic_man.png | Bin 1657 -> 288 bytes .../ic_import_export_grey_24dp.png | Bin 0 -> 230 bytes .../res/drawable-mdpi/ic_lock_grey_24dp.png | Bin 0 -> 305 bytes .../drawable-mdpi/ic_lock_open_grey_24dp.png | Bin 0 -> 298 bytes .../drawable-mdpi/ic_mode_edit_grey_24dp.png | Bin 0 -> 276 bytes .../drawable-mdpi/ic_person_add_grey_24dp.png | Bin 0 -> 301 bytes .../res/drawable-mdpi/ic_person_grey_24dp.png | Bin 0 -> 288 bytes .../drawable-mdpi/ic_play_arrow_grey_24dp.png | Bin 0 -> 248 bytes .../res/drawable-mdpi/ic_save_grey_24dp.png | Bin 0 -> 259 bytes .../res/drawable-mdpi/ic_search_grey_24dp.png | Bin 0 -> 356 bytes .../drawable-mdpi/ic_select_all_grey_24dp.png | Bin 0 -> 224 bytes .../drawable-mdpi/ic_settings_grey_24dp.png | Bin 0 -> 423 bytes .../res/drawable-mdpi/ic_share_grey_24dp.png | Bin 0 -> 371 bytes .../drawable-mdpi/ic_view_list_grey_24dp.png | Bin 0 -> 170 bytes .../drawable-mdpi/ic_warning_grey_24dp.png | Bin 0 -> 335 bytes .../res/drawable-xhdpi/ic_action_accounts.png | Bin 765 -> 827 bytes .../res/drawable-xhdpi/ic_close_grey_24dp.png | Bin 0 -> 400 bytes .../res/drawable-xhdpi/ic_cloud_grey_24dp.png | Bin 0 -> 490 bytes .../ic_content_copy_grey_24dp.png | Bin 0 -> 320 bytes .../ic_content_paste_grey_24dp.png | Bin 0 -> 355 bytes .../drawable-xhdpi/ic_delete_grey_24dp.png | Bin 0 -> 271 bytes .../res/drawable-xhdpi/ic_done_grey_24dp.png | Bin 0 -> 373 bytes .../ic_file_download_grey_24dp.png | Bin 0 -> 283 bytes .../ic_file_upload_grey_24dp.png | Bin 0 -> 275 bytes .../drawable-xhdpi/ic_folder_grey_24dp.png | Bin 0 -> 284 bytes .../res/drawable-xhdpi/ic_generic_man.png | Bin 3149 -> 431 bytes .../ic_import_export_grey_24dp.png | Bin 0 -> 332 bytes .../res/drawable-xhdpi/ic_lock_grey_24dp.png | Bin 0 -> 481 bytes .../drawable-xhdpi/ic_lock_open_grey_24dp.png | Bin 0 -> 463 bytes .../drawable-xhdpi/ic_mode_edit_grey_24dp.png | Bin 0 -> 379 bytes .../ic_person_add_grey_24dp.png | Bin 0 -> 445 bytes .../drawable-xhdpi/ic_person_grey_24dp.png | Bin 0 -> 431 bytes .../ic_play_arrow_grey_24dp.png | Bin 0 -> 319 bytes .../res/drawable-xhdpi/ic_save_grey_24dp.png | Bin 0 -> 440 bytes .../drawable-xhdpi/ic_search_grey_24dp.png | Bin 0 -> 597 bytes .../ic_select_all_grey_24dp.png | Bin 0 -> 337 bytes .../drawable-xhdpi/ic_settings_grey_24dp.png | Bin 0 -> 704 bytes .../res/drawable-xhdpi/ic_share_grey_24dp.png | Bin 0 -> 629 bytes .../drawable-xhdpi/ic_view_list_grey_24dp.png | Bin 0 -> 199 bytes .../drawable-xhdpi/ic_warning_grey_24dp.png | Bin 0 -> 477 bytes .../drawable-xxhdpi/ic_action_accounts.png | Bin 1093 -> 1212 bytes .../drawable-xxhdpi/ic_close_grey_24dp.png | Bin 0 -> 484 bytes .../drawable-xxhdpi/ic_cloud_grey_24dp.png | Bin 0 -> 687 bytes .../ic_content_copy_grey_24dp.png | Bin 0 -> 435 bytes .../ic_content_paste_grey_24dp.png | Bin 0 -> 527 bytes .../drawable-xxhdpi/ic_delete_grey_24dp.png | Bin 0 -> 341 bytes .../res/drawable-xxhdpi/ic_done_grey_24dp.png | Bin 0 -> 451 bytes .../ic_file_download_grey_24dp.png | Bin 0 -> 353 bytes .../ic_file_upload_grey_24dp.png | Bin 0 -> 339 bytes .../drawable-xxhdpi/ic_folder_grey_24dp.png | Bin 0 -> 356 bytes .../res/drawable-xxhdpi/ic_generic_man.png | Bin 3607 -> 576 bytes .../ic_import_export_grey_24dp.png | Bin 0 -> 418 bytes .../res/drawable-xxhdpi/ic_lock_grey_24dp.png | Bin 0 -> 796 bytes .../ic_lock_open_grey_24dp.png | Bin 0 -> 772 bytes .../ic_mode_edit_grey_24dp.png | Bin 0 -> 493 bytes .../ic_person_add_grey_24dp.png | Bin 0 -> 704 bytes .../drawable-xxhdpi/ic_person_grey_24dp.png | Bin 0 -> 576 bytes .../ic_play_arrow_grey_24dp.png | Bin 0 -> 400 bytes .../res/drawable-xxhdpi/ic_save_grey_24dp.png | Bin 0 -> 493 bytes .../drawable-xxhdpi/ic_search_grey_24dp.png | Bin 0 -> 881 bytes .../ic_select_all_grey_24dp.png | Bin 0 -> 433 bytes .../drawable-xxhdpi/ic_settings_grey_24dp.png | Bin 0 -> 994 bytes .../drawable-xxhdpi/ic_share_grey_24dp.png | Bin 0 -> 866 bytes .../ic_view_list_grey_24dp.png | Bin 0 -> 226 bytes .../drawable-xxhdpi/ic_warning_grey_24dp.png | Bin 0 -> 769 bytes .../drawable-xxxhdpi/ic_action_accounts.png | Bin 0 -> 1663 bytes .../drawable-xxxhdpi/ic_close_grey_24dp.png | Bin 0 -> 644 bytes .../drawable-xxxhdpi/ic_cloud_grey_24dp.png | Bin 0 -> 875 bytes .../ic_content_copy_grey_24dp.png | Bin 0 -> 521 bytes .../ic_content_paste_grey_24dp.png | Bin 0 -> 694 bytes .../drawable-xxxhdpi/ic_delete_grey_24dp.png | Bin 0 -> 402 bytes .../drawable-xxxhdpi/ic_done_grey_24dp.png | Bin 0 -> 588 bytes .../ic_file_download_grey_24dp.png | Bin 0 -> 434 bytes .../ic_file_upload_grey_24dp.png | Bin 0 -> 407 bytes .../drawable-xxxhdpi/ic_folder_grey_24dp.png | Bin 0 -> 527 bytes .../res/drawable-xxxhdpi/ic_generic_man.png | Bin 0 -> 751 bytes .../ic_import_export_grey_24dp.png | Bin 0 -> 531 bytes .../drawable-xxxhdpi/ic_lock_grey_24dp.png | Bin 0 -> 992 bytes .../ic_lock_open_grey_24dp.png | Bin 0 -> 992 bytes .../ic_mode_edit_grey_24dp.png | Bin 0 -> 639 bytes .../ic_person_add_grey_24dp.png | Bin 0 -> 925 bytes .../drawable-xxxhdpi/ic_person_grey_24dp.png | Bin 0 -> 751 bytes .../ic_play_arrow_grey_24dp.png | Bin 0 -> 478 bytes .../drawable-xxxhdpi/ic_save_grey_24dp.png | Bin 0 -> 747 bytes .../drawable-xxxhdpi/ic_search_grey_24dp.png | Bin 0 -> 1106 bytes .../ic_select_all_grey_24dp.png | Bin 0 -> 529 bytes .../ic_settings_grey_24dp.png | Bin 0 -> 1299 bytes .../drawable-xxxhdpi/ic_share_grey_24dp.png | Bin 0 -> 1134 bytes .../ic_view_list_grey_24dp.png | Bin 0 -> 258 bytes .../drawable-xxxhdpi/ic_warning_grey_24dp.png | Bin 0 -> 887 bytes 125 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_content_copy_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_file_upload_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_folder_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_lock_open_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_mode_edit_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_person_add_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_search_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_share_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_view_list_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_warning_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_content_copy_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_person_add_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_save_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_search_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_select_all_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_share_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_warning_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_delete_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_file_upload_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_import_export_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_open_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_person_add_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_search_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_select_all_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_settings_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_share_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_warning_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_download_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_import_export_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_open_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_mode_edit_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_add_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_search_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_settings_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_share_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_warning_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_accounts.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_done_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_download_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_open_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_mode_edit_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_search_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_settings_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_view_list_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png index 7cc40731552e74f577b5b492903e34c3ba7af493..10c77d07d5162d7abceee206924437d59faa7db5 100644 GIT binary patch literal 669 zcmV;O0%HA%P)zi-n(6vw~M$AVbOTp=L@5<@#OBsM4#q;nS}R2CNa2jVl?2ou3}#10cf z5fT#W+)}B9_=1GQLN}23y_SwF&SP@A-4zXW0iV^pA;(ZU};) z4&W*?Uj%R}OMfMzR{)-cVYo9BASvZJ01pAw3VQ4TxD`dw`>6pn8jVYi<7@#qIcA?9 z{eFMF)9Jh{9jMuCo=wyA4S=P;>~$oBxX^C5KiB{{dLm8JM?+wC06fU9CM{)a%X26Q zg3HYOBA;XC>v0@E8N|NtZxGR@u_4iwFbsD~afq3(Y4z0AfinvIFT&l?l|#SPc}e*jEsn$+B6%$`@Vl?(#0YlBuVnob=?|((>6pz zRI662P)hAvIRpSgh?@Y8Y;7W<)+9~|J<;uU4=a^QkBHU*9G|sQVpy`*>wR`z_c?%7 z%y@jlR8UGCDy1HKo~MZDCx8=~V<~_y0Nw&PQ#MrLiE)&IAZRi3*zXB5x8gXyJCQ@< zC`pn%&+`byr^>ONvI3e0l-0;aNlMuSaL-gXjj!nEIyITTQ*#3{LCqCt0F{re&Mu?G z%&!65*B*Ym5O9`mNGW+(K8m8>9CII;t_9FS|DApTQyIiKJD8AF00000NkvXXu0mjf D->nly literal 641 zcmV-{0)G98P)92pja zY0{Z$%tUKvH#^&YkJ;MwgH+eFN$s$ZFf&t8vx&WzJQ6~#z|nhGNba9pNGRprk9+Uk zdnbgImDQl-bp7LWIt}3xz;H{qQyhoG;is1XV6+F97{;t(cvT3p1(02D0Kj-OeBNNV z3}gc!DHp)FrSWfYd4_SX`2GhNPrmP;@;uLO0zk&ku9yR%CjgNF#J6sMQ46<`8K01Q zsOXhqNUQD|0(LI(>2;B1;2F$9%a(D0&n#eknp%NaV%VmfA}Ki63iHi$uRbU0h${^*lySQdTkS%b>pWzDBYP0jW|a;WfV5=-NQ_jYSpGrqZ9e z-NXBT*{e~kePEn50|d06xU4Hct8l_*1nYUt5V)$5j+JO^Xvmc?Z$}+EGIoeoEhTnR zI1%l{L7yO$k5x)16X6AzBaMXWq&C2qvOl_PaL%=#kbpeu3#z}l)UmNaID%Q+5Myot z^lgftsKuV5924vS+z>_pI3XNiSQHbFrCTpG@zEF)#sMTitA<9u7Gfm&uiDyad~55# z&x;l_scBa+CjKBE5?wv9&h~Owa;JsrxzP|@$O4$uR<##*`u0UB+sF=pzhniYm6g@N b^)J8xOs3Mz)bL2i00000NkvXXu0mjf%Yhh( diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..32580318072ce6eb9fcb7c9da9993c41ddb54d82 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?p<004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_009_DL_t(Y$L-b2NNWsgZ3&Bx}z7~graJJ#sjZ7eADHTa}vR!T`q7?Ut=zb1%VD|%^+SKvZl}xZwnbkdFRjsO43`(C`y<3 zYUpkyqbRqFp&fEu^K8T@zy6)_7W>o;39qYp&@mqY8RcabO7j_*QIsC{oD!KrwNQ*# zojn)It;HxxpA;gL)`pY@Q87O7|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?$+{tfyyU&G_Tf?^jb=L-w=C%A@ukczwQ z!I>i^>Egq4ZR)S7Mvu%pen`ah8*t5bJaYWO|DgC9HbL=b_5-W3K1#a8958oSD{Y!_ zWkFzb+cw7&tk$k>@BU0VPE literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..f657587d786fc21342c3f7a600c7b0c48ad51d90 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?Sm$VUMO3vHQL~FRS9QfwM5j zWy;^gWYrxtXEz!Do?^W?;NFrcCU-Pu{@KxS{_BbNj{F^sC*04S S3-<(igu&C*&t;ucLK6U%$#>iU literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b72a9f3c69795abc5529255c017ccd2797f319c3 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?TR)5S5w<9M=0>H@wLiJ5GLQ^Ka0DIDwy;w$2Lq;WU!mpt#g1Gyr*9GKhEVm2hM zkaW2kk*&Zalqz5-CvBQ>WkF!G8?RIl+h663Gx3jjtlTdwFg_xg68wvGz2SVXwH<3S oQ@uVHiv9k%^wQ$9QlAtUjMN14P2W{!1MOz;boFyt=akR{0ON^D=l}o! literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6e42e1359a874c776dacb6d09d5f7dd358863e99 GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?@s&TDEMt z`%>&?d4qoL^Q~*Q{ZS8XfQG<;A|^rwU6AFG=^g~zntUMvR&iUWVsAh22Aj5 zR`THzN&OPQ{@5wlY)$56N$FXIX$PjZI%`Tu-zsD%&=7r`clH89LGr(aQ_j3kygg;s zM_=C+*4lni$L#AC&g0qYv%=kJ<;()b)*z#eY0^@*!uyq!EB~I_AGV-x55pD}&zajl S9{2+E34^DrpUXO@geCxw;&DI# literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c2222fb8ed98e8e4f997e068756b33f14b35a4ca GIT binary patch literal 276 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 YQe|Oed2z{QJOBUy07*qoM6N<$g1c81K>z>% diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..961aedeccc23a9f445b8bebc55b2d78ecf9a03ce GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?fMgjBB@}ug9%U6Rz2g zXL(FDY8LezGU2!@q15YS?lDhMEKh;s08hl34-@W0{N|sy+~$}26vv8QIn#^)374cM ziHmHS1}YAbUoSXGFo_x1C|q^r4Nwj^{e`V)Pg|Zyo8ggm!A*e?J&LLuq#q<+amZZL o*mEe6XJzSr=EIE_(|CU}FkG;7nCX}M7UWk3Pgg&ebxsLQ0H}Lh{{R30 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4034dc9f213405555998d58ae5316aec99a49af6 GIT binary patch literal 409 zcmV;K0cQS*P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_009w6L_t(Y$L-e73IRbJ2XG~;NI5L`&5;sbg*dn#Tk zn^3`16G0@Ld>W8O6|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?QQ~zoGeSTH5NM;l0xF+l8VR z-Ya=i*?`eugh<~^P_vkp!G1{i~|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?09HsCwz%zBHl^g^1+ zl6x{!7CT=2y3~EHq{eaPrftht&D)hM%`fSuwqkbTBZbovtKK}TzGAP&_DRw?^v~Mf znG8!4S(;`w9y)V1Z8J}xkA%`p0T<)T6Pji=g`ANHGII7f`y+tqv6E*Hx2mDulp{Kh u7th$Z7!(T}ZBd-W>1Z004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_009C?L_t(Y$L-clYCjU2 z6Z%30rbsMPaz0RazzD*Gz#VF7j3CsGL;G#<^3Vtk+@X~biY^G5kM?Ya#1e&~VXWM_ zLm_Y4`YS1SNRel9FhyD0Kpuw_0d-zjvSvinJdD3zw%4Qm!;qdd6&~p_BVx;zhD o>Cl%K6zPz7<_dX0*Z+|zJ68rVVYWu>umAu607*qoM6N<$g7WW{cmMzZ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..af025f2d1186a759cb7b2f012b57cc50abd76a32 GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?6U=YX@Bo?eRe&%Y{GXIb=_TC z|0?O_+THwgyyyBGqqwh$Uc444P}Wl!Wd7rS z#^t*<3 ZwR7>qMF%CmxB~-#!PC{xWt~$(69C?Xk_`X= literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..2644169330f62b1cff668e799acb0b5c5232a1f3 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?*akpP99#^Zt^Fqd2{fOWbTYG42W literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3ead270a02dbe60f07f722d4c58caadff02f361f GIT binary patch literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?78;79M#uV)wqWZ|=h;rOEG)lFUi8(}#U=E#7p;{&9kIgLs=A}O zh0)Z$t%`Zq(YUgOhV4IA^=jOo;Vw~9w&hL(Tkq3=;2E5igP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00DwYL_t(Y$L-d?YQj(y$8i-wC)-)1gNut#AmZZYuCE{t zg3H&XjsbTE!O5{NQ2#7N-$Cf&CJ5r>;29MM~$A`_129BV8RL7_N(8*zyxg&2oD#F_5hCvmB{?Dvwncr79zt}zp)x{DU5hUu z#LOFNB1Fd(N|+7zgjxt;xk6EMEIgqaLiAmsG(xPrp&UXi2)m?K5n}8OMOh<6#bsgd z2vPTQjx1Ar$|13h5E~x-Ko2YtVovs|nzlLf4ZnA-zz!ky^eB)ZN}8%!l$aCo-$qJo z9ovY^Z5tEw+t@PZ&e>x_gNS(^IaAJs=IJtH%YhYR>Sl|_h8j9iK^lDgCo0&ih%qwM z;F=0Lc47>jso)drLcQ9lTZUnbfuUOWPTCW7cSR?vb?+Yi|JK|b9~bx!lRu%+YXATM M07*qoM6N<$f@UqxbpQYW literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..99f57a2da55e64e014eb9cafca800c3c98c9e5c3 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?7!{&LPvF6Q9bEw3CmG&M}{@X)tkX7hVxki-U~ zgTELGFDURWJ&>?s!L%7?=R3%xMHuE@XAA9_r+}L6CW^} zuOn}X{)=PR8E-C~=gDojHKKd(wKqHVzWrJ$E3j3JO|?Xq$LmFu+KL%l#db~m>GX7uMJVJFVdQ I&MBb@0NRIjqW}N^ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..20d2b66e05272ae1caa3575316ed6d8d5360610e GIT binary patch literal 572 zcmV-C0>k}@P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00Fc~L_t(Y$KBS?E5mUd$MMZ%EBhh-1j4k@kRpGDlpLg} zp|s0-;^64yASEer*}*|k{)+||N>ht-$ zKl{vs=V!|E$Dj*@R2lcsivm5nh5XbNs7j|hD5@|5!9c4}oE1Wi?+&&!D2=x<8fKLd z8`Q}Yf)b}pFv-2f2n2VGGsPKY1P}PkP)eHcWn`Qq8z!ia59?%Gz0spX$89qL!J!k1 zQL{wLab;lQN^`^v)Fnav)V3YVThrPu=~!0U z){qOz-UJMnrYt4q?43O;#q!3hkdqQKtwC8MbSovM?a-nWE8*9efU>lCGvsC0@w1WC zpmk-u#*Pj}xY3TbKulpqDQcN(!mTu9fn;NW0oDzSp&>`8TCYfsTV-$Lsxau>qa#vHT=MSeAY<;nJtp(fS&fBJvaMtuWoo004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00DVPL_t(Y$KBSyOTs}I$MLTiwM1A;KZb||p*^r~KU|`v zhNg(X0{?~VEd(_MEiOS&iw)I35J9Qb++eE^mb3+JrIv)1*K&w;2HlgBJp1dod+zz% zIXKNJrv;!8my{`U!Q_9SB|cHQK3J4OJrrwH+BBdI3FKkdfR^nc zmurK0#%Bi&a7-12qR4w)*A{HL*1;sn3#(7Fb4!;ED5qXra}#YoJ6R%OtH z0p*yL1zWnoVV@DOhkT@Jz$tMmC=?aqblFF(%Nj6-gF}FG%{~&bxsZ)&j$4goG%pVS zc49hUs~pjfp9FX0NHA<4{(T(k7%A1Ic7dQI{DWkSp62n&qIS!mLd|+b!ZK*ufTm|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?H@w58Pkjt(pMS|l`%LuJzx+>GJIjbNz`HSD^95^9Gh#dCE8BbQR)9&y770mRH?~kiqpS-T3^*8kKl;p6eEGo004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00A>eL_t(Y$JN#`EJHyY$ML6Wnl$Oqfq{jAiHWTvV@F0t zMy7Ar7#SHE8QItvyD>4bbYWoV(1bKi{S1`8_wM@My=x@RZ@T2}bNT=OH(Wq4m;^%! zRjCdFD)7W31%GGoH~12942hf*OpPp%W)Y zh+`A9K*zG(+#?}6%txUSYSw%0kf=qWHRrOrS?z^Nykv%+Dg8kQnHeGWyU+|RFQ~=z lH+1F22yr>A-(}6TtKSPDj(q#+`jCGzajv*e$uTI+UcPK&R==ogf+l{TB!oqO} zByMDJFc&5m>}#-L*kIt$aP_=o5Sv&@;bry<2Co?$)jA7{C+*mI&_VlbY2%Wlm-0-^ z=~g@Ue*d?xI5^?D>uFZSBll8_GzBiQHaxEU**o*S@NUR8dJU6yB66nd8~O+ zKlg0f^RsE6wM`a8=&V|`YM(&ho$Q90?aMM>tqnWP!!$w6?edm6$(6^qy`7PJ+mKf5ZQ?%dpCFU0%IIbmq@pF?!<9_PxFI zX*1sg*#jr<%s;v5&r8GSUvr;!zH^$R5x6o$&zW)A<(It1{LMlg9xRO~xQ!)va$>K` zt9V+m76=GT@>84q;%n9UeGCjQzW;vgqgI?9dCgqVmC=QNLhgCS|9PquGHTCZ#kB4EuvVXq6Ws$&m^F-&ID7)~z kam&}L7G%9{xO-hc(KlFj^QqUHx3vIVCg!05`14G5`Po literal 506 zcmVEtx7@7|rC zpA!UUJF$g6e@fF-V@TKy+-6y3CI^7TOAKqcZkV?4Er9GN0f6L>7*-xJKH;wbQjGyH z6DB94EP-Fc<$^o~!+Zs69f~%f*iF6Cx084KBfs?DAcuESuv{dC=StZ>9 zD-<>(0>JV*7DR>h`7wlOJGOlAB@qh|i3vm{=@6YZyM$k3?H6K{A}JIvh=YhJ z2H=30*K|brfCz&L4BJA)z4O_Q*&luYHy+VwicDyA4&R~eq$M{FCrX+>MF$2c;jzs2 wUD45$+0p7BJ{=`XJNY->+u&^f#eM}C01U~LRuO8By#N3J07*qoM6N<$g7z}lkN^Mx diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1c382e5f5ba23fdc95ff6e937958a633e184f681 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkL+ z>gnPbVsZNJ%Vgndp7Z&*==MmTxJo` z%3%|xSCMkWQBdYYLCl7Z=AaJ+xkdH&loXXi8y-}>SjKTY(kn=`>vM#6epkKHmi_KR zMuNXqOw%@wY4>4~P2sQHCFQu*&8hAAA+y+hPxp&|U*Y#=j+dojU)mF(gBUzr{an^L HB{Ts5OS)F* literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a90997d7be5c1a10b0835215706e179c63f63605 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkLc z+SA1`#NzbT$s73&21vNo2UoIndOl*^(^|5jlDlo*$)qF|G5zEhekLj}syP<6WlxaK zUA+D8@n>tEtK6S|N4tY>rSpYkU!OzW+SO=~G=WkJm z=;`7ZVsScIBUORdX~ls{)0h4)bXX%*pnZHHV>e5k`oy)2+vDS={z|^wa9&@3W9EUk zCOgioXj5Fv=v={(UD2vux&OejgYxNp6@jn1eVGLX7^;7)i_(f&bronhgQu&X%Q~lo FCIFl*LstL* literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..fbf5786b34cd59bcac46ad5dfb6f8363153c0609 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkL6 z<>}%WVsScIBlSRo%+g?Q`>Az0b3;zGX`XIyJv`;o|9~6q(as4ky>}Q1m}r{1KiseN z)%|M2sz3GtJ4I)m@DAZsP?YH9oA{L7fmzRDRbmM9S(817X8BEg$Q{D_Pok19cBlS3 eCkB0$NM?rF{ObaKNa%nZ#^CAd=d#Wzp$Pzl1WHK& literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e757fdb07dbd51e84e7d121d5939bb50b2894099 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKh z@9E+gVsScIBUORdh^K+A^%DEi{|i4ju4J;~{r}P7RffW0ewMTHR}EG*dho8_pjF=( m-CY0DTjx|QyOqCi0|Wovb7#d)y?6;Uiow&>&t;ucLK6Ue*Ey*G literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9f860915db045e6400852574896902de9bb7b03d GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkL6 zf;9j3>GS;@)E6|Rsii~@O1TaS?83{1OU7LOtJs~ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ef8ce7317635444dd1c444f7a816f81479925a GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkM1 z>*?YcVsScIBUORdh^M3Nzehm`^R6~Fk)IhRIXQpK&x5$^i{#@O1TaS?83{1OUYf BKSlrm literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ca89ff472334ba13cf270e4b1168acbaaf000747 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkM1 z?djqeVsScIBUORdh-XGy+abP0l+XkKxj;a( literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1028bfaf31b100839e727fce960ae5f01f111529 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkM1 z?&;zfVsScIBUORdh$oDbP0l+XkKXBs_L literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png index f763dd259c9fc2b4987cf1a04564c31f2679dec8..a78e7e6a0f7baa22c363c4505024f49d59163366 100644 GIT binary patch delta 251 zcmey#vw%slGr-TCmrII^fq{Y7)59eQNK1e)2Mdt&s{2|z(N4dfDaqU2h2ejD|C#+j zQO*L7$YKTtZeb8+WSBJvq+y1qi(`nz>8qC=xtbhA+CN(Q^5o^n-&5XoeES;h&PU7i z0=|1>i647$>d{Wk#EMfIx=#OYzu#VYSmMl{nW+sOO>MJetXW-bCZ5;wHPQGLBe2OJ z!{))E1@pLz_?HAGCanDR=U~>UNL@)j_f??<6pjMzn5D-dD10!qF|{%(2)$Du6{1-oD!Mz@;j|==^1poj50drDELIAGL9O;oEFMkGNOGiWi{{a60|De66lK=n!32;bRa{vGU zNB{r;NB~C3Yd!z~1xZOnK~!ko?U`GM990m8zwVjIvWE7Cy13#)Tu}@vC~CZb5yT6) z@fN%w8Wn>Gia{R)BlsZbgQAEUH1SDPyrH7zK?O|=B8ZPh1Vw|0!~_*dtGn6R?SJ;6 zs`i}p_DrAd*}(`~(9CXkpE~u|?Nn965-rgZ{jVunOlE1CR`JdOk|a5J02G97DbGx= zB9%TL1W;oDC4%P#p_c)pKpU6={sHC+Yw+(i0n!M7Cw#2Gnf`qyum(66H~}~U=m68e z9^gA*8?Y7lN%xO+eIxg(1)xOhwtw*&U?Z@qf@iMJr-1i>M}eIbELaCbQvfZ*^v42Q zfJxJ!-jBS?7e4dWN5Cxb81RTbv-k)G5e%S2_;Y}Ffa6q<2Q!{q6Ek+5+`2*mje4#uArER2_R(>tMDrj%_sVQQ-9%2fgPZW z#LugB8B_vD)6^_rKK=qQrkV?NnJVfize(T$-K%B$4+KE9Z&~6t#LR=ZO)oNKYy>6{ z>sHDaVu47RwSfCW*EJx^N{0dWc=rYa;JtGRa2oE=8U~pau15|*%T&z(sQ(#*N&U?j z9@#lC4qRX|_KSlmO`2IjQh#U2nnB4FbfL-6FO`N0b2JiI25OjO{8t*FK`j8{kE25t zytwBv27o?F3$?%qiNGe~37VSjK-L`Xq5s{8BdbDxES&GJR@%M=yzK$Xfv1sna0b`w=5{4XlB)~&m$j1nfooL( zUES+p72ZntN-b29SJdT5GxIrcqHfwoTwnvR$+L_VX1TXljBD<5;7(nWt2JH$ZlOkB zT&FP0_5D4-HNb9MJD3B{0q-iXIlVH^0-1Mzg<5m7-tPb(0e|bgy@F_vsl>@D@F|Gz zXGk1O0UrSG1K%J%og=l)O5jRlj3{+#z51vaGu z9fHex764)o+kBN&ysvx8r;acpSJH7jQOiF+M*6pCISN4}XZ8bddlaL$c6nq^>$r*O;cw z!n=X{)FPE2769lW{Kde_$TYgRp;^XE?^9QwwOQEF6*HE7wK0WkLFPkN3zdTC2f&11 zucnQup2+#1j#>r&{hpQaXd?sUwMa8ndOjSWu|l3V;a~I^S5>dEzSE{q6O}xx;?V^z zM~X+YQh!wTa+&aRx_C1#cQ=^_m3`<4B`Z^|K+X$O!U1kR&$y5!#*x~8oZ*fVL&y@v z)yQY5R+1$1DK;t~vMTT;q){2h6uK^%0(Syu;nhn?l89!#5qgH4qU&(|@PAEqsGSPj zYWFOV+pr*YT1h*7kN^PZMmHhpHM2(lUyYo;$A6g`Dog+X03~!qSaf7zbY(hYa%Ew3 zWdJfTF*7YNH7zhRR53U@F)=zcIV~_ZIxsNjU)`?&001R)MObuXVRU6WZEs|0W_bWI zFflVNFf}bOGgL7+Ix#UiGd3+SH##sdYL6V_0000PbVXQnQ*UN;cVTj606}DLVr3vn dZ5Ux^Wm08fWO;GPWjp`?002ovPDHLkV1o2=#X0~0 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..f7faa5cf4191bc8825cebc53fa35476ec55ed246 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkJm z=jq}YVsScIBUORdh^L|L*rl`}6O*a`*bk*8nVK|DeSEd)%u4;g%q TVi(>5ZDR0r^>bP0l+XkK^iW74 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa7f36a1fdb0aa397b62f9dd8722ba67c96d15a GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkLc z($mE;#NzbXE52M!0U}2~evfLFuNFFTYU>|!!7Wo9ZaMCp%9bU_$JM@krqHv`oQ{QV z&kO6Df3sarnD+E?vY)5>@tM8+Hj?bugg$6yWtnZvg55Qjyo9tG_(*92>Q{?(5(20U6IZC4L_GsQs4hC t-f;^G`@)ka1X>>pzAhM1V>+jjamws(3hR_a=Kvke;OXk;vd$@?2>?xwXpaB@ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..eff685ef1f28344a8f9ce910ea6eeeac610aa89b GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkLc z$kW9!#NzbXD~?=;3N=m5yK$kaz>b0wjOr~C5(1BAF!4U}>O2@w=zPN>L-6U1w}Q_tICy4kyj}QwBA=~( z`#!d;sx5(cMQWLDA8-BOz2N)l$h*HqSG;`gczHoR?<_W1ryVs3A1zkZS1r}K;Oc%@ nxACZZU--_)bH8T0yyl$JIr$FP0jU6>YZ*LU{an^LB{Ts56mw~> literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..bae3480cb123b0dfafaea1bea608b82994d06519 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkL+ z{rG3V~jbIkwP*j)bNf#qG7*d=`1wk*qdq!xLf-6@mfOYRHy z0||{+nVV(#_$G_-6x6NZ;jt2M<4@z1cw=#)defo`_OO=~G=WkLc z)YHW=#NzbT%Z^-44iZN{TKaa(zUBVC&r zYW{ot&mJf9q{W<>gi^}a%9g1{Z{W9h5T1eOKKfXFots9Fwi*Ow1#z(*@bwX zwvI(J=j$9gATTj$qe|Z0|4SI#XS0OKSQIW^_UzO|Tkro5&0?&gISbS7vX|9Vy>{Aj qv+UsEXz@q)Sh-THW;~w%k7?VpWlW4mJ9h#d%;4$j=d#Wzp$PzEOl^<= literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a78e7e6a0f7baa22c363c4505024f49d59163366 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkJ` z!_&nv#NzbT%Z^-44kGOzEq!_Na^&wR?>fGHjdtgwWqJYMJ+j1)y*Tw~r)FZsDGgnx zf4ARnuRJVqX3xyjhK{DTSu)nFE;bX-Yx$aJ{E89SWRPL=;Lw73+(rCL5))Sb`g1Vr zRHUvXpZluM^?Sa|VpjKxidrXgQ@FpmrMrCL`*S&M2l~Dz=yB+8le*(x?6@OSq46)@ cwBO6EpFHW3J5jLIALvE~Pgg&ebxsLQ09cJ_Hvj+t literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff5decb07cab3b392048eb389a97bb62d03ce60 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKR z;OXKRVsZNE<&A>P4m>OemPW`-Gzwtck`Tj^$8^0xTVeZQ|9iR~jGSTnjIGYDeED?Q zPL+t#KAshJZrxJs8+P6_Zb&lIEM(YyO`CazSaZJ2frX!KctgsQYnFz*NHRKpeplw+ m$5$n69$odA{+>VX3;WevOTi5)Zz6zpGkCiCxvXO=~G=WkKR z?djqeVsZNFWnZoa1p(Fs{RiidHd(c4?5O(PmmRAReREZ#S7DRDquew@c^+nehdtdd z*wl1ROg*C-5Wjz7@re^hh2>hfJ3cu6W7zUZeZxT~r-O wz|1Kp#l~1IyXNfjW7-nZy&V!&<+J88U*h=PQ0~0yFwhwcp00i_>zopr0I>;CO=~G=WkKx z$J50z#NzbcD~4Q$90Xb)y4t!s6|o&vOE_Tsw|CKZk3@Z`{**~U!Mj&ZNmq2*w4pOI z<<#-x?~IJI4IZERBe`a0z~@D3>atA6d@F(_H`^6B*xV2>P)zA|O{v@9W;0{^B37}D zpBlN79=BK@xyhd8@}NcV(KBZKBS$!wcckCvTqu03V>kbkjtCYjc{V$Xl@10dp3-|c|Lg>zz%AA$Cg&7g vr}N|=XphO=~G=WkJm z;pyTSVsScIBUORd=z_0v!b@+1zw#U#FRu6c8)&-c$U*_f{Y$pXPng@lH}UDo>kaD! z#pl=XN`yTYQjcb?{p)bMVnJ+Fm8(JJeut|M{1uq@YJ6R~UB07@LB+l~!ReD`7SIj` MPgg&ebxsLQ07|h%9{>OV literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1b41f037163a02862327f74fb73cbf235682e2 GIT binary patch literal 423 zcmV;Y0a*TtP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00AFKL_t(I%e9oTN&`Ujd{R0$n-KL!ePRN)8@gTbe!+z-}t5A(F-bWdjD%PlX=xnte6rAlIqfpyFM z@6ZFP>3~JrwiMz^Jj=6nTP$c`lTX!N%_3QjmD^!G1`eD7h6Dt1dQW>XFv;7{hijA5 zJ!}nKjY6{N47W5`Vun*934d|IG|M!(ahGr8_13x&;5;2rCbHW8r%&Kd{Q}_UO=~G=WkMH z+SA1`#NzbYD`&k9JBYMBJkna2`1VrQ_P~sV*OfdLhAZgv^2Rk!Y#KD+zk%ygOf{$93~Z}x27rf`8lvf!hq=fQg=;royA>*$t#@G%V71N1h7 Mr>mdKI;Vst0JyP{U;qFB literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b90d335f9ac54d821edbce73932918fe8b14da6d GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkLM zSlcbf^@&$5FPO=~G=WkKx z+|$J|#Nu?aMydj@QGj=|xWJ?Zja$E@z2sH!+|u^w(tn2tmo;n~FYzbv%6qwXUN(?k zBg2v|xcK0TFZwZu?*};_lHxl&wfTXflax}xl;#8rJKi}<`xl&Yu;F;E7$CB|jcvzH z4&MLXuM0CLX#Z^sJ-j_A@{LrO(oUJk!~ZXd-Y~h5R3R>TYe9B`mTi0Z;m8GCBD^az zxB}*~G-;lY`r#cfc;$o83a)hv`PUaGY!F}Oxc7^Apj6$|RgNY(%3hWnc}tV#Et|*2 Zuz}nb724g literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png index f1ec295d2bf32c778e4fffd6f358a017868f1556..ee8067c7d257367aa7ce2416800c354e8bf52727 100644 GIT binary patch literal 827 zcmV-B1H}A^P)v5nYNMHN<%6+tr{g3ya{?GmO+@9Q1=&Gy# zTaqN$^Spjw6c|y}E5JZyYePhS0B?aM-}g7$3Se?_vahG7=Q;2Q$i#$~fW?D@gQp7% z3tKG*@H}r+RbK%Y5_<26$b|3vOKAdF^)_ACeGI$=vQ2oO2gYsN-U-8SB`tuO6{vjk zZ-8^B%<)G=9;8)?NC40CE~)BQAZIAgu87?5egCIvfXHuGRiD*3{01;4A~_Ms0b`Z5 zIOQsy##L2;LZL8VS=M)|yUk{)RJt`kKmY6aVm_bm&15obKz~fGQn_5dS}YbD0d81T z6|gL8l;~DjIC*%0%37g;T$zfuQAJ&$`%!`W`}-einbg~B#M>xMC3hy zs@?-$5Z{50w4FMDs(u5m*N7hgUaM-e`PNJWL|vhGrjs1g@6-XxIzoe3a}RHEiU69mD!ZQDD*opy$(JCTK9xZ*g@Dlo#~gw=KsR$M?31nYx?gNv4B zT?B4&`U%Y_go(dZ&H>vZ@>x}PfQQY3sOrqz++3o;$N1g$Ja0x-o9-}4A!4skQUyWq z(QzCBhMW0(((7a#;H)810XR#DRQh`(a$UEfCvDts!gxzGt+;1L+XKWwbOb;>h>ig` zg6L>~NT^mH;H2WZ)9mc*KWFav3UmQltu8=UU3Jx3{RQT;0*s;$u(SXG002ovPDHLk FV1f{kbwU6D literal 765 zcmVW_I@5ln+@K1G8BXO3|(1i%N%J|z&!N}3x5nNdUsWZgcK5h2PmdZUF z0M1H=;f$9FCB%pa9vVC+I8z6l3iS|!uVh2y)DnnQ&2GL8l|sEjcgr>wE)181P)QB=h7mC z&;|tUo**3gfJ0REb?XG7o#)GN=AFW`P7rbdfD=Cqp=;~7`ri=Byc(nBFtc@RWi3p< zQ*0N#ky_W76>?_J(a_0J?tTc){WBm_!W z(h%Cx04SU(tX2LVqLJkw4nP`$696P3I0HZmf>Qt_AOy-$aiMisZR)h!bL|e!0!V@K zWO|Eisd{S8^+jU=XhWzo04)eXl}D%f|B7_}xNm9%sHQIg51{S<;zk2Na-*)&qVmUK vLuUtS$t6cDrk1|)^78WX^71;=uK)u8tXCQ`kE7W?00000NkvXXu0mjfVUku% diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9f88d2ad464925546cc86c22dbcf22f3c1a30f GIT binary patch literal 400 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=14Fw zFmiahIEF+VetXTEugO59^`Y7Zmm`jiv2$1#E;yze6~rzjx3IrhFxf|H`KS8MJ8`QQ z?E4+a>EXas$NuC+;Sysh^%Nn6-370-%ycV4PyxSD0)>Y@{G{XEX$ z!_VgLFJ7*7kd5I|d3gSKIiIV+&q=oeqnJ$I-1nSQV1I4$Pt}W`9NMB^EPJ40b@HgU rqO<$6co*&6R?A*jGYNf&KOoF`O!GsbP0l+XkKU8tDG literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..efcffe3fb90545fa13a22abeeca5ecd9f2243e95 GIT binary patch literal 490 zcmV004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00Cl2L_t(o!|m6-O2c3j#_?Bei;IX}fVFrvLP1(ksJ3_E zUlBoYa1n%xAB#>dVq9EBFF5~SVjK>Aay!I{cAPdof6i0#O?Hn)?1xRr* zP`x0W`xE}a@xb+hupbtvgsK;W`7pqw&)fv%g|R_^8P>U`8MUz_DEKWt$-n$iMW9aF@T>?3B|}RUaI}F3!;>oD>V9Ow)g4ozW|&r6Xg?p>aHcz^hOG6? zuCvfG-k!Il1Qa_5&ay)NZtsz~$h+10D#O1I{V7f@O;nwt-?b&nDwjOsMm#cWIF!0C g_Q@|)0we(D8;yRS6Insf2LJ#707*qoM6N<$g0`Q?1poj5 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..68ccece61d349fda144356ca660bbc4d154bf749 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zcX+xuhD02Gd&7|LkO5EY!~MptG0N^Q?#L?gF~>0G1(&*=kzp+4WYIESGf`nu?nS*l zXA1Y7n5cUEYFlBrsp^CqmyN#9OJEgB7n`UZ)z}xR!yfkFpc9jbbz*USr=WsE0|O%yiv{E1G)AU>d=fMMZu|K+ z=g@S=1DEqg1$HX_@Nt6MFV_j}lL4yykVD*`oM&*PX>cKQMT@`njxg HN@xNA2WM@y literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad5aab8fd97f48efd1a9c4a88285cc668aa66f3 GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zZ+p5phD02Gd&7~dDL~-Z$L$(#7?!cDU2GM(TH#UsY6lamHo?+!RI4eO7{eo;!FL-X&uhNs6X93!?c zrX5L%KhAlGZN6gQ)6a8SGGz^(N8Qxnuw!!$h%Vm9DShMGHZEtLwharl*0JUBt`%fd zEOZVHWBn4RdS1BDXJ;HE>ye+_(S1x@8VedA#D7K!uIHzdR!dEwO_14|aD|B@BVomHrCS^#%ez=_^r~OtdL#Bn-Q31acfl;y!^-l1 zmfKXg=}G`qHU)CS8Evhs@e(^c4gPU6>#r2cN&29Au!)zaaY@vIg9S~E^F1ElH;yp4 zqqH}7)xirV9~?R0Y*6scV9H~ox-HVyS&XI(3{77h75Cjv0eP3f)78&qol`;+0Fbp; AQ2+n{ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..36ed24eec3912b370d40be4e04cb7df9fbec6062 GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq z-+H<@hD02Gd(D=w$v~pv;q;TPhYNjJ!aq8#>zZ8tk?FyUC35b28<;Y+ciCk9{DPmn4h;XqelUt;CMrI-`Qbm% O;|!jzelF{r5}E+l+K}o1 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..aa89d497791b8ef679c287e876eacb3f194e2601 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zCwsa$hD02Gd+i`sgMvUyV(p7_Hz&V7sGw9{?)FK*_rk{ii?7_+vvg~?n8Jeit5s1A z42(=-Osa2%|8G?m{li<4G~>ISpu0q6J#WFGGw$6zf_`@QTn!&So0$7b*ip`!-AwS= z#bz_L1{=Fj8%~Y$J-X#gXNrq2x*n)3`|yfo;&b)gMfYa;+VfwzIjiA1LvAqRe^kSK|#PJ@b8OxoAtLZP|zwbR}*P+yKubPA;!Qz^UWzHmOJ5=-xL-s zsk9bvOK7m2Z^6WV&c=1Y0aJegi4SKEvoLM>tRTo-Ca0uy;5>5+|B;^)J}~IW3z#)L zk3Gb+V~_I|M!S5W8w)~TH&y#?Vqj!qdGYzT=YoA}IbX27n921+d;=3-zoX*O?rTqh P&SLO%^>bP0l+XkKoD$A*TI`#s%j(>1w2l(7O z@Qn9`J(D~W%PK}yhX#g5n+?_Rzlwtu{xLCTZ~n=8_vUBYghSUJ6f8RXncKC2f#nmc Yj_;-yn*(R71Kr2q>FVdQ&MBb@0C7fNMgRZ+ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png index 212293db0de7451d2f75efccd5eeb78aa2f157b8..738e3490d01ea88aed5ad31814d74c96ec7e67b7 100644 GIT binary patch delta 395 zcmV;60d)S&7_S2%iBL{Q4GJ0x0000DNk~Le0000m0000m2m}BC0R0Ow43R!Be*$7l zM??VshmXv^00009a7bBm000XU000XU0RWnu7ytkPCrLy>R9M69)jdiBK^VsIP37hg z+DZyp_YQ)+*yug}moRoo*e!Ac!7_Fd1Q9(zlFcPt6lJ%_z7`^AK4xZj#v(dA{qtkK z-U$ePH-QH{@Rxv?lsP3O83~bFf1u3}`H_m0&=t_;ZmIq=V-vyz7_O}sgv139Z>$$8 z{aNUNQ~?MBdtj~vruIOo1d1&HG9@sv2NEUFvj-w7#Wg)}@z6G3)V`aS95P;8f6I=m zVHc7vZB#|yq`uC$juy&$}BWCC<}Z&WV`Z>y_V1+E*{3&NEi p$gO~9Js_6xfIZ;HwFmwm@BwMjC`E+l9CH8w002ovPDHLkV1m`Yn(_bu delta 3134 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 FV1lSLxc~qF literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4c95bd5770afb117fc5363e259ee6232d445b2af GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zKYO}3hD02Gd;K8iAqRohhpevy4EJ`huNIucmE*YPK-ivJjw0OxN4gg&sqEfty}MF> zd+NLY?2{E${O;^{tQF8WC-Ow(yrKywEgY21D{G&x5ZqJKlJG2)iFsRGoZwiq2=cf$URo!}Gi#t-jyA5l9qoiS>k zzr*`Q5&ztE0u`o)m&dd5oO{mbV8`C@$&BHduEN~?H-4HpoLJ7_Wyd$+lVQWO>x@Zp z%xnJ0{NAMeytZN9cgCuF>@R-CJg_pE&(82uhT+t0h8f!#EatOu{QNaNlJVFc#>L;y VrKz=k004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00A{gL_t(o!|m6xO2a@L$MJMBeF$BpgVel(;4Uuu9^aR+ zZf!}1zJcIaHz|UMK0w>_B@Bv^49(vmWUwTc%UvAQYG+-2fgw(auKY zOzP@QfZ{BstVl^&GOpfxvqSFW!f}8laKI(k+_5HM%a(*Sb4FaSZwmyB8a~%CR~(yM zI6cmJX&mJ;&z#X~0}Oc5E-&-Qp)PRBd+T~Zc;iF|81QLSF9;vSQ>cMk<9b23X$BH2 n;I$bL%Q(OuaKBIv_#eO*Ga{GO<~AbY00000NkvXXu0mjf7?`UN literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..738e3490d01ea88aed5ad31814d74c96ec7e67b7 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=14Fw zFsggHIEF+VetXr{i`h})*hk-|&jfCHaYcUTYubC`h3&uT24$W%bc>h|8kGsL2--SK zI;$EZlDhrGJ~5>XyR@|OV@g&we?KShyT{2|!j476?s*;=&qZgbN_&Kp_ z$_3F2&+=COGfoyh#3He7t$523R)PFA;#z+rUo?g=axhmXtYcaB&0!@=mo9^ms=-Ef zA=L|;*_E`8n%Wk8ykHi8W#8=SGDdOH^{4w*CyGzf%MEe8zhvLJ9eol8OBWwciR!Y~I~7*{H`?qtZJq8-1#dC^;0agP_3hhd{lMYx0r_V)OB5OQ3P=LIz~JfX K=d#Wzp$P!pe{$FW literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..fad94a7fc2a1d0439af37920e916886006a36ce2 GIT binary patch literal 440 zcmV;p0Z0CcP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00A&bL_t(o!|m5UOG053$MLUA85QpK1{_iZuh8tK5aC{P zIEX|@t8KM}IEXJmcL}1U7m!H}g-fe63nAg1bWyyIKG#3Di!NFF2Q9h)0000IqP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00GTOL_t(o!|j*LYQjJihTW*d%fhbRc-dBQAtHj}b13=} z{pm&9YJ3GZN?${iQjMambYBD?Kz#-ym@YbwBaKOC>?}%UR>}PT`6d%)&N&V^5FyG1A3!HIr!Bxulxs17 z>&JkN*cOFt0a2n{@&PnrE7}6eM5*xsRATGe0-lMo#s`Sg1C+9~WvK3w_o|o>;|#u| zCO_sxHR8XEa&&EjBM3h|j$33zuIn~M%#b$OoH?Cuisb_ZQzotSP(lQ5xDiE}{#pYD zbOc3HX5au}K6Xb^6-)XGS{A{#Xd+0TRMD~}i?M0=5&5 zYF_()^6uV4L5tUzB^T_c=8}!hQsnlRfG2){+f01RR>C^_V0Va$o}Q#H-4F~4SZs{can004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00KBkL_t(o!|j+$D}+%P$H#S)I|-kGSh%HJA`7u08^wYT zAVvSiWkDjbU}0s0#bh!cLe#{9vXLlkn1HVMd=?1PbK4p7Yks>}hpSwNRLzyu2zHwW;tfR*n7 zns7;}_2J)Hn8E`Kc)%nw!@7FPx~6O!fD^}|^nLV^c?aR%HF1G^10l!fMP+%C=n+pS5;9i*4f2LX2(D( z0*rbUIl4xR$BdNXQcjv7Njr@=`(bw_Bo!zDMS}7yl3^DsJ(W`lND`DU(FQz6b{>fH zvrq{r7L);dKmz8ZHyBU?h9&K+c%c!esgEfACaK!f&p@lab?pWdrIf|ya!Vl%!1)K*1QH%YX$!|dXGjb?6%e8$H08ovi6h7O!p zdPhYSEf@jJtIISOcR#kj(N9yCMf@0%rB&6Z@8m=rhJ?H5K?WV9=UVeKIvg|6i@or5 zEx~RUHIk+K%hfy`V~X3-Ek>vxK6N!%CS1e!F25^^gEY$5_t9v7fOMJzRIz{xbAUV+ mkZtlac1yDN{r{ElTL2%8ev{aB*JYFd0000004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00HeuL_t(o!|j(nNE}fVg~y=#BS!;AKKRY3HBB%_q5P@zbcgfyUyJ(PBKcp?c%vTMjI6x+n*0NFe8 z3dM*VV8aS1$N{dbfXk=>7gB(ioLT{^5`Y$_t>Owr#uX4}jI&Vr4eHzgy&U>tH+*C> zAm8Njqdj9m6Is)RoM-C{2Tv192Fck8UZ~4Mw2|%1us7=d2%)J*iQw*fzXYEHjpvS#<#mKNs znO`jbO~(`~8gibe^3AS>HyrthYbI!ruZ|6jbL~TZ&~N0eP&e&h&KT~0?3*S}i6VK@ z66Lp>eZ#(A4O7en>+gNMT}L*guqYJMGUfLXInBQ2>5?j5DZW_&Il1asv;x+n2CT^e z@>am493X84ypr6}X70#O$u5D3K+B#oH#C_&xr-d@tTAa`PIc4&UjV-W;-1$BdZ?r! P00000NkvXXu0mjfkQ59c literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7f15a4b4950f1f97c75550292fc6b0376c0f4d GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq z?LA!_Ln02pz3j-vpuoX$pr+*g`Dzv?0mU|NMzJ^VB_F!@Z;rfVN76@P>@u(65z}! z8?rLUrHjvZL(+c!`>)I6)90Q$`q#7U<8*G3%J44@rU8r2aPoZY<=TgJ#7nMyjmN6v%*~VlqQO+(Wb^PD_ z>+{d;Vp@Kqqk-3N7bExc(jSaT_gFP--&?a7$Xtq$F?BFl^3mc{V}i%y!Yd4o6Sf@< z^9p^Cgm4Qn^o9_UT}RR&~VO#1xKeGhxiH}*dndI@R98PdQ| OXYh3Ob6Mw<&;$Ur{;iJy literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png index da24654ebd28c91cc64eee94a735dd9f5b593125..d9b5cc00751e834a370bad859b63e86c4cedd779 100644 GIT binary patch literal 1212 zcmV;t1Vj6YP) zNkl+pZ3=quSUlL;g_#XG zIi5l?bFhtvl8XnyqB%(o6!f6D8Mk;aBF6Mmqu@bBDU=l3Oy}nz69{d0-puUGyh-qUx%&^AH zXFSjQO16v#ky?=BIFD>>Y@7#hI_E44gM)+bI*#+7Y$-cQC1`qj`d|+>(;Sc~NRRt5S_F#LIe!3nZEkLE<(|KH0Ca5I{s_Pq0O}d?9f>kr zk|ij11TphFg8H{LO`CLGccoha*L7DkO`8O8J4?U>8RQ6x-mOLi^%rJmXMYrR5|vrV z5|D^SEXz7vIYH5jXY50qh(1Yip^3}hUzJYE(G!1*jV7r7bBeywl+BW*5aLGAv$8@} zDN9#D(SDAI=Th{Qrfilhg%Ed(9S~J!<~LJZWa6?}vJ^$4SB)4>Pfbm|ASx7<>1BIF z+J;)3pqmNm?+wFn$+qpI-3r*YeKZWiB>;PS$oa1%KiyZ-MD#l|KboM8I)JOKR_h{w zOJNxP1OS?*JrCdwW_}yMo*r}lSvf(>yb9o0!glsB^H~6AiD22U&vRZn0%q zq3$IN!|!DE9XHKi!Pe=6bcpC_S$%iiO7MOEhG7^JMD(Pra633*7zTXb|EBDYW2bo{ z`cR&e`?5HeWxZE+zpu{o*)WW2MD&(yIop&i zNw}Tq`~LOO(a}QyUX(3on=&OOdesPm;2eOfvc>GAtY=c94e?H=6Eqr)&%-c$9Tj;V z0p*OO#3u&rcKcSN(fBkB!*OKWfG>oiC8au2X}80_lxxvhi z=Xvkv*=FWLIp6oM*X#9*wOVZrz##xnAjdD(vQWfGD&rHpy8!+H@E3p;Y`p{z185Z` zD$kK5?LXdXwH#(HY?{tXlC*R0<>lqC$HvA8z<3eu=XJYD{V-rRNRlcDsJTe4!?cIK_%w6j~U2Zy_kw7UR(CkRLnx({@rMvwp{NPrR~KnW6{1PM@r1SmlQlpuvdp-?Cu aTK)$=^@Ia4anRBL0000QPebce0RQg z{{N+?RFh}>?sxC`z4Q5^2!bF8f*=TjAP9mW$eAjxFWBvN8}!pAYl$7p?^;W;C$d=n zUQDOcB>?2_^!H>Pvc>_YNXX`7cLZYr0O>ovz0vWe#NIF_5HkSS-SKt$8IbiX-aC83 zNPBpySm=Bn?Vrf%j@rNwZUNxA^ZWF3RX{s99NiFzL>qvr!Os6I@xBP1l3g^L&7Z5) z>UZe?NayzoZp(>A2uFs(PS2C}a6R$0G#(%i+>f5MsX<;)Aum`24M0-OA=#T0hjUds zA^Rce^p#3j{iGI(SeB+O)sU1BgbyV4pMaf^=lO? zhY1>~vEfR2tva8Zu5lmYLpV*knW{>qV>mR8Ew!&7Toxn~Yx_oQEFGIxx8gCzAINmS zz0f=$&FIfGQ6?3vt*qrTGyrMh^&t~vwqkW#yjDK|X-JyJ)IDowI}{H{+mME5opc@w zfR@29we49p0i2Z$KtqbGEJdA7wL$@KoZ;B3G%27Q(}_x|OqDQImRTp>Iy^B(cE3GE z%wdQAou>;vxM(O{Yfks@=o^5VgKO|y&pYby#YU>xE+8{G_R#}sj;>ReFjLx4W9k{8 zb_Ig3>xr@gc*2-17C@}Doy$-FXbnMeC;+ss%UlEjKwhvU3IWVQ@c`CbTl}Yi6Nd!g zP8ooS&o`GDfaKF!9>z&<07PRY0KBhT4qBG7TCE;rgexU$@w=1V}EzYIJ{Gvwj2s;G?_aSJl8%0@>ci|}a2O2z@ zcvML!I)NuR2CxO;t%A(RD+tEE5#xrCP52#f?pHP;ZbG3XP`L{yOI|#PF zl; zmz4lOv9kW{0|309&;Q;3+9m`5@Bjh?K@bE%5ClOG1VNA^{SjaQ%;%M0wGhv900000 LNkvXXu0mjf;9J%w diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3179d765cc7614e68ad7e118639c669a34f36236 GIT binary patch literal 484 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`z*e>EalYaqsO-N4_Ql0oH)BuNkiAjE@IJa#Wd=bLKGP~9JF5lIsRcecul|FLFQ+cq&RQ*@qW7k5V1D>~2B{&}~ndj{H%k`sO zkj#@M^RHB@%$R)H>XIjm`ugchCu;cR757f|@T=QiUKDNf!K_;0tmC8O`IDH~Pdg`0 z;$r8`Py~|xJ+HqnJd~*PMy!*gI7Vl0cJYk~@=CEgzx)kfaHww6A-h+Hw$;7}d3U0) zfuVJF%VovP!XKQhEV*A@yd^Vh%lQDG3EyU2OuUq5T$LiD;7}3P z=JC7GA!tpCx7k_Kmxmhn{F*v1egDF!ua_=ozuA-=dHoP;+??C>vhcw1D70l<;y=g# UyXpHiz`$qlboFyt=akR{03ZjyWdHyG literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcacc54543d2adfaca97bccaf67f462fbe62bfa GIT binary patch literal 687 zcmV;g0#N;lP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00JjTL_t(&-tE~>OH^SL$MMJO42_o2V!)Q6y@M7(%WyNU zRI&nFwUNk0n=iC5!Ceu7Nr(_GM6$q58bidK^&r^R(}su|~A z=ehSDi<(yjzC( z;|Rjo-a+kLW|}-(RzaH_4-ZPw$4je>^4tjv%JC*Lj3E5tU~o{g*BM6fvlELso0Z6!20=22&2tv0H8c+lJObf!Z0&vR(vkA}v<@Yp z!JQ_5TmfgzZ$JEGSV$by^Y=qB%W|Te+y6hMvk}fbYUM$BlfRP;V+nm7ulhLVbj(Y) z=I@=|238(t>zqmlzjp>{2|Cg{Mn6+5@|A+^iq1OojL=ES{ZVuv2XY_>a-jVO`U7&c VWm~tbDA@o2002ovPDHLkV1mViCA|Ou literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdbbea1384bea28573f646704c0387608d5fab8 GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`&^O>EalYaqsOd$E-sRBF8@d7wHtMVt&agb?e8vU$Q!F2`o8Jpgrk2d_Lv*<6xN;+73V0?(RehI^S;WwdCH3?NnZc? zV4sa-SJ$%?M}ODiO$*9ycKupb5wL5;`fvB7zd#T!TFAUFWJ3DLEe{yOrz30As{-bleU)Wu5<+8o- SaODApC4;A{pUXO@geCy#2drrT literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b1348527b6bc0272da0d6d855ec83ea4102f8184 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)q<>EalYaqsO-d+);z630L0FTHa1#hPvfJ}#@39i>HqHJnykCUa~pds!_oN5;iP z;Nm`(-5rx(EO@Js8?L@`^@8SWOZ9>l?L82i++1HbUG>i7=buhK-N`a3V%~(@iK5RW znBMJNbRcra!=!}{i)9RdFMU5rq|Y*cX>au;bjB}}<&E2O&URj|oSkrYU0aweyWiGtm-=S5 z86V|s@3rLH%`3y4xlP9S_}i=%FZ5L z2*}4EUW7OK%x{(6XMgPMx_N((=Cx%_^mRYW7t+B~lEi*%u@vX?X|>h?&8k|01=DW- zzs0_Glhx%X8ne6JMSJaZnIpxyKc3u1naNj1?60^;r0v7C+Py?iNVv=&t;uc GLK6V2^46>X literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4886ab1e9d6d1c6e2dc4f1d988164ea3c3c2d06d GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6g=zc;uw-~@9hn1KE_0mwuj}bIHLnDaQC)^<#UTI5b7<}2+67rc_cPCoawag&9pN2)`m#Zu461z%)M z1ywvIEPwpnF;n&}h^YWlFNDOnaKGu@5k?F1SqmN5*%%!-4+kt@UCpq-@^!$187*p^(8X7Mv$rM@lsZ)2h&23G#Rhl3Zzr3_zTw9)M7{`CL Q6X-DpPgg&ebxsLQ07*}D?f?J) literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c836c549024b5c6f285b6950a9d5b63409918e44 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`$tj>EalYaqsPoz*UDFcvvs2J0O~&{i9-s{m%c9v$$9Oda&^J3j4Y#ueO{tDUULE zVlOje<`W~)Ri&Y#3m8~692mI*8koNDE;zf(A$rS%uMOKWE-v(*IPH;&XR76HId#XV zNt+Ekj%u<86?rw5?Ra64>cHm5Iid3~yQF1KK zW;pxkM{`=yF-P_}fwOO!7F#ASkpHvz@KJ}N2TL6H@7O;p%TsTT$cqm5^&dkWiykd; zSnl{)GpKnszj|#-l7eN?F}<(WD<2jgo4>d1$(fl_J;6)%nx|I<@q2EU%j~z$?@KFP z;vv$PH@#MAqQ$MJzxI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6ujx_;uw-~@9mA-T+IdoEf0TO*qit3Nmb&)j~?o pd?x=N&j&hZ5g#MSX$!a;#jYGkGF(%6b`sE&44$rjF6*2UngI3mg3tf} literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..77d80081f558af8d8114ae1b6de13fbd8017dd4e GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6g=(e;uw-~@9outT!$QZS{}Z2uHI%>DHddTU!Cx2f%Wp1DXg|dTppGejMaTlHN+K9QjykWGSMrF6ndaYD$u67GXYWnHa?Kq_9av_DQjmis+QbEFMxC=O=n{t!Pu8 z^lO1tpUbPpEK8=7wd=Y!&7c40TLS|l6AK5(32e-=Vh#=e__oLx3Iq9f6dgcvUtAYx Ym+&VUzL)oz3G^0&r>mdKI;Vst0C~!D%>V!Z literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6fbc404597933da3252d3bde9aacaf73c21f36b5 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6ujf<;uw-~@9j-Pu4V@T)(dOD@Kqhzkn#EV96f=l9rIKK1iDpbD_!N1y8dQeb4}gX z-Ny~C_B2frbro=A5p)r7{NE&$5%aMja$<2sKwFupszj#M+}XnF3@6vAr}vdliq)U( z5a(I8H=m_a<>uF&l27Id@_H>fy&&A>g1K!`q(U=ar_KaNMcxo^X5LE&Osk$bKGjpO<@dVi{(OtKyML=pY>MBv*S1p^IrJ(X(h9%u mt>j0bN{2!dhtdm<1^h<@CUqOxiLn9w$>8bg=d#Wzp$P!+=6MAG literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png index 130c670c96508dd7066f1b4023c58a760e296d05..de2a86e89e08265693b2ad609aef055d7e3d59b9 100644 GIT binary patch literal 576 zcmV-G0>Ax004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00Fp3L_t(&-tE`TO2R=D#$hq)3TjtbZX)`k?xU6&nimkQ zqJD{8KyB(WL^Nuhx(>r-P}?x6MFdgSLQzgDDf-a=s52%V-Wzz}%$a$|hwpF2ryvC> zNI?oxkXulYJ#ySrrOF*S;!N}oG|4e_%;9{(qKOXHo9VySCgqyc4z^f;N5m5-H3!ll)=hY9tuz-8U#ej0`0zR48%AZaXbef36BrP(OhD%(Bh_ z#}p`1rbdl2MGB0WSiX5AGdXuIEywx3mkE4RL=yV$RYFH1`V*rg)!xG z@~nCrq8H8z*BxORxnj9<&DpaO2a`eo O00005=tV2$TCVw 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 G5}E)ETA1em literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..aac70d9bb179341a3b25e9190d7f037c9a31b463 GIT binary patch literal 796 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 O0000I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)4i>EalYaqsPoje^Yv0xlQ*H(Drtbzr^FR4BNNGlqFx!yP`)CwBy$)X(aqe zfp?y()@ArURbaO~;mB7sp;_jOF~3xpYQO{E;~p0n8PCK-OmWy?cwzI)1_rULd0q+} zJzHu@92m5DCkt^TY|>)Z76?mCU^miYj-KEs8PPoHv;w=vN}f**LZ=kuUnEFAVU^Wr zzO&$kkp^RzRlUrvawXZ>=|FMA61g>#nDe-eICjXM(0CB0 lu(SR1na6NX{FD8{y7&8f!!D-X0lI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`&U5>EalYaqsQT^I3-+1lT^rn6$p)7ODDhURy*^-u0roK<2~U-n^b5xFJs z!7^%z`rC!#ndzHn&pPwugW>kZR{5KE->?fSt_pW$5p)r7G-W*+@jz1EVp_=e=Z)(= zhDj||@cd`>w7AJLs5p>QeS(VV z=O$)Lk7)`MQ@E{!fW}P~cLW>D64}fbk<`N{m9eOsGi=)e5%c;m{t1zda)p}5`ozq{ z7F;>_Q!(|{g60j8%T2Ga>F%v8T+1z0?HC*zaGd+q%O004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00QYrL_t(&-tF1TN*hra2k?q_pRo8PjtP-((^T zXD9Rh{gHE{Xs;}Uf=QAZ7BtRRO0KS1Ny#Um`&_J|#f zbrUp#Z%Bt+V6XjKR-X$;JDp?;YIR2Bkr8lWkmevbomDFo{5N?D=4$^ohi zfl&=mOsK!-05yfckOn9u)Hi$K7m5q@4;-LcuZiA$gMQnB)O9@+NSy<#g21Rge`xiHu zb3JWEFi(cE1q(;Y%Z0?r)g+rpyWL?OQ^+EQ5aP&U8XIKY`S*MFd2zPSxR6xZ1=8GK zKTJo*{jVL7qtLl3NoFf3lG)R#HL-{=`pDnT)JSrV4dGCNbMSYfTQ-u(4KiS06kBLK zL1|!{tjZVqB()*ej|nVe4^`Zwi3e1%k0nexw$Ru5B(J_Vr*Up0oyw8C`vmSrO8E&g zkj9xh$=izp4U*S)7p8-B(wXG_b&82o2Px_AZIBYFJC{x=c~ZCT!JMRuJE?nDb19tk z7KoB6es@{BCI65reh+F&s`x$a?WAOIO&)*(Pyh-*&l&U^yB9sBEQP$t00000NkvXX Hu0mjf=NNQ( literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..f61ac41df4a12223e882b2b47c7efea005fc0e19 GIT binary patch literal 433 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ccedde1410e1a37386d310424b5a8fb321da355c GIT binary patch literal 226 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 JPDHLkV1i0f5Jdn0 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e3121dbff3cfa643282098b9525297313970e214 GIT binary patch literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`*#&)5S5Q;?~<+fkB51L|Px_ITRW$a6Y~5-Ms@BuSb;{TI^`}ae!HY_ler`B?iUI z^6h5)pDj4+$nA*Y`~J!e3``sf$i!9#V?JhSF}d3w+PXcpHO=RP&F-hRM%`eLgW zXY7;hcE)zh6;6fwzDIL-Gd%fypV@**#s0Z(k7C28&)=M$ww$Xo{JC@XP9rCs`oLoI zS^f>rrspjG%<QkCISyyt<8zh@Ecp3j_RegU0=vgqAB7m_o!=?l zE6DLv#zC6#O-?0$!?#281sVg4=R2*K?XPg z_qi3A?C1NenCP#1<)pfh*Js<~qFjv=_ZQ@S?&2{0tl6^bCyUeD8Vg1B`p_CzZWW)2 z{Hi{a`Bi+T@+`1=NYEIDRMq>Us$Ur_TC-LxSDxh{(RWdlg|^*lmZh6 NgQu&X%Q~loCIC6n3v>Vg literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5434a3c00656fee263470e7ed35096cbba2391 GIT binary patch literal 875 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s zRPor;#WAGf*4x|Xy+smbj(k4U zm-msc%v(OROx<&}Sh7F!8hgQ{l!I6AR-XL$fw54oQfvNM=S7K3RzD(xY8`(#Mq4zj zy`#Ic#>_c{m3Kwrs+_N^iA}E*7)xt(vTGe@q~!-RNCl;?*XPLJTf-fgI(fO5i<%4?_S|ZgZk-NGq z&v)-&oX)#ipTqoa!;(gZhdyE#5>jdt`|k2BxEs)5@PL7>msLl|Rdb#+x4^G}uJdfn z`vd|R=b8SPsN9vhn9+6_^D&Y8y=+U)?CWgJ?@D)Lo+iS1nenX~^QErZW%rMCnX@sw ziFS3T>8Er>J>E7YJG00vZ9DH;d*>sJCKAPKCe8l0wRx?avbl-j_lu9%A2T%XY~S5( zYIo=C?v>@|)53U|=0xWoxR`nE>E?SKD=&BCC(h~WZLeAT=hD7^-~J?DbB^kXG~ZXD zWhP$|-ZahocFebHx=%uzC77fBx<#oxw6W-}yt#N<-Xy6rdg(9JpZzVJU3F{6(O|oY yX_`CEDrE-sTyhS67jW_);~^%U11M%OfrFafWgz%&t;ucLK6V^4t@6k literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb62d42cc29809e63fba66881578e1b52427587 GIT binary patch literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)q(>EaktaqI0JLq8@*kz*h8C#(>ebFhNRIk$&%>b%1*wy7K|ju2p7ne$dhXGy?g z!JetJB>EZMVzY0=9{Bp!N9~WiXp7Ii{>nWMby><6?N|(SmKM{NE7w;a^U~h;*Z9@W zezPlA9c8Qo&imG{m^;IJg|z>#%7!qVqrog5N$;KB-e8n2WZV>+QTl4%V-+@_D}io$ z*19q7%H?Z&Ok&bj_={Vd_;Z$fCEKfvl-*1wD$FtiJRuGFBD=1n~ala@J!jSUiJoA-rJi0 zO!xVf@qNqUKFQpEd%%5y_^-Qs1@bHf>Fh76wPu|(lD)w=uSfZ=Uz;N4_Y7 bH{TD|SNA3}d^^u`5@fljtDnm{r-UW|KV`;Q literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..42240540ca7bab75fb1f3a56841589fa79f9abf9 GIT binary patch literal 694 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s zRH5hT;uunK>+LN^j}S+h;~(D_PjxXD?Q-E*=v~3l^diJ@L&=6_NjaAnQzqP2<#D=^ z+^$z9xY1;qOTJVIr_GH-QLC3ry`>@*JY<=6UpYE0CcZr(ar?b}wZ{47>OaoLecNkp z{rUfyKlkTbt}%D?y(Q`9QP?;6fZgpU5lQRCgey%Mz8IY}@J%h})|vd!`_5$3qjLWY zqI>=%-(lH)Bk4rx0o!SoazD0Ap1vfOjmNMz+%k1$>VZ%P{?CdJ|IaLJ49;VcyBHd} zU)ZK(BUkC?nbWj>KeIf$z3S}&)_ET%+SHwR{yP5Q{`7{jNp~JN-<+KMroC@^db{Ph z+ixADjeDf@&YDgC5xB-q`io@mqsdS0?9Y}h=)HdIq4P2cyBhW6S&x=PF1^b0p+#Hl zuC zUBPuB+cH&NnrD*ANnbO|>{^@t2)EfkMJHXZyTkr_!pFT;vddrJVG(d(U<48kZrjq- z&;9mN1aZJ3L=jo{oBkP>do;S7l-<9u@Y&+`2j&HH@0FI_@JvKOT-MNBPUg3x9KOb1rBX_}n+riE!pQpS&Xv!fpUHk8!38Ha@F6^?Yu3P0= xKMU*cIIPs_b$1WvzxT@)w=ghqC^Urr<~_kvY1P_h;}1+u44$rjF6*2UngCic7x(}G literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e218123bb5fd9b9c893c4ecc10fb1bbbb2f917 GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)4m>EaktaqI0ZUA{vO0!KfFGw)?%YkVo_Q4q64!9mdEDI3SWL!JgL$_fH3hizA# z6195cw^`-?MeTd~Gq*=>yczZ1RuX777&u5Zc+H-szJ1jt<}Lm5Qw6vay5%PduqX7( z_g;{@P;%D~tZITt!*vY?hPzWNnW6d!P!2{7QMSi_Y%R(^5bf-Kz*{;0fM>D$fjIAc zhlTB>{=9#+zII(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`%IK)5S5Q;?~<62YnAa2(&(YZe3)xfY-r`(UVcLRhZpJ{tM$no)QPu00wsDNVRR{ z+XrtMlYC9jjqbbeh|s zY45Q@(BM43z$@mMXZb=|%sS7_nLW;}=TSq}diD#CeJ90pJIsk^S5V&1<`A~e zUcvaj^n|(ZxdTpoXIb&&H{+B~dl|BR+A$oh;cv*=XS?9ISmihR0zWjGN5A_*OkMHZe z%+dDqWBJ00rp&risd+O$bROUd{Q@;hK8GkCiCxvXI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`&^G>EaktaqI1^vs{M^1Y93}Sr{ule~+Gs%b(L{?np~nHmVr0%Q6LPe2JuhSP=Eu6C6;>=Z!qcvwU zP5d>UukO2S*`yHv-A+K=Er_}~72EgYwwvE|rS^Zmrl-h?yX&!74Fd#lcY sePB-zopr09CG?$^ZZW literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..995a3879e7e84bd1d0814ab938152099125ed1a3 GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)4w>EaktaqI2%vs_GuJgyJVIqxp3`Bb=2;ZgkLJJC^=jqlEH_dHpam3^KKXapD- z=qK#o@5)$hz5SY=Uz2db>HN4R{tqX%3&k`%uTeh8Tyb{0piIN}pK48VA1v=X1u*Y> zF3k~j;C+pyBj=0L;=&~j|7tWHSv#I`b4oeb#JdGB6#Z0klAUmVy1=T2sC^9q%vV02 zZsBs69Ix_(an~OqMeYmF#5pV*?CgC{FxdR`bdq^++Fx)HLw;S80P~N}hg&!jeCj4# z;Fp*#uk?a%mhvvUwB09Qjzyx^n1DG60uLl&A)Z;r^g);zq2fb+gZ6`u&5qieBojfR Mp00i_>zopr0PviFZvX%Q literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..0107ea21cde7798567eb47cd6a9c7ef1f4705b83 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)q<>EaktaqI1ETQ6ouiDMuCub5$C*?i+hL`J^g)=N=)8r7yXE%D0};K*3idgE3k z$E_cwOoFQwI*u2(#&T=VoqAX0a0=V}n|hr3@AZv8r-+#?bG(zx#K}6m+g9CRncs18>6&l)HzYRIHl*@wf6P*HLuTVD_a@#M&nsH; z?^_?dcf^$aZT(y_q>$`a)eZi7wFGiLQ>((tT zKu2mWkp#JPic^#m6UPFPOFSG34Gdn2x{6T8a|nD8E7|X9_dqq{K(XBetBeDob_?94 za(-*N|7>9Y?R>C@S+0A@1-){|ZS{xaHcHf{_8vYU7Iez)bs1Z#y*2OqImO4+MYZZ} z?!Pm(m~W9fTi9;XJ+oi-8yT2DHbIC#(FepUx^j+{O0`=6I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s zRFUrK;uunK>+Q|+S;B!L$3G_I%9(I&Ns$wf%wfmL+WAP5B@0zVg~QNl7GU zv9f5*ggoXzFK#ovzneE+E>pa*!q{tl_k`9NCdS3-Mek2Mv~j4DxA^XNZYL|(&vi`< zED8*a91aXj0u3PMZU)t9A2SMFJWeR;+N_%LiE&2iq&oOaqD(f?G}8@839`x&FFRp;aS$BTIDpV<`iPT@S&t{KO#5SE}Gd=Z;G5O9CKkJV^chaV^ zo}0mV=CjE&0pk_lA|D^qV0?VV=Ld<)U+n~%5O*(xp0lW#+2*FLjHg@Z%7m;h$+mrM2c`m fjtBLue;6fJE#zR>_~a@u9Wr>j`njxgN@xNAUm`iW literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3dea0d014fb5dd3e9821310654919095fe0e85cf GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)q;>EaktaqI2vlX=Ys0u2v4t6nTze|uT=4aL)+zg-BfUb(7;;iH7ju}k@#%!j<5 z8Jo@1IQ-1>Ql2!>Krm?d(Gc_QiE*rhqP1Y=6J=kApZ4DbIX*L9b-l25&vMok>yF)- zVZa~2&vyG{v{XZyNq}>c{er32J6HccxmufHi#fB2(ho+f%EA|=1+PRIH%w1IK97yX z_JKmQ>-)vV*Ekk%-)~sJEORvd;H0ZuI~J2DEEo4Q>NI+qO97s-{gj#($LZLPUFB-HPvCKEe9n;*y)s45O@lyKgQ3cQ;FZhwqBN zr@p^6+muyQ6|yP%zn_iY2fq7OQ#II^dum2n?Yv-`81}<((#}UoyF?}}pVm81IIUg& vwdtCeO{s_azsp7bD_7x;Si=Z&)|rg`&o?b`{O01F1`_gg^>bP0l+XkK&oR!m literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..0580f3290fd5bf4101f491b72fc4c2ea0525c933 GIT binary patch literal 992 zcmV<610Vc}P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00US_L_t(|+U=W5NK{c6fWOhE(O_DXEey?aF|I-+ksw4G z7b(?R5L`s)sDoidE8Fy1T7siE14WAh6#|1OTQng(HU%n?Bt2$)R2yp(_{yA?a?iZ( z%)N8Zoj7NA&bjB_|2yY@9=MLnq&cgVrx`bX3WX<(zF{P(K7ZyFZrmeZ^{#B0hlBO6rmUB(Ic1@TuolU96K zj6qNy}69n&!u>qB>-+sFY^LrMbq1B zJ%Cd%%S_vbQ0Ay>6$PLG6o3Md(exKIHTdvSk-f*(o#;ggGs3Ky0L2V)-qMYY5u#Tp ze6m)dVxCznJ~;3(Ns&1KgVak=?*?w00Z?Q4?(Z}o)y4sQGF=QE#sR!iy`8O(z~)xTvB_Z-twSqCS?zTi58}PF!X`pr=Gk zP!m{w0&AQS#D^F`n)DRuc2J=nUM3u$;$l7kOvmm1P79iE3+4j^Q`%F={s3VEv$g)i^*{D!_B&03#9;Y8^Lu=>cZVzYf&hhIwy>7wTn7iuf004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00US_L_t(|+U=W9NEA^V$3Ls78El8LgP|>U(4$BqK}axN zlIko79wKxrDTL@`m;N351Fp7thz*8APwn|U+u^WN|Me!uSy8#zm9TNw&K0Z7>YP{BPqiW+%{ars>+-zWQoq^Uo@=PA#bW|49e z_iChuhr#B7uDs4OPl7RBxU8d-Q^X8+o@9#g;KJw*-Wb+)g#i+*=XJKzTr~LoGEIC7 z>I_^mO#dToT+cgw_`wzSvS`R27lPV>dOiqoKSMi97Nd6Yj5=LUmfd^~Vh8$!>926u za{92q5mt3QRrCenLS=LdJp;V9HFBEsLQgjl{{h;Bl5L)Z?Xg#dovNqRe*jHrCrplR z{(^2u=sDm&fVgI3jz*6P?LGbjGzwYQS(Tq*LDz2bAD~v(nsq#Ww!qVT0f_2a&IQV{ zuC>+wTBuU8ipsk4H1)HJ0#E=7KmquqiCc)H5tEMpW|sS1=w(QeWX4TJR?Q&Cd|lWa zBlHWxr)U?d=CRMyhX`>VvDqDfLD~ax@BLhJ1E9tC)&FC0n&koF0fv|ez48EBpixqj z2Z#j<&>)`&Dh=D}bpZX_s#GbV02F`%Pyh-*0Vsfy1ZW}2Te4(HbHlo>FS_Ek)Wo?W ziaDc(wyklUzR!yt$fu!gYuqrnkePHKuk{K zszfGjnSxj6!Vi!tcy%)T07*kG)#u~T1I!ed004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00H+&L_t(|+U?t|PQ*YIhT(55k}E)CP-sFzg1}dgjebUb9PtwsCb#EgFIKTl8aDW3G z;DEmXIKmj4c*GT^c&iW4VDhy;#{pjI0<7jo5-b3I=0_3ufVTVy0vphkFD7sSefdHH z6A;Q55qN+-+=z|~5UihpAi?$;SQ7T}Uf&d2-DX|Kl?SZjDS>d04I6+4$JoVPG~pF% z766OXhXlecw)uc%W<22#*KEM|#5lqPGxiw$ohK)p;F5hKYfqCAdh^Qwx-X6}A&_4J z(7!zU3Bml~0pS7JO%UV{4UpYs+XPl_8&Eu77eL6@1W@wz0Hk~^04-k!K+M+wQ1kNvR%;cv54CSW)Oy$P|jOE7y%;m=c4CcoGOyrEk)IAQlJ7slIluu9aDW3G;DG-P Z_ymJI>_HjUNHhQd002ovPDHLkV1jrk0aE|~ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..5f3ac280490b5f45f5f92ef24d8e7c83a2b6ace5 GIT binary patch literal 925 zcmV;O17iG%P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00R|CL_t(|+U?m*NK{c2!14cNlcQ<5NF${D2(6c)2o-4% zG=&Qb0vBN|f-odkEkYRD)g}!oXi*d{BKo355tNdkNT?u1HkrA|(H2D+1X?P7K(;9Q zuzC8v@3YRC)i`s;`|hTok*i`iLl7m&<76T|;bxNGiOa2Ige;Ntmn zA)WF|8O^89(mpeTM$8X05V5#T28sA#39X>ga_&J=)C2bFY+FWRIpxj)X6HPNM%WfV ztbPWHyvcSCkn2shn-{U2NRtzp?HIL{J)#~kWGj16J>a>m?5KJ`o2~3t^?(OVSk4`z zNj+eUo0fBLFz$ykTF;E7ylLvKl+jt8$3nf4evdT3c}su>GZpODfo9g`_Z^7yw-DVF zn*5v|N|^G?k#dp>KAOt-K!us%yWdL0C}Y^f@XL7PuiGjRrPScI)I%w~{^^B&Zwt0B zSdpeVLy494!<%k&k_Z}&I@NugD`=cFxAwiMLUSX9@*lU?(|{2MiPB1w@oj59fc}}- z{6PPS^MC*ZAOHdU7XWX5Ctk(|3dkpiELO9M6cR~biqCxFJ#UHenm+oO_8VXgVRo>M zLV|H#O(dOkHvW7*!%Mp9pq+QBcj5#}*-tr|MR-5W+^2)DDgebC<`5YU%-=9~xXLrT z0OJwl0LR(t@G^YL1#as%<4#qf1geN}-SOeW7OpWswcge03}7d{G_uyUVz7?OykM6* zfDo5xw|u!84~;f1{{17kT|g#}Ip*0Jp@uFpodjgk;liq)zs7Zv9kOU9 z)fqq?o0POa8t0qBVg0sBKxRMy0uX=z1Rwwb2tWV=Smf~yrZTS2M~LvB00000NkvXXu0mjfI474p literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e664e94ac1d1f253280475bd1e2d293060ec5d41 GIT binary patch literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s zRFUrK;uunK>+Q|+S;B!L$3G_I%9(I&Ns$wf%wfmL+WAP5B@0zVg~QNl7GU zv9f5*ggoXzFK#ovzneE+E>pa*!q{tl_k`9NCdS3-Mek2Mv~j4DxA^XNZYL|(&vi`< zED8*a91aXj0u3PMZU)t9A2SMFJWeR;+N_%LiE&2iq&oOaqD(f?G}8@839`x&FFRp;aS$BTIDpV<`iPT@S&t{KO#5SE}Gd=Z;G5O9CKkJV^chaV^ zo}0mV=CjE&0pk_lA|D^qV0?VV=Ld<)U+n~%5O*(xp0lW#+2*FLjHg@Z%7m;h$+mrM2c`m fjtBLue;6fJE#zR>_~a@u9Wr>j`njxgN@xNAUm`iW literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb4aaac5925df9d5e5406b8245439bf381dbf8e GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`z*h>EaktaqI1^)4hir1Y9qAZ`hF3t-$1wI72~!vx8A7;k?e?k4GMqg_hdCEM;@w zw0@QSZ01|p$qkHb5(&t}UIz1THB%Uk=kE0kpdb4>I4A+%5EZK35N$61& zFGqhize7gMZw98vxA+A_uFq?ju;Uxsn!eW@4WWgy%o~)}J!X)4Y$dcnbKPP_vE!vS z2M+C!n(%@1Z^5O%ElcVjbsCG`?XkP@>6)x+-=9}~LYEHD`C_rxV8*?mw!Bx;O_qEM z3}+-Wgs~K}G<>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s zRFUlI;uunK>+S8+*};w?$3Nza+aNY91QSVBZURLta-ghAznvShiIdk?*ZqfUlpR7+mX_<4rAkC}I2168-QHKQt>ppRl~=~mF-dDp zS#~q{H>Ea+A2d7AoFIE)N`m}_mI*;dCt80WYNtf(JVYhPiI;lVy)J`D zNS=EjENO=4`7^b5w(k&+S}^^+T;=MSOHV&5+jVGyyW-_H8><&+7VCVPYHivLG6wf^KqRJKX>U;M3U8}{>r$oa~%;t9IZHxC{Vn&)wZX-W0R zts7_6XgrXO=3%^dNt$cNNk`{~Y#BaQk&2t2ehU^Zc54h@*kGdn;QH}WKFjB2EDGn7 zw@GW%x82n_#^^B5XlaP_%458JyH9`rDIL}*004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00YWNL_t(|+U?rSPZL2H2jFs{cqQD83AGIeER-~0;VwwH zd1&B5G!5Jk{V895o{S_V5DN4Tfxp0L8VFG#1T~;nZH3^0j}#LULCBKzB8oG!YrDHM zyOT`j2JQR44?E1v&WsN}xtmV`6hHwKKmim$0TjSJKnPu!!~$~2;{+$jBZqlRq6VTSc8W0A)zwwCM76=s3j~%G?G7 z@zGN8XKft;HvvufZmWD9I`$EB3veArw#(O{;}F-}05qAD{{<<;5k@&mQHpYe5yu3w zCWNb^0YQV#qhT8LhTm$y3^ap|6c7oxfKSXaUZAo7`YYyl*WeciNHGfdfzEl4YoP)qDXX)VN=1D_Mw|7l!!)$k&x=+v#SBh?_hCA?ktG+fEmw zVg~pDx`ut21WI|67YqGtF3$cOFB{z8O^n&k(` z6RFA_0aOrC_xJ%$h*YJH0Q^MMW7z?k>|N+U_J86WKfpYfVYGvYx+rcUn{Wh>CZeXr zEhVxJlwX3c;+7IYYT?yj8_-C_4Dnn}ZxP96Yy;+qh#P$02a?p7ec4vBDr$!#$rli& z9{5XJ$rh-1S9rhFFHX z=y>PQ;=I5EjsW%z4mf5_&b%5iXKi%U9fB7C#)N)Z05%9-0r+s=fY2ukz#_p*03Yr#0X^~n zScD#Vx)6(STb_U7zYTxN@0Dj5Wf6MinaJpN7kA`YN(kH+QUC=|00mG01yBG5PykQ0 YUo^YJhdk*S0RR9107*qoM6N<$g33zQKmY&$ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..93657cbde6a6016c0e3d6e178865f04c82859ec3 GIT binary patch literal 529 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)q)>EaktaqI1Ed%wd5673J?YqPx76i{DL#L#ku^IW5gq=c5@xq|^3OVt-TJIXK` zen@waQJ#5-Wop!;M_1O#eyqFu>c~go-P`P!8j5F?Z2>tH3rHk`8sXg;)Q+t`(v^WIQcrB^7b_eh+EHYHS3>=eVD}8(&c5g2LgV3@_c5F zy~dbw@%=xWUsw0HPJ6nfsem%Y8kJm2%~3;yqlCG$lRp7BXk z`wLz7)K`Dku>93zGdX43>oZ%~s(cpx8XP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00fIkL_t(|+U=WNY*bYcfV*4T3M~d>XqQ^$r{PT!EC>Ng zi3lN-7#mE4R3#L|knjj!K-5MHfxwIU-~%B66GM3r5K=6C0&NK)P*MKUT7Ck`j|Tih z3K-g69)Jz$-o0neIhW zcnZ1BTz3JkE8V}35OWitROG&g$MbFiOcMi4cN1W-7~nlO0oIEFHo6J$wHRQRn*cwF z0ZzIJ@UIx4JG?*|p8E;0`yL+8xd%|G1u)G$fI2OJcQXkviBnu)JtG62navMc0LQ2f z&^Cf~T%?o9VE{bE`3FY(XrYGOlqY7;uI2ngY3J1xUAfe-kKPAQTx6gWp)5x z1(^Qb+IfklMjL>M^o8c6xlA?%h;i5f_dSjVo!dbG3!HG@!=ugwpoq)P09<9TKEOI> z-1qR}NSs zC?=nLN~mN7--U1}E|UTLY-OZ}O^otgnB{Cv=9y;FB?D-;Fmalf0+W+*bXaIVCIhJ8 zilKqM3{s}&g)|##zrr|a6iU!)wz(x5gOT~-A~vejyx~gRAfVF62<*d+5n?P=fZBDwk_&o ze5Cxl_Z#(eRDq(G)#?_c%+wKuspUohD-~J~hS!<ek|?a zf5HNYE4Ny{5kP@*4@3acB~;?}5>jvCN+W5%^<{wS@J10Xo0m!|fMLGVpm*89 zOk&Ix4%`RHHC`viEOv3%x3yAiThzaw5)nRRSn}5rwp+QsjiHZJA@%&C+wYL{&(0-R zV-s_T`!s3IHhY^-Q#hB`_%@ldcBxAwS^avPvo!ERz%$d8y`%n_ebDIZaMp5$cEu;# zkOyBEY5}~J?W4yNvwiscSr^CeZ;0Lh)6M$>@;dHFwqHSM%=Sw_4Q>J~5(B*BCP0-K zU{bbUMI7qtWzcKF9;dUnS!)C%`B#|}-RO=0B7g`W0*C;@l6%JMO`{x4!`%P?002ov JPDHLkV1jzQPhJ23 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e15c0568dbc362d328c1e012b24fb18e04f010d4 GIT binary patch literal 1134 zcmV-!1d;oRP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00ZVpL_t(|+U=T4NK|1Mh9@I}sO$ojO`2oUg%)jUQ>&s# zT9k{ZMKuy+v?wI&p)`VW(?vpT(wVBhxl+yYC zng1}S^Bp>T%Nd6E8P0kC@B98YK)~A-@Bw@PAHWCj0sg2IQoISUfTJ|ffrUi}4IE*< zcL1`vMigsAMX4pr3jo{sK1%#h^$?a0P^1(;R0kvjB&8Zn}8MHTLLUT;~B&*uh8TW3ijDvNvCfl~4UcmPpu*j?vg<5#7peaD{v%{bwly(aU=#<5TN zxU~~@#$J>CgEOg6zV?q<=8f3pG9D{E>wF?RfA?dTV+bn;qAvC)(_WqP2c5k(u`b3E zVF#zFriya%3CRe)>g@IQAJNveJRJ3TLt^1fYo-QwPR$_#Z zCl8>^2%uCRK(!G-r96NtuLG2O{SnGH0tm|k2pQREP#%CucDGL2K{nKACkn7iCP0AN zgydhA)69*mX*9=`|BO_*00A;+iX(rHjDbd7Q#B*yW&OV|10XI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6s+=eaSW-r_4c|W7lQ%^!@-)8_v_U)JQ@w=InV0eu<`mEPM{(LXb5kZoU5@f`@aZ6 z?18nzM8=Gya1OYTgRr&{gYO$IMz}~uk}DgW17sM;7cffx?s436rOFB{$HIwAl7 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..88e618bab2aa8cb89d98ae204913ae378d0ff751 GIT binary patch literal 887 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s zRPo-^#WAGf*4x|b^Fka&j(@yw78w}I$|s}C#KIzT<#N>~eul3p&21pMViUiEJi{vm zg%t~qHZq5XUR>hJaJRlV{oMOAbLP%8aDRKx`n#I^)}PN(s{I4Mf00_i2u3Lf#2WTi zG1kgFkTEZe(oX0QXK0hS%DJOQc@3k*G1EV*1V3=~>)E}%!oH)IKjP=_pFHIscA6ci zzBBvhwn*`W26OK4V_zA<3OlrmukU+o<(I{1bKLm()w@;<;U7g;_q|rXaiCv{A=&25 z9%Bvp0{QoQ%Da4E@( zP)lHrzaT!x`Y5l=RE`^mnLnO<`-vgC!h6m=Khaq$8ERz`=33Ox&@u^T{C7n8`;iqg z2liK_s0C&$WAu46u{vux&w&yfqsb~J!3=4SCsr33+b0;x?OcAml5rhSnUzU0nZC(z~2CLlN~%E3a; zvcbw^YeRue5kqOlD~3rGDU7EsTwzrCc!Ful!j+6C9!+Fl;WU}u<8dH!K#Lmxgky`@ z7I65ADfGL`Ht@k|z5_=Vi#fEZu_rtVy`;_R1}cEKZl%6M%Xc@-u!h{CRef?E&xEyoR*T z8LS^#(##z|N-CT-b1%4S6UAud3}oE5xy4}Re3`f7woO#8u}N&h4WI=U&X-v`?gIss zO~e^b_Z>fRA%;cAUT(2dvD^f8Ic29}u?gA`N?-2kLQCEglKrnP%wc=d>zLTm`xz)z<-_}yfwdmJ5J?3WeUs>44$rjF6*2UngB37V5tBA literal 0 HcmV?d00001 From 5a4fc0a07127155f9c560374e65bf1373979d3ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 20:15:09 +0100 Subject: [PATCH 20/53] Fix toolbar margins on Android lower 5 --- OpenKeychain/src/main/res/layout/create_key_activity.xml | 2 +- OpenKeychain/src/main/res/layout/decrypt_files_activity.xml | 2 +- OpenKeychain/src/main/res/layout/decrypt_text_activity.xml | 2 +- OpenKeychain/src/main/res/layout/encrypt_files_activity.xml | 2 +- OpenKeychain/src/main/res/layout/encrypt_text_activity.xml | 2 +- OpenKeychain/src/main/res/layout/import_keys_activity.xml | 2 +- OpenKeychain/src/main/res/values-large/dimens.xml | 3 --- OpenKeychain/src/main/res/values-v21/dimens.xml | 1 + OpenKeychain/src/main/res/values/dimens.xml | 1 + 9 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 OpenKeychain/src/main/res/values-large/dimens.xml diff --git a/OpenKeychain/src/main/res/layout/create_key_activity.xml b/OpenKeychain/src/main/res/layout/create_key_activity.xml index b9d5206a1..ecf69e640 100644 --- a/OpenKeychain/src/main/res/layout/create_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/create_key_activity.xml @@ -14,7 +14,7 @@ diff --git a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml index 06c1dda7b..3cf4a9e7b 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml @@ -14,7 +14,7 @@ diff --git a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml index a692b3681..da4aa7099 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml @@ -14,7 +14,7 @@ diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml index 168e6d0be..f9efd81b4 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml @@ -15,7 +15,7 @@ android:layout_below="@id/toolbar_include" android:id="@+id/content_frame" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml index fd7fd6672..67f17fa81 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml @@ -15,7 +15,7 @@ android:layout_below="@id/toolbar_include" android:id="@+id/content_frame" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> diff --git a/OpenKeychain/src/main/res/layout/import_keys_activity.xml b/OpenKeychain/src/main/res/layout/import_keys_activity.xml index dcdd9a31a..fcc84f50f 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_activity.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_activity.xml @@ -14,7 +14,7 @@ diff --git a/OpenKeychain/src/main/res/values-large/dimens.xml b/OpenKeychain/src/main/res/values-large/dimens.xml deleted file mode 100644 index 045e125f3..000000000 --- a/OpenKeychain/src/main/res/values-large/dimens.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/OpenKeychain/src/main/res/values-v21/dimens.xml b/OpenKeychain/src/main/res/values-v21/dimens.xml index 7e07ae0f9..f06cbbb80 100644 --- a/OpenKeychain/src/main/res/values-v21/dimens.xml +++ b/OpenKeychain/src/main/res/values-v21/dimens.xml @@ -8,4 +8,5 @@ 141dp 243dp + -25dp \ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/dimens.xml b/OpenKeychain/src/main/res/values/dimens.xml index 434a0a171..2aae06e2e 100644 --- a/OpenKeychain/src/main/res/values/dimens.xml +++ b/OpenKeychain/src/main/res/values/dimens.xml @@ -4,4 +4,5 @@ 0dp 120dp 222dp + 0dp \ No newline at end of file From 6c0a5c04e758a3ee972e121dee5d3a0fc598ff6b Mon Sep 17 00:00:00 2001 From: jiangkai Date: Tue, 3 Mar 2015 11:26:59 -0800 Subject: [PATCH 21/53] change icon name in layout files --- .../main/res/layout/api_account_settings_fragment.xml | 2 +- .../main/res/layout/api_accounts_adapter_list_item.xml | 2 +- .../src/main/res/layout/api_apps_adapter_list_item.xml | 2 +- .../src/main/res/layout/create_key_input_fragment.xml | 2 +- .../src/main/res/layout/decrypt_file_fragment.xml | 4 ++-- .../src/main/res/layout/decrypt_text_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/edit_key_fragment.xml | 4 ++-- .../res/layout/encrypt_decrypt_overview_fragment.xml | 8 ++++---- .../src/main/res/layout/encrypt_files_fragment.xml | 4 ++-- .../src/main/res/layout/encrypt_text_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/file_dialog.xml | 2 +- OpenKeychain/src/main/res/layout/file_list_entry.xml | 2 +- .../src/main/res/layout/file_list_entry_add.xml | 2 +- .../src/main/res/layout/first_time_activity.xml | 2 +- .../src/main/res/layout/import_keys_activity.xml | 2 +- .../src/main/res/layout/import_keys_cloud_fragment.xml | 4 ++-- .../src/main/res/layout/import_keys_file_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/log_display_item.xml | 2 +- .../src/main/res/layout/upload_key_activity.xml | 2 +- .../src/main/res/layout/view_cert_activity.xml | 2 +- .../main/res/layout/view_key_adv_share_fragment.xml | 10 +++++----- .../src/main/res/layout/view_key_adv_subkey_item.xml | 4 ++-- .../src/main/res/layout/view_key_adv_user_id_item.xml | 4 ++-- OpenKeychain/src/main/res/menu/key_view.xml | 2 +- 24 files changed, 40 insertions(+), 40 deletions(-) diff --git a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml index cd74255c7..784996c0d 100644 --- a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml +++ b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml @@ -21,7 +21,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentTop="true" android:layout_marginRight="6dp" - android:src="@drawable/ic_action_person" /> + android:src="@drawable/ic_person_grey_24dp" /> + android:src="@drawable/ic_person_grey_24dp" /> @@ -82,7 +82,7 @@ android:text="@string/btn_decrypt_verify_file" android:clickable="true" style="@style/SelectableItem" - android:drawableRight="@drawable/ic_action_save" + android:drawableRight="@drawable/ic_save_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_alignParentBottom="true" diff --git a/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml b/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml index cbe03056c..0f341b2d6 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml @@ -59,7 +59,7 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:text="@string/btn_add_share_decrypted_text" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_weight="1" /> @@ -77,7 +77,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml index 2ffbc66f4..9bd4e61c0 100644 --- a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml +++ b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml @@ -26,7 +26,7 @@ android:layout_height="match_parent" android:text="@string/edit_key_action_change_passphrase" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_edit" + android:drawableRight="@drawable/ic_mode_edit_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" @@ -69,7 +69,7 @@ android:layout_height="match_parent" android:text="@string/edit_key_action_add_identity" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_add_person" + android:drawableRight="@drawable/ic_person_add_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml index d62c9f32b..6f822148e 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml @@ -25,7 +25,7 @@ android:clickable="true" style="@style/SelectableItem" android:text="@string/btn_encrypt_files" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -45,7 +45,7 @@ android:clickable="true" style="@style/SelectableItem" android:text="@string/btn_encrypt_text" - android:drawableRight="@drawable/ic_action_copy" + android:drawableRight="@drawable/ic_content_copy_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -72,7 +72,7 @@ android:clickable="true" style="@style/SelectableItem" android:text="@string/btn_decrypt_files" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -121,7 +121,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_paste" + android:src="@drawable/ic_content_paste_grey_24dp" android:layout_gravity="center_vertical" /> diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml index f4c479ee9..26b1d809d 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml @@ -46,7 +46,7 @@ android:layout_height="match_parent" android:text="@string/btn_encrypt_share_file" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -63,7 +63,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_save" + android:src="@drawable/ic_save_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml index 83e2cf9ee..6f7b636e1 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml @@ -42,7 +42,7 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:text="@string/btn_share_encrypted_signed" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_weight="1" /> @@ -60,7 +60,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/file_dialog.xml b/OpenKeychain/src/main/res/layout/file_dialog.xml index deefd0428..3a559c71c 100644 --- a/OpenKeychain/src/main/res/layout/file_dialog.xml +++ b/OpenKeychain/src/main/res/layout/file_dialog.xml @@ -41,7 +41,7 @@ android:layout_margin="4dp" android:contentDescription="@string/filemanager_title_open" android:background="@drawable/button_rounded" - android:src="@drawable/ic_action_collection"/> + android:src="@drawable/ic_folder_grey_24dp"/> diff --git a/OpenKeychain/src/main/res/layout/file_list_entry_add.xml b/OpenKeychain/src/main/res/layout/file_list_entry_add.xml index f2caab653..f2ee4079e 100644 --- a/OpenKeychain/src/main/res/layout/file_list_entry_add.xml +++ b/OpenKeychain/src/main/res/layout/file_list_entry_add.xml @@ -15,7 +15,7 @@ android:layout_height="match_parent" android:layout_gravity="center" android:text="@string/btn_add_files" - android:drawableLeft="@drawable/ic_action_collection" + android:drawableLeft="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center"/> \ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/first_time_activity.xml b/OpenKeychain/src/main/res/layout/first_time_activity.xml index ba80214a6..443a7cde4 100644 --- a/OpenKeychain/src/main/res/layout/first_time_activity.xml +++ b/OpenKeychain/src/main/res/layout/first_time_activity.xml @@ -38,7 +38,7 @@ android:layout_weight="1" android:text="@string/first_time_import_key" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_gravity="center_vertical" diff --git a/OpenKeychain/src/main/res/layout/import_keys_activity.xml b/OpenKeychain/src/main/res/layout/import_keys_activity.xml index dcdd9a31a..4af173409 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_activity.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_activity.xml @@ -73,7 +73,7 @@ android:layout_height="match_parent" android:text="@string/import_import" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_download" + android:drawableRight="@drawable/ic_file_download_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml b/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml index 6f52e1938..a7234d848 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml @@ -29,7 +29,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_search" + android:src="@drawable/ic_search_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> @@ -46,7 +46,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_settings" + android:src="@drawable/ic_settings_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml b/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml index b1056dab3..bde4dafc0 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml @@ -21,7 +21,7 @@ android:layout_height="match_parent" android:text="@string/filemanager_title_open" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -38,7 +38,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_paste" + android:src="@drawable/ic_content_paste_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/log_display_item.xml b/OpenKeychain/src/main/res/layout/log_display_item.xml index d3938aaf0..d35413185 100644 --- a/OpenKeychain/src/main/res/layout/log_display_item.xml +++ b/OpenKeychain/src/main/res/layout/log_display_item.xml @@ -32,7 +32,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/log_sub" - android:src="@drawable/ic_action_view_as_list" + android:src="@drawable/ic_view_list_grey_24dp" android:layout_marginBottom="4dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" diff --git a/OpenKeychain/src/main/res/layout/upload_key_activity.xml b/OpenKeychain/src/main/res/layout/upload_key_activity.xml index 19e37783b..6b7390b27 100644 --- a/OpenKeychain/src/main/res/layout/upload_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/upload_key_activity.xml @@ -59,7 +59,7 @@ android:layout_height="match_parent" android:text="@string/btn_export_to_server" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_upload" + android:drawableRight="@drawable/ic_file_upload_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/view_cert_activity.xml b/OpenKeychain/src/main/res/layout/view_cert_activity.xml index 0a6b46a93..08be4ab05 100644 --- a/OpenKeychain/src/main/res/layout/view_cert_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_cert_activity.xml @@ -214,7 +214,7 @@ style="@style/SelectableItem" android:text="@string/btn_view_cert_key" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_person" + android:drawableRight="@drawable/ic_person_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml index a6224a8d1..ec26b4a76 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml @@ -40,7 +40,7 @@ android:text="" android:layout_weight="1" android:typeface="monospace" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -57,7 +57,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> @@ -114,7 +114,7 @@ android:layout_height="match_parent" android:text="@string/key_view_action_share_with" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -131,7 +131,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> @@ -171,7 +171,7 @@ style="@style/SelectableItem" android:text="@string/key_view_action_upload" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_upload" + android:drawableRight="@drawable/ic_file_upload_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml index f41109d84..1062d0727 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml @@ -26,7 +26,7 @@ @@ -36,7 +36,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" - android:src="@drawable/ic_action_cancel" + android:src="@drawable/ic_close_grey_24dp" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml index 63c1ee70f..ff485cd48 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml @@ -61,7 +61,7 @@ android:id="@+id/user_id_item_edit_image" android:layout_width="wrap_content" android:layout_height="match_parent" - android:src="@drawable/ic_action_edit" + android:src="@drawable/ic_mode_edit_grey_24dp" android:padding="8dp" android:layout_gravity="center_vertical" /> @@ -70,7 +70,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_cancel" + android:src="@drawable/ic_close_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/menu/key_view.xml b/OpenKeychain/src/main/res/menu/key_view.xml index c724c46a5..4a9fe16c7 100644 --- a/OpenKeychain/src/main/res/menu/key_view.xml +++ b/OpenKeychain/src/main/res/menu/key_view.xml @@ -22,7 +22,7 @@ From 89ebb985fb214fb808efef96445bbc0f5dcabe1e Mon Sep 17 00:00:00 2001 From: Ishan Khanna Date: Wed, 4 Mar 2015 01:31:38 +0530 Subject: [PATCH 22/53] This edit prevents some modules from throwing untracked content warning in git --- .gitmodules | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 8238c3f80..fde452994 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,9 +19,11 @@ [submodule "extern/minidns"] path = extern/minidns url = https://github.com/open-keychain/minidns.git + ignore = dirty [submodule "extern/TokenAutoComplete"] path = extern/TokenAutoComplete url = https://github.com/open-keychain/TokenAutoComplete [submodule "extern/safeslinger-exchange"] path = extern/safeslinger-exchange - url = https://github.com/open-keychain/exchange-android + url = https://github.com/open-keychain/exchange-android + ignore = dirty From 32d934808bcff70150111479ec3f462d476f47fb Mon Sep 17 00:00:00 2001 From: Ishan Khanna Date: Wed, 4 Mar 2015 01:39:02 +0530 Subject: [PATCH 23/53] Fixed Spacing issue --- .gitmodules | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index fde452994..1577e4f83 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,11 +19,11 @@ [submodule "extern/minidns"] path = extern/minidns url = https://github.com/open-keychain/minidns.git - ignore = dirty + ignore = dirty [submodule "extern/TokenAutoComplete"] path = extern/TokenAutoComplete url = https://github.com/open-keychain/TokenAutoComplete [submodule "extern/safeslinger-exchange"] path = extern/safeslinger-exchange - url = https://github.com/open-keychain/exchange-android - ignore = dirty + url = https://github.com/open-keychain/exchange-android + ignore = dirty From f186199017eda3e54ee9e5b5b7c18d217554cf6d Mon Sep 17 00:00:00 2001 From: jiangkai Date: Tue, 3 Mar 2015 12:17:11 -0800 Subject: [PATCH 24/53] delete holo icons --- .../res/drawable-hdpi/ic_action_add_person.png | Bin 679 -> 0 bytes .../main/res/drawable-hdpi/ic_action_cancel.png | Bin 1358 -> 0 bytes .../main/res/drawable-hdpi/ic_action_cloud.png | Bin 450 -> 0 bytes .../res/drawable-hdpi/ic_action_collection.png | Bin 422 -> 0 bytes .../main/res/drawable-hdpi/ic_action_copy.png | Bin 381 -> 0 bytes .../main/res/drawable-hdpi/ic_action_discard.png | Bin 454 -> 0 bytes .../main/res/drawable-hdpi/ic_action_done.png | Bin 1320 -> 0 bytes .../res/drawable-hdpi/ic_action_download.png | Bin 398 -> 0 bytes .../main/res/drawable-hdpi/ic_action_edit.png | Bin 884 -> 0 bytes .../main/res/drawable-hdpi/ic_action_help.png | Bin 497 -> 0 bytes .../drawable-hdpi/ic_action_import_export.png | Bin 497 -> 0 bytes .../res/drawable-hdpi/ic_action_not_secure.png | Bin 373 -> 0 bytes .../main/res/drawable-hdpi/ic_action_paste.png | Bin 458 -> 0 bytes .../main/res/drawable-hdpi/ic_action_person.png | Bin 573 -> 0 bytes .../main/res/drawable-hdpi/ic_action_play.png | Bin 497 -> 0 bytes .../main/res/drawable-hdpi/ic_action_save.png | Bin 398 -> 0 bytes .../main/res/drawable-hdpi/ic_action_search.png | Bin 702 -> 0 bytes .../main/res/drawable-hdpi/ic_action_secure.png | Bin 394 -> 0 bytes .../res/drawable-hdpi/ic_action_select_all.png | Bin 507 -> 0 bytes .../res/drawable-hdpi/ic_action_settings.png | Bin 953 -> 0 bytes .../main/res/drawable-hdpi/ic_action_share.png | Bin 647 -> 0 bytes .../main/res/drawable-hdpi/ic_action_upload.png | Bin 356 -> 0 bytes .../res/drawable-hdpi/ic_action_view_as_list.png | Bin 309 -> 0 bytes .../res/drawable-hdpi/ic_help_grey600_24dp.png | Bin 0 -> 655 bytes .../res/drawable-mdpi/ic_action_add_person.png | Bin 513 -> 0 bytes .../main/res/drawable-mdpi/ic_action_cancel.png | Bin 1202 -> 0 bytes .../main/res/drawable-mdpi/ic_action_cloud.png | Bin 335 -> 0 bytes .../res/drawable-mdpi/ic_action_collection.png | Bin 336 -> 0 bytes .../main/res/drawable-mdpi/ic_action_copy.png | Bin 288 -> 0 bytes .../main/res/drawable-mdpi/ic_action_discard.png | Bin 333 -> 0 bytes .../main/res/drawable-mdpi/ic_action_done.png | Bin 1197 -> 0 bytes .../res/drawable-mdpi/ic_action_download.png | Bin 324 -> 0 bytes .../main/res/drawable-mdpi/ic_action_edit.png | Bin 587 -> 0 bytes .../main/res/drawable-mdpi/ic_action_help.png | Bin 404 -> 0 bytes .../drawable-mdpi/ic_action_import_export.png | Bin 410 -> 0 bytes .../res/drawable-mdpi/ic_action_not_secure.png | Bin 321 -> 0 bytes .../main/res/drawable-mdpi/ic_action_paste.png | Bin 348 -> 0 bytes .../main/res/drawable-mdpi/ic_action_person.png | Bin 468 -> 0 bytes .../main/res/drawable-mdpi/ic_action_play.png | Bin 375 -> 0 bytes .../main/res/drawable-mdpi/ic_action_save.png | Bin 359 -> 0 bytes .../main/res/drawable-mdpi/ic_action_search.png | Bin 2349 -> 0 bytes .../main/res/drawable-mdpi/ic_action_secure.png | Bin 317 -> 0 bytes .../res/drawable-mdpi/ic_action_select_all.png | Bin 292 -> 0 bytes .../res/drawable-mdpi/ic_action_settings.png | Bin 594 -> 0 bytes .../main/res/drawable-mdpi/ic_action_share.png | Bin 472 -> 0 bytes .../main/res/drawable-mdpi/ic_action_upload.png | Bin 291 -> 0 bytes .../res/drawable-mdpi/ic_action_view_as_list.png | Bin 245 -> 0 bytes .../res/drawable-mdpi/ic_help_grey600_24dp.png | Bin 0 -> 484 bytes .../res/drawable-xhdpi/ic_action_add_person.png | Bin 884 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_cancel.png | Bin 1488 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_cloud.png | Bin 538 -> 0 bytes .../res/drawable-xhdpi/ic_action_collection.png | Bin 496 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_copy.png | Bin 353 -> 0 bytes .../res/drawable-xhdpi/ic_action_discard.png | Bin 552 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_done.png | Bin 1546 -> 0 bytes .../res/drawable-xhdpi/ic_action_download.png | Bin 552 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_edit.png | Bin 1179 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_help.png | Bin 648 -> 0 bytes .../drawable-xhdpi/ic_action_import_export.png | Bin 633 -> 0 bytes .../res/drawable-xhdpi/ic_action_not_secure.png | Bin 483 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_paste.png | Bin 494 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_person.png | Bin 781 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_play.png | Bin 531 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_save.png | Bin 451 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_search.png | Bin 900 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_secure.png | Bin 510 -> 0 bytes .../res/drawable-xhdpi/ic_action_select_all.png | Bin 351 -> 0 bytes .../res/drawable-xhdpi/ic_action_settings.png | Bin 1231 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_share.png | Bin 785 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_upload.png | Bin 477 -> 0 bytes .../drawable-xhdpi/ic_action_view_as_list.png | Bin 341 -> 0 bytes .../res/drawable-xhdpi/ic_help_grey600_24dp.png | Bin 0 -> 838 bytes .../res/drawable-xxhdpi/ic_action_add_person.png | Bin 1171 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_cloud.png | Bin 760 -> 0 bytes .../res/drawable-xxhdpi/ic_action_collection.png | Bin 650 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_copy.png | Bin 470 -> 0 bytes .../res/drawable-xxhdpi/ic_action_discard.png | Bin 781 -> 0 bytes .../res/drawable-xxhdpi/ic_action_download.png | Bin 650 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_edit.png | Bin 1670 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_help.png | Bin 925 -> 0 bytes .../drawable-xxhdpi/ic_action_import_export.png | Bin 896 -> 0 bytes .../res/drawable-xxhdpi/ic_action_not_secure.png | Bin 619 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_paste.png | Bin 687 -> 0 bytes .../res/drawable-xxhdpi/ic_action_person.png | Bin 1004 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_play.png | Bin 778 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_save.png | Bin 500 -> 0 bytes .../res/drawable-xxhdpi/ic_action_search.png | Bin 1153 -> 0 bytes .../res/drawable-xxhdpi/ic_action_secure.png | Bin 624 -> 0 bytes .../res/drawable-xxhdpi/ic_action_select_all.png | Bin 563 -> 0 bytes .../res/drawable-xxhdpi/ic_action_settings.png | Bin 1863 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_share.png | Bin 1094 -> 0 bytes .../res/drawable-xxhdpi/ic_action_upload.png | Bin 588 -> 0 bytes .../drawable-xxhdpi/ic_action_view_as_list.png | Bin 441 -> 0 bytes .../res/drawable-xxhdpi/ic_help_grey600_24dp.png | Bin 0 -> 1183 bytes .../drawable-xxxhdpi/ic_help_grey600_24dp.png | Bin 0 -> 1675 bytes 95 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_view_as_list.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey600_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey600_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey600_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_not_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_view_as_list.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey600_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey600_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png deleted file mode 100644 index 5ebac97064bbb47fa31bd67f130a9ae3fce34621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmV;Y0$BZtP)ShzXq8wyzfqQ#NOpAqK(Hqm z^F=h(fY$Z?@^x&1y? z{vcyZt2B|JbteKvi6#GrI_}A4VgNEkYdeW4jCmtaIUAQz+LpOqnghav3MkG(WR}yFM#yPZH;q0hhkR4O>N5$RXF2jtk=(6<1f59=U6*RS zZ0GFvOFR~lMXU%$Py~;h+%-IV0S@7Lbc+Y3)PqNs95fbP2;m0@3a7IHbq)*^S)b&@ zBW)h&a(zwhsgu$=Z;d-5Q?)=WjQxz)6RrtN+l9_x;9ZrGl9KwIqFFS~DS+AmoO5!_ zEjTzhXb+)+@LJ>T3dh)5o(qvu1E2x$-vM-LrcZoic{CboNDci7FaV8qrty#SYVH64 N002ovPDHLkV1g}oA)f#M diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png deleted file mode 100644 index cde36e1fa7b8fb99cd7cdb3dc1e18466196750b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1358 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVitz{uRt(ZJBu$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1OnfUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dF1J{^ zx#2Vqsy79jq(2n!XhGjGPNr-YWW@CJDHmK zJ&5LLy_WOYcc}%pyr$}zn*DR{o;AsRQu%IMrAprEc1DQ?5c-qP5dZa9*lN*t_QHER z?wyGH=GwlV}9bzo}}cX=i=H})~T@^ z-4ng}PpM+Yv)JCRyY*PE?peK)FnlmIp00i_>zopr0MX;(_W%F@ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png deleted file mode 100644 index 3daa641317f3c138f855636663f3fa6fa037a7ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)QGiz=FB_;47>pw6EDzrC~Ib>NSV7PQo3|y=3L2@P!uV~jemyoNmo{WoStJ} z+qY3f2qAZuwfuJ?DwoG{zN&Py}_DsmqKdv-wl4NLP+0yaKBY+ zrE!u%NQZnxgbsIz+mZV>h&8^uM4B}&QfO&uJ#H|&rL`1NsdF0rEV9Q3(rK^z@|C7| z8JR~%hwB4kJ_8UhJI=;ob&$=LLTamf^-$s*5pwudQzc2PF`Yh;_4Xtuy((9X4JtG=(s}DqyzD@`vuYvKC!LhTs+LI{kNhVF@i1F8 ss{X`WyHNk1a)J;-2qA-QyGJs4zqzoW+)>Q>-q2H0o z-vHvhaDEwdIk5(S)KSIK5^Gop#T;nUL-l%HD&_!`;J*lbEp6fIB7o<&ef^QS4FS~N zyXXYy&i_@%07*qoM6N<$f|Sp+S^xk5 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png deleted file mode 100644 index 22327391e9d1820b2dedfe3df093c1bcf581e153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmV-@0fPRCP)TZ%@CcWlz>SV-&cbcz5(=I`I&}eQ^}=yu%B}k<1Q=1Y&R^aMFu2pR zb*^YXHOHNPiGT=qf(r%bLeks`5&{7vF*7I$4>X*6E^A8mTr>efJ@E0d;v+zB*!|Z$ zVwF%Iaw4unkkHT?NXVyz*xYC>30bibh+RVXkU>HtB;<TUu!n(oHu3^#E4{%!fDX5>*93py`ZNJ;{oaQjCpqb(_(Z_$LV&4}NbF0082~ bTYv!o)Zbu6Ia}sl00000NkvXXu0mjfJR_Q8 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png deleted file mode 100644 index 9c717dd323c2d11f5a111f4a5e6d19a4870d4779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)@ONhf8TOv;h()s(F`$i?JmhXN47$G|vltF{(YLoOlw$_UP`}Dy(;Cxwyr^B`pgzo{m`*>Tg<$)jx`RM7V=?%1t;9R9 z159dGvc+OFeCcD25*!QQ4dvwZD3RhG$mW!Vqz=SD;LZ@s-6w&Lfj}n`5&|l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi#&Ct}+$imdr$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1OzjUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+d7PlC? zn3-5OIXVK(v%u~ah~5<3ZZW~>7JZ;&^g&UJ6xA>xVEO?u;RzSWfhYacJYae+0w(OB zPunsW7#L@Hx;TbZ+F}XRH$BVJ_~tbB>ux&w{i&Jpl6k3-y`NvKHk21q zV1%GG?pIzqOj6l*_t-(U9qjp;vo`HwN=}ep)5vUa_N7?Rr}hN4ng+Fwoh&_BpW+wD z&uL8OV?3O|erD1ih8>LjGWVRk>cn-L{3q>ay)F~Cc;}xn`8m#J@(k z@^-_wj*fK>KI!`&dhL6Y6 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png deleted file mode 100644 index 1f3d06519272f0cd18cf3aeffba641eddf59726f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9`P)XnUiaJo0Scf13ZMWA_-_GHl~`2WVdnM#ZCo(K&$+ilg}ybl zp(nWk7qpo$x(bub?}Lo-(k>(xUpE|{pt-UxWXetuMbXu=tUE48HHR*-0f`nt3`2J4 z!Wu(dj5+I;g;H0l;?GARSg$l%F&@%)wkp%8sd6&JLxOlnQ?p(0$_hebtqU0p^w8z` zw~uF`>h;>H#MyWVg|P29N{IBhee(NFTSp1At%(s2G2)?*%RL004DzFNN=}%qHdNgg7?rJr+8F6bBgDqJXES!0PfUkwTBqa zF{?w2eS)kfkhongmouvbIE$k9=h6VaDms^7#dw18QA{lSH4yM^OXw~GQw62Oz&VH= zQ{xwCi!B{{^ zFyE0F5J}F^dHbf`%g3y0Z2?3A1bg1af{kP z#xpOg>jEzyYce{~fXR&ZIaZ6=iV~C6`J5|qKkgls48ix9=bwsfII}az;G;IX4l~aU zHQu2oZYd>^*E@XYw^0HF-wx$*AyO6H6P$Rz!F!KzZJ^6WQYJo6asB7IcU264*G<43 z0oYdnn`(ev@eq1ntnS)Oxz~D`j_Z{wceUsqRcwm!7 zOC3(VHU)m41Y{@mjaex$SA<0lsNaQTnA3faz~B92|MxBN`gHG`aHOa2}wJEXixS zwhq&NcN%i1jibn`)B;)}wgd5lW2Q!kcy{D`kyHS=$o540433$Jhf+dV6aiENYsc+A zYXL_ETrwt*w1_$KwzzMY7GsYZ>a!F;vn~*P)aG^yk@=^kRvdck&e9V>jUFyLxTL}?J6!Cq`8BnB#)I#=oHe~Te zThIIjFk8o9t%I}+tsI@_oL1=UZInBitNwz3=m;%fn0PN60gYpmKKgDQW7=qGzMfRu nFW^`KF8q(ZHoRVDghvThQpkHQhyfP3e1`KFGggi zC}IFaZ*jQ(=h7JQutq#=f?Waj`lMmV3}Y^W6kz!N5NOO@s4GB$YV+^rY_o6#fDon2 z%NDmxIL!_(z{2+jGZov;DN;vu;GV2voc^e)>M@#1JQSiAaN5U1xGJ0PM>Q<=9EAWT zpNoY=fCvx)B0vO)08f>;wmcW602l8x5(BX!bv+?(8y}LtAG&Pth4utH)`PA92oRC7 z!>uoE$rCak%c`~BDy7mEdw}<@iNIS7fY6FI_7+38Xv+JR|eG0wiJs5tNa}#wGf0w1}b(aDdiE$}C;X-De?N?#07VzVFpSdsf=P nN;}FrApe>O1Ofr!M}PqUH85_39-(|V00000NkvXXu0mjfQ_0hp diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png deleted file mode 100644 index 5ee1480802a3dd9e8f033b3f7607f4658c0b989c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@jN+ayjv*Dd-b}ORYjO~AJs7c(EjQORk#pOvTd$;Y*5<}C zuVakL))LB!(pkCjtDlid${};(nx5|}`Ys7=)ekHaB3lHUOg8xXzu5JTPdZThO4K{Q z!2A#y*FYO@Mi%kJ^Gh$3a?DhBxpb4`#E0-HmkT}ms%A{sz}q6e@V)87?uOS=ozf~r zb6@N8+B5{a{$Tj3b;$Fi?W+K*;}etju4LVIDxd%0;ZJ;;kDOHwf4gL`&7Aw}x0@Q} z_JN1Bl^#U|)o~T|WwK~h?LI9ex&4gcs)pdt%X6dMWzopr008TeI{*Lx diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png deleted file mode 100644 index 9438aa59779e180922559c1bc9048dfadbcfd0dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmV;*0X6=KP)monq+EN z?6A|bXe<_q#-g!c(WoWpSv2-$c}q${2pc=L`(V+<_rKVKE#lGOdkN^+P1I0q5#CS^LtW3bNVBI-JJa4yr55p9p90SHO<|j zxrCh~Y}~6p7}PK_BW>XBsDxHio}G7$__dK6ItJ3jG7%Trxj`hBa*z$^0mJ z7byh*PM%6~MJ7)~g`G%s1U?=5v}>WnZz276`IV$f%P3W-Ep$Pgm&uO;@P-aNW9L9D zx$tk2m;^9wp^%JpSD|NRI;#Lsi<~(d z0qp9-h9uTPp*H${+bJZNLK-P_Y}$dErjW2A0-d4|A7o4+wFgI&M5igl7a9h@ z0J?T3M*Uy9eyNX`LYgCx8*JKgkA;P$Ql0_~0K2Pqjc7Pb@?P)NoT2edg zONyxl3wC-I3zq*eJM1ia7{pYQVMxG2GF5{Z0>gRBU2?N*Wv}n{gK$rB)3j;dJE!mK zoK{PrP$(3NKa6%6jmB}@$K`b6@oSoer@)0iA zsBq6uGSmnn-hKP-2$8=*9XotxN9e5A>%A-%i_h8w(6qVBnKF4eBoR*#@m-Wd;5h(; zg5>!~415R#9)I7?_e5X`CDc~sBVYt~LsN%rzt{wkcfTXV}+}43d zr*qULyC0F)ahdl+)>gFwtdGI|ov{U&;MvIG9JyWlA|FrWy9UO5F9)gNp5*O&{Vi=& z??yppKsK6Bt@~|unND0z-rDL(6YTVG!&X@G&o;!6bq*=u@ONe)KlbfgGSC<@X1^Uu zR?r0G=Mw#jM@k4u$lF9rj3sRs>Kw#pn&hQMfaT!z+@8{3&T=fcVT*p|n~&Qb2#7Dris>9xWx!CCsDuqI!P$(2q_z_?L%;tYYNJMwr00000 LNkvXXu0mjfvIqx? diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png deleted file mode 100644 index 869f0014b1d9195ec3ae6e228344f284b31d1513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmVD5eH61ZjdT zwn>8+0y8@-8jHqa!SO$!v77B|Rg>u%L`jNy1~J48=O(wwvJhCI?7g$Ro19dvTko&$ z-1|P(3&^AA0X%>Q@Br=uWLcI%iHiW?hWDL7BS6e>eJ;z=umLoYLJ2^oxaI&^FxEgM zqXFFkWMCU$f0LWyI6jp({{=`YpFyUsYr`@E>mgvb7>#QvVs4{ir+YwLGS35%cB=PqV)VFXyUm9*U(sPB3W zd>6-JE&TSL7W$H91lD7u^)X-@fz>$BWr^sm&9cN5fF=&1b3E?|ssQq_^Ej7NPNsV6Bqi{w|ZI^cI5MMS8Z{d07erp0*ev;*5`pEhr4Y7Xph&Wk3ZV- n`A&!blg|Tq01sd{J_Q&6LT``1`hBUG00000NkvXXu0mjft=-kg diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png deleted file mode 100644 index c4b7783ccc4eca742de2b7eca8a3e931abbcb8bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9`P)pqPHqBJ2KMjBH=%-8&Z|T47fu zz)>;xq){v8;w2EFV=g^F2wwr%5TT>VWj2JX0J9-n1{feRp8*1&UC3G;c+;p7(fs&4`SW_AC4ZqJ8piQ*8TrsS9co#y2gdI1Gcizri}}-&_87%Q!S;D sHq-l-atfezV6klgK@bG3rH=pu0H2{ob7jo@O#lD@07*qoM6N<$f-EMaDF6Tf diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png deleted file mode 100644 index f594b4e482c7db630737b6b68c8646726480d4af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)`- zYT3@c^WFKbjfR7RgM&i_cse#237;HVvt20r{a~c`dF|yDzzbtGju@$VR-^F1ro_g2$1rRf{V;Sp=H5*BpHGX zIl@TxNvBIS72F1uKc^v7`UMpEELyYM?S4VFolfV2+^tRP`!N1)lmIC40FO(iJSaXv z1!dO4ydNTQMI_qr+e30X2%Jf}PM>p|nd(OO0+cEl=4CSp1uu)27NuV! z1lWi6MFFdTIrkpaPJn`!9rdQ_$0+--4Ae7m0=|$obs)>xyH*#n8vmX^DwGF0(B(>t zdI?aa8vUo}v{ap_y4yeUudhY*07*qoM6N<$f@EtW!TUPz(kVRjTi87u+`{IDQ-XbUm?Lc60~AXAJ^0E^!t>>HkbhQzgt`_2q3Ua@jr zx6JeWVO#)<_Ysa2Lm67Eqr$0>$RN?`>oo7+0|>>jO4djwtxoC#nkTM3wYmAUgQWFE zcT`nzbYCR8eLaU60r4~y@walR$Kskfj0&U;u1UuvASpUJ$C$w2P=EqMz6+sdZxFU0 zU5?mcRhcYnrm;okDMVu5P;TSCcH(8l#?`hY%7>6K2Pi-R3Q&Lo6rcbFC_sTh`1SX| o&1&}7NgE1_5JCuP$XkE`04cRe$f0T_ga7~l07*qoM6N<$f@2nJNRCwC#STT--Fbw2YGyCTP%v&`tgq=gJ&e0~Eucla$=X*uPZGn3w@{9uQ=!NKhc7T^ zibqPUZ_w5OU+|gZAvq9p4pg}JI!k_Bn0t@&zIB~%JSPKlwejF`phWv>;l;R4L3z%f zkuf|-2UG+*IiW726Ll$P+KUEU<-Y6JSYeH2ppI= z9#jr=5#+#Rt3GRT;7-ZdopK=O)n4Ni}Vxl$aDGpk&`o z-$|#_`F!rq-hiL<35!N;xSu1DtsT=t+36NWyh zR;%H1xm@R7h2Z2aF0Y_x&^a^|RfYF=46j^Ta({w%zbId>!LJv|`(6WJb@`AmOq9s) z3@(B`mgN%~(7_IWmpEo+2=F6<2z{5)Uc&PU^e40n9Vkwg6lXje z3}E%es=c%f8FD3s<4plp6M&(0=ria!^eY3oZyF1nM8L_yR~6b#aK6b^t2o#aW8Ofw z`894cr+WabE*mkA<*wR^0q}%s%I6Mqe-dLma4EUv6aapwt*}U$0|L9EIX(giFAWPZ z&;ToJ92#s3nZm}<3kHyj*T~6V`1wM)eFA+1-O`*t#Ke)o#u_$GIewG3MgHHgO4ZXk zpK2%OimFEE25K<2u}wZ3X}1NCr>b37=TlP&7@jJ>LoFRHU1~QMLQStgOSeg8Tu22K zb6S-!g{d=xU72HB(Qe7nudn(>}YJyET`(&62EQC*nOR z+nLa5Od@vL=h_}}u9eXyO63$K^TyII43sijBKdowl+lJOjYz|V`i9*$V2|5T_>6FH z3l3btfye;Vw}y@En0Pw%WW^|GOFk%{_m>K)I7dI{%361-zyXQbW^ zw&;)xlN|dz;PrYk$FgV3-O%^xbQWi$b6WuanvJ@MZS%SCJz1`QaJZhf6;encg%pyT b{1#vU%aSg@hL7wY00000NkvXXu0mjfhD diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png deleted file mode 100644 index 8a6cbfea2076651afa92dd00a7161b967d4c16b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)^@RCwC#Ss`!2Koq7hCNL9Bkzqk# zmY{|}Y<5`eu-NIz{ey{F5Hr}#OfWH1Gm=hHGf@&$4Wecf`(E+{X-e-7*4{O{m%Nnb z-d(=$?)AN|rBt$J&6+ix=9mDY+wInHIpf>aVzGz{K>)z(xQyVf*pLgK$q;cgf^Xt- z3$N`6A@KJg5vHwE)_4FnDd0;yHWDpT*0lTQxHKg~TYOT+oj_9|wq*o^^qcsX}9gx=z5~;Bys8oEZVmdD*5z`Tdv|aM@1W zR#?l=8+=i;&_M*2DyosoXs%XC8(go~VWZLLi4@`1gWN~_F?@x&-`WX~0SrByeTgzk zB&*y}iO3H~d}${D5F3E`#LrH`Nf7WU9^NO!IQ(Uy%HE;VgGX3nWyEKd!b*u8#T=QJ znV9=Ga{3QnXoMsxc@Us-40pMrkvKe&?Jb!1s+~ZL$UBIfO1>9Yi8ReKO-h6cvF)O3 zp~yr6DjLf-jsW+8KvJRyrl!zTkRCKPIamv2SdmC$eQ-6ZCp5YT?Ec1xMkXme_WFy- hnl)?I^xCfg0|14P+Ji9U{RIF3002ovPDHLkV1hQnAb9`) diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png deleted file mode 100644 index b53640176c305ccb919dbbc797336eeda2198ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@jBK7Rjv*Dd-b~-f*JL2j#yB_T?yMbUW{E{ zhuH=@esKBd@#*Qwot!D4+2xTd{a-&*!{osK%e%jIC;=^E*pZy}`C;ZPF{h5`*z4)h z?>%(7rk9*pk@-r$$>>0n>HKZK51wgAd&sXc^Hh_8gVXljgu?-j$=d6AHyrqL^^DJ4 z{?4U4-Y0wd{XCaUZcgO~uQ=^zVoP8Ep?|j- z3VdxI{J&-y;yg8Z^~F1r`D2qrnLv(zQ6!$g@Tpw8~)nX!?#*+9TmaFJqeRL0(h)o&Pb!x9*tePB2< zam_>46*Cn}`7}ehSRPpt$Z=QojOWfzA|IV(1e(F%=ezNn+xx$+dQ$`AgL^(M z<@%7h&zy;4lbZ}sGPZO7=a6?#)m~?@DICA!yt&$P*<8&A5t#yphFT%^r*ZE#WtAm3 zSIICW+*f!#h5hCqFRRmz&!)(ybsq7UGvUZ$51A>daypEsm{rW~HcE9e{@Cl8qxCUn zgYVzsT?c{Idw4&3*y^GX97{;GBd)fr_Y(zK&i}OEF1X1x&3qJ~*gX65Vu#+U?qD{oYkjYkd zUaK}XCvw;L!KtvU_!sz5X=meEY$2F^Y@+0b9GT7Ro(OrW%ro=8^UKSdnEPNy*wKrl1ml#vIzqK zg|}>(qZtr@6UKO;wO-$DaWOZj$>9VvS00E+zb>F+&0Jj!VA<4K>phm>e?@ZMu)a;Q zLSre4q5}Xflsyqyvx%Jw5P%yns!#IY00lvCz5pugi|_ldY~rmC#yZ7uJTn{)ZvnUs zU{`rgMDE3L{L3a!MR{>OgiBEmsU$TX9u22|; z`$gm?!z~|6o=o67@$omzOcre-rP}3P|o4Vj3 z^aQ`ZVf&DPUDycxl*oeMqw!YE{=PYttRkBEZ0Lr5k3fmXw0(K264A5CI0iYngy;LQ%R`iH2Qs>2$$GPq>l% z#iS~oFd6_Z#099BjDF=6)k)yY&`gMwJ0XYv`PV*575arNBLCGky%S~a7(URdr+qC- z+BAW6-v~^SU!-J3I^~PV*qd-NaYpu^SpU)?KLQK@)OmL!XMKio00000NkvXXu0mjf D);{g= diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png deleted file mode 100644 index 9f4c3d6a2b5bffc7529ef77789f4b9a1258c967e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1202 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVitz{uRt(ZJNy$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1OzjUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnqfY zG!Lpb1-DyFaO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zW{wmsWnf@b@pN$v zskrrKx+7PUgGig{Ew_XRoJvIx&xNMH;Bgf9c%jf3>+pg{?(kf0RjbAe4(c1sKd|em z&8?IYI&oxS z=Y{Jq%y{p?9pof5>zUk37p}tC!tD>-v^*F!j~%jlX824bqPdnW%cgQA=S4Gp!|ifa z9Ia|Cr($|US!)G!iZ2_4IO-@)+vz7#(>$R~`U>BzW6$omsPO6;#5k+|I&weNiLb$? zApOlxX08j*|4J>Wz4iXaXO`T_DMy(CT5oY1d4}mU?6VM$>A1=9tXbg~L(O58#Z4dD z8Du_qnR*)Kb_ir|Fivc}1B}lL?P7vv7Vr1)Cl4W3K7S?Pue~xYSH|e`F z3|nr9dss3Wick7bs1WDc={%!jiw&d4&jpcuOw$}Cm)`e+r zjxKGG?0@getv$xvxwnB(S+5(D3EG<^Ij1xo3h@#SS-HdQpa#%? e4QdPu2N>cmT9-}pyyXJ)JcFmJpUXO@geCx|<9SN} diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png deleted file mode 100644 index b89ea93ff275bad1133017ea963c5cd9593fddd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)F6XV1NN5h%h!b76wwn z1k}Dgd-m*GYCC`hN?QT34*|8efVh|14qzfdtr{?-)CST4AP`2YC?FQd0z<(UNZ%yG zF05&Yg$#pyh)6Hkz!o6hOpF6St~^eI9Cwr0C;+AQH_)6xO#n*7$oyl#C^^o8!=)h0 z)o5G>?ZuS~p3uSaZ$RH)z~+F*KrBOt68IvnasU+n26S-1O?(be8^{m43-R^#Q#daEsFFm{M?jARPdzjvo)C18(7~4Udu8$RH^M iM*9GxU{C^p00RJ*%{nd>@PY0C0000}1B}lL`^GIyul#-S%X4I7AI$Kxt?aj^n7Lkn) z1lS|vd=@fSHU1D&boF7DWz}gBVQ4m-E5h7((R}hMJ_TjpFG??im8YmhbeK#@%S`&P zoH1&7CnJC3LUGm$38HL4VHt$`{Ln>}1B}lL;%Nk5tb@0ZG2r&=I2NUj9e|vK?f60vF zPHl@1H$?FE|4ECoW?-wDcw7B8mxkk&!;dHb@9nX>N z4L>XvnmGE1Y+*7K=bR_hmK5OhmGP02*W!lmCV^**+@yB6HZtc0E|qC`R{O<7q31{) z_fd^Z28sXuD}$mKWfMHLZI4W2=5$~d_UPb?a4em3i*=&Z*4IpGZH#Qr#~AOQF!(KP zD*K^@huucfmw7SYf@RDnR!+#{U7b@gXGYOnnXgYwPG4Pcbpyw&E7Ad>JZqZr4SSjb d9hew63>ac_jO4A4-U4}@!PC{xWt~$(698OZd+h)K diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png deleted file mode 100644 index cf5fab3adf243318d11ec95448c6deae3f52d9b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1197 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi#&Ct}+$imXp$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1O?oUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1@ zG!Lpb1-Dx)aO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1z*4|&C&cMJZ@9E+g zQgQ3ebbs!H2{Omc#n}0tv`#21C~#0@f8W4;a{i~dB^meHw?8lo^y+Np_VX($n(_YC z@+E&a+Mh40ocC+XEx!5ZZ+*78?c#g6#lYQ#qw)iToIq8>mujbJsbce3PBczkwdxup zkDJUF2f-x=jZU}=Fgph@h!N>j@?Pr!beU|A1vJvL35&6;ySFy-J4wL_Ed=se(2D>)PC;-R9y zdup`rq1*C;xs&W09=YXh=ju@sDp||AN+rHQcJ=j-`9~Vw?O~j!62JMM+>gE!%~B^t z*B7ZvUsQj@6<2p>=j`nZF6XV59>^ax@tm8*>3E z8Dz1uXV2au$1D~y9S*X*7)>ml9D|q!ItoS|FzNsn60)8wkm7`LWwFSsA#vXVv*lZA zXG2abSq~Y&qNK!8qDb6G0^f=G|vUl#I+Dj_!|~6>ZSp-^zZ_h9zYe65>#j@&|z2U<^ZT8t^yrl z0AyYRTE2zm~%p_a@b zW+u2~K@5Rlh>7VL%q$lE1uV0(rw~J8Fo(dL*^(IqGZP~jW`cRZI-b0sc zlU7z=axKk1V6_WHT<&X@J+1rHssn%vNDFF1SIX=i2BO%CSb@jZf)H>4IDqb;7w8xY z2#r{;(jl=$U7Ui26$c2fGtf?<2_30Y;@G{jE@nLf{7oOn-4ZU%=W-u04wl@ONOk~x zY#OUz0j^rWSr3>6N6-`C)1>iSi*RXeF28`zSHUx-;*@Y{eSo7h9o-z@4v(T^#eogr zA!a|a;sD@fLq1;zkF&&8VNHe;=lc=5hYp!qt-)71fSc_cMU%(r8+za|^Am#Zd6S&t zuDRW$wYU{GYI32)X(K+h1H9ezF6XV1NN5Ihu@(jn#mZ zI+D;gAij0>?AgaOa{$m%VIbuT#QH$Yg+tjbAYMg^LzqZ#Yz+`w;;|eAKp|5Ebu85# zaGXeWAP0sKYbXl|4%iFC&Pa~A0K}l67KU0Vi=@_oCW#OjvoMUWpJrpRXdva;oG4D0oY*MslOz7_{P{*a1Vf zJ-`L6`9N9m0y*sf7+@wxla!QHIkaK|Il>OeXMFzrIeii#v;dOD(hi_oUBF4rG(fTg yp!xkVmZlh8vtb`n^Xv_&#qTH>1%nCz1Q-Bfy-#kMNJ_w3oT6lF)Ifi8$xC^Y~WDr(RK3Ikh!p|W|%guti+MjbHf z0Fuf9X#U=er5qT#A;3tECTR6s1FDV*C|v*ywc}K8l!9tKP?HSQG{d9pIMDJfG;0-u z>VHsU1V=jo)K;8MO!Z7rvmDeC0y;t+OH}j$eNR+_mEwK@s5JzQ3RbAlDxl>T=+-fT zric4LrWFuh09w9^?mZ(={{WgE)>GO{AMG2`9RLIv0E4`0+9B}YkpKVy07*qoM6N<$ Ef|hTaNdN!< diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png deleted file mode 100644 index dd5289ee4557606f88d73183d1af2e37902da899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gk3C%+Ln>}1B}lL;%Nk5teeuSP2r-XBr=9oD&$InKLywOk zDu-dop@s+v-&eW<>zS;cFljzBoSd;!b%GablAg{b1;b!X&6V5F&$q94DrINTWsjV| zeq>F+!p9DKSUb)$e3Vz1*4nk2QMORxMaTUkGfq1>F+?c+tl>6TVXk~KmcdFugw-y< zRAFm%r{R=N7WNZL8#hYs6K{`NWyvt_MZ>=TZF-$*YChcT7g&0%8eYUO^gO#Rg6WcrI}5HbF6NUcJ+Ok=V^vQd<40evw-wg6eoM0cU~p()WZ2ekx^8m0 RStHQ944$rjF6*2UngCnqbZYF4y0ApigE)b@~3`Pnp z_XScuQ0|tqXU}e?nggJ|k|ChC7-TV&4RS~?0rgLSj{Jr$$bv($4AcTr03r1t2i_vq z0mK3yO4AWR2LOXD9W8n?fs_Fb82@CgBEe%?$A2Ml-!j5>f| u8X(lB8@3_vgous?so=?IXBHa(2rvK+97O??ix@fp0000`CV+)Vb#KtJ8a}`Y#Ik65D0aX_ApQmoR#1Vn7f*sMhN`_twOjzo z)4){C22EJnK=xap*c0?}0w^90Eg^RT9eI@&B_XI3w1jd&#qM#aZ$Uxs3@wO`11(=b zv$_E22#^DOk?H{kr21ep(DLInuZ)liCr&8$JJ90CG^-7v^?);4@PjZc9mqiA-T=x6 zg~DE-qrOq>0H{whu>?6G0E&|7ghGay2%i^|VL7ZM1m&3H_-aN%C1DtumLpfsVPu5> z)b}Y=C~akdp|B5ED6kN4{VfLS0AXl(G5Ek}vwYM61MUET00RKPq-2upj;8Sd0000< KMNUMnLSTaC)V22j diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png deleted file mode 100644 index 5f3bf86fd380b747c6dd98b9c79521a83b02c4f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmV--0f_#IP)H67b1<;yPK2|g>4L5++lJeogWtV*P z4WJdkJ3ONXL}>y*FWZoot!&H3$n>5w8SvTajbrR1HxmE}oOap7`Ubeu?kTyaprFEn zI|FKn6BJHOgfOMzHTNn|!+ic`p8EojR9J9-2hQ8+g7A-WCyQ)>LT+{)@LzyQux Vb0;(QlAHhl002ovPDHLkV1gubotXdt diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png deleted file mode 100644 index 61304a68c71248d1919e3a7f5eff3c834bf61c6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmV-t0hs=YP)F4>9WY`OG&VMt1yY<) z?%T6x&%PzrKqS52f%+a3QqO`zyatKA1&BAJS;7URWYF}$92y41YEX3xfMUnVaR4Cz zvb-2g48x&7kN|W913pJE(IJ{aj<6g^2jF!C6CD$L!azHKs)_JB5Z^)*dqXP+2m|9! z4U70@EMkb&tV zwj@*orU73v%~zv}1Bfw*+9A+FYPCva8)6iU0t^5UU;w40M4ufCPG|rC002ovPDHLk FV1jPxec1p2 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png deleted file mode 100644 index f6719d228a614e6090fd20281eda453d5002f424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2349 zcmaJ@cT`hnA5J6;L5d6!88rq(OUZ&jNFa<1kP&1GVo^eJm3)|Caw8!c1WHvsn#P(C z2t?a+6E#4wVwA6jn&KO>Z0?X^Sp(8S!9dJE^$wka(Frxtw9trGXb4iHTH|r2^Hj9J^v7=+? zdG>3(nuPXNH}P#7c=V~>H`V^LUJ93GFihTCAU7&OKPjkQ5y@kCo2A_fEh@*ou6 z1gxFJ0IK^JUkZzahyp=A5si+Ci9yBKqIiN`Xe@z1P-@uNAQcFtFqR84#7M5td`W={ z2$=#lA7t~maHS$6k|zR52t}m-q`={SmE{V*lu1!Aw3xw1V^J7oN=raG{r^KboUdph z7y$em@Bb7Q2F3CLbO0dai3ChV<93=WUGa$&0l)xxf*>Am_fi%8qIe)r7{%kmDS>uy zI)lmPD(%mBI-Tgr6@m;d6Y!*x5DEnpo6RD+k+Bpz0+~#+rQ)zy8ph4umPT=>;q5SZ zES6wLS>jT8Oc4j*f=gW1zg)^Uxyn)C@D-k^fPlRhV7Uu;9QfyyiR^F3LincM7cT4D zvABJci&g}KRyOv(8ohL+m>%W!>)0xcuY(V871J(Ij5R=ftOJ3l7I{+Lg2d0pw|X84 z_ArPO6;w2>i&|kEMr(ksw*bx0C2X8MyGPgG0&&A1)D72K(0HzqxKhJnrFqRtmA*Tf zN!B%ciVniG9cbEniyd^((o6E#`JB@s;UeDiE(C7&7s`|KbB>}WiDk>xXMPLEo~>Lw z2wkBfmP3zfh$^e9>Moiv|MM*DK5y=f_FIdw*N=xDWCX~KCAB=M{Ap)r;48Ip%U4aG zI7tq;Yll2`#CqVd^8k!#v$|Go{NbC?wuJ!9Mw9LYn`(0C|J7DoY)+IzBiwrO}<>1PyncBFQ|4 zQjf3q+7Iik+o+Qer^72zX~)hqYvNe^$)j5uLhJ z8NhNJG}59D$(K#2&bMB_W@MX%kN7E?sWZ`;X_aPOY8nH~%aPWzDmteoJ7P_}3BL7l z>Jm$0A~w2GY;a0ej*s~0-2b)(<-+`Z*X$(rsdW{3KGVd(<2c$4`+Lv!%##CeUqUZe z7%S_E(aQ3zkE;98`Qi0L@H#OZPkV777zv&*8W+E#%*X^e=p@t z;>FAvj@JXV2k9afjfgpYc6054X6^p|V?)^{2PdnZk6j;GJo`uw_<2f&cBR9}Q7zZ$ zp=n^>!(#Pc`)hVU5425{MBOc>mf|3&ZoeALGs59^rnwWmkU;6?rJ9W1|A`S{1w_KS4>#d^GHBD+#@>1^^ zuaSLpI689XNp+$;q=)94=eMODQ@&vExQqts1w0>06r?|fKO=a%-21d5kcT+L>wl_6j8z1&6N(yte(zc#P$`)_*N(|%? zJ|=E&%0O&z-v&lAszb2sIB(ssw|n)$Lv}3X=VrOychNpNzx-IU!jw?F&mH&~{Ep&}Cr}GX&9VlnxN@MBy4(Ein zjZ-Yv52D`hW#+KzEUcew+gR!LPpU*$c=GJ5;U>kM5(_D6Jnee68Dm`wiLNZWY(D75 zoeb`Csz$44o;YHrndG0Gek*dE*<=sjrgd9O6$*mj!2P0@^~uqem-i>Mu4Qsda*|ue zvMJKUQEpD_nv@a9$}K0Rx$xwU1jClX+gGmIqiI1#S9)H)NVUnrMYP(v7~X5D$(K7> zM;Y>>5CuDqHCW(!3Lj+I?5sTjlWa2^>w@a!Pxgs!(7m55ORNepi+{Zw(>}4F6XV1NN5xf+d)jk$o7 z43zui?Af#5=;8pN#j-#u42adxq;3K6DxgCi)64-t%R!cA0x=g3C7@844s^sVsyhH0 zAVhm*>!2#+>>{VFg zSK&}gH3ta87}$arO-z^;4xkBO8q@_5FkuNJ1t%!)%RBmTE;w>u-j25YN5P;5009O7cRV+8N`jHk P00000NkvXXu0mjf2nTdi diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png deleted file mode 100644 index da37d7a6e7c474155a54f812bf73267098d9e834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G$2?seLn>~)na0S~pupp*YvV0@Ap44?Rq*o-*%b{|zS0>T zYjvVRw(u*}rk?y3qpA99ch?nzV_yt-|7|QhS9&MzkDad!mwCT=_3b9%?FL%!LXv%Y z=KfOMxVV!Z diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png deleted file mode 100644 index c290e5902fd96e62a0a15c6a88d90c5d261b64b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0N@uc4+U<6{Uax;_Qov!pg~0@dGS8KwLAcfmQXM0 z^@7F>#_J%}i$PzJ{wX5ChCe~XT;n!$3yhIT>#jNlmY1A*%BanB`sRE z=TfQtu@7)wm&k2{a^0ewFAO9M1qm5UgUge-WU7GNDnJE{3~lyOcqY4HPcS}fR@Yhz z$3(`&rVJn8xjf_z2m1wFi4X~?laTRyTMkULxewzr7||ty=b-`MWZTO~iAK~!X|cg? zLDDP@3DT4OGbr-@ahvPd)2>&W>o`F8-LB&TU?V}g&231Ap8xBQC@$%Odk3)4T5RG9 gppr@sF24c{01P0jsq^4BjQ{`u07*qoM6N<$f<^ZV0{{R3 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png deleted file mode 100644 index bff81179ac8c63019d3f6c961100345f3b560446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)F4>9Wc_uP-A0bVIXA% z<-R$4_Uv)GIRI$6C6G!$6MhWDeL#nNLs!p4Wy`sMR2UX1SsdcjbpQ~k0WlX2IZJvt zfRj`WOjM40Upz`~VH0Gbg2if3i`Ae)Z-H1CO&KWht)gl!09p)7SZYW<+zd?Vx1gb6 zh2)^UK=H>UIRKiXK?WH>4LJriTo~$OOC$?6t_BEy1@H;gN4rXkEQc_Z&G$4UPk2X-A4TzsSfByV8 ztsL+YNSOdJE0#nk3(b0VKy{yhj(9?K2LKKI1T_3GkogBGkAvcVCs6!2G=VCC(h87o z1;pRTbqGBQB2Z4*LUKVwgQB<(nR9*0R{jV(v2pGaokn_ O0000}1B}lL?P7n!T=;`g<=`cgcc!oxav!FnGU=o8d z>pu3#9EKyCf`Wql=h@f)Ysyn(*b>9*VX4e{l=*1O%SQ|ubJ7=aCJQf)+bgpG*;GM=AWOt-RKr?c3E6edy3?Icbq^CU4x%g!Jf|Yw+ zdlvSHJZVZw*|<6V{4#zQM;Akh(gQ1)BTiiT&eBoc?mD|^;tU%<*9+V_`gy#+OdL-C ms5QDZL6&tfgDeA!1jFkc3g1pFno|k%5QC?ypUXO@geCxz!DuT0 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png deleted file mode 100644 index 4fe0edfa3076c5e3435ad559b5332716c48eb55b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G(>+}rLn>}1B}pV4FnQG=_?|(mX40`^$Btgv@Z`R`<(}6TtKSPDj(q#+`jQO4}jv*e$uZC{)Vs;d$EtV-~w{&4~^vD-h zDXVLoE59J@7KrY!r!{)InhO~@ZM>0IWAlX{aUPgbocznPI3 z_cg8T-k!UWH(14Fr-TczG+uuHy}u)a|G+Vozo*V@-}k<}SwZ4lZovBM-P>~SGv4sg ztPJyd+miSrEhk`YSnTyu`OXz{wsNM`bv~}p?ppL?d8xMVi^@3HY&(_<3X7BkMHx-h zECm8@e%|91C2yTv{9DR?deF8lJ5*aXFvMhSop_OxVTzEERBzSg?%nb;BlG6H TSEaLo@xb8e>gTe~DWM4f+bF}w literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png deleted file mode 100644 index 91434a47b245c06ee7eac2f640e695cee1b7fa0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmV-)1B?8LP)0KomZ=DG4d?z+^Sl z0R@c|4cKs{4Gj(rZNbR?h2qirN8@z!C6*R$av&!M_0!l??(88-mAe{ssJFgJJNur%@FB zEsEk_XGD;|Uvl?&6MGvA#vFEn0GjAh6L_A4Wmk5YP#B&gbksuPlgB@zf z;^y43mzk^*NfSUT{cB4Ww@_St%q{rX|A)y_K&c{B6vayvMPngY8Nsy=;On}T9RQCj zKjSXl0l|NqCjbqAqEMZJ9}7i|Pw-gp1%o&fkeTalp7zCcL#^BLP;D@5SG>7K8c zMGM*(l)6J=XQ(89w%rWz)-V#}1u!8|!uhSbZbH@4kf@ZNac?t#y_GnU$(r31g8)z zmAe8eV+0WR#DYdm+9n~Wx$PIsu3d|_gHWO`Wd*oaHb{RmXZCH|0;J$qqcmg~D-uw>m1b6~G0sXZ90t^7JSKFHGD^ptl0000< KMNUMnLSTXgwvcuJ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png deleted file mode 100644 index ca7d159fdaa906473fa7ce7a63814ced79c89db3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1488 zcmaJ>eM}Q~7(QxcD@Za65}eZsB-}ef}1mJ=pu1TnGR)hR|K{{WS89i-rt+| zdEV#!$Thi23KQaJi<0u9$Jdl!2 zqAT$-qF^DHaXqh{2#&BJ}G4=3l*! zCHA|6B7>AMexX*Pl)+V|MN^5mU1GelAh`vhX0eN|YC#tK)q)7x%S|u_l3t4Cqn>#L zN#ai4FMD~4aS~QY;ec6|#<2ohCT1rbCL2m%m;FtgEyEn*3Qs^u77 zUc}N0)_@w!n5AHOY;+koQOQg&61#_?3nYO9=ZnVK<+a$C*YXHUKSs+!9mKL&L=l5T zNBf^qFS?ZdiJD7`t6Y{=pW&5#mz2f6ccobc04kf4$ae>>-tH(ZQDG_Pwv4FXtwJ~0 z_MCuf=vxKiM;j7$bibTuCd}{`>fcwzzIf(OQ_ysQ)?MrxSo>9Y@{QEg>F|$x*B`#1 zV>>!_@J%Wg5SJH|0j%r>lIj;O^{Qjz(62 zKdjbEK2}{mQg?z76L%6kn|G@724T+Z(f|5}SA2 z8lZd`e6mF|-r4p1^u(1(*QYwdKfnW6>r*4MDZsB=ZSoWq)03u2nxa%at?G`*@tFNi z)krY59&&bX+4)UnPmwlD45ts0;xluVbMHhho42h3ax}^C1Ko)`?+*(7kvD(JUYFO_ zh}}3nctq2CO&b9DPmThwXy>eFN=NBuAAY@QsAIiwTRn4JT{eWgZrtp4wiVa6*Z-zV zKR3$$(h=+x%v zYuDtBRqYLFYvMZvqvrFC7tIINu&K-jqCo=mvXG&Jg zbM!A ccEy9_T>$nr-nlNE-y8kMIvpiMuWeVuKec}rRR910 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png deleted file mode 100644 index 0769899fdbad6ee962f025d9b90c6afb6968c9b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmV+#0_FXQP);&u(exK%nV`%!*k>?%a+`&*WF$B{E|0amiBh< zbMMz01cVSm2qAkubPPM6<8rI(WT}4T8-^@qw`dX9VmI0~nQqJo*P6#1{5JCtcgb+f= cf$}TB08H;|XHn#;nE(I)07*qoM6N<$f_nq&Qvd(} diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png deleted file mode 100644 index 88240fd3076890f6a3c35562f3d8eede0c6d6f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmV^$8M=1u1N1rCcVI$-5wEOeb=DpdNGMVQ7XiX||0j9KU`PJAvwa3*00000 z002y(xZcx`1w_5$E`nW$7a?h%-Yei) zz~ueqWsM!vp)G2*0t6J?b3h?1{By2=vMXvN%$}l|Ex=LuM?xYX=N^S?GFA&&{O%Ia zt^Q9!1Qc8WrJ(Jvx^_)}OF+@y=0wsCKVyrby^y2t)%+h4a1=86ZZS996fn}Cz7_$g zW&wWaO|^6ZgV*s^bN*`(;4}-!$9$w=HHW`+0Zy}k>elH`g8=m}N1bK?HRn6U%WCjT mfPk|B00000000c}FTemCe`~b)HL4&000000=5Nvp#iT_!=86cC_vUhLEcY{7ee&=_%o=+AcPP?&FYad*g4nB>3Q)r2k-q? zYciWSe!KbcVgn{Q7Oly;)|UVVv~GYsI)MbzJLd&T@O~hmWCC(4H(^#8*XsHNZ33$6 z6DWfiKozJv#gFz0ECCF_01UtY%HTTId->eo@W}u&00W9y0--d7Pc ztO?kVU$1w#%iMaKd2@jeYk}4~fLED)`y!>^M@@rd;7n3pE{4tyNP$DV*o?lM5*u=% z)*S(2G^e^!42}sVpr-MzLB>SE_*==@Dey)lyrvFd31}1Q-+Cb6 zfyOd{@k^2IqYjV)=aR-;@_(*ua3l2qSBoo({+;{#03wA+IF;JqeDtgMVaoWNu$3*| zTigo(3afoDD;`@;&aylnhWH%6Am!STziOQDh9mM2SB6si$?IuwCZlvvDWVVp0fq!v zR)j4GfD3>C5P%o}0^kB500cN9U~8y%=aB%*AlSeKKmZ7EM?i0=ckhk>%d2ZmS#SXm zpo`i-=h`y?&)N6(mNwQRLk&@SgCPWNl9bt3Z$M+!YYKkqUFhhKrRA+KcXYUWTeM}Q~7(NOZ>jx?|Mx7)_1qW{Q?n+DPg;FVn(PM_rcwjwgk7z zaExq;FcCM$1T(WNW-4=WI(1VrnIo~NbIM>M*htY0#}vP^FxeFW{X=%i-TV8!d7tO~ zdUEwS*{>~}w{ji;01FLSdXr$+1>d=Igzo{O;<{i~@EK-4moDL57>fgGHrj%N1`;d9 zO*m%rRCM7f01z5Ogb|R~a#dE8&^Q=`4tJ)^jrh+MMR3IR69s}KEImMxFjdYS170y97Bn2l! zc!x&%v?#MN2TZ3~98}8S1S_0`fJq7&qJY&3^{b#9Mqmh$L$E3Vfl;Ljg%NP-kqX&Z zTM25?XHMl3ZW^hb=NS}&TrQW)l_;axQV3D2)etO)%@DX$DNsRmu?1h*=3L=$S+q zji`a*c#N{*2E9fqaL5S4h9>Hh6v?`@WTg&HMvx3dtw7Wn3SD|yrV>#pbjUPTPg|WN zPVv)N+cT_sR%}oVBqLvOnw4(~Yn#0m)vQ=ZC?~O*G{jdJEH8vU^=Avr+i|X?`*2LY9 z7jHvHE29PrBH!kINN(*uSt$Oev6h7iu1N7t^Bcq8%eH4kerw;l_*m?|A2AK`y6?34 zP`@{J#lYB+FlJ}1sp{bG{!_iCO_Q1c_7CzZkyMzhv`>@qo7TfY@Gmt3uSG*tgxNWQc=v|JYQSD*fn7li5 z#PB$#i7UEVf00h?$hp1uLQj2zQtZFGsWX7jD_#?wJrFj3Z4#6Vd{fyGdK_MQaQVc! gtQRZb>Mep=rs z%f!gkoLc6wY}Of{HOm$)nh?+|!F0I%q-o@dU3b0Sm%XixFS?nUoBzG8_WirN(dHjw zVwn^eP|$~<-)8kb92butzqzY=kw#UfE<@^{uWi+9m~MQwW#MRGKt?v9#}9PAXOIt9 zo&I~(+RH1R{Pv$CqJC~Zo8d`Tg)bLmLu3}c*-~+Ni9m&$ceYGE%Z81eol+|~QX{_! zw zH}TJvFHd^HTd!6r9DbP8eLP6Qe#=Dm2+eM0Cq53@UYP|QzpZUPUzK9ua^m6Gq;=aMz?xL+uP`Y&VyzJu-lWb=k`tfm{+Q!ZG?GIV+e`w+_iBDZ85HPQjfzd)~ZPx^W zqz$Qh@0;$GOwzhL>Bht~x%ZQ{XnE*#7xP}Yyr*&7S>~?W3XB2_C}_>K^$g4mpPcIa Ui}pp`0!BT9r>mdKI;Vst05IU;fdBvi diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png deleted file mode 100644 index 8ab436d8746d96fa4e003d3b516bfc3d4960df4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1179 zcmV;M1Z4Y(P)Yzs0ki6E&g_H zZtn8-_O=&yV#N~KFN*h5UOEUDUOzTD0AbK%0@O86LSf%30+eJ|6Gv9>2nbJUN7uKR zkPIL5fn58^nj8?y^oZqIaaZDbP2885z7zLl|CDXBN%=s|_2inq6$HqGKF9-K$?gNe zO)D|IDs403U37DD?kRq2D4}f)0VJU(ej(saNWi?(46sX30LT*W$bLOW2?&9oPyN@F zf&F}+asQiD-J!IhxY<^^!8$Yi4hxy?ZYoS~F;(KT}ngAp=0dP(NYD(Ng)(vU&0NGw1_>Fj{(`2yxDf`oY_MG}DUS>^FPoq6>LM=YRvH0^tQ1Cqy+yI2_6fi zz+7&RIQemJBmo)0t0a6-#`ODP$qVpKR`4SyASZaWhiDP3&pAJbvd?W5!@&pEM9gy^ zVX%)kKa3ksSO8vYX2%!>j0ikzc@!_JVhQ+>S;Z3Y_bi5nZWFeE*IDE!gaDht=MDh@ zzhN`@+@nDmd38B%hdn5h6jp%G6#^(vqe@V!qGbd4%mgSixTwl*co?&|KI`^x8HcCO z3O-K`XcC~yx7`Y6XQ+x@8^C8GfNwaeDr+f2S19AVGKryM2hR;Ys{)o|(#hLC05?MxkgT)Hd-uS2qK;?H%;Ma}?Hl-o| zhDP%9ndH1Yixj3RU@fLC(-+#-5WvNVg$SAd3WmRq<(8xXwd)JM-13|;vLpgrj^?aM tYC|)WzDZwNmsVP7rIl8i-S$_20RXOO5G<352)Y0O002ovPDHLkV1kOuAU*&9 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png deleted file mode 100644 index 19a9df33201cb367a362a2d5584dcbbd1d525506..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)4I;Jd%`7wJD|a2Td&y;=nVpz??Yn!s zcb6z72!bF8f*=U3q{H=~;c(c8!x35tc8EvKX2)K@p0X?}8ZQ7koq)w)(Vmwt!4@FI zrf~v*<2uSG814Tu2NBZ72msDsR^<4XYyc5v6asV!?n#ld2?!fEMSulSwvIuBu=WCA z(OMA*pq(EyAp^>?pup-r1-k{Y&fs_hHnSW$l@9~5Hu$X=>WoOi;k@L09pP(3yWGG% zuBv>`fUw1;7*(rYt|vYqg1%-{a#~dNOOgqI(a!h0?3H^e+*K{7ZUUH!+{#-4um~pH zL!?_H=P!0vhh+;SzXaHEzHdr@D6ExdK;YQOM4&(D|xQmeH<>f)iC0vuaZ{noDr+2JgLZ-(XURtbV2Fw^0D7_J2d*b*ab zeY!B_)Stnf3xJy+=j!*p{Q~FzOKt%;=K&-2_lFIg86yxW@=^eF%=FKI79sXE18gH3 z`aA?`36}udRttdpdNytD!RH|`H7t2k7juCFt_Q8x>-S!-_lSk=)3hMZVE2^2!U=*P i2!bF8g7AY60R{lV{h*XWBt!`S0000mB3( diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png deleted file mode 100644 index 5e48a9c6b55feec4d795ea4ee542124936a2c966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)lO8Y*|{Mf4N?tCu!~| zy|(wed)~XF#j+@hq9`hJwcG8wj`vl~sq!w8Tcj7I1ORoh)v)ydp;jsYsIZ5`m5+6S zp^fZ}E8jxm{oCDe9B1qM{@myuAVDvzwLOUoMq8jKz7LHHI>du&My-F1WM9O01ME@! z7$8Gk@4&-d#Dg{B!P1BxAYJ+OmLbJ zDnBi348YBgkSt;rpQ8NOgdq5YEvkRj@xwH4!ai2*VTCQMutByJq1Yo@e`N#!fv^OG zbL;m-%3XRx<=;)52OJU)W~ltDkrN>q$A^1-KgjC(wgx>wSz)7IpGEdE;OiGani~y3 zAj|O{MNy{dM}PqU!A_6s TBT5P200000NkvXXu0mjfje;CQ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png deleted file mode 100644 index 312a230e7514f52664bf0394e342649fd321934c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+7+XDE978H@y_u=&f7n5yp`V{w%z2hi!m`;W9A9*1{ckw- zk-1>@Q+uD}ZWd?Zl3Z6_V-78YJ=6Crk_<2NEnj+fp8C$1ZQt&Ft9`fb?bc&JTN&PH zve(KRcuq22sTTE0B3wBE4JvZprjw2CZphYC6%~AMt>_?RKlRl$<-+M5$1f;9 z(kS>;Hsii!+iw1{RWWXXQ>Lf>w6tQ}I?w*Sz_DXH1UU1R9$Fu%lw+4+xL*I|k5|{+ z$5a2=O%%#rzux#_#OaGM%wN3zKe&3atgU_Dnns*KMK#Z!DV%4nI#< KKbLh*2~7a3m%{M? diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png deleted file mode 100644 index 5fa309cd88363e0f49c4515a161eb1f142b48c68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmVY zUW-!!`o4}We{*xb+GnaLE#o&5_p9yA*MAH?KAC_o*v2;me)=N7B^I*s$Kz0g2uZ-? z2QwVB2}T8L1&HCSTNvj{$MBE88Jfi3#;$;Apl8E+fUdlmz}zCty~HtI@g_<*B;x@x z=v(QYq^;EKx*}HspC#s95(MaqnZ4X~k+af-DS8F?+|w5+5HRydz$9t{Onu)&HR<%# za=HtsQ?FA>g#LXd2mug4G2}c6>hf7@CkFbC0#a9itfKk2S>geBfLBziG!%dbpn&0e zKyP^g3cv$U0JQ)LzynY~61Biy6jq@CJOBki00ck)1V8`;KtLpkknR8UPyhr#KvEvi kBv9-$82|u)cK8-x0C*f~j2Z6fFaQ7m07*qoM6N<$f(MPwRR910 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png deleted file mode 100644 index 03eeb8d6a6c13aa38f3e6f26ed12d3a54bfd4976..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)gB*aA7yNAs z@(l9CMTW~@cm*D(ApVM`mIpk_7Xrd zbZl^6J=X07x;@|^$Bv%{Wg5d;0vZglOT%UYY77L_Y$l-2KtSDQ0@e;ffad-p2Aw0D z3E)U!wT`i=S-DXn?Zw#|Xz14?iN~;(fRJ*3HGF-AbT+fnbE35?avy4e#HU81GRr#Z#KGNcw0(SJO4Y4m?igyo#&8xM#f5 zGO3f-Bx?x|V0_<{jvQ5CoXH?Vkp#)PG2!;C1Smw{dhVnk0uAqj;R6o6*l&jDo&ddK zH}UEdgB;WM00IsVpjr0m7{k-xX_X*`Vg~%SO&caIhtPy~xS9XP)N8~ZMCgBnV%n`$I`Fw3PmED7jW^P=nL8dW|fHqhv!n=UT1t9`~<`TqqRfCF#<4!{9809^YPU;qfm Vpkraw!TbOK002ovPDHLkV1h-P>@ENR diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png deleted file mode 100644 index 29c5f4d3b4222300a3982a6fabf0bbed8484155a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+VRP)9%LkkCR z#~GY9SD=TMk~Zmcg|u)D9{^ftX+xW_WK$p~7?=tBc~7!dGAn!h_A}l!&H(@b03^y& z*NSia?tyO?>-%N_^?DSsl`K@vN-W7EhErB#l4I619M{#y;Ct^M{BwQmP zQ)tbR6yr)^nfDNIe;vH0Meie z>j%YOcp;#}9-ax3eF}yE0uX=zZ`K0!hmW~oyzknd;phR%*E<@o_Ksc)knXvwx+#+& z0uYdF8m#u?-wfmZs^=MRvq0b3ZejHq0-mSA>K$Mjk^r&*0uaC?sFD9a=>Z7{I0W=u t2a6%Fbie#r+C%mZ00000{^m!30RTljO2DMue~kbD002ovPDHLkV1f+awb=jw diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png deleted file mode 100644 index aad535e9781380fe111046fa0bbd14de899c7a39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmV-~1AF|5P)n&Xh zIyrLelkdCt-rak45RgbD5{X12k&aWLi%!Sm@c<4N&@S;5|NRDyLEA!GuU4z#-~hnD zM{t-x8#TC`gUF#R0LHr40AS!L9A?mB!!9yt&j5n;4gd^(3WuAT%L;@O*I2|8K*)Ll z0R8+9T3RuqycP1S!hH$eb5j9i4)-kk0N_sH>je&gwRD}%AcPjpp8N2^(2}MYJVkx) zVx(H~FfnF^wsqUZhRYOyocPRaCMyW^ zzm(W@iA)OsR&STmYB04l_< z`1wgVoxnNXe#8HN4b1*Cv~xMvfWDkph}#rJCkm4-^Z7+xDGQ_hZB4$v#7dEW0Cqqq zLFAa#F~ue))!0Wkg<#{wNZYqUVtUOgEF#1H6TI%xRK%(Frv|An zFRVUupNGCa;y^|5_;4nyJXdhti*CGeVgZV1UcMYnYw`;2BAIHPSCq)Bw&o9QEg^In zU@&2liy5rR-oE0^lXVDA0knkoRpAQOA)EyMD$%&^-gHauGk`)9mJx)=*U>|i=RxvH zi2ijtGg%$H1;7Wv2jdz-By5}z(&%8&JNK@9 zql@xS`59|vrA}U%lw{a3$)rPyWoymsISY3l+WK@;-tU^p)4lV`^K0im^mku`&c1764NZ0d#fsKbWv}yir|NG?KX~FgTSL?Suwqqd zD?d%+hn@my+Pnvr{BkL~cF9#~_Ai~@-17~)S>$Kz6rRt&<8k3v_bj*lJesfnI!~KD z<^Fofa*4LYiK#blpPJI(`FHoMS@Tb)UG+VeGwEquVccf*JHIqo^(7aG?q1{hm!0+F zimN)S?5EUjaw#r8eaH6Z@_wBUTiI`f6|Q^myx!L&S;&3zz#zTW?>*DA7`X^No#fNq{&z0? zy;1bDvv<9``^ed7@^$S7TJYD@<);T3K0RW@2)cpVe diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png deleted file mode 100644 index af37a368081003cbf3cd2aa5afda06832f4bc9e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmV-l0igbgP)7G1HJtNO@}-2o+tZe&0RRAiy>eLV;GDb0!_j*`WXk%` zbdTeZU2nHIlr_}S2AQJpd zf~`<$!@qsiaL+fjFGGNpAQgZFksw0=2~q*c5?p)JDQkPS!?5jkxPO+_H`B|;5#}vp``xms$zR>lG>h2^vYTGLRq=M1n{V2{Hr#*bXB>BnV(G x!3^1(w5&6030h}M(z4EwAOHXWz?{1P0{|lg>gJl|dJ6ym002ovPDHLkV1l(~i>&|v diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png deleted file mode 100644 index 999d0f0d8c1571d3f90be129c8e4c95e895ee7b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1231 zcmV;=1Tg!FP)hghH17Mrn&ZDP&C4ukZN0TjEU&^6R3zQYP-+@eq8oMeYFz?O9Lg#v&({fS28uqHIV zBZTqbhuah8N1lBfaT@o1NvAnU}e*7 z6Mu~c1GYh9DTcoSaJFgO(b})HZc5)@8tk=tb92)x+yZcl4FlFTPIAw}3G#_{5JHXi zB+&Xrhrt~Ko*tAxv`{|E2M!^to71yp2LNFwDL#+r6uLP1AdU}rewa}Fu#A0<0^p6K z3jEW(UV$b+I!F`Sg=DE7bEO!7&k3NOknBlePLLeUm>g56@#F(ODVqPFi2wXhr!;>_ zGNuZ-QyM>L?GUo(6!pP3INu--`A z8UU$r5qa`|a{nwnJ~+vdCK8Et#Qc4h!z;q~siuStE#yx%+2W&Zi9I;71>i4J)Rd$v z7V_tFwy4|zs7M)`>H*6rakF%h z@{3ZLJVvszAuUQETcbrpCXJa|44`SPQ@&=h+WP3qX+Y08u&I#7oe)R(L2_ zN>Z84sdSrU9vQUAnrRZRR6c<2*&VmH653%4#IuNY)?$pclm*4h2_^0+$=X%;7S%O5 zD>@2X81V3mjU7HUO;KY?y!Hh3g~^MR^TMM5S-~xx#+pG&T7@OF5gk?&PFlVm9qt|A z={)M99!4(~cvP)Kkc;{%mH!%A@PLg{Gg+>9% zA;vkmP+=jQ#Pr0zK-9kzU#lSu)=KG`sSI$d@Gz(diN{cMgig)RNEsoXt6F1YMaEb~ zhNt51V2=QNH349r|CqHWVEb~EA7ZN893Zikyh(BYWhdBG$;aLd#L(tHMNa-CrFfB= zM66KD=B@98>IdKi(}csm3*}umLzyOgz tRnh7415chjdGh4RlP6D}3ZUNt3;-0k%aSxwCl>$!002ovPDHLkV1nmLGUWgO diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png deleted file mode 100644 index 2f6dc413b0cb9f5577be4e54c65ef19e245a3c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmV+s1Md8ZP)0KooYmbka;yWG!SM z10|I*l7WJaE;Mwbql5hqMn(!sJ8Ig}7A|0m)PW6{3?z~@U{c_L4eWdB+f-S#eRrwj zd-40ECzE&Y?tOQ@_rneXg+ifFC=`m0q9`1X!K|DfXdE?GZm<23dhoTpuUQ=>-Ce}Fuy2x%Gb_&jJ4y#|~Q49Gc$;}?Mk z=vz1+8it}O$1gcf=Yc1%34;@xD(jA$J@(0Q7Xn-}v~!pEyeVv=7<%k;xhbJ1D4u|o z&jc8^#iJ;q3vl0IjuFQ0L6S60e@iCdCmx58U59xnb3BBNhme&|L>Lo5i^k%w*N6tY zoDmWce_-#2C<2&-6&9ZvkU;VNJ>)ZFuTTRJ5&N+79FmhwF{!W?Ls|}Rq#<&}CqhO; zWDOE*TVhqOk*t;O0-!LCuAEZ2PNh=YN(~C=?2XLZRp^{t7SvDv=MWwQ;!f P00000NkvXXu0mjfjizLc diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png deleted file mode 100644 index 27af9a43c8a88ceec0c0fa09131339548d0f20f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+80$S<978H@y_u<)f5<`P_~|xDw!jeKoU=ThqMIW&+&HT{ zV`lBv+Gf?mZ;l+9W?&s?YTSI_&E6+0iVo|dPZwUlufKD`lx=r@-~WHFTGx{aXe$sb zU#ig+<97bJjGhhK`bPbfGtrt2ym77)-4e<1lXraC^2?aF=5@fl)SK>+)9f!=JAB_; z<5SMJS~zcUdBffB{ALege?4lNx8s3r8v6^aMO+`uyb+J$Fk_vB4>vWl_4s!bKY!6kG~Yy#)&Q`aNUZ#CIxdQq!fdec6&y|t2m zPAMwNo%%D&f8VQl`Nt0zA9%d6xX18&Zl#PJw*UhpGK%v0eq{f5-N%}Y4aEmvwszF+ zt`?5S(LXjLHP*90L7Cr&VYz+i3+5NhcOqCNZfh}uL#g5KA1(uiR$+&S9+AIoK|-Fc KelF{r5}E)>Gs5!# diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png deleted file mode 100644 index a38638e4dc7a6027a738fa2c9f17ba4dd68af030..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XzI(bjhE&{oGxH$tVFdve&nJ8yyh|A3maqloR&~UiIPm)M zTY8%aH2Jm9nCMrRINS7iRqk`3K86Hey}iuIJ)V5#%AYN~G^@`ac-!A?x1>psaaG84 zhU-_O85ji^7_X&CSFH2b=B?2VW_t7JsDAIw)7B?~`DTh4Y-8GFGt*`^!wv?f4eUL| zj4QWas-5qsGqajsKzfarS;h7pOirKEd7C^Ld1~bogk2a82_$xiU5I1!oaYme!&uDp zW1@K*w*o_Ahk;47#HZD}9i+DE++-1KFmRDj;_h6Nh^MQc%Q~loCIGL+aiahL diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..72c7e7bb0c1312ec6e791715bf1d9cd54b433ecb GIT binary patch literal 838 zcmV-M1G)T(P){q^@@4atkc4l^f6e;#L zC{8jdGW{joYnqTOrI6I&ZK~4i681sFhre znY84NPXH0M8|>2-9McAS`*t}(3t;9}gX^OOjW%`*ZX;?P`$)C*{TkO=p-_00XaPe*L#F`T*7=BN zdUSMjEwKWmlou^yL``co%cq?p;x-B8!_xqT6ZmZ^*`Lz(@Y?!sbfmna)H!wIj*h@rHHTWOo^ZCAs ziHY^?^8ObA*=)9Xb#-+Sz(GSu9>7hd)WbOH#r_SftgKumB2)9r0M03;-o#Ze_HTfQ zP8(cIM3>@hzAgd)oG{p*1wk+ucd>d1&@LY$dRm8CbrGPu=RgSYezyo{)EP6GjP;Yr zP6^N=o6Q!Yv!qCo;$Osm7xI0db#|pxT`rD0@+y%ENChMayIw$w6nhP)4yaBs z32;F`PfE!J#-t#np)n{aO+kM}aaESmkbs1`G^CMS&;pZ!L~=n*3KGzQ&NLG#y4=P0 zwRijRp0u*1v(LBh?ac1%&R8h`00000003wmfhiBNwY4>rw*zV+wO`a0)UMCZ&o3ZA z^Mo_e3ALe+z6>*JQ*I>40s>Sgo=Ja2tzY9dEXD~5F@pf*T+Cj<(Owj65l1##M9>oX zO#DdG?XN_HGYD{>c%Dq(h@aPu35jrIn*b}C$v>dB(NbSFq9|IM&*xK{1n6nJ_d&z{ zz6cU=cYa%dkPvs&C$@x3vV@;rT7ax}MjiKSUtFM)*CF0?=rS4I2G-tswNp0un>}nD`=qss488ya2Mb972HZEMVQ>K87aG15F9A zX82-b-E{!~2mk>92;i>(zYOo^!gT?RJ`^|k(7xAD2Te{7F*~*xx82feN{I(I`_5$GDy)uKL5@*O}^<#Ta5`IBm8sD z<&m5h=mZ}@rq3fLzQqBP94lb#%dV-8(a(GS>3#p14Y{L@3LsYSDd+P4M6ISp5c1Qm zho9rnhCrz;V+5s zqw0i9-+xVSUuIlBBl3@J*^1DXoO>rXbg(2yDwXFiqkd0ipTIHshsq+fksVzmN0dvD zIKBKLEr#4N1xV_uU&vU1nw!l*$G@9Fi{qw%?g<~XRTfbGa=vFBED8@#Kamn zad$`6%c5YyC$?6_bS6NCMR0pwPz>Hun2N7=rfk)SI$;u{FRtlXMnJ`6U$(KC2LRee z_`v4-+Zu?aeSG7^)v2OyE9Zzn1M$l$;h892v(Ks!C5JBYlAz3*O8TJT5npzlzqp-b zEkB)nd7`D%Qe5HvtM6SA+mtBNdwQxf6CIRRw($d&LmOoC@(4Mr_zS89;Y zq`y<uP&Zr5ePt(Nlm5;is4)6@ ziMgxn$NPttsnpMpWj^1E1<0i90{M)wjV@@c+(BQg*$x3D0v#&1u+wz`Ul|M7R_-BG z9T#%<3XcB1GQ8rv21YhmK&;$Fzsv3Hq5>q!Z6wADAns@2xB#75c##5)YYsvb(2W4H zdpHACW&~mY1aJ$151pii#M=sAOGo_|G9Q+~(&NxoPX<~OTPRglf{)>XFb4o|K}wxg z_)hxVgAet~)*LVWe1I{SJ8_$LA_ia%fB*mlfB*mlfB*mlfB*mlfB--}tb&4Eq&M&u lpacK_00000a0LGZ7y#EUBa6FqPfY*-002ovPDHLkV1gy*4*mcD diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png deleted file mode 100644 index f97084dbe5414f08e68aa9e9a37dd92c67ca71f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmV~Kzeo}mB%prqXBK=PIwL;DJR3$G z1%ECN(?D;xu_UZW!2bnb&-z*5x78$kh;b(Dv>g2727>Qw<9;9G4A^Zk_%}hy8al){ z&+~OvRo5{k;8}~unpu6{q&HTkK6C<%?;c;4t8!3#fCS*Yg#@Sz3GS86INj)vA1QNn z<1VeQSS6bPtM|`Z`kP7{CtEIer6q5j+#Von^XnSTR_(pOj~?3 zJfeN^)cTa95|FvLOs!u@s}G3G%=#7*(4lu$O~us*Sk*!wqXB%oup6JX8Anh@SLYMtx> z3u6CA*+~NQ_79dKxAwWEB}5f;=`#fr;I#^Pe;-g))z3W7zsb{=Zu?t7Vy8EBeeN^? z_mc2J#{PhUf8qNk!S9TdretdEd8(HxwDMcn{^xp^fIEq}xf%8_k--0OfB#XC{s#a6 q0000000000000000O+IN0t^6qG@}XQX{WpZ0000&EMJ8+c$gl$;L>-v=x`~zPMbi@2Gcn>i zf(fTjdCpKe(6{V|H_MHp=}F>8R2FFdV`j>U++tnGVlb`mu*#wRFVB}a28z7?ukj$e z-G_ydNq`|RzUBU%#YUh_D*TQv=ZrEjTtf=}~@0;tIvqkUF-9Pz{(!FvIKT;2I@cdIzT(ELuxZs7| z6S)|TwnhDJ$oq3<^TfPFmjfT94eL&=sNen9Xa}7nQiXpM9NJ}>cpg8$GXJ&G0fRaLfyRb~yOr#W{;{`oOgL-~k53>& cVx~VM8-xAZSL*eAbNo`jm4>%h#6dO1^^SJhb zY2DpRYPz2;UU(wZk!tU`|NS}lcK-T3_LrPXWPz42FdWEwGp%CszW4kupKkq-ZpeH1 z!`5%U-?{gm|MS7WmD^%@cFgZ(`jZZ96L4T)R9F!EZD;<3sNKm+_~%4DD;H#7n&s(u zv16K$t3$V7!uyQhA}Q}ZxPq90YFR2+#F7?@d+q$*=h7hJ!oZ=xz#_oF#NqH-`=NZ; z;`4k3dYP%UiVyzVSReT5bG==pWs|bP(utK{%GU%oa40x%t=h?5)v~Bx!}V>G+(AKA zO%L%U9Iu-cSX19L9eT^V^%`sIZRtr(E)9AdEFO+q%N*5`q|1TC1y;>N3JnZX?zZhK z{i&9eyvp!-7VDk)8@tN>d9(bPyK?v0oZ=6@2j1tt_>!u9F(3 zbuWRq^z53J#ecVNhPt`Lu{-GSy^Bv?GlK$*f$Oo>0fu?9F(>4X3aNqwJYD@<);T3K F0RTJkyr%#F diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png deleted file mode 100644 index b522daffec1ab6e1f2eb0cd500830d9666f51bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)tQ$^RZ zR_X*Jtjx@;9eEKL`v$xN1B|dxiM3f1sS91p00Vd6N})oaR;hh9-zQn_fD-3^_MOj8 zOqKxv000000001h7h0AZHy8|h4P2%gkH>QaSk3TVsfJSW1}>+@ABhNs#b@0z+A+=> zGQQH5a$$7@SQVhx@bz*8fFIe3q@ACBe1*Tiu-xlo6rfrqh)NKDmg+Qy2TRojy~ff| zVgLdVgrmVFXnU!+A2XS7&9H~A-b4V^AYM9wCR$5iFaMnYV(hj{w6t_LkaVppjMjzk zb)%L?!}naz?i=?CI)%OSwRY6<)Z>Q+dipveW3=fJ;bRsQqwzD>=3xrc&=`&Ht?lFi zBw`2vi3>1`*gmrq1kiQ-d4$Gabq~UBBIa@dO~Q^c`x_mOY*Hcvu;A2Q;;k!6Sl zi=~KX-)~O@UyO5t=&0DQ39>0+idy}my*>2nD%M}j%9mVL+l`#RdUM@%sF7oy2mmCE zR~IBM&xMfk7n+a00000004mRd$@2P0000000000003yJtq^w7T6-Z6mwEmtj^n!!KHE+p2g;#r?Iw1>HYWiBAOH{m z0e}Dq00ck)AOHdY0T2KPfB--M1ONgc092>eFXgSZHzwP6y$62FBgy!8oj8u)>#9NB zU&;?;yOwRQg4fOxY_HDZJ5il)J|2%hTdmfM$@!C$6&XqKdmDcZkRl|$6V}Nc^<53u zfJnnmNGCi?C!EUD{WZPig9JZe6*PA-^hajZ`o8N79q_jcKBNm?<>`5aZ<9#zAGr@$ zd_5S+!?42hzN+GDy%BROleB`@?MlE?Z67w$wnH;Z(=*w2S9QN3#UCg<*z^V9LwJ)A zzU1l23SKUi;&-%;BGk@;{1H29%6dPz0DjNgvXwb+yHP```2$9pcg|lA+?xHWz`qZr z_O~>!q;x_eop5ZjkEHK4E;)njfC8fm_2>QII$-YpVA<$e z#fZ779q`}iTK$qU=nk0aghiukH6!N6cEFPBfvOR6qdUNN!R+W--H5sI0r(Im5`z0O z|H%bn0002;DE!+{YwfK(98tm_Y0(i#ncs%G;mMdBG5BtRs>(%|z-Jayzec#NEWNGgrec!$x`*v3e0)apv5C{YUfj}S-2z)|KC|Je8!NEQ~ zbg6atrAuzp^Yimi1SpsI=hRvW-6qsVB*at%uuJ}c$mTUeA4!Cz#DMkF&w+(l0E{Uf3`Ky|VB6!#)GRJ_ zq<#?KC}kdy1uwEr*lM1T|ClQSEVI`;37A5?A|Mt0;-vs^B}CXy z$n~ksiHMsBA>g0)Sd7$JEsKCT!+yq(@h0nBpza#^9CV*@gAjYv0)x-|Gn++w&O7Qx4t_@1e6QjMfCs05K8y)W3L3TKz^DC z7~$r^NtgQRZfC-eLtZ2BLja59CyEf`iu#5Cxi?-_G6fOajm zvH(5nX|Uf{ZD3ddb|jqnO1^ag*zF{pqw1Nii4Qc}s>g&?BEJj^=x6A291#y-1;e1& zS}d-8RVDHPtJ_lA?ePdpN0I>BEMW!c>y^19%k&`i4j5V z<)5+;O_#~HDgcr8ELc6%kSYQnj<_*|2>H-m*Jbjp#efXKHz{L!Y3xYWvl*w!w;6={ z1+Im7C;WpM9fM$}$+szhjf!X2xX;XW@~sHK!Piz%t)r!;iwHO56#2F+z-GO_Yiu7M zxlDdx0SW})B>bp7zu?)eljPg5fPM*|X<)dap{wK$m41kip6)y8N?pdGpDkE%=5S@#1DSXaOL9C_z;q5C{YUfj}S-2m}H_etZ*P04TpsYf3?Y QLjV8(07*qoM6N<$f`u#-@c;k- diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png deleted file mode 100644 index c5a34319b7e31e12a08c7b429195a569be0a5c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmV;O17iG%P)qKorKWsWo6SkRod% z11Vgjlz3oZp(`C89WB{EP`V7377c{9G=nqPA}uhciR2NJf|TyP>7qqbTlp^6-Fx=; zlTM9PJ8{16?w;Sfi;V#Q000000000000000K-)RccEO|3Xz;+l>-l_M!+>yN_vz1& z8jJp%TEF3`CAAf`pJYf01KdPsp>r#IKfqgVsC}h2BQrKI;C|s*^s(*fkHH@!$b>5x z@K^NIik=7R?M>jRX(DAb97OK%@2I5_K37Q1SgMSt*!D+Rs(Wv7Dh zE))o#*j~8X+o#mNkTBmVNZvFI>^B@#>E&z3OSq+Ti>^*V%#7L_o>q8D+NXfVBZWpn z;W!<2ItCa!m!AhLB`>uY&=WEOOyD}cnl*u*X(z5Fh7tyZFEd~SMC7I8@hcb*E~glH zi~txANc^;6R{bvv7!XGMGtVq|0|UZ{?-P8Zu1h2>5Z|}{!(7MSN0cZRf1h>bm4qD< ziDL0tc;Ceo?)4K1-y=~fKHus1*8Vx*UUYt2N+j_`?Fmw6K-I^&S_~LC9)F=l zd@TmJ6xa&sbG}9cT#9TW!;0AK(N0IkY|KRFz`hNS=i0000QP_ZU#cfRqC zXD&_eJ~xO<58LMg6)@m&#BaLujm=P1ie?Uli_fBer1rGI;XF!CvMl>iRn@H)1EiNC zT(=$av8S3wKu>V*PmTL>B$G>c3{4wGz_Uo_!T?L(bO6Z)9KnFNEMY)g>PY9p0LK1w z$VbRh)8mV!=K)iXbFPdcL}$X3(f*>$wsyz|E~)n~U_e+C*7hMxM-SYZmKw!pwEaRR zy(7t5OMECd000000000000000006+2-vSH(Y!L)N;PR}@00000NkvXXu0mjf<`|u1 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png deleted file mode 100644 index f054a68e6abba4319859c62466cc8c1c14229302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3X(T978H@y_vHx|8{^t``n5XOB9%=E}hgUG9{#o&B`EX z*TqY{JUIyo&3}#Ayx4-Gc3pTh!S$7c`qh*L3ep;q83#SyFA-nc8+E+!&%FE9KkZI# zT72XDxxY2v&rN?ai3R8k5U@!!ka%-?lj!GkA6v7!_^|gWH&1@9v6<`l|EPw;_29?p zo2v5TzNJ`pTxH%hFYdZ@e4#IwaQ;WM>O(c- zd5!E5J-_EacRFt){fKpD#X(EC3pVU&hhkfnE!$n;u(^D{--h+mEnI>xzkkGOUeR!O z$NVX0*z-R&uuZW3xp>XIYZhD7kCz?c=3-e<|NZsc{a!ZLuWS(zT<0XZ;PRr62v=~7u= z-};uYRUWd^`|~YpdDfNOEzS6|W})YH6H{L%?bzLOTAq8K*~YP|WUke&-}2gqx0PmG zDm^}(+i>#d)m^*$Ro?#>bJkomn}JDzL4kqELEEPDY4eQbZ{Bw8j`t7?RdCpxqd)PO zRvd=|hZ6$}1B(NL10HHai~s(v9UHdjGld-dTszgg zf2o#_U5qvd-&Xf@7I66gcEo%W7^K@-k%QMylcNp`zCML_ie(ofG_T5^TTaYbdJgYEO?u# zBDX;4&$VmcHvP;AyfgjjYW?27iv$mJ6zC~s9L!ssvR&V*h|Kas4i{oK~#0uHpK<44Vrk|Iv@-cYeE0&g56f5<_i;k21?&hir*T$NU}-8oZt(4ELi@ZUYhAwIKb_s#e8i~lu_)83xnCMx;uq!K$kG3(Yq&ku?ewG0aP2>? zN*Xt(3K<9sX0y!j|2KKwAFV(kJHZLIKbu39L^po+@rwC$Rxl3RAu6{*8U9F;ewQtrN81nEq4EUr*d-O z+Nte0fu=&b+Qw+ R3r~TBJzf1=);T3K0RXmi^tk{4 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png deleted file mode 100644 index 3589aeb5556dcc94dff6da29caee9af5bb07ba4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 687 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m;yar978H@y_vJopUF_9-T%>}wQF{5s^Xk%ti5L4F2S^L z_wdNh+5ef>?J$~XvAJrs_U82)RnD?ppp3AeeOFX{yrOb)S}R-SRYT^G`>H`h)T(PWwdt^PfI<%g&Auy$p3}|2|KA zuv=+Q%OuXd4MGV)od2e82^Y@!UFV`4aUKg-3`&t2uLO`CT-;naPzrPU3m zUmUq#$p675G5g;s&bmeh-EM)b3&|Re7aJHhPFL8Nby;fLwKbn@%xtEVOP=0!EaG0! znFgf^=X?Aaeg`~vW%zxQqd?_H+QHm6ABFh8aY{-@asKJ$-Shr|h?(#ip+n2>2v0l7 zt#HtQKk&P5{Iw~IHpbl6xpj7S#AVJ+ESjwMkEY!7F=n$p`r!N2=Kbjj<+moCZqUn} z)e|I=a6yrA(wPQ5S@n~Xg%)(DS8h4BB+2=0XKNc{CI%)21_g&jD{chHtG_&Q zD^Ku2NzI%k+@E$f2~A02yHRv-vVmj+!;}RPF#*g|q^b`a?p#ou`DBm1YKKq@w-U1e zLxJO|cWmNI-sEXGPEm*v04ko)!=2>rbDwpiGTROXBL;y6p(PKS&N-B>?T|Hmx>dsTciSZ22P T?2nRv1QPOe^>bP0l+XkK^(i0c diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png deleted file mode 100644 index fd1bcdd4539884bf5237c649d7992d9831dddff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 zcmVAMV~hxs!`d>K~! z2QneibiEyA;zxA&NbSzS>Fqh+_xt@;nx<z{i!L~JEPmcoutchQPBIEAT53YB4|0W_dA$q! z;vBK6h%`;Nwlt(5{SRGKEU>ZJ+M^|nelY{2^MJ*f>@(()m0O8#g`ehRz6(hKMC*cR zg#V_I{zQL{3tlpKX(^#y^XVM6-0?%szdzCF|0St`isD=z>2XPnzPL6~;%Fz%S@SKQ z>3mD+YgbbpeSryw^_tqZvTT|wtS6@UF{29cRT*$%f{jwjz82o`tjOM^t>ACZynn|t zX{qI!HSQ0vQPJGo{^5vSz8)mL@2Qmmnb{B(tl!sQ6RaV#1zGcyjq6 zZO7uEU6nC3Eo0Sz+%00000000000000000000037m1 afB^t`*axuJxE1OE00003 zo!NcUgjNdx000000000009K^i?QT+q)mZz=2kUe?=d$)>-A^Wy-;`Hhz=?b~mi1FU z|05FaDY3qQZCUHG4#U^7#v)=$sdWV;!b~`+w52&E*A8n8zs(%CJ0Dv=|{Lj z$Yabz!UF**hc$*IMVdS|jwHyBWdhytL#tzWk0q^F6*I2`X zfW=tjAhxAB0(1pb=R=4!Ha*1N76l~sTMlAx%L3ATIJ6vVSQoGuYnY3@y$DE{i@n<| zpO}fgz3qU-`H*6bX;bHeX93k?Yhz>Y5(Fe(V{ef#LO{N@lwyt0mL3t1hY)KVHzD>e zRX}wDL)+ume_$HNHId zW(Q>EJ0 zSfATCWM|q>T)Kc!Ec}>bsD7Uhg}>t-px@_jr0@eSVtM-fpzdQO0+#prf!47S0SfT} z0zT&|L5Et_*i*qsn2^6pc)e+ zpuzD$NdmIP#H9`j2V znAnQ|m+^rG0p??3%K}`)#3tcim;e9(000000002Ma{dZ10G2mS)pG@c;Q#;t07*qo IM6N<$f}v7av;Y7A diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png deleted file mode 100644 index 744350049a886da8655ef443ea272a03ed31249e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+7^iu~$GtHLn+>uQ1fCtZdO<(qcG=yB z8_o+Hx-MZQbGur&ynKI6P2bx;CvMJrdf=SRvAgRIFFapp-TP#b_d)wV7ne`hcxW4* zEXI8PzV8Mt8&}TRT1E=VH$50{ezW+xHQm!wXqL>(4QrmP+S7Y`*YV2h%*GEN35oG` zO;cv#@>W=|fdxDD&yk5y)R}>irGbGdphK%}0;i(P<98a&4h=$A`g7-OvhP`Pezhgn zjUCsfDlj=PFe)TWJAC0w-LsvWZY;Sj^?tdM!d{i?Rhqx-U(4}%O{iwzP+(vYU|{k& z@=7YXT=iVwHzNm5CdPM+H?#7p^tOoCNrKF1U=T=a$O&k}uBtL)x1YZAk16`-XBjEwnC7CLM@{~b!%bYmdKI;Vst03?yYO#lD@ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png deleted file mode 100644 index 9c0ea3ca04bcd4b699ddaadfc3fa9be1267a3e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1153 zcmV-{1b+L8P)F4C`8~hq z*bxGPAP9mW2!bF8f*=TjAP9n-YsBeduCK3Cc^K2j@3NJ$<@CAu`1mLQz^=isJ zg&tq0gKV!7Lv0IW{*{F37I!4l}(nh^Jk^WZ#kVEj`t-^m~; zMvy}=vQxqfo387>@TJ0|1rr4gQ8WGLiKPh{+`QcxbadccK6<4-8nG#UTJ<&99* zV}g*%>syBI0SiN(e{gO5h7jhINreZ1djH%s;P!b#1Yv6kMaxhly;P<0oI6T$ zziLLEB{%@OlryuDYIe}3#kCF>0A)T&3j_4!1)0eULh}IKv_Qe6_}LjUq9h~$SB8Si zyC?*f4X=5y08*|1sIz^o001In4@d>% z6+j6S`UQ{=^uCKw0O)kd%-BiD0CYDpVK(iX1`B{5^Rccp4c8J>2+|c@Qw}#ro|tm3 z4V(dBGVgw)%iK6s>NWtF=6x0n?oT)M{25XjT8#s`9yRyr1@sVJmkhiI1%R|OOjF!? zjQzT2)CIRiT2=tiyt}R_ThOAZzO@qid8&W+2n(ika41_*5=_LfAuT*qL-Z80xpb~~D!5vfbuo)>ifqyuU5wX#a0|1mo&U53ioQ{Trm)q_5l|uzFpML&#Hc-bOv=5H3U8R7}C>j7mBF(@@J05&-ZEAqN0|5IQgPjlL4@2;mKdm_G=){N4rt{6MJw7nQJw zIw7Y5tOS65At-~t*$6uT&R1R* diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png deleted file mode 100644 index d8c094ed86aaf11d95485d47fed6143e12ac2f9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n1noC978H@y_vn<|FDBd!)g7EQb%|q%^GJOoZutceQZ%7 zOS5BA`;&Ty^M3xx5k{>m97|3bm~!y6eLuv>@#dY|?X3m(r^jej)n4ECzUq4Rb`2(= z%`nj5b@NBIx{U-+(#?|TZ|3?Gp$!W4+_#Wo@nUouEO!GbUuppYt*uE$$OPG&QX6pJw&u&ANq_qI>j(fr){UgMmeXL7;&l!gy-kBolkXjTbk)$*z`p-~D!J{OPNHlKQOK zf&#TQ8UJ-Xx6I>Lv+e(Elg^RE2i1jQ1YS;pWaxj#$J0cZVUY!-9oFvQHeg5>D%-&} Rubc%W;pyt^zK^z#4! diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png deleted file mode 100644 index aa5937eab9ad68967f833abb3be988f198cb5f6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 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 M07*qoM6N<$g7f$0oB#j- diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png deleted file mode 100644 index 48a0cd149dd4b936a8274069398ceb76c54f67cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)DppvnIIuE7zFiHFd zbiuoH!3Q1SpB>$)%laT;r3B!4zc06?%mOcgB=~^Xqw7Rb@ehxf`=ajXT2lvf-R}pz9wbUe zf8k-v=}Ohnb*!NHV;m!^Il4|pF22hVb8jJNIJzFY1Iozlh`G0QXY8ZvSrmZ!*`U?- z)EM&+!exG2GSHvFwX?OC~w6OR6@j2m=Ao~~?G~TT`;u`FgT+=i6YSuZ+ z^UwFaSazYmw(H}aNQT`Kw~OPyL<#TEVdQXNfTDz2v#I;vs~=nVaaM?}+e+C3iqHRC zEBYGjrSE(+Sw#1Q@d4un%QTn$*u7~sBa;II5Uq}8tv&uDV~^VM|C{Bjc^{aU9r}H& z{1AWC1hJ4azIPIXADc>6^F6RTw)%G*w-5u900UFRU89os`kuxP+=u*b_(|w`fNW<< z2t9ov_D#!nU2&CZCzprbN@2@z{Bomd+5W?N)(^c|12*r^as;{ZfYyuqLUF-+y9;k; zGk90{UiG_S+_0|vP+YJnGfM*l2q`eA3N$bX9LSn#)%Bz2s>OuPx*G8!!K_~->s7)AKVSn2ksw}d@gR7Rj36%AVS5_Z zQ{Q%&>2X&ULF2)T_>n~fgCNG}lH?GGcy%RFC-?!Pg5WF;OHV%!DItbrtJiD(H2~+B`O_@R ze%ST~MNuRsCMKQ%FazLViTVuSJb>j+r*mRuWu?FE42t9UF(O(9uz$c*Ys@^8W!dLj zq1(DaX`1d>UtfO>K-F;S<6#&cOVhMxQ@>S%=I7_{$n*RY00%6UxDW)vk%fhY-)yzP znnBW>vjFzlsv-F{2!cm#nN+cnv{tL_%=7#t?3)7s`|>gnbssJIx&x01x%%Rkxi?Q#ZR;zWh zsa%^;6vbX5; z?LG-$uOh6^%%7R6IZ6f*fJ7tiY`fk5-BeMdn^l|C>-FaWJfw1s&+Cy(pk|cZNoN~J=mWbXlIlO=&HzCm7l6k$|Zm*fvGIR#b&CNZ*%x?fFv!D7V48vD!=y7&=;aaNI>P_S0<1GNk zO1^rTnGe~z+%OadB}sB8Gk=IH7aGdY5keelG#VXS+MF9C%~^%sq5RdH&-480#l^*e zPY5={=_;0{X~4`UP~Mz3d%fPYZF2y}lXSP+eSwI|9FO*h=%r?}`Sw<6bZHO~k1+;SX5BkOf4DLS7!8AFT$uy7 zUBz_n4qXhx@B@b$-5EqgyEVc-PSdn-r4ex3gKkp=F!PrV^#O2e&@D=FmC7ZD`mShj zSX+6gaARZRSBLrl4EcfC|G5QXnxQtx#T}twOY>4%>8$e0&kE4 xZ;%3SkOFUz0&kE4Z;%3SkjLZkcs$#de*ig~VDH2@@!bFb002ovPDHLkV1gOVGI;<1 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9d14c61a28f0e7ad5abfa094c8a78a93155b7d6f GIT binary patch literal 1675 zcmV;626Xv}P)pT2F!RCQ-rh^9wcm`~8qm?vG0n29Rm{8^z(XmtGJtQ1Xm`C{|F~MM{-HXj z>ybMHJkOg6po^Jb$AACuR*8t{LjYTXAULl&$C2d5fJ&uemCNP!BuO?9(c~;*F!PXM z7@GzM2W$QP{dLtj1359kb=^5c^a(T1my$Hm31)sV48t?3b2n5Aa2)4Z0LNq%9{`%M zjx}Q|rKB>r=Xn(X9|5>kLHJ2Tv~uy{#TO49I&@rB4U`$+y6zhQwnObKGyp7Hv}n<# z!-o$aQz1afIl%M0<;=Vnif7;m8btJ55Cj9V14}ocv$Jz(+Z&Yp0C5NSOia z*RQ`bj^m$^Zf|FRh*k$da7Cn(=Xq0@c{hONDPl&ZY0m2I?*2XN+DJJEG#ZVUk*@gL zY};NTT6_Qqg5Zj6+baNUOA*&@YR()f1~j*nMH#SdyVLjmByC*Z_Y>Q;I{^rqhld~N>+8Eb78=&BT|2d{t?eX$nF8IIneWQ_rjCpm@EF96-Z)mp z2Y}{S8wI;jQ+uXlZh&DJ3kAEJvu%6VSnFtxc`jq^!pN8b_Y1ZkxWQ7hC7NT3o(n{^ z3zNA4Ns`PF?DAQLa)icCp z7Sf(dQ`P~(Fr1WijM0)L$t)tF1zF}#P$<7AEEB^pUJ_|fL2vHaZg}E7|_+#H4DHpkv>V1?31BwLKsjg zm3kn);*(-PE*?$H63_DS`po$c=Jx=Wr09OF zR4UbE>Xr6bO4j(ke_IqqJpkT9`o%@Hr>Ey9nYzb?0iNeAjiP7=fO}gQ=A>=g@5zVUWF z3V9OtJnt1EI*Qhde-*&$|2pC!jdXPy+BCS}XoA5xp4% z!A{l5jHD0-IF9oafJa&w;w*p{f*|-#buRy>5UU^}dM#~VX8zhV%>`i?=C1fa0nP!w z@3%!!^e2F}6x|QRalEWrt^TDtj~kKu889?7^e9pkpNNjzw!J*h#Rm#tfMFPE-m1JB z$MGuP_phqff7AR_3m65$Pbf3 Date: Tue, 3 Mar 2015 12:19:00 -0800 Subject: [PATCH 25/53] icon name changes in UI files --- .../org/sufficientlysecure/keychain/ui/DecryptFragment.java | 2 +- .../sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java index 8723c7255..846acb9cb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java @@ -176,7 +176,7 @@ public abstract class DecryptFragment extends Fragment { setSignatureLayoutVisibility(View.VISIBLE); mSignatureAction.setText(R.string.decrypt_result_action_Lookup); - mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_download, 0); + mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_file_download_grey_24dp, 0); mSignatureLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java index afec3bf06..6f19d1de9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java @@ -136,7 +136,7 @@ public class SelectPublicKeyFragment extends ListFragmentWorkaround implements T mSearchView.setId(SEARCH_ID); mSearchView.setHint(R.string.menu_search); mSearchView.setCompoundDrawablesWithIntrinsicBounds( - getResources().getDrawable(R.drawable.ic_action_search), null, null, null); + getResources().getDrawable(R.drawable.ic_search_grey_24dp), null, null, null); linearLayout.addView(mSearchView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); From 57dca38374560bcb8911afa6710ecd335fda6f00 Mon Sep 17 00:00:00 2001 From: jiangkai Date: Tue, 3 Mar 2015 12:30:56 -0800 Subject: [PATCH 26/53] if needed change name options.templ.json --- Graphics/android-icon-copier/README.md | 3 +++ Graphics/android-icon-copier/options.templ.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Graphics/android-icon-copier/README.md b/Graphics/android-icon-copier/README.md index 3e12ae472..5e00ae376 100644 --- a/Graphics/android-icon-copier/README.md +++ b/Graphics/android-icon-copier/README.md @@ -73,6 +73,9 @@ Mapping vars: Options file ============ + +*In this project, if you need to fetch new icons, rename options.templ.json to options.json. And then run script get-material-icons.sh* + Named `options.json` in same dir. Sample: ```json { diff --git a/Graphics/android-icon-copier/options.templ.json b/Graphics/android-icon-copier/options.templ.json index 319d90f42..c680d399f 100644 --- a/Graphics/android-icon-copier/options.templ.json +++ b/Graphics/android-icon-copier/options.templ.json @@ -1,5 +1,5 @@ { - "basePath": "~/Documents", + "basePath": "../../", "filenameMap": { "classic": "ic_action_{name}{bgSuffix}.png", "fa": "ic_action_fa_{name}{bgSuffix}.png", From f5b877ca2208e0b9f14886c7f6011ffb55e6898e Mon Sep 17 00:00:00 2001 From: Ishan Khanna Date: Wed, 4 Mar 2015 02:19:59 +0530 Subject: [PATCH 27/53] Fixed Submodules --- .gitmodules | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitmodules b/.gitmodules index 8238c3f80..249b72479 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,9 +19,11 @@ [submodule "extern/minidns"] path = extern/minidns url = https://github.com/open-keychain/minidns.git + ignore = dirty [submodule "extern/TokenAutoComplete"] path = extern/TokenAutoComplete url = https://github.com/open-keychain/TokenAutoComplete [submodule "extern/safeslinger-exchange"] path = extern/safeslinger-exchange url = https://github.com/open-keychain/exchange-android + ignore = dirty From eedc7064b9eca0e94c9fe9aadaee98aa1317a0c5 Mon Sep 17 00:00:00 2001 From: Ishan Khanna Date: Wed, 4 Mar 2015 02:36:33 +0530 Subject: [PATCH 28/53] Fixes Issue#1088 --- .../ui/CertifyFingerprintActivity.java | 21 +++++++++++++++++++ .../keychain/ui/CertifyKeyActivity.java | 21 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java index b7c80c1ed..fcfcc9cb2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java @@ -19,7 +19,10 @@ package org.sufficientlysecure.keychain.ui; import android.net.Uri; import android.os.Bundle; +import android.support.v7.widget.Toolbar; import android.view.View; +import android.widget.ImageView; +import android.widget.RelativeLayout; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -55,6 +58,7 @@ public class CertifyFingerprintActivity extends BaseActivity { @Override protected void initLayout() { setContentView(R.layout.certify_fingerprint_activity); + changeToolbarColor(); } private void startFragment(Bundle savedInstanceState, Uri dataUri) { @@ -77,4 +81,21 @@ public class CertifyFingerprintActivity extends BaseActivity { getSupportFragmentManager().executePendingTransactions(); } + /** + * Changes the color of our ToolBar. + * + * Currently Set to ORANGE + */ + private void changeToolbarColor() { + RelativeLayout mToolBarInclude = (RelativeLayout) findViewById(R.id.toolbar_include); + + // Changes the color of the Status Bar strip + ImageView mStatusBar = (ImageView) mToolBarInclude.findViewById(R.id.status_bar); + mStatusBar.setBackgroundResource(getResources().getColor(R.color.android_orange_dark)); + + // Changes the color of our Tool Bar + Toolbar toolbar = (Toolbar) mToolBarInclude.findViewById(R.id.toolbar); + toolbar.setBackgroundResource(getResources().getColor(R.color.android_orange_light)); + } + } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java index 1fb88b182..a2e717ed2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java @@ -18,6 +18,10 @@ package org.sufficientlysecure.keychain.ui; +import android.support.v7.widget.Toolbar; +import android.widget.ImageView; +import android.widget.RelativeLayout; + import org.sufficientlysecure.keychain.R; /** @@ -32,6 +36,23 @@ public class CertifyKeyActivity extends BaseActivity { @Override protected void initLayout() { setContentView(R.layout.certify_key_activity); + changeToolbarColor(); } + /** + * Changes the color of our ToolBar. + * + * Currently Set to ORANGE + */ + private void changeToolbarColor() { + RelativeLayout mToolBarInclude = (RelativeLayout) findViewById(R.id.toolbar_include); + + // Changes the color of the Status Bar strip + ImageView mStatusBar = (ImageView) mToolBarInclude.findViewById(R.id.status_bar); + mStatusBar.setBackgroundResource(getResources().getColor(R.color.android_orange_dark)); + + // Changes the color of our Tool Bar + Toolbar toolbar = (Toolbar) mToolBarInclude.findViewById(R.id.toolbar); + toolbar.setBackgroundResource(getResources().getColor(R.color.android_orange_light)); + } } From 188559bbcd5d4a9c5aac00ab6e20deb4e52988d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 22:27:14 +0100 Subject: [PATCH 29/53] Prettify passphrase dialog, it no longer resizes on unlocking the key --- .../keychain/ui/PassphraseDialogActivity.java | 49 ++++++++++--------- .../src/main/res/layout/passphrase_dialog.xml | 27 ++++++---- 2 files changed, 43 insertions(+), 33 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java index d5ca08936..18d574956 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java @@ -149,6 +149,7 @@ public class PassphraseDialogActivity extends FragmentActivity { public static class PassphraseDialogFragment extends DialogFragment implements TextView.OnEditorActionListener { private EditText mPassphraseEditText; + private TextView mPassphraseText; private View mInput, mProgress; private CanonicalizedSecretKeyRing mSecretRing = null; @@ -167,7 +168,7 @@ public class PassphraseDialogActivity extends FragmentActivity { // if the dialog is displayed from the application class, design is missing // hack to get holo design (which is not automatically applied due to activity's Theme.NoDisplay ContextThemeWrapper theme = new ContextThemeWrapper(activity, - R.style.Theme_AppCompat_Light); + R.style.Theme_AppCompat_Light_Dialog); mSubKeyId = getArguments().getLong(EXTRA_SUBKEY_ID); mServiceIntent = getArguments().getParcelable(EXTRA_DATA); @@ -176,13 +177,30 @@ public class PassphraseDialogActivity extends FragmentActivity { alert.setTitle(R.string.title_unlock); + LayoutInflater inflater = LayoutInflater.from(theme); + View view = inflater.inflate(R.layout.passphrase_dialog, null); + alert.setView(view); + + mPassphraseText = (TextView) view.findViewById(R.id.passphrase_text); + mPassphraseEditText = (EditText) view.findViewById(R.id.passphrase_passphrase); + mInput = view.findViewById(R.id.input); + mProgress = view.findViewById(R.id.progress); + + alert.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + String userId; CanonicalizedSecretKey.SecretKeyType keyType = CanonicalizedSecretKey.SecretKeyType.PASSPHRASE; + String message; if (mSubKeyId == Constants.key.symmetric || mSubKeyId == Constants.key.none) { - alert.setMessage(R.string.passphrase_for_symmetric_encryption); + message = getString(R.string.passphrase_for_symmetric_encryption); } else { - String message; try { ProviderHelper helper = new ProviderHelper(activity); mSecretRing = helper.getCanonicalizedSecretKeyRing( @@ -228,33 +246,16 @@ public class PassphraseDialogActivity extends FragmentActivity { alert.setCancelable(false); return alert.create(); } - - alert.setMessage(message); } - LayoutInflater inflater = LayoutInflater.from(theme); - View view = inflater.inflate(R.layout.passphrase_dialog, null); - alert.setView(view); - - mPassphraseEditText = (EditText) view.findViewById(R.id.passphrase_passphrase); - mInput = view.findViewById(R.id.input); - mProgress = view.findViewById(R.id.progress); - - alert.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int id) { - dialog.cancel(); - } - }); - + mPassphraseText.setText(message); if (keyType == CanonicalizedSecretKey.SecretKeyType.PATTERN) { // start pattern dialog and show progress circle here... // Intent patternActivity = new Intent(getActivity(), LockPatternActivity.class); // patternActivity.putExtra(LockPatternActivity.EXTRA_PATTERN, "123"); // startActivityForResult(patternActivity, REQUEST_CODE_ENTER_PATTERN); - mInput.setVisibility(View.GONE); + mInput.setVisibility(View.INVISIBLE); mProgress.setVisibility(View.VISIBLE); } else { // Hack to open keyboard. @@ -322,7 +323,7 @@ public class PassphraseDialogActivity extends FragmentActivity { return; } - mInput.setVisibility(View.GONE); + mInput.setVisibility(View.INVISIBLE); mProgress.setVisibility(View.VISIBLE); positive.setEnabled(false); @@ -364,7 +365,7 @@ public class PassphraseDialogActivity extends FragmentActivity { mPassphraseEditText.setText(""); mPassphraseEditText.setError(getString(R.string.wrong_passphrase)); mInput.setVisibility(View.VISIBLE); - mProgress.setVisibility(View.GONE); + mProgress.setVisibility(View.INVISIBLE); positive.setEnabled(true); return; } diff --git a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml index 2ca5199fd..d2e85633f 100644 --- a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml +++ b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml @@ -1,16 +1,25 @@ - + android:orientation="vertical"> + + + android:visibility="invisible"> - \ No newline at end of file + \ No newline at end of file From 7b0e067f63f6f463cd7775347a7bf1c6e3c232c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 22:44:32 +0100 Subject: [PATCH 30/53] Fix expiry dialog, reorder layouts --- .../ui/dialog/AddSubkeyDialogFragment.java | 12 ++- .../EditSubkeyExpiryDialogFragment.java | 76 ++++++++++--------- .../dialog/SetPassphraseDialogFragment.java | 1 - .../res/layout/edit_subkey_expiry_dialog.xml | 60 ++++++++++----- OpenKeychain/src/main/res/values/strings.xml | 5 +- 5 files changed, 92 insertions(+), 62 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java index d5376cbdc..0b1d39fc1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java @@ -137,12 +137,10 @@ public class AddSubkeyDialogFragment extends DialogFragment { } }); - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { - // date picker works based on default time zone - Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault()); - minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today) - mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime()); - } + // date picker works based on default time zone + Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault()); + minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today) + mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime()); { ArrayList> choices = new ArrayList<>(); @@ -283,7 +281,7 @@ public class AddSubkeyDialogFragment extends DialogFragment { // For EC keys, add a curve if (algorithm == Algorithm.ECDH || algorithm == Algorithm.ECDSA) { curve = ((Choice) mCurveSpinner.getSelectedItem()).getId(); - // Otherwise, get a keysize + // Otherwise, get a keysize } else { keySize = getProperKeyLength(algorithm, getSelectedKeyLength()); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java index fc618c9eb..37e05a61d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java @@ -25,11 +25,14 @@ import android.os.Message; import android.os.Messenger; import android.os.RemoteException; import android.support.v4.app.DialogFragment; +import android.text.format.DateFormat; import android.view.LayoutInflater; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.DatePicker; +import android.widget.LinearLayout; +import android.widget.TextView; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -97,62 +100,65 @@ public class EditSubkeyExpiryDialogFragment extends DialogFragment { final CheckBox noExpiry = (CheckBox) view.findViewById(R.id.edit_subkey_expiry_no_expiry); final DatePicker datePicker = (DatePicker) view.findViewById(R.id.edit_subkey_expiry_date_picker); + final TextView currentExpiry = (TextView) view.findViewById(R.id.edit_subkey_expiry_current_expiry); + final LinearLayout expiryLayout = (LinearLayout) view.findViewById(R.id.edit_subkey_expiry_layout); noExpiry.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { - datePicker.setVisibility(View.GONE); + expiryLayout.setVisibility(View.GONE); } else { - datePicker.setVisibility(View.VISIBLE); + expiryLayout.setVisibility(View.VISIBLE); } } }); - // init date picker with default selected date if (expiry == 0L) { noExpiry.setChecked(true); - datePicker.setVisibility(View.GONE); + expiryLayout.setVisibility(View.GONE); - Calendar todayCal = Calendar.getInstance(TimeZone.getDefault()); - if (creationCal.after(todayCal)) { - // Note: This is just for the rare cases where creation is _after_ today - - // set it to creation date +1 day (don't set it to creationCal, it would break crash - // datePicker.setMinDate() execution with IllegalArgumentException - Calendar creationCalPlusOne = (Calendar) creationCal.clone(); - creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1); - datePicker.init( - creationCalPlusOne.get(Calendar.YEAR), - creationCalPlusOne.get(Calendar.MONTH), - creationCalPlusOne.get(Calendar.DAY_OF_MONTH), - null - ); - - } else { - // normally, just init with today - datePicker.init( - todayCal.get(Calendar.YEAR), - todayCal.get(Calendar.MONTH), - todayCal.get(Calendar.DAY_OF_MONTH), - null - ); - } + currentExpiry.setText(R.string.btn_no_date); } else { noExpiry.setChecked(false); - datePicker.setVisibility(View.VISIBLE); + expiryLayout.setVisibility(View.VISIBLE); - // set date picker to current expiry + // convert from UTC to time zone of device + Calendar expiryCalTimeZone = (Calendar) expiryCal.clone(); + expiryCalTimeZone.setTimeZone(TimeZone.getDefault()); + currentExpiry.setText(DateFormat.getDateFormat( + getActivity()).format(expiryCalTimeZone.getTime())); + } + + // date picker works based on default time zone + Calendar todayCal = Calendar.getInstance(TimeZone.getDefault()); + if (creationCal.after(todayCal)) { + // NOTE: This is just for the rare cases where creation is _after_ today + // Min Date: Creation date + 1 day + + Calendar creationCalPlusOne = (Calendar) creationCal.clone(); + creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1); + datePicker.setMinDate(creationCalPlusOne.getTime().getTime()); datePicker.init( - expiryCal.get(Calendar.YEAR), - expiryCal.get(Calendar.MONTH), - expiryCal.get(Calendar.DAY_OF_MONTH), + creationCalPlusOne.get(Calendar.YEAR), + creationCalPlusOne.get(Calendar.MONTH), + creationCalPlusOne.get(Calendar.DAY_OF_MONTH), + null + ); + } else { + // Min Date: today + 1 day + + // at least one day after creation (today) + todayCal.add(Calendar.DAY_OF_YEAR, 1); + datePicker.setMinDate(todayCal.getTime().getTime()); + datePicker.init( + todayCal.get(Calendar.YEAR), + todayCal.get(Calendar.MONTH), + todayCal.get(Calendar.DAY_OF_MONTH), null ); } - datePicker.setMinDate(creationCal.getTime().getTime()); - alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java index a05719072..a3ffe250b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java @@ -92,7 +92,6 @@ public class SetPassphraseDialogFragment extends DialogFragment implements OnEdi CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(activity); alert.setTitle(title); - alert.setMessage(R.string.enter_passphrase_twice); LayoutInflater inflater = activity.getLayoutInflater(); View view = inflater.inflate(R.layout.passphrase_repeat_dialog, null); diff --git a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml index 0931eb6a7..38dc03627 100644 --- a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml +++ b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml @@ -16,23 +16,49 @@ android:layout_height="wrap_content" android:text="@string/btn_no_date" /> - + + - - + android:spinnersShown="true" + android:calendarViewShown="false" /> + \ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index ca6ce1f7d..29b955bb4 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -67,6 +67,8 @@ "Certificates" "Encrypt" "Decrypt" + "Current expiry" + "New expiry" "Decrypt, verify, and save file" @@ -226,7 +228,6 @@ "Select a file first." "Successfully signed and/or encrypted." "Successfully signed and/or encrypted to clipboard." - "Enter the passphrase twice." "Select at least one encryption key." "Select at least one encryption key or a signature key." "Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists." @@ -1027,7 +1028,7 @@ "Filename: %s" "MIME type: %s" "Modification time: %s" - "Filesize: %s" + "File size: %s" "Verifying signature data" "Integrity check error!" "OK" From c00a1f1ec39dbdd60302f2ec04ce6356d0e89101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Mar 2015 23:43:25 +0100 Subject: [PATCH 31/53] Show name only in passphrase dialog --- .../keychain/ui/PassphraseDialogActivity.java | 9 ++++++++- .../ui/dialog/CustomAlertDialogBuilder.java | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java index 18d574956..bb669f6b8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java @@ -46,6 +46,7 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround; import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey; import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKeyRing; +import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing; @@ -209,7 +210,13 @@ public class PassphraseDialogActivity extends FragmentActivity { // above can't be statically verified to have been set in all cases because // the catch clause doesn't return. try { - userId = mSecretRing.getPrimaryUserIdWithFallback(); + String mainUserId = mSecretRing.getPrimaryUserIdWithFallback(); + String[] mainUserIdSplit = KeyRing.splitUserId(mainUserId); + if (mainUserIdSplit[0] != null) { + userId = mainUserIdSplit[0]; + } else { + userId = getString(R.string.user_id_no_name); + } } catch (PgpKeyNotFoundException e) { userId = null; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java index d405b1dda..794af5b15 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2014 Dominik Schürmann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package org.sufficientlysecure.keychain.ui.dialog; import android.app.AlertDialog; From 024ba19499f6975e2e153ca496d94cb5124f5dd8 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Wed, 4 Mar 2015 04:14:28 +0530 Subject: [PATCH 32/53] corrected code style --- .../keychain/ui/LogDisplayFragment.java | 133 ++++++++++-------- 1 file changed, 75 insertions(+), 58 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java index ad5f9d53c..138f2f4e7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java @@ -100,7 +100,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe @Override public boolean onOptionsItemSelected(MenuItem item) { - switch(item.getItemId()) { + switch (item.getItemId()) { case R.id.menu_log_display_export_log: exportLog(); break; @@ -116,100 +116,94 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe private void writeToLogFile(final OperationResult.OperationLog operationLog, final File f) { OperationResult.OperationLog currLog = new OperationResult.OperationLog(); - currLog.add(OperationResult.LogType.MSG_EXPORT_LOG,0); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG, 0); boolean error = false; PrintWriter pw = null; try { - pw = new PrintWriter(f); - pw.print(getPrintableOperationLog(operationLog,"")); - if(pw.checkError()) {//IOException - Log.e(Constants.TAG, "Log Export I/O Exception "+f.getAbsolutePath()); - currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING,1); - error = true; - } - } catch(FileNotFoundException e) { - Log.e(Constants.TAG, "File not found for exporting log "+f.getAbsolutePath()); + pw = new PrintWriter(f); + pw.print(getPrintableOperationLog(operationLog, "")); + if (pw.checkError()) {//IOException + Log.e(Constants.TAG, "Log Export I/O Exception " + f.getAbsolutePath()); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING, 1); + error = true; + } + } catch (FileNotFoundException e) { + Log.e(Constants.TAG, "File not found for exporting log " + f.getAbsolutePath()); currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_FOPEN, 1); error = true; } - if(pw!=null) { + if (pw != null) { pw.close(); - if(!error && pw.checkError()) {//check if it is only pw.close() which generated error - currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING,1); + if (!error && pw.checkError()) {//check if it is only pw.close() which generated error + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING, 1); error = true; } } - if(!error) currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_SUCCESS,1); + if (!error) currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_SUCCESS, 1); - int opResultCode = error?OperationResult.RESULT_ERROR:OperationResult.RESULT_OK; - OperationResult opResult = new LogExportResult(opResultCode,currLog); + int opResultCode = error ? OperationResult.RESULT_ERROR : OperationResult.RESULT_OK; + OperationResult opResult = new LogExportResult(opResultCode, currLog); opResult.createNotify(getActivity()).show(); } - private static class LogExportResult extends OperationResult { - - public LogExportResult(int result, OperationLog log) { - super(result, log); - } - - /** trivial but necessary to implement the Parcelable protocol. */ - public LogExportResult(Parcel source) { - super(source); - } - - public static Creator CREATOR = new Creator() { - public LogExportResult createFromParcel(final Parcel source) { - return new LogExportResult(source); - } - - public LogExportResult[] newArray(final int size) { - return new LogExportResult[size]; - } - }; - } /** * returns an indented String of an entire OperationLog - * @param operationLog log to be converted to indented, printable format + * + * @param opLog log to be converted to indented, printable format * @param basePadding padding to add at the start of all log entries, made for use with SubLogs * @return printable, indented version of passed operationLog */ - private String getPrintableOperationLog(OperationResult.OperationLog operationLog, String basePadding) { + private String getPrintableOperationLog(OperationResult.OperationLog opLog, String basePadding) { String log = ""; - Iterator logIterator = operationLog.iterator(); - while(logIterator.hasNext()) { - log += getPrintableLogEntry(logIterator.next(), basePadding)+"\n"; + for (Iterator logIterator = opLog.iterator(); logIterator.hasNext(); ) { + log += getPrintableLogEntry(logIterator.next(), basePadding) + "\n"; } - log = log.substring(0,log.length()-1);//gets rid of extra new line + log = log.substring(0, log.length() - 1);//gets rid of extra new line return log; } + /** * returns an indented String of a LogEntryParcel including any sub-logs it may contain + * * @param entryParcel log entryParcel whose String representation is to be obtained * @return indented version of passed log entryParcel in a readable format */ private String getPrintableLogEntry(OperationResult.LogEntryParcel entryParcel, String basePadding) { - String logText = ""; final String indent = " ";//4 spaces = 1 Indent level String padding = basePadding; - for(int i =0;i CREATOR = new Creator() { + public LogExportResult createFromParcel(final Parcel source) { + return new LogExportResult(source); + } + + public LogExportResult[] newArray(final int size) { + return new LogExportResult[size]; + } + }; + + public LogExportResult(int result, OperationLog log) { + super(result, log); + } + + /** + * trivial but necessary to implement the Parcelable protocol. + */ + public LogExportResult(Parcel source) { + super(source); + } + } + @Override public void onItemClick(AdapterView parent, View view, int position, long id) { LogEntryParcel parcel = mAdapter.getItem(position); From 0362dc6c1df7e33e9c25abb5b8aed293c67f1f84 Mon Sep 17 00:00:00 2001 From: Ishan Khanna Date: Wed, 4 Mar 2015 15:47:44 +0530 Subject: [PATCH 33/53] Orange Toolbar Added Fixes #1088 --- .../ui/CertifyFingerprintActivity.java | 21 ------------- .../keychain/ui/CertifyKeyActivity.java | 21 ------------- .../layout/certify_fingerprint_activity.xml | 2 +- .../main/res/layout/certify_key_activity.xml | 2 +- .../res/layout/toolbar_standalone_orange.xml | 31 +++++++++++++++++++ 5 files changed, 33 insertions(+), 44 deletions(-) create mode 100644 OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java index fcfcc9cb2..b7c80c1ed 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java @@ -19,10 +19,7 @@ package org.sufficientlysecure.keychain.ui; import android.net.Uri; import android.os.Bundle; -import android.support.v7.widget.Toolbar; import android.view.View; -import android.widget.ImageView; -import android.widget.RelativeLayout; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -58,7 +55,6 @@ public class CertifyFingerprintActivity extends BaseActivity { @Override protected void initLayout() { setContentView(R.layout.certify_fingerprint_activity); - changeToolbarColor(); } private void startFragment(Bundle savedInstanceState, Uri dataUri) { @@ -81,21 +77,4 @@ public class CertifyFingerprintActivity extends BaseActivity { getSupportFragmentManager().executePendingTransactions(); } - /** - * Changes the color of our ToolBar. - * - * Currently Set to ORANGE - */ - private void changeToolbarColor() { - RelativeLayout mToolBarInclude = (RelativeLayout) findViewById(R.id.toolbar_include); - - // Changes the color of the Status Bar strip - ImageView mStatusBar = (ImageView) mToolBarInclude.findViewById(R.id.status_bar); - mStatusBar.setBackgroundResource(getResources().getColor(R.color.android_orange_dark)); - - // Changes the color of our Tool Bar - Toolbar toolbar = (Toolbar) mToolBarInclude.findViewById(R.id.toolbar); - toolbar.setBackgroundResource(getResources().getColor(R.color.android_orange_light)); - } - } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java index a2e717ed2..1fb88b182 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java @@ -18,10 +18,6 @@ package org.sufficientlysecure.keychain.ui; -import android.support.v7.widget.Toolbar; -import android.widget.ImageView; -import android.widget.RelativeLayout; - import org.sufficientlysecure.keychain.R; /** @@ -36,23 +32,6 @@ public class CertifyKeyActivity extends BaseActivity { @Override protected void initLayout() { setContentView(R.layout.certify_key_activity); - changeToolbarColor(); } - /** - * Changes the color of our ToolBar. - * - * Currently Set to ORANGE - */ - private void changeToolbarColor() { - RelativeLayout mToolBarInclude = (RelativeLayout) findViewById(R.id.toolbar_include); - - // Changes the color of the Status Bar strip - ImageView mStatusBar = (ImageView) mToolBarInclude.findViewById(R.id.status_bar); - mStatusBar.setBackgroundResource(getResources().getColor(R.color.android_orange_dark)); - - // Changes the color of our Tool Bar - Toolbar toolbar = (Toolbar) mToolBarInclude.findViewById(R.id.toolbar); - toolbar.setBackgroundResource(getResources().getColor(R.color.android_orange_light)); - } } diff --git a/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml b/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml index ec91d1455..764b2eac0 100644 --- a/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml +++ b/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml @@ -7,7 +7,7 @@ + layout="@layout/toolbar_standalone_orange" /> + layout="@layout/toolbar_standalone_orange" /> + + + + + + + + From aba6569dd203a537c8c9491dd93131a2cf8d44cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 11:36:26 +0100 Subject: [PATCH 34/53] Simplify dialogs according to Material Design --- .../ui/dialog/DeleteFileDialogFragment.java | 5 +---- .../ui/dialog/DeleteKeyDialogFragment.java | 17 ++++++++--------- OpenKeychain/src/main/res/values/strings.xml | 8 ++++---- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java index 879e3f6da..07462b4ff 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java @@ -62,12 +62,9 @@ public class DeleteFileDialogFragment extends DialogFragment { CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(activity); - - alert.setIcon(R.drawable.ic_dialog_alert_holo_light); - alert.setTitle(R.string.warning); alert.setMessage(this.getString(R.string.file_delete_confirmation, deleteFilename)); - alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + alert.setPositiveButton(R.string.btn_delete, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java index 802f0c11b..32789d53b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java @@ -83,8 +83,6 @@ public class DeleteKeyDialogFragment extends DialogFragment { mMainMessage = (TextView) mInflateView.findViewById(R.id.mainMessage); - builder.setTitle(R.string.warning); - final boolean hasSecret; // If only a single key has been selected @@ -110,12 +108,14 @@ public class DeleteKeyDialogFragment extends DialogFragment { } hasSecret = ((Long) data.get(KeyRings.HAS_ANY_SECRET)) == 1; - // Set message depending on which key it is. - mMainMessage.setText(getString( - hasSecret ? R.string.secret_key_deletion_confirmation - : R.string.public_key_deletetion_confirmation, - name - )); + if (hasSecret) { + // show title only for secret key deletions, + // see http://www.google.com/design/spec/components/dialogs.html#dialogs-behavior + builder.setTitle(getString(R.string.title_delete_secret_key, name)); + mMainMessage.setText(getString(R.string.secret_key_deletion_confirmation, name)); + } else { + mMainMessage.setText(getString(R.string.public_key_deletetion_confirmation, name)); + } } catch (ProviderHelper.NotFoundException e) { dismiss(); return null; @@ -125,7 +125,6 @@ public class DeleteKeyDialogFragment extends DialogFragment { hasSecret = false; } - builder.setIcon(R.drawable.ic_dialog_alert_holo_light); builder.setPositiveButton(R.string.btn_delete, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 29b955bb4..51574ded8 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -42,6 +42,7 @@ "Exchange Keys" "Advanced Key Info" "Keys" + "Delete YOUR key \'%s\'?" "Identities" @@ -203,7 +204,6 @@ "ECDH" "ECDSA" "Open…" - "Warning" "Error" "Error: %s" @@ -233,9 +233,9 @@ "Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists." "Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists." "Please specify which file to export to.\nWARNING: File will be overwritten if it exists." - "Do you really want to delete all selected public keys?\nYou can't undo this!" - "Do you really want to delete the SECRET key '%s'?\nYou can't undo this!" - "Do you really want to delete the public key '%s'?\nYou can't undo this!" + "Do you really want to delete all selected keys?" + "After deletion you will not be able to read messages encrypted with this key and loose all key verifications related to it!\nDo you really want to delete YOUR key '%s'?" + "Delete key '%s'?" "Also export secret keys" "You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys." From 71db34ed75c740f898dff62ef775082c91812c00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 11:40:12 +0100 Subject: [PATCH 35/53] Simplify certify strings --- OpenKeychain/src/main/res/values/strings.xml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 51574ded8..0fb59b5d1 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -34,7 +34,7 @@ "Export Keys" "Key Not Found" "Upload to Keyserver" - "Certify Identities" + "Verify Key" "Key Details" "Help" "Log" @@ -58,11 +58,9 @@ "Certify" "Actions" "Key" - "Your Key used for certification" "Synchronize Key" "Keyserver" "Fingerprint" - "Key to be certified" "Files" "Text" "Certificates" @@ -164,13 +162,6 @@ "<no name>" "<none>" - "<no key>" - "can encrypt" - "can sign" - "can certify" - "cannot certify" - "expired" - "revoked" "1 key" @@ -535,7 +526,7 @@ "Edit key" "Encrypt text" "files" - "Certify identities" + "Verify key" "Update from keyserver" "Share with…" "Share over NFC" From 9b565f1875283606dd79dd0656cfc7316d901eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 11:44:37 +0100 Subject: [PATCH 36/53] More simplification of delete strings --- OpenKeychain/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 0fb59b5d1..30c3d5018 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -225,7 +225,7 @@ "Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists." "Please specify which file to export to.\nWARNING: File will be overwritten if it exists." "Do you really want to delete all selected keys?" - "After deletion you will not be able to read messages encrypted with this key and loose all key verifications related to it!\nDo you really want to delete YOUR key '%s'?" + "After deletion you will not be able to read messages encrypted with this key and loose all key verifications related to it!" "Delete key '%s'?" "Also export secret keys" "You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys." From b10fe01b82d380c1d690f39e9fce6bc6a8ee6d36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 11:46:31 +0100 Subject: [PATCH 37/53] Fix status bar orange --- OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml index 352da739b..0336b51fd 100644 --- a/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml +++ b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml @@ -15,7 +15,7 @@ android:id="@+id/status_bar" android:layout_width="match_parent" android:layout_height="@dimen/statusbar_height" - android:background="@color/android_orange_dark" /> + android:background="@color/android_orange_light" /> Date: Wed, 4 Mar 2015 15:02:51 +0100 Subject: [PATCH 38/53] Use master key id instead of fingerprint in sync adapter, use IS_EXPIRED instead of EXPIRY where possible --- .../keychain/ui/KeyListFragment.java | 8 +- .../keychain/ui/ViewKeyActivity.java | 20 +- .../keychain/ui/ViewKeyAdvActivity.java | 9 +- .../keychain/ui/ViewKeyAdvShareFragment.java | 4 +- .../ui/ViewKeyAdvUserIdsFragment.java | 4 +- .../keychain/ui/ViewKeyFragment.java | 4 +- .../keychain/ui/ViewKeyTrustFragment.java | 7 +- .../ui/widget/EncryptKeyCompletionView.java | 2 +- .../keychain/util/ContactHelper.java | 192 ++++++++++-------- 9 files changed, 130 insertions(+), 120 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index b56da463a..2e571a7db 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -77,7 +77,6 @@ import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; import java.io.IOException; -import java.util.Date; import java.util.HashMap; import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter; @@ -268,7 +267,7 @@ public class KeyListFragment extends LoaderFragment KeyRings.MASTER_KEY_ID, KeyRings.USER_ID, KeyRings.IS_REVOKED, - KeyRings.EXPIRY, + KeyRings.IS_EXPIRED, KeyRings.VERIFIED, KeyRings.HAS_ANY_SECRET }; @@ -276,7 +275,7 @@ public class KeyListFragment extends LoaderFragment static final int INDEX_MASTER_KEY_ID = 1; static final int INDEX_USER_ID = 2; static final int INDEX_IS_REVOKED = 3; - static final int INDEX_EXPIRY = 4; + static final int INDEX_IS_EXPIRED = 4; static final int INDEX_VERIFIED = 5; static final int INDEX_HAS_ANY_SECRET = 6; @@ -708,8 +707,7 @@ public class KeyListFragment extends LoaderFragment long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID); boolean isSecret = cursor.getInt(INDEX_HAS_ANY_SECRET) != 0; boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0; - boolean isExpired = !cursor.isNull(INDEX_EXPIRY) - && new Date(cursor.getLong(INDEX_EXPIRY) * 1000).before(new Date()); + boolean isExpired = cursor.getInt(INDEX_IS_EXPIRED) != 0; boolean isVerified = cursor.getInt(INDEX_VERIFIED) > 0; h.mMasterKeyId = masterKeyId; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 0be6c26f6..9b0f1b319 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -83,7 +83,6 @@ import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; public class ViewKeyActivity extends BaseActivity implements @@ -750,7 +749,7 @@ public class ViewKeyActivity extends BaseActivity implements KeychainContract.KeyRings.MASTER_KEY_ID, KeychainContract.KeyRings.USER_ID, KeychainContract.KeyRings.IS_REVOKED, - KeychainContract.KeyRings.EXPIRY, + KeychainContract.KeyRings.IS_EXPIRED, KeychainContract.KeyRings.VERIFIED, KeychainContract.KeyRings.HAS_ANY_SECRET, KeychainContract.KeyRings.FINGERPRINT, @@ -760,7 +759,7 @@ public class ViewKeyActivity extends BaseActivity implements static final int INDEX_MASTER_KEY_ID = 1; static final int INDEX_USER_ID = 2; static final int INDEX_IS_REVOKED = 3; - static final int INDEX_EXPIRY = 4; + static final int INDEX_IS_EXPIRED = 4; static final int INDEX_VERIFIED = 5; static final int INDEX_HAS_ANY_SECRET = 6; static final int INDEX_FINGERPRINT = 7; @@ -810,8 +809,7 @@ public class ViewKeyActivity extends BaseActivity implements mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0; mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0; boolean isRevoked = data.getInt(INDEX_IS_REVOKED) > 0; - boolean isExpired = !data.isNull(INDEX_EXPIRY) - && new Date(data.getLong(INDEX_EXPIRY) * 1000).before(new Date()); + boolean isExpired = data.getInt(INDEX_IS_EXPIRED) != 0; mIsVerified = data.getInt(INDEX_VERIFIED) > 0; // if the refresh animation isn't playing @@ -821,10 +819,10 @@ public class ViewKeyActivity extends BaseActivity implements // this is done at the end of the animation otherwise } - AsyncTask photoTask = - new AsyncTask() { - protected Bitmap doInBackground(String... fingerprint) { - return ContactHelper.photoFromFingerprint(getContentResolver(), fingerprint[0]); + AsyncTask photoTask = + new AsyncTask() { + protected Bitmap doInBackground(Long... mMasterKeyId) { + return ContactHelper.photoFromMasterKeyId(getContentResolver(), mMasterKeyId[0]); } protected void onPostExecute(Bitmap photo) { @@ -871,7 +869,7 @@ public class ViewKeyActivity extends BaseActivity implements if ( !mFingerprint.equals(oldFingerprint)) { loadQrCode(mFingerprint); } - photoTask.execute(mFingerprint); + photoTask.execute(mMasterKeyId); mQrCodeLayout.setVisibility(View.VISIBLE); // and place leftOf qr code @@ -917,7 +915,7 @@ public class ViewKeyActivity extends BaseActivity implements KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, KeyFormattingUtils.STATE_VERIFIED, R.color.icons, true); color = getResources().getColor(R.color.primary); - photoTask.execute(mFingerprint); + photoTask.execute(mMasterKeyId); mFab.setVisibility(View.GONE); } else { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java index 9d79b377c..9390e8a69 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java @@ -43,8 +43,6 @@ import org.sufficientlysecure.keychain.util.ContactHelper; import org.sufficientlysecure.keychain.util.ExportHelper; import org.sufficientlysecure.keychain.util.Log; -import java.util.Date; - public class ViewKeyAdvActivity extends BaseActivity implements LoaderManager.LoaderCallbacks { @@ -159,7 +157,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements KeychainContract.KeyRings.MASTER_KEY_ID, KeychainContract.KeyRings.USER_ID, KeychainContract.KeyRings.IS_REVOKED, - KeychainContract.KeyRings.EXPIRY, + KeychainContract.KeyRings.IS_EXPIRED, KeychainContract.KeyRings.VERIFIED, KeychainContract.KeyRings.HAS_ANY_SECRET }; @@ -167,7 +165,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements static final int INDEX_MASTER_KEY_ID = 1; static final int INDEX_USER_ID = 2; static final int INDEX_IS_REVOKED = 3; - static final int INDEX_EXPIRY = 4; + static final int INDEX_IS_EXPIRED = 4; static final int INDEX_VERIFIED = 5; static final int INDEX_HAS_ANY_SECRET = 6; @@ -212,8 +210,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements boolean isSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0; boolean isRevoked = data.getInt(INDEX_IS_REVOKED) > 0; - boolean isExpired = !data.isNull(INDEX_EXPIRY) - && new Date(data.getLong(INDEX_EXPIRY) * 1000).before(new Date()); + boolean isExpired = data.getInt(INDEX_IS_EXPIRED) != 0; boolean isVerified = data.getInt(INDEX_VERIFIED) > 0; // Note: order is important diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java index 8d0a2dd1d..95a6faea9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java @@ -260,7 +260,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements static final String[] UNIFIED_PROJECTION = new String[]{ KeyRings._ID, KeyRings.MASTER_KEY_ID, KeyRings.HAS_ANY_SECRET, KeyRings.USER_ID, KeyRings.FINGERPRINT, - KeyRings.ALGORITHM, KeyRings.KEY_SIZE, KeyRings.CREATION, KeyRings.EXPIRY, + KeyRings.ALGORITHM, KeyRings.KEY_SIZE, KeyRings.CREATION, KeyRings.IS_EXPIRED, }; static final int INDEX_UNIFIED_MASTER_KEY_ID = 1; @@ -270,7 +270,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements static final int INDEX_UNIFIED_ALGORITHM = 5; static final int INDEX_UNIFIED_KEY_SIZE = 6; static final int INDEX_UNIFIED_CREATION = 7; - static final int INDEX_UNIFIED_EXPIRY = 8; + static final int INDEX_UNIFIED_ID_EXPIRED = 8; public Loader onCreateLoader(int id, Bundle args) { setContentShown(false); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java index c4e6639a8..7bfebaf62 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java @@ -114,12 +114,12 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements static final String[] UNIFIED_PROJECTION = new String[]{ KeyRings._ID, KeyRings.MASTER_KEY_ID, - KeyRings.HAS_ANY_SECRET, KeyRings.IS_REVOKED, KeyRings.EXPIRY, KeyRings.HAS_ENCRYPT + KeyRings.HAS_ANY_SECRET, KeyRings.IS_REVOKED, KeyRings.IS_EXPIRED, KeyRings.HAS_ENCRYPT }; static final int INDEX_UNIFIED_MASTER_KEY_ID = 1; static final int INDEX_UNIFIED_HAS_ANY_SECRET = 2; static final int INDEX_UNIFIED_IS_REVOKED = 3; - static final int INDEX_UNIFIED_EXPIRY = 4; + static final int INDEX_UNIFIED_IS_EXPIRED = 4; static final int INDEX_UNIFIED_HAS_ENCRYPT = 5; public Loader onCreateLoader(int id, Bundle args) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java index 32630b459..628970b27 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java @@ -121,7 +121,7 @@ public class ViewKeyFragment extends LoaderFragment implements KeychainContract.KeyRings.MASTER_KEY_ID, KeychainContract.KeyRings.USER_ID, KeychainContract.KeyRings.IS_REVOKED, - KeychainContract.KeyRings.EXPIRY, + KeychainContract.KeyRings.IS_EXPIRED, KeychainContract.KeyRings.VERIFIED, KeychainContract.KeyRings.HAS_ANY_SECRET, KeychainContract.KeyRings.FINGERPRINT, @@ -131,7 +131,7 @@ public class ViewKeyFragment extends LoaderFragment implements static final int INDEX_MASTER_KEY_ID = 1; static final int INDEX_USER_ID = 2; static final int INDEX_IS_REVOKED = 3; - static final int INDEX_EXPIRY = 4; + static final int INDEX_IS_EXPIRED = 4; static final int INDEX_VERIFIED = 5; static final int INDEX_HAS_ANY_SECRET = 6; static final int INDEX_FINGERPRINT = 7; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java index 25edc7a02..d22f01a48 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java @@ -115,12 +115,12 @@ public class ViewKeyTrustFragment extends LoaderFragment implements } static final String[] TRUST_PROJECTION = new String[]{ - KeyRings._ID, KeyRings.FINGERPRINT, KeyRings.IS_REVOKED, KeyRings.EXPIRY, + KeyRings._ID, KeyRings.FINGERPRINT, KeyRings.IS_REVOKED, KeyRings.IS_EXPIRED, KeyRings.HAS_ANY_SECRET, KeyRings.VERIFIED }; static final int INDEX_TRUST_FINGERPRINT = 1; static final int INDEX_TRUST_IS_REVOKED = 2; - static final int INDEX_TRUST_EXPIRY = 3; + static final int INDEX_TRUST_IS_EXPIRED = 3; static final int INDEX_UNIFIED_HAS_ANY_SECRET = 4; static final int INDEX_VERIFIED = 5; @@ -169,8 +169,7 @@ public class ViewKeyTrustFragment extends LoaderFragment implements nothingSpecial = false; } else { - Date expiryDate = new Date(data.getLong(INDEX_TRUST_EXPIRY) * 1000); - if (!data.isNull(INDEX_TRUST_EXPIRY) && expiryDate.before(new Date())) { + if (data.getInt(INDEX_TRUST_IS_EXPIRED) != 0) { // if expired, don’t trust it! message.append(getString(R.string.key_trust_expired)). diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java index f05f5f96b..48648f2cf 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java @@ -90,7 +90,7 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView { } private void setImageByKey(ImageView view, EncryptionKey key) { - Bitmap photo = ContactHelper.photoFromFingerprint(getContext().getContentResolver(), key.getFingerprint()); + Bitmap photo = ContactHelper.photoFromMasterKeyId(getContext().getContentResolver(), key.getKeyId()); if (photo != null) { view.setImageBitmap(photo); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index 28480cee5..2658f3ba0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -20,18 +20,15 @@ package org.sufficientlysecure.keychain.util; import android.accounts.Account; import android.accounts.AccountManager; import android.annotation.TargetApi; -import android.content.ContentProviderClient; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.ContentUris; -import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Build; -import android.os.RemoteException; import android.provider.ContactsContract; import android.util.Patterns; @@ -44,7 +41,6 @@ import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import java.io.InputStream; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -54,39 +50,17 @@ import java.util.Set; public class ContactHelper { public static final String[] KEYS_TO_CONTACT_PROJECTION = new String[]{ - KeychainContract.KeyRings.USER_ID, - KeychainContract.KeyRings.FINGERPRINT, - KeychainContract.KeyRings.KEY_ID, KeychainContract.KeyRings.MASTER_KEY_ID, - KeychainContract.KeyRings.EXPIRY, + KeychainContract.KeyRings.USER_ID, + KeychainContract.KeyRings.IS_EXPIRED, KeychainContract.KeyRings.IS_REVOKED}; - public static final int INDEX_USER_ID = 0; - public static final int INDEX_FINGERPRINT = 1; - public static final int INDEX_KEY_ID = 2; - public static final int INDEX_MASTER_KEY_ID = 3; - public static final int INDEX_EXPIRY = 4; - public static final int INDEX_IS_REVOKED = 5; + public static final int INDEX_MASTER_KEY_ID = 0; + public static final int INDEX_USER_ID = 1; + public static final int INDEX_IS_EXPIRED = 2; + public static final int INDEX_IS_REVOKED = 3; - public static final String[] USER_IDS_PROJECTION = new String[]{ - UserPackets.USER_ID - }; - - public static final int INDEX_USER_IDS_USER_ID = 0; - - public static final String NON_REVOKED_SELECTION = UserPackets.IS_REVOKED + "=0"; - - public static final String[] ID_PROJECTION = new String[]{ContactsContract.RawContacts._ID}; - public static final String[] SOURCE_ID_PROJECTION = new String[]{ContactsContract.RawContacts.SOURCE_ID}; - - public static final String ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION = - ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?"; - public static final String ACCOUNT_TYPE_SELECTION = ContactsContract.RawContacts.ACCOUNT_TYPE + "=?"; - public static final String RAW_CONTACT_AND_MIMETYPE_SELECTION = - ContactsContract.Data.RAW_CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=?"; - public static final String ID_SELECTION = ContactsContract.RawContacts._ID + "=?"; - - private static final Map photoCache = new HashMap<>(); + private static final Map photoCache = new HashMap<>(); public static List getPossibleUserEmails(Context context) { Set accountMails = getAccountEmails(context); @@ -282,20 +256,22 @@ public class ContactHelper { return null; } - public static Bitmap photoFromFingerprint(ContentResolver contentResolver, String fingerprint) { - if (fingerprint == null) { + public static Bitmap photoFromMasterKeyId(ContentResolver contentResolver, long masterKeyId) { + if (masterKeyId == -1) { return null; } - if (!photoCache.containsKey(fingerprint)) { - photoCache.put(fingerprint, loadPhotoFromFingerprint(contentResolver, fingerprint)); + if (!photoCache.containsKey(masterKeyId)) { + photoCache.put(masterKeyId, loadPhotoFromFingerprint(contentResolver, masterKeyId)); } - return photoCache.get(fingerprint); + return photoCache.get(masterKeyId); } - private static Bitmap loadPhotoFromFingerprint(ContentResolver contentResolver, String fingerprint) { - if (fingerprint == null) return null; + private static Bitmap loadPhotoFromFingerprint(ContentResolver contentResolver, long masterKeyId) { + if (masterKeyId == -1) { + return null; + } try { - int rawContactId = findRawContactId(contentResolver, fingerprint); + long rawContactId = findRawContactId(contentResolver, masterKeyId); if (rawContactId == -1) { return null; } @@ -313,11 +289,13 @@ public class ContactHelper { } /** - * Write the current Keychain to the contact db + * Write/Update the current OpenKeychain keys to the contact db */ public static void writeKeysToContacts(Context context) { ContentResolver resolver = context.getContentResolver(); - Set deletedKeys = getRawContactFingerprints(resolver); + Set deletedKeys = getRawContactMasterKeyIds(resolver); + + debugDeleteRawContacts(resolver); // ContentProviderClient client = resolver.acquireContentProviderClient(ContactsContract.AUTHORITY_URI); // ContentValues values = new ContentValues(); @@ -336,18 +314,18 @@ public class ContactHelper { null, null, null); if (cursor != null) { while (cursor.moveToNext()) { - String[] primaryUserId = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID)); - String fingerprint = KeyFormattingUtils.convertFingerprintToHex(cursor.getBlob(INDEX_FINGERPRINT)); - deletedKeys.remove(fingerprint); - - Log.d(Constants.TAG, "fingerprint: " + fingerprint); - - String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_KEY_ID)); long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID); - boolean isExpired = !cursor.isNull(INDEX_EXPIRY) - && new Date(cursor.getLong(INDEX_EXPIRY) * 1000).before(new Date()); + String[] primaryUserId = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID)); + String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_MASTER_KEY_ID)); + boolean isExpired = cursor.getInt(INDEX_IS_EXPIRED) != 0; boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0; - int rawContactId = findRawContactId(resolver, fingerprint); + + Log.d(Constants.TAG, "masterKeyId: " + masterKeyId); + + deletedKeys.remove(masterKeyId); + + // get raw contact to this master key id + long rawContactId = findRawContactId(resolver, masterKeyId); ArrayList ops = new ArrayList<>(); Log.d(Constants.TAG, "raw contact id: " + rawContactId); @@ -356,16 +334,19 @@ public class ContactHelper { if (isExpired || isRevoked) { Log.d(Constants.TAG, "Expired or revoked: Deleting " + rawContactId); if (rawContactId != -1) { - resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ID_SELECTION, - new String[]{Integer.toString(rawContactId)}); + resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts._ID + "=?", + new String[]{ + Long.toString(rawContactId) + }); } } else if (primaryUserId[0] != null) { // Create a new rawcontact with corresponding key if it does not exist yet if (rawContactId == -1) { - Log.d(Constants.TAG, "Insert new raw contact with fingerprint " + fingerprint); + Log.d(Constants.TAG, "Insert new raw contact with masterKeyId " + masterKeyId); - insertContact(ops, context, fingerprint); + insertContact(ops, context, masterKeyId); writeContactKey(ops, context, rawContactId, masterKeyId, keyIdShort); } @@ -383,42 +364,72 @@ public class ContactHelper { cursor.close(); } - // Delete fingerprints that are no longer present in OK - for (String fingerprint : deletedKeys) { - resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, - new String[]{Constants.ACCOUNT_TYPE, fingerprint}); + // Delete master key ids that are no longer present in OK + for (Long masterKeyId : deletedKeys) { + Log.d(Constants.TAG, "Delete raw contact with fingerprint " + masterKeyId); + resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?", + new String[]{ + Constants.ACCOUNT_TYPE, Long.toString(masterKeyId) + }); } } /** - * @return a set of all key fingerprints currently present in the contact db + * Delete all raw contacts associated to OpenKeychain. + * + * TODO: Does this work? */ - private static Set getRawContactFingerprints(ContentResolver resolver) { - HashSet result = new HashSet<>(); - Cursor fingerprints = resolver.query(ContactsContract.RawContacts.CONTENT_URI, SOURCE_ID_PROJECTION, - ACCOUNT_TYPE_SELECTION, new String[]{Constants.ACCOUNT_TYPE}, null); - if (fingerprints != null) { - while (fingerprints.moveToNext()) { - result.add(fingerprints.getString(0)); + private static int debugDeleteRawContacts(ContentResolver resolver) { + Log.d(Constants.TAG, "Deleting all raw contacts associated to OK..."); + return resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=?", + new String[]{ + Constants.ACCOUNT_TYPE + }); + } + + /** + * @return a set of all key master key ids currently present in the contact db + */ + private static Set getRawContactMasterKeyIds(ContentResolver resolver) { + HashSet result = new HashSet<>(); + Cursor masterKeyIds = resolver.query(ContactsContract.RawContacts.CONTENT_URI, + new String[]{ + ContactsContract.RawContacts.SOURCE_ID + }, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=?", + new String[]{ + Constants.ACCOUNT_TYPE + }, null); + if (masterKeyIds != null) { + while (masterKeyIds.moveToNext()) { + result.add(masterKeyIds.getLong(0)); } - fingerprints.close(); + masterKeyIds.close(); } return result; } /** - * This will search the contact db for a raw contact with a given fingerprint + * This will search the contact db for a raw contact with a given master key id * * @return raw contact id or -1 if not found */ @TargetApi(Build.VERSION_CODES.JELLY_BEAN) - private static int findRawContactId(ContentResolver resolver, String fingerprint) { - int rawContactId = -1; - Cursor raw = resolver.query(ContactsContract.RawContacts.CONTENT_URI, ID_PROJECTION, - ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, new String[]{Constants.ACCOUNT_TYPE, fingerprint}, null, null); + private static long findRawContactId(ContentResolver resolver, long masterKeyId) { + long rawContactId = -1; + Cursor raw = resolver.query(ContactsContract.RawContacts.CONTENT_URI, + new String[]{ + ContactsContract.RawContacts._ID + }, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?", + new String[]{ + Constants.ACCOUNT_TYPE, Long.toString(masterKeyId) + }, null, null); if (raw != null) { if (raw.moveToNext()) { - rawContactId = raw.getInt(0); + rawContactId = raw.getLong(0); } raw.close(); } @@ -428,11 +439,11 @@ public class ContactHelper { /** * Creates a empty raw contact with a given fingerprint */ - private static void insertContact(ArrayList ops, Context context, String fingerprint) { + private static void insertContact(ArrayList ops, Context context, long masterKeyId) { ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, Constants.ACCOUNT_NAME) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, Constants.ACCOUNT_TYPE) - .withValue(ContactsContract.RawContacts.SOURCE_ID, fingerprint) + .withValue(ContactsContract.RawContacts.SOURCE_ID, Long.toString(masterKeyId)) .build()); } @@ -441,7 +452,7 @@ public class ContactHelper { *

* This creates the link to OK in contact details */ - private static void writeContactKey(ArrayList ops, Context context, int rawContactId, + private static void writeContactKey(ArrayList ops, Context context, long rawContactId, long masterKeyId, String keyIdShort) { ops.add(referenceRawContact(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI), rawContactId) .withValue(ContactsContract.Data.MIMETYPE, Constants.CUSTOM_CONTACT_DATA_MIME_TYPE) @@ -454,11 +465,15 @@ public class ContactHelper { * Write all known email addresses of a key (derived from user ids) to a given raw contact */ private static void writeContactEmail(ArrayList ops, ContentResolver resolver, - int rawContactId, long masterKeyId) { + long rawContactId, long masterKeyId) { ops.add(selectByRawContactAndItemType(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI), rawContactId, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE).build()); Cursor ids = resolver.query(UserPackets.buildUserIdsUri(masterKeyId), - USER_IDS_PROJECTION, NON_REVOKED_SELECTION, null, null); + new String[]{ + UserPackets.USER_ID + }, + UserPackets.IS_REVOKED + "=0", + null, null); if (ids != null) { while (ids.moveToNext()) { String[] userId = KeyRing.splitUserId(ids.getString(0)); @@ -475,7 +490,7 @@ public class ContactHelper { } } - private static void writeContactDisplayName(ArrayList ops, int rawContactId, + private static void writeContactDisplayName(ArrayList ops, long rawContactId, String displayName) { if (displayName != null) { ops.add(insertOrUpdateForRawContact(ContactsContract.Data.CONTENT_URI, rawContactId, @@ -486,13 +501,13 @@ public class ContactHelper { } private static ContentProviderOperation.Builder referenceRawContact(ContentProviderOperation.Builder builder, - int rawContactId) { + long rawContactId) { return rawContactId == -1 ? builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) : builder.withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId); } - private static ContentProviderOperation.Builder insertOrUpdateForRawContact(Uri uri, int rawContactId, + private static ContentProviderOperation.Builder insertOrUpdateForRawContact(Uri uri, long rawContactId, String itemType) { if (rawContactId == -1) { return referenceRawContact(ContentProviderOperation.newInsert(uri), rawContactId).withValue( @@ -503,8 +518,11 @@ public class ContactHelper { } private static ContentProviderOperation.Builder selectByRawContactAndItemType( - ContentProviderOperation.Builder builder, int rawContactId, String itemType) { - return builder.withSelection(RAW_CONTACT_AND_MIMETYPE_SELECTION, - new String[]{Integer.toString(rawContactId), itemType}); + ContentProviderOperation.Builder builder, long rawContactId, String itemType) { + return builder.withSelection( + ContactsContract.Data.RAW_CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=?", + new String[]{ + Long.toString(rawContactId), itemType + }); } } From 46944198e4a4433025c92eb767118ed5bd4a9e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 15:12:00 +0100 Subject: [PATCH 39/53] ContactHelper cleanup --- .../keychain/Constants.java | 3 +- .../keychain/util/ContactHelper.java | 72 ++++++++++--------- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java index 67fa30a44..2d3ee6188 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java @@ -33,6 +33,7 @@ public final class Constants { public static final String ACCOUNT_NAME = "OpenKeychain"; public static final String ACCOUNT_TYPE = PACKAGE_NAME + ".account"; + public static final String CUSTOM_CONTACT_DATA_MIME_TYPE = "vnd.android.cursor.item/vnd.org.sufficientlysecure.keychain.key"; // as defined in http://tools.ietf.org/html/rfc3156, section 7 public static final String NFC_MIME = "application/pgp-keys"; @@ -49,8 +50,6 @@ public final class Constants { public static final String INTENT_PREFIX = PACKAGE_NAME + ".action."; public static final String EXTRA_PREFIX = PACKAGE_NAME + "."; - public static final String CUSTOM_CONTACT_DATA_MIME_TYPE = "vnd.android.cursor.item/vnd.org.sufficientlysecure.keychain.key"; - public static final int TEMPFILE_TTL = 24 * 60 * 60 * 1000; // 1 day public static final String SAFESLINGER_SERVER = "safeslinger-openpgp.appspot.com"; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index 2658f3ba0..2f868912b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -49,17 +49,6 @@ import java.util.Set; public class ContactHelper { - public static final String[] KEYS_TO_CONTACT_PROJECTION = new String[]{ - KeychainContract.KeyRings.MASTER_KEY_ID, - KeychainContract.KeyRings.USER_ID, - KeychainContract.KeyRings.IS_EXPIRED, - KeychainContract.KeyRings.IS_REVOKED}; - - public static final int INDEX_MASTER_KEY_ID = 0; - public static final int INDEX_USER_ID = 1; - public static final int INDEX_IS_EXPIRED = 2; - public static final int INDEX_IS_REVOKED = 3; - private static final Map photoCache = new HashMap<>(); public static List getPossibleUserEmails(Context context) { @@ -261,12 +250,12 @@ public class ContactHelper { return null; } if (!photoCache.containsKey(masterKeyId)) { - photoCache.put(masterKeyId, loadPhotoFromFingerprint(contentResolver, masterKeyId)); + photoCache.put(masterKeyId, loadPhotoFromMasterKeyId(contentResolver, masterKeyId)); } return photoCache.get(masterKeyId); } - private static Bitmap loadPhotoFromFingerprint(ContentResolver contentResolver, long masterKeyId) { + private static Bitmap loadPhotoFromMasterKeyId(ContentResolver contentResolver, long masterKeyId) { if (masterKeyId == -1) { return null; } @@ -288,6 +277,17 @@ public class ContactHelper { } } + public static final String[] KEYS_TO_CONTACT_PROJECTION = new String[]{ + KeychainContract.KeyRings.MASTER_KEY_ID, + KeychainContract.KeyRings.USER_ID, + KeychainContract.KeyRings.IS_EXPIRED, + KeychainContract.KeyRings.IS_REVOKED}; + + public static final int INDEX_MASTER_KEY_ID = 0; + public static final int INDEX_USER_ID = 1; + public static final int INDEX_IS_EXPIRED = 2; + public static final int INDEX_IS_REVOKED = 3; + /** * Write/Update the current OpenKeychain keys to the contact db */ @@ -295,7 +295,7 @@ public class ContactHelper { ContentResolver resolver = context.getContentResolver(); Set deletedKeys = getRawContactMasterKeyIds(resolver); - debugDeleteRawContacts(resolver); +// debugDeleteRawContacts(resolver); // ContentProviderClient client = resolver.acquireContentProviderClient(ContactsContract.AUTHORITY_URI); // ContentValues values = new ContentValues(); @@ -315,7 +315,7 @@ public class ContactHelper { if (cursor != null) { while (cursor.moveToNext()) { long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID); - String[] primaryUserId = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID)); + String[] userIdSplit = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID)); String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_MASTER_KEY_ID)); boolean isExpired = cursor.getInt(INDEX_IS_EXPIRED) != 0; boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0; @@ -326,21 +326,17 @@ public class ContactHelper { // get raw contact to this master key id long rawContactId = findRawContactId(resolver, masterKeyId); - ArrayList ops = new ArrayList<>(); + Log.d(Constants.TAG, "rawContactId: " + rawContactId); - Log.d(Constants.TAG, "raw contact id: " + rawContactId); + ArrayList ops = new ArrayList<>(); // Do not store expired or revoked keys in contact db - and remove them if they already exist if (isExpired || isRevoked) { Log.d(Constants.TAG, "Expired or revoked: Deleting " + rawContactId); if (rawContactId != -1) { - resolver.delete(ContactsContract.RawContacts.CONTENT_URI, - ContactsContract.RawContacts._ID + "=?", - new String[]{ - Long.toString(rawContactId) - }); + deleteRawContactById(resolver, rawContactId); } - } else if (primaryUserId[0] != null) { + } else if (userIdSplit[0] != null) { // Create a new rawcontact with corresponding key if it does not exist yet if (rawContactId == -1) { @@ -352,7 +348,7 @@ public class ContactHelper { // We always update the display name (which is derived from primary user id) // and email addresses from user id - writeContactDisplayName(ops, rawContactId, primaryUserId[0]); + writeContactDisplayName(ops, rawContactId, userIdSplit[0]); writeContactEmail(ops, resolver, rawContactId, masterKeyId); try { resolver.applyBatch(ContactsContract.AUTHORITY, ops); @@ -366,18 +362,14 @@ public class ContactHelper { // Delete master key ids that are no longer present in OK for (Long masterKeyId : deletedKeys) { - Log.d(Constants.TAG, "Delete raw contact with fingerprint " + masterKeyId); - resolver.delete(ContactsContract.RawContacts.CONTENT_URI, - ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?", - new String[]{ - Constants.ACCOUNT_TYPE, Long.toString(masterKeyId) - }); + Log.d(Constants.TAG, "Delete raw contact with masterKeyId " + masterKeyId); + deleteRawContactByMasterKeyId(resolver, masterKeyId); } } /** * Delete all raw contacts associated to OpenKeychain. - * + *

* TODO: Does this work? */ private static int debugDeleteRawContacts(ContentResolver resolver) { @@ -389,6 +381,22 @@ public class ContactHelper { }); } + private static int deleteRawContactById(ContentResolver resolver, long rawContactId) { + return resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts._ID + "=?", + new String[]{ + Constants.ACCOUNT_TYPE, Long.toString(rawContactId) + }); + } + + private static int deleteRawContactByMasterKeyId(ContentResolver resolver, long masterKeyId) { + return resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?", + new String[]{ + Constants.ACCOUNT_TYPE, Long.toString(masterKeyId) + }); + } + /** * @return a set of all key master key ids currently present in the contact db */ @@ -437,7 +445,7 @@ public class ContactHelper { } /** - * Creates a empty raw contact with a given fingerprint + * Creates a empty raw contact with a given masterKeyId */ private static void insertContact(ArrayList ops, Context context, long masterKeyId) { ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) From 2389ce9aebf46ab8e12fc4d60aa892615fe10123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 15:23:33 +0100 Subject: [PATCH 40/53] Full height contact pic in key view --- .../sufficientlysecure/keychain/ui/ViewKeyActivity.java | 8 +------- OpenKeychain/src/main/res/layout/view_key_activity.xml | 8 +++++++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 9b0f1b319..2aa9edd44 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -930,27 +930,21 @@ public class ViewKeyActivity extends BaseActivity implements } if (mPreviousColor == 0 || mPreviousColor == color) { - mToolbar.setBackgroundColor(color); mStatusBar.setBackgroundColor(color); mBigToolbar.setBackgroundColor(color); mPreviousColor = color; } else { ObjectAnimator colorFade1 = - ObjectAnimator.ofObject(mToolbar, "backgroundColor", - new ArgbEvaluator(), mPreviousColor, color); - ObjectAnimator colorFade2 = ObjectAnimator.ofObject(mStatusBar, "backgroundColor", new ArgbEvaluator(), mPreviousColor, color); - ObjectAnimator colorFade3 = + ObjectAnimator colorFade2 = ObjectAnimator.ofObject(mBigToolbar, "backgroundColor", new ArgbEvaluator(), mPreviousColor, color); colorFade1.setDuration(1200); colorFade2.setDuration(1200); - colorFade3.setDuration(1200); colorFade1.start(); colorFade2.start(); - colorFade3.start(); mPreviousColor = color; } diff --git a/OpenKeychain/src/main/res/layout/view_key_activity.xml b/OpenKeychain/src/main/res/layout/view_key_activity.xml index 1a45370a5..a69efaf75 100644 --- a/OpenKeychain/src/main/res/layout/view_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_key_activity.xml @@ -24,7 +24,12 @@ android:layout_below="@+id/status_bar" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:src="@drawable/first_time_1" /> + android:src="@drawable/ic_launcher" + android:baselineAlignBottom="false" + android:cropToPadding="false" + android:focusable="false" + android:adjustViewBounds="false" + android:layout_alignParentTop="false" /> Date: Wed, 4 Mar 2015 15:26:09 +0100 Subject: [PATCH 41/53] Crop image view to center --- .../sufficientlysecure/keychain/ui/ViewKeyActivity.java | 5 ++--- OpenKeychain/src/main/res/layout/view_key_activity.xml | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 2aa9edd44..94f2bf92b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -76,7 +76,6 @@ import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.QrCodeUtils; -import org.sufficientlysecure.keychain.ui.widget.AspectRatioImageView; import org.sufficientlysecure.keychain.util.ContactHelper; import org.sufficientlysecure.keychain.util.ExportHelper; import org.sufficientlysecure.keychain.util.Log; @@ -104,7 +103,7 @@ public class ViewKeyActivity extends BaseActivity implements private ImageButton mActionEncryptText; private ImageButton mActionNfc; private FloatingActionButton mFab; - private AspectRatioImageView mPhoto; + private ImageView mPhoto; private ImageView mQrCode; private CardView mQrCodeLayout; @@ -146,7 +145,7 @@ public class ViewKeyActivity extends BaseActivity implements mActionEncryptText = (ImageButton) findViewById(R.id.view_key_action_encrypt_text); mActionNfc = (ImageButton) findViewById(R.id.view_key_action_nfc); mFab = (FloatingActionButton) findViewById(R.id.fab); - mPhoto = (AspectRatioImageView) findViewById(R.id.view_key_photo); + mPhoto = (ImageView) findViewById(R.id.view_key_photo); mQrCode = (ImageView) findViewById(R.id.view_key_qr_code); mQrCodeLayout = (CardView) findViewById(R.id.view_key_qr_code_layout); diff --git a/OpenKeychain/src/main/res/layout/view_key_activity.xml b/OpenKeychain/src/main/res/layout/view_key_activity.xml index a69efaf75..314d93be8 100644 --- a/OpenKeychain/src/main/res/layout/view_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_key_activity.xml @@ -15,12 +15,11 @@ android:background="?attr/colorPrimary" android:orientation="horizontal"> - + android:layout_alignParentTop="false" + android:scaleType="centerCrop" /> Date: Wed, 4 Mar 2015 15:39:41 +0100 Subject: [PATCH 42/53] Get high res version of contact photo --- .../sufficientlysecure/keychain/ui/ViewKeyActivity.java | 2 +- .../keychain/ui/widget/EncryptKeyCompletionView.java | 2 +- .../sufficientlysecure/keychain/util/ContactHelper.java | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 94f2bf92b..f90326a7d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -821,7 +821,7 @@ public class ViewKeyActivity extends BaseActivity implements AsyncTask photoTask = new AsyncTask() { protected Bitmap doInBackground(Long... mMasterKeyId) { - return ContactHelper.photoFromMasterKeyId(getContentResolver(), mMasterKeyId[0]); + return ContactHelper.loadPhotoByMasterKeyId(getContentResolver(), mMasterKeyId[0], true); } protected void onPostExecute(Bitmap photo) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java index 48648f2cf..d20e2bc99 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java @@ -90,7 +90,7 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView { } private void setImageByKey(ImageView view, EncryptionKey key) { - Bitmap photo = ContactHelper.photoFromMasterKeyId(getContext().getContentResolver(), key.getKeyId()); + Bitmap photo = ContactHelper.getCachedPhotoByMasterKeyId(getContext().getContentResolver(), key.getKeyId()); if (photo != null) { view.setImageBitmap(photo); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index 2f868912b..215cde1b7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -245,17 +245,18 @@ public class ContactHelper { return null; } - public static Bitmap photoFromMasterKeyId(ContentResolver contentResolver, long masterKeyId) { + public static Bitmap getCachedPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId) { if (masterKeyId == -1) { return null; } if (!photoCache.containsKey(masterKeyId)) { - photoCache.put(masterKeyId, loadPhotoFromMasterKeyId(contentResolver, masterKeyId)); + photoCache.put(masterKeyId, loadPhotoByMasterKeyId(contentResolver, masterKeyId, false)); } return photoCache.get(masterKeyId); } - private static Bitmap loadPhotoFromMasterKeyId(ContentResolver contentResolver, long masterKeyId) { + public static Bitmap loadPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId, + boolean highRes) { if (masterKeyId == -1) { return null; } @@ -267,7 +268,7 @@ public class ContactHelper { Uri rawContactUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId); Uri contactUri = ContactsContract.RawContacts.getContactLookupUri(contentResolver, rawContactUri); InputStream photoInputStream = - ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri); + ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri, highRes); if (photoInputStream == null) { return null; } From fcc819d437960c380c3f852bd508a391bbda9c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 15:52:06 +0100 Subject: [PATCH 43/53] Update lib list --- OpenKeychain/src/main/res/raw/help_about.html | 16 ++++++----- README.md | 28 +------------------ 2 files changed, 10 insertions(+), 34 deletions(-) diff --git a/OpenKeychain/src/main/res/raw/help_about.html b/OpenKeychain/src/main/res/raw/help_about.html index 1933a9225..6c034cc21 100644 --- a/OpenKeychain/src/main/res/raw/help_about.html +++ b/OpenKeychain/src/main/res/raw/help_about.html @@ -35,17 +35,19 @@ And don't add newlines before or after p tags because of transifex -->

Libraries

diff --git a/README.md b/README.md index eedb1d82b..38b486346 100644 --- a/README.md +++ b/README.md @@ -214,33 +214,7 @@ Some parts and some libraries are Apache License v2, MIT X11 License (see below) ### Libraries -* SpongyCastle - https://github.com/rtyley/spongycastle - MIT X11 License - -* Android Support Library v4 - http://developer.android.com/tools/support-library/index.html - Apache License v2 - -* Android Support Library v7 'appcompat' - http://developer.android.com/tools/support-library/index.html - Apache License v2 - -* HtmlTextView - https://github.com/dschuermann/html-textview - Apache License v2 - -* ZXing - https://github.com/zxing/zxing - Apache License v2 - -* StickyListHeaders - https://github.com/emilsjolander/StickyListHeaders - Apache License v2 - -* https://github.com/jpardogo/PagerSlidingTabStrip - -* https://github.com/journeyapps/zxing-android-embedded +See https://github.com/open-keychain/open-keychain/blob/development/OpenKeychain/src/main/res/raw/help_about.html ### Images * icon.svg From 17a627919c967fa0a46a913c5229e3ff56ffb5b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 18:34:42 +0100 Subject: [PATCH 44/53] Simplified language: Confirm keys --- .../keychain/ui/HelpActivity.java | 19 ++-------- .../keychain/util/ContactHelper.java | 6 ++- .../res/layout/view_key_adv_user_id_item.xml | 37 ++++++++++--------- .../src/main/res/raw-bg/help_nfc_beam.html | 12 ------ .../src/main/res/raw-bg/help_wot.html | 17 --------- .../src/main/res/raw-cs/help_nfc_beam.html | 12 ------ .../src/main/res/raw-cs/help_wot.html | 17 --------- .../src/main/res/raw-de/help_nfc_beam.html | 12 ------ .../src/main/res/raw-de/help_wot.html | 17 --------- .../src/main/res/raw-es/help_nfc_beam.html | 12 ------ .../src/main/res/raw-es/help_wot.html | 17 --------- .../src/main/res/raw-et/help_nfc_beam.html | 12 ------ .../src/main/res/raw-et/help_wot.html | 17 --------- .../src/main/res/raw-eu/help_nfc_beam.html | 12 ------ .../src/main/res/raw-eu/help_wot.html | 17 --------- .../src/main/res/raw-fi/help_nfc_beam.html | 12 ------ .../src/main/res/raw-fi/help_wot.html | 17 --------- .../src/main/res/raw-fr/help_nfc_beam.html | 12 ------ .../src/main/res/raw-fr/help_wot.html | 17 --------- .../src/main/res/raw-is/help_nfc_beam.html | 12 ------ .../src/main/res/raw-is/help_wot.html | 17 --------- .../src/main/res/raw-it/help_nfc_beam.html | 12 ------ .../src/main/res/raw-it/help_wot.html | 17 --------- .../src/main/res/raw-ja/help_nfc_beam.html | 12 ------ .../src/main/res/raw-ja/help_wot.html | 17 --------- .../src/main/res/raw-nl/help_nfc_beam.html | 12 ------ .../src/main/res/raw-nl/help_wot.html | 17 --------- .../src/main/res/raw-pl/help_nfc_beam.html | 12 ------ .../src/main/res/raw-pl/help_wot.html | 17 --------- .../src/main/res/raw-pt/help_nfc_beam.html | 12 ------ .../src/main/res/raw-pt/help_wot.html | 17 --------- .../src/main/res/raw-ro/help_nfc_beam.html | 12 ------ .../src/main/res/raw-ro/help_wot.html | 17 --------- .../src/main/res/raw-ru/help_nfc_beam.html | 12 ------ .../src/main/res/raw-ru/help_wot.html | 17 --------- .../src/main/res/raw-sl/help_nfc_beam.html | 12 ------ .../src/main/res/raw-sl/help_wot.html | 17 --------- .../src/main/res/raw-sr/help_nfc_beam.html | 12 ------ .../src/main/res/raw-sr/help_wot.html | 17 --------- .../src/main/res/raw-sv/help_nfc_beam.html | 12 ------ .../src/main/res/raw-sv/help_wot.html | 17 --------- .../src/main/res/raw-tr/help_nfc_beam.html | 12 ------ .../src/main/res/raw-tr/help_wot.html | 17 --------- .../src/main/res/raw-uk/help_nfc_beam.html | 12 ------ .../src/main/res/raw-uk/help_wot.html | 17 --------- .../main/res/raw-zh-rTW/help_nfc_beam.html | 12 ------ .../src/main/res/raw-zh-rTW/help_wot.html | 17 --------- .../src/main/res/raw-zh/help_nfc_beam.html | 12 ------ .../src/main/res/raw-zh/help_wot.html | 17 --------- .../src/main/res/raw/help_certification.html | 32 ++++++++++++++++ OpenKeychain/src/main/res/raw/help_faq.html | 24 ------------ .../src/main/res/raw/help_nfc_beam.html | 16 -------- OpenKeychain/src/main/res/raw/help_start.html | 10 +++-- OpenKeychain/src/main/res/raw/help_wot.html | 21 ----------- OpenKeychain/src/main/res/values/strings.xml | 31 ++++++++-------- 55 files changed, 82 insertions(+), 781 deletions(-) delete mode 100644 OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-bg/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-cs/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-de/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-de/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-es/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-es/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-et/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-et/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-eu/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-fi/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-fr/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-is/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-is/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-it/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-it/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-ja/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-nl/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-pl/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-pt/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-ro/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-ru/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-sl/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-sr/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-sv/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-tr/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-uk/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html delete mode 100644 OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw-zh/help_wot.html create mode 100644 OpenKeychain/src/main/res/raw/help_certification.html delete mode 100644 OpenKeychain/src/main/res/raw/help_faq.html delete mode 100644 OpenKeychain/src/main/res/raw/help_nfc_beam.html delete mode 100644 OpenKeychain/src/main/res/raw/help_wot.html diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java index 2eb35351e..cd6cdf4d6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java @@ -32,10 +32,9 @@ public class HelpActivity extends BaseActivity { public static final int TAB_START = 0; public static final int TAB_FAQ = 1; - public static final int TAB_WOT = 2; - public static final int TAB_NFC = 3; - public static final int TAB_CHANGELOG = 4; - public static final int TAB_ABOUT = 5; + public static final int TAB_TRUST = 2; + public static final int TAB_CHANGELOG = 3; + public static final int TAB_ABOUT = 4; ViewPager mViewPager; private PagerTabStripAdapter mTabsAdapter; @@ -69,21 +68,11 @@ public class HelpActivity extends BaseActivity { mTabsAdapter.addTab(HelpHtmlFragment.class, startBundle, getString(R.string.help_tab_start)); - Bundle faqBundle = new Bundle(); - faqBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_faq); - mTabsAdapter.addTab(HelpHtmlFragment.class, faqBundle, - getString(R.string.help_tab_faq)); - Bundle wotBundle = new Bundle(); - wotBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_wot); + wotBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_certification); mTabsAdapter.addTab(HelpHtmlFragment.class, wotBundle, getString(R.string.help_tab_wot)); - Bundle nfcBundle = new Bundle(); - nfcBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_nfc_beam); - mTabsAdapter.addTab(HelpHtmlFragment.class, nfcBundle, - getString(R.string.help_tab_nfc_beam)); - Bundle changelogBundle = new Bundle(); changelogBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_changelog); mTabsAdapter.addTab(HelpHtmlFragment.class, changelogBundle, diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index 215cde1b7..44bcc52a5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -475,7 +475,8 @@ public class ContactHelper { */ private static void writeContactEmail(ArrayList ops, ContentResolver resolver, long rawContactId, long masterKeyId) { - ops.add(selectByRawContactAndItemType(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI), + ops.add(selectByRawContactAndItemType( + ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI), rawContactId, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE).build()); Cursor ids = resolver.query(UserPackets.buildUserIdsUri(masterKeyId), new String[]{ @@ -487,7 +488,8 @@ public class ContactHelper { while (ids.moveToNext()) { String[] userId = KeyRing.splitUserId(ids.getString(0)); if (userId[1] != null) { - ops.add(referenceRawContact(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI), + ops.add(referenceRawContact( + ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI), rawContactId) .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE) diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml index ff485cd48..f5423817e 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml @@ -6,23 +6,6 @@ android:orientation="horizontal" android:singleLine="true"> - - - - - - + + + + + + + - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-bg/help_wot.html b/OpenKeychain/src/main/res/raw-bg/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-bg/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html deleted file mode 100644 index e40da69bf..000000000 --- a/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Jak přijmout klíče

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Podržte dvě zařízení zády k sobě (musí se téměř dotýkat) a ucítíte vibraci.
  4. -
  5. Po tom co ucítíte vibraci, uvidíte že se obsah na displeji zařízení vašeho partnera změní na objekt typu karta s animací na pozadí připomínající rychlost warpu ze Star Treku.
  6. -
  7. Tapněte na kartu a obsah se nahraje do zařízení.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-cs/help_wot.html b/OpenKeychain/src/main/res/raw-cs/help_wot.html deleted file mode 100644 index 29b4fc420..000000000 --- a/OpenKeychain/src/main/res/raw-cs/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Síť důvěry

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Podpora v OpenKeychain

-

Podpora pro síť důvěry v OpenKeychain je teprve ve svých začátcích. Tento stav se bude velmi měnit v dalších verzích aplikace.

- -

Model důvěry

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifikace klíčů

-

Podpora pro certifikaci klíčů je dostupná a uživatelská ID mohou být certifikována jednotlivě. Ještě není možné určovat úroveň důvěryhodnosti nebo vytvářet lokální a jiné speciální typy certifikátů.

- - - diff --git a/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html deleted file mode 100644 index 3f1b9e22d..000000000 --- a/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Wie kann man Schlüssel empfangen

-
    -
  1. Gehe zu den Schlüsseln deiner Partner und öffne den Schlüssel welcher geteilt werden soll.
  2. -
  3. Halten Sie die zwei Geräte rückseitig aneinander (sodass sie sich fast berühren) und es wird vibrieren
  4. -
  5. Nachdem es vibriert sehen sie wie sich der Inhalt des Gerätes ihres Bekannten von einer Warp-Geschwindigkeit Animation umgeben wird
  6. -
  7. Wenn sie die Karte antippen, wird der Inhalt auf ihr Gerät übertragen
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-de/help_wot.html b/OpenKeychain/src/main/res/raw-de/help_wot.html deleted file mode 100644 index ad33ddbb1..000000000 --- a/OpenKeychain/src/main/res/raw-de/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

Das Web of Trust beschreibt den Teil von PGP der sich mit der Erstellung und dem Verwalten von Zertifikaten beschäftigt. Nutzer können so im Auge behalten zu wem ein bestimmter Public Key gehört, sowie diese Information teilen: Um die Privatsphäre von verschlüsselter Kommunikation zu gewährleisten ist es essentiell zu wissen ob der Public Key den man zum Verschlüsseln nutzt zu der Person gehört, die man erwartet.

- -

Support in OpenKeychain

-

Es gibt nur eine rudimentäre Unterstützung für das Web of Trust in OpenKeychain. Am Web of Trust System wird kontinuierlich gearbeitet und es wird in den kommenden Version überarbeitet.

- -

Vertrauens-Modell

-

Die Bewertung des Vertrauens basiert auf der Grundannahme, dass alle Schlüssel zu denen ein privater Schlüssel vorhanden ist, vertrauenswürdig sind. Öffentliche Schlüssel welche mindestens eine User ID beinhalten, die von einem Trusted Key verifiziert wurden, werden mit einem grünen Punkt in der Schlüsselliste gekennzeichnet. Es ist (noch) nicht möglich bestimmte Trust Level für Zertifikate anderer bekannter öffentlicher Schlüssel festzulegen.

- -

Schlüssel beglaubigen

-

Die Unterstützung für die Zertifizierung von Schlüsseln ist vorhanden. Nutzer IDs können separat zertifiziert werden. Es ist jedoch sowohl noch nicht möglich das Vertrauenslevel festzulegen, als auch lokale oder andere spezielle Zertifikate zu erstellen.

- - - diff --git a/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html deleted file mode 100644 index b1c29183f..000000000 --- a/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Cómo recibir las claves

-
    -
  1. Vaya a las claves de socios y abra la clave que quiera compartir.
  2. -
  3. Mantén los dos dispositivos de con ambos reversos juntos (tienen que estar casi en contacto) y notarás una vibración.
  4. -
  5. Después de que vibre, verás el contenido en el dispositivo de tu compañero convertirse en una especie de ficha con una animación de Star Trek de fondo.
  6. -
  7. Toca la ficha y el contenido se cargará en tu dispositivo.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-es/help_wot.html b/OpenKeychain/src/main/res/raw-es/help_wot.html deleted file mode 100644 index 3af2cae10..000000000 --- a/OpenKeychain/src/main/res/raw-es/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Anillo de confianza

-

El anillo de confianza (web of trust) describe la parte de OpenPGP que se encarga de la creación y registro de las certificaciones. Proporciona mecanismos para ayudar al usuario a llevar un seguimiento de a quién pertenece una clave pública, y compartir esta información con otros. Para asegurar la privacidad de la comunicación cifrada, es esencial saber que la clave pública con la que usted la cifra pertenece a la persona que usted cree.

- -

Soporte en OpenKeychain

-

Sólo hay soporte básico para el anillo de confianza (web of trust) en OpenKeychain. Esta es una pesada tarea que tenemos en marcha sujeta a cambios en versiones posteriores.

- -

Modelo de confianza

-

La evaluación de la confianza está basada en la simple asunción de que todas las claves que tienen disponibles claves privadas (secretas) son de confianza. Las claves públicas que contienen al menos una identificación de usuario certificada por una clave de confianza serán marcadas con un punto verde en los listados de claves. No es posible (aún) especificar niveles de confianza para certificados de otras claves públicas conocidas.

- -

Certificando claves

-

Está disponible el soporte para certificación de clave, y las identificaciones de usuario pueden ser certificadas individualmente. No es posible aún especificar el nivel de confianza o crear certificados locales y otros tipos especiales de certificados.

- - - diff --git a/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-et/help_wot.html b/OpenKeychain/src/main/res/raw-et/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-et/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-eu/help_wot.html b/OpenKeychain/src/main/res/raw-eu/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-eu/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-fi/help_wot.html b/OpenKeychain/src/main/res/raw-fi/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-fi/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html deleted file mode 100644 index 374975b73..000000000 --- a/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Comment recevoir des clefs

-
    -
  1. Allez aux clefs de votre partenaire et ouvrez la clef que vous voulez partager.
  2. -
  3. Tenir les deux appareils dos à dos (se touchant presque) et une vibration sera ressentie.
  4. -
  5. Après la vibration, le contenu de l'appareil de votre partenaire deviendra un objet en forme de carte avec une animation à la Star Trek en arrière-plan.
  6. -
  7. Toquer la carte et le contenu se chargera alors sur votre appareil.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-fr/help_wot.html b/OpenKeychain/src/main/res/raw-fr/help_wot.html deleted file mode 100644 index 6763b8969..000000000 --- a/OpenKeychain/src/main/res/raw-fr/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Toile de confiance

-

La toile de confiance décrit la partie d'OpenPGP qui s'occupe de la création et du suivi des certifications. Elle fournit des mécanismes pour aider l'utilisateur à suivre à qui appartient une clef publique, et partager cette information avec d'autres. Pour assurer la confidentialité d'une communication chiffrée, il est essentiel de savoir que la clef publique vers laquelle vous chiffrez appartient à la personne à qui vous croyez qu'elle appartient.

- -

Prise en charge dans OpenKeychain

-

OpenKeychain offre seulement une prise en charge de base de la toile de confiance. Un travail important est en cours et ceci pourrait changer dans les versions à venir.

- -

Modèle de confiance

-

L'évaluation de la confiance est fondée sur la simple supposition que toutes les clefs proposant des clefs secrètes sont de confiance. Les clefs publiques contenant au moins un ID utilisateur certifié par une clef de confiance seront marquées par un point vert dans le listage des clefs. Il n'est pas (encore) possible de spécifier les niveaux de confiance pour les certificats d'autres clefs publiques inconnues.

- -

Certifications des clefs

-

La prise en charge de la certification des clefs est proposée et les ID utilisateurs peuvent être certifiées individuellement. Il n'est pas encore possible de spécifier le niveau de confiance ou de créer des certificats locaux et d'autres types spéciaux.

- - - diff --git a/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-is/help_wot.html b/OpenKeychain/src/main/res/raw-is/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-is/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html deleted file mode 100644 index f6bf27fe8..000000000 --- a/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Come ricevere le chiavi

-
    -
  1. Vai alle chiavi dei contatti dei tuoi partner e apri la chiave che si desidera condividere.
  2. -
  3. Mantieni i due dispositivi vicini (devono quasi toccarsi) e sentirai una vibrazione.
  4. -
  5. Dopo che ha vibrato, vedrai il contenuto del tuo dispositivo diventare come una scheda e nello sfondo apparirà una animazione come la propulsione a curvatura di Star Trek.
  6. -
  7. Tocca la scheda e il contenuto dopo si trasferira' nel dispositivo dell'altra persona.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-it/help_wot.html b/OpenKeychain/src/main/res/raw-it/help_wot.html deleted file mode 100644 index 09b38199b..000000000 --- a/OpenKeychain/src/main/res/raw-it/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Rete di Fiducia

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Supporto in OpenKeychain

-

Esiste solo un supporto di base per le Reti di Fiducia in OpenKeychain. Questo è un grosso lavoro in corso e soggetto a modifiche nei prossimi rilasci.

- -

Modello di Fiducia

-

La valutazione di fiducia si basa sul semplice presupposto che tutte le chiavi che hanno chiavi segrete disponibili sono attendibili. Le chiavi pubbliche che contengono almeno un id utente certificato da una chiave di fiducia saranno contrassegnati con un punto verde negli elenchi principali. Non è (ancora) possibile specificare livelli di attendibilità per i certificati di altre chiavi pubbliche conosciute.

- -

Chiavi di certificazione

-

Il supporto per la certificazione chiave è disponibile, e gli id utenti possono essere certificati singolarmente. Non è ancora possibile specificare il livello di fiducia o creare certificati locali e altro di tipo speciale.

- - - diff --git a/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html deleted file mode 100644 index c19280fd1..000000000 --- a/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

鍵の受信方法

-
    -
  1. パートナーの連絡先に行き、共有したい連絡先を開きます。
  2. -
  3. 2つのデバイスを背中合せ(ほとんどすべてのタッチ方法)にしてバイブを感じるまで保持しておいてください。
  4. -
  5. バイブの後、相手のデバイスでスタートレック風のバックグラウンドアニメーションしているカード風のコンテンツを見ると思います。
  6. -
  7. カードをタップしコンテンツをあなたのデバイスにロードします。
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-ja/help_wot.html b/OpenKeychain/src/main/res/raw-ja/help_wot.html deleted file mode 100644 index e4db99bb8..000000000 --- a/OpenKeychain/src/main/res/raw-ja/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

信頼の輪

-

信頼の輪はOpenPGPの一面で証明の作成とその維持の一面を説明します。ユーザが公開鍵に属する者の追跡を維持し、他のユーザーとその情報を共有する手助けになるメカニズムを提供します。暗号化通信のプライバシーを確保するためには、あなたが暗号化したいという相手の公開鍵が必要な要素となります。

- -

OpenKeychainでサポート

-

OpenKeychainで信頼の輪の基本のみサポートされます。とても重い作業を進めており今後やってくるリリースにおいて状態が変更されていきます。

- -

信頼モデル

-

信頼の評価はシンプルな仮定に基づいています、それはすべての鍵は秘密鍵が信頼できるというものです。公開鍵は信頼された鍵で検証された最低1つのユーザIDを含んでおり、それは鍵リストにおいて、緑でマークされます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものには(まだ)しません。

- -

鍵の検証

-

鍵検証のサポートが提供されており、またユーザIDは個別に検証できます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものにはしないローカルもしくは他の特別なタイプの証明です。

- - - diff --git a/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html deleted file mode 100644 index 4caf75748..000000000 --- a/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Hoe sleutels te ontvangen

-
    -
  1. Ga naar je partner's sleutels en open de sleutel die je wil delen.
  2. -
  3. Houd de twee toestellen met de achterkant tegen elkaar (ze moeten elkaar bijna aanraken) en je zal een trilling voelen.
  4. -
  5. Nadat het trilt zal je de inhoud op je partner's toestel in een soort kaart zien veranderen met Star Trek warp snelheid-eruitziende animatie op de achtergrond.
  6. -
  7. Druk op de kaart en de inhoud zal dan laden op het toestel.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-nl/help_wot.html b/OpenKeychain/src/main/res/raw-nl/help_wot.html deleted file mode 100644 index 4c72a875c..000000000 --- a/OpenKeychain/src/main/res/raw-nl/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web van Vertrouwen

-

Het Web van Vertrouwen beschrijft het deel van OpenPGP dat te maken heeft met aanmaken en boekhouden van certificaten. Het voorziet van mechanismes zodat de gebruiker bij kan houden van aan wie een publieke sleutel toebehoort, en deze informatie met anderen kan delen; om de privacy van versleutelde communicatie te verzekeren, is het essentiëel om te weten dat de publieke sleutel die je versleutelt, toebehoort aan de persoon aan wie je denkt dat het toebehoort.

- -

Ondersteuning in OpenKeychain

-

Er is alleen basisondersteuning voor Web van Vertrouwen in OpenKeychain. Dit is een zware 'werk in uitvoering' en onderwerp voor veranderingen in toekomstige releases.

- -

Vertrouwensmodel

-

Vertrouwensevaluatie is gebaseerd om de simpele aanname dat alle sleutels die beschikbare geheime sleutels hebben, vertrouwd zijn. Publieke sleutels die minstens een gebruikers-ID bevatten, gecertificeerd door een vertrouwde sleutel, zullen gemarkeerd worden met een groene stip in de sleutel lijsten. Het is (nog) niet mogelijk om vertrouwen niveaus voor certificaten van andere bekende publieke sleutels te specifiëren.

- -

Bezig met certificeren van sleutels<br>

-

Ondersteuning voor sleutelcertificatie is beschikbaar, en gebruikers-ID's kunnen individueel gecertificeerd worden. Het is nog niet mogelijk om het niveau van vertrouwen te specifiëren om locale en andere speciale typen van certificaten te maken.

- - - diff --git a/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html deleted file mode 100644 index 8d42a8261..000000000 --- a/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Jak odbierać klucze

-
    -
  1. Idź to kluczy swoich partnerów i otwórz klucz którym chcesz się podzielić.
  2. -
  3. Przytrzymaj oba urządzenia tyłem do siebie (powinny się niemal dotykać) aż poczujesz wibrację.
  4. -
  5. Po zakończeniu wibracji zobaczysz, że zawartość urządzenia partnera zamienia się w obiekt zbliżony do wizytówki, z animacją rodem ze Star Treka w tle.
  6. -
  7. Dotknij wizytówkę, a jej zawartość zostanie wysłana na Twoje urządzenie.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-pl/help_wot.html b/OpenKeychain/src/main/res/raw-pl/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-pl/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-pt/help_wot.html b/OpenKeychain/src/main/res/raw-pt/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-pt/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-ro/help_wot.html b/OpenKeychain/src/main/res/raw-ro/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-ro/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html deleted file mode 100644 index fcf55cdaf..000000000 --- a/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Как обменяться ключами

-
    -
  1. Нажмите и удерживайте ключ, который вы хотите передать.
  2. -
  3. Поднесите оба устройства вплотную обратными сторонами (до полного касания). Вы почувствуете небольшую вибрацию.
  4. -
  5. Как только устройства завибрируют, на экране появится карточка с передаваемым содержимым.
  6. -
  7. Нажмите на карточку, что бы передать данные (ключи) с одного устройства на другое.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-ru/help_wot.html b/OpenKeychain/src/main/res/raw-ru/help_wot.html deleted file mode 100644 index 7fbde44d3..000000000 --- a/OpenKeychain/src/main/res/raw-ru/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Сеть доверия (WoT)

-

Сеть доверия (The Web of Trust) предоставляет механизм заверения ключей посредством присоединения и распространения информации о выполненной сертификации. Для гарантии безопасного зашифрованного общения крайне важно не сомневаться, что владельцем ключа является ваш собеседник.

- -

Поддержка в OpenKeychain

-

В настоящее время реализованы только базовые возможности WoT. Работа в самом разгаре и в будущих версиях OpenKeychain будут появляться дополнительные возможности.

- -

Модель доверия

-

Проверка доверия основана на простом принципе, что если доступен секретный ключ, то доверие к нему абсолютное. Однако, публичные должны содержать подписи кого-то, кому вы доверяете, что бы подпись, сделанная таким ключом, была отмечена зелёным индикатором. К сожалению, (пока) нельзя определять степень доверия к другим известным публичным ключам.

- -

Сертификация ключей

-

Поддержка сертификации ключей уже реализована, и Вы можете сертифицировать отдельные ID пользователя. Пока нельзя выбирать степень доверия, создавать локальные или специальные типы сертификатов.

- - - diff --git a/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html deleted file mode 100644 index 62599edc2..000000000 --- a/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Kako pridobiti ključe

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. S hrbtoma približajte dve napravi (vašo ter vašega partnerja - morata se skoraj dotikati) in začutili boste vibracijo.
  4. -
  5. Po vibraciji se bo vsebina na napravi vašega partnerja spremenila v vizitki podoben objekt s 'Star Trek' animacijo v ozadju.
  6. -
  7. Tapnite vizitko in njena vsebnina se bo prenesla na vašo napravo.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-sl/help_wot.html b/OpenKeychain/src/main/res/raw-sl/help_wot.html deleted file mode 100644 index 224110e18..000000000 --- a/OpenKeychain/src/main/res/raw-sl/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Omrežje zaupanja

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Podpora v OpenKeychain

-

OpenKeychain ponuja zgolj osnovno podporo za 'Omrežje zaupanja'. V prihodnjih različicah bomo to podporo še nadgrajevali in izboljševali.

- -

Model zaupanja

-

Ocena zaupanja temelji na predpostavki, da so vsi ključi, ki vsebujejo tudi zasebne ključe, vredni zaupanja. Javni ključi, ki vsebujejo vsaj en uporabniški ID, ki je overjen z zaupanja vrednim ključem, so na seznamu ključev označeni z zeleno piko. Zaenkrat (še) ni možno natančneje določiti stopnje zaupanja potrdil drugih znanih javnih ključev.

- -

Overjanje ključev

-

Overjanje ključev je na voljo. Uporabniške ID-je ključev overjamo individualno. Zaenkrat ni možno natančneje določiti stopnje zaupanja ali ustvarjati lokalne ali druge posebne vrste potrdil.

- - - diff --git a/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html deleted file mode 100644 index bef6f591e..000000000 --- a/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Како примити кључеве

-
    -
  1. Идите у кључеве вашег другара и отворите кључ којег желите да поделите.
  2. -
  3. Држите оба уређаја леђа о леђа (треба да се скоро додирују) и осетићете вибрацију.
  4. -
  5. Након вибрације видећете да се садржај на уређају вашег другара претвара у нешто што личи на картицу са анимацијом сличном ворп брзини из Звезданих Стаза у позадини.
  6. -
  7. Додирните картицу и садржај ће се потом учитати на вашем уређају.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-sr/help_wot.html b/OpenKeychain/src/main/res/raw-sr/help_wot.html deleted file mode 100644 index 713b3e331..000000000 --- a/OpenKeychain/src/main/res/raw-sr/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Веб Поверења

-

Веб Поверења описује део ОпенПГП-а који се бави прављењем и спремањем сертификата. Пружа механизме који помажу кориснику у праћењу коме јавни кључ припада и дељењу ове информације са осталима; да би се осигурала приватност шифроване комуникације, нужно је знати да јавни кључ на који шифрујете припада особи којој и мислите да припада.

- -

Подршка у Отвореном кључарнику

-

Постоји само основна подршка за Веб поверења у Отвореном кључарнику. Ово је велики посао у току и подложан променама у наредним издањима.

- -

Модел поверења

-

Евалуација поверења се заснива на једноставној претпоставци да су сви кључеви који имају доступне тајне кључеве, од поверења. Јавни кључеви који садрже најмање један кориснички ид оверен кључем од поверења биће означени зеленом тачком у исписима кључева. Није (још) могуће одредити нивое поверења за сертификате других познатих јавних кључева.

- -

Оверавање кључева

-

Подршка за оверу кључева је доступна, и кориснички ид-ови могу бити оверавани појединачно. Још није могуће одредити ниво поверења или направити локалне и друге посебне врсте сертификата.

- - - diff --git a/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html deleted file mode 100644 index 4e940a398..000000000 --- a/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Hur man tar emot nycklar

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Håll de två enheternas baksidor mot varandra (de måste nästan vidröras) och du känner av en vibration.
  4. -
  5. Efter vibrationen kommer du att se innehållet på din partners enhet omvandlas till ett kortliknande föremål och en animation i bakgrunden som ser ut som Star Treks warp speed.
  6. -
  7. Tryck på kortet och innehållet kommer att laddas på den andra personens enhet.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-sv/help_wot.html b/OpenKeychain/src/main/res/raw-sv/help_wot.html deleted file mode 100644 index 68a2e3997..000000000 --- a/OpenKeychain/src/main/res/raw-sv/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Tillitsnät

-

Tillitsnätet beskriver den del av OpenPGP som handlar om hur man skapar och bokför certifieringar. Det gör det möjligt för användaren att hålla reda på vem en publik nyckel tillhör, och dela denna information med andra; för att försäkra sig om integriteten i krypterad kommunikation är det avgörande att veta att den publika nyckel du krypterar till tillhör den person du tror att den gör.

- -

Stöd i OpenKeychain

-

Endast grundläggande stöd för tillitsnät finns i OpenKeychain. Arbetet med funktionen pågår och den kan komma att ändras i kommande versioner.

- -

Tillitsmodell

-

Värderingen av tillit utgår från det enkla antagandet att alla nycklar som har en privat nyckel är tillförlitliga. Publika nycklar som innehåller åtminstone ett användar-ID certifierat av en tillförlitlig nyckel kommer att ha en grön prick i nyckellistorna. Det är (ännu) inte möjligt att ange nivån av tillit för andra kända publika nycklars certifikat.

- -

Certifiera nycklar

-

Stöd för nyckelcertifiering finns, och enskilda användar-ID:n kan certifieras. Det är ännu inte möjligt att ange nivån av tillit eller skapa ett lokalt eller andra typer av certifikat.

- - - diff --git a/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html deleted file mode 100644 index 49f79e157..000000000 --- a/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Anahtarlar nasıl alınır

-
    -
  1. Eşleşecek cihazın anahtarlarına girin ve paylaşmak istediğiniz anahtarı açın.
  2. -
  3. İki cihazı arka arkaya tutun (neredeyse temas edecek şekilde) ve bir titreşim hissedeceksiniz.
  4. -
  5. Titreşimden sonra içeriğin eşleşecek cihazda arkaplanında Star Trek ışınlanma animasyonu olan kart'a benzer bir objeye dönüştüğünü göreceksiniz.
  6. -
  7. Kart'a tıklayın ve içerik sizin cihazınıza yüklensin.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-tr/help_wot.html b/OpenKeychain/src/main/res/raw-tr/help_wot.html deleted file mode 100644 index f2282908b..000000000 --- a/OpenKeychain/src/main/res/raw-tr/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

OpenKeychain Desteği

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Güven Modeli

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Anahtar Tasdikleme

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html deleted file mode 100644 index fb4698b7f..000000000 --- a/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

Як обмінятися ключами

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Піднесіть обидва пристрої впритул зворотними сторонами (до повного торкання). Ви відчуєте невелику вібрацію.
  4. -
  5. Після вібрації пристроїв на екрані з'явиться картка з передаваним вмістом.
  6. -
  7. Натисніть на картку, що б передати дані з одного пристрою на інший.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-uk/help_wot.html b/OpenKeychain/src/main/res/raw-uk/help_wot.html deleted file mode 100644 index 669aa0649..000000000 --- a/OpenKeychain/src/main/res/raw-uk/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Мережа довіри

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Підтримка у OpenKeychain

-

Наразі реалізовані тільки базові можливості WoT. Робота в самому розпалі, і в майбутніх версіях OpenKeychain будуть з'являтися додаткові можливості.

- -

Модель довіри

-

Перевірка довіри заснована на простому принципі, що якщо доступний секретний ключ, то довіра до нього абсолютна. Однак, публічні повинні містити підписи когось, кому ви довіряєте, що б підпис, зроблений таким ключем, був відзначений зеленим індикатором. На жаль, (поки що) не можна визначати ступінь довіри до інших відомих публічних ключів.

- -

Сертифікація ключів

-

Підтримка сертифікації ключів вже реалізована, і Ви можете сертифікувати окремі ID користувача. Наразі не можна вибирати ступінь довіри, створювати локальні або спеціальні типи сертифікатів.

- - - diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html deleted file mode 100644 index f789438a7..000000000 --- a/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

使用NFC接收和分享金鑰

-
    -
  1. 找到並打開你要分享的金鑰。
  2. -
  3. 將裝置背對背輕靠,直到感覺到震動。
  4. -
  5. 震動後會發現畫面變成卡片狀,並且背景帶有Star Trek的特效。
  6. -
  7. 輕觸畫面,內容將顯示在對方的畫面上。
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html deleted file mode 100644 index 0db0d354f..000000000 --- a/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

信任網

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

OpenKeychain的支援狀況

-

目前OpenKeychain對信任網只有基本程度的支援。這是一件大工程,有任何進展將隨時發佈。

- -

信任模式

-

信用評價基於一個前提:所有帶有密鑰的金鑰都是可以信任的。所有可信任金鑰簽署過的公鑰,會在清單裡被標上一個綠圓點。目前並不支援指定其他公鑰的信任等級。

- -

金鑰認證

-

金鑰認證是支援的,而且每個身份可以個別進行認證。然而,目前並不支援指定簽署的信任等級與建立本機或其他形式的認證。

- - - diff --git a/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html deleted file mode 100644 index 3f08fa6a2..000000000 --- a/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -

使用NFC功能接收和分享密钥

-
    -
  1. 选择并打开你想要分享的密钥。
  2. -
  3. 将两部手机背面接触,之后会感受到震动。
  4. -
  5. 震动后会发现界面变成卡片状,并有Star Trek 般的特效。
  6. -
  7. 轻触卡片,内容即可显示。
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw-zh/help_wot.html b/OpenKeychain/src/main/res/raw-zh/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-zh/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/raw/help_certification.html b/OpenKeychain/src/main/res/raw/help_certification.html new file mode 100644 index 000000000..19ca85b4f --- /dev/null +++ b/OpenKeychain/src/main/res/raw/help_certification.html @@ -0,0 +1,32 @@ + + + + + + +

Key Confirmation

+Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +

Key Status

+


Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. +

Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. +

Expired: This key is no longer valid. Only the owner can extend its validity. +

Revoked: This key is no longer valid. It has been revoked by its owner.

+ +

Advanced Information

+

A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a "generic certification (0x10)" described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID."

+ +

Traditionally, certifications (often with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or any other internal trust model. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings.

+ + + diff --git a/OpenKeychain/src/main/res/raw/help_faq.html b/OpenKeychain/src/main/res/raw/help_faq.html deleted file mode 100644 index 094065909..000000000 --- a/OpenKeychain/src/main/res/raw/help_faq.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -

How can I specify connection port for Keyserver?

-

Add a new Keyserver (or modify existing one) by going to Preferences -> General -> Keyservers. Enter the port number after the Keyserver address and preceded it by a colon. For example, "p80.pool.sks-keyservers.net:80" (without quotation marks) means that server "p80.pool.sks-keyservers.net" is working on a port 80.

-

Default connection port is 11371 and it doesn't need to be specified.

- -

A wrong primary user id is shown when searching on a Keyserver

-

Unfortunately, this is a bug in the SKS Keyserver software. Its machine-readable output returns the user ids in an arbitrary order. Read the related bug report for more information.

- -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Thats it.

- - diff --git a/OpenKeychain/src/main/res/raw/help_nfc_beam.html b/OpenKeychain/src/main/res/raw/help_nfc_beam.html deleted file mode 100644 index 30060a897..000000000 --- a/OpenKeychain/src/main/res/raw/help_nfc_beam.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - diff --git a/OpenKeychain/src/main/res/raw/help_start.html b/OpenKeychain/src/main/res/raw/help_start.html index 75fe9de26..0a30cbd92 100644 --- a/OpenKeychain/src/main/res/raw/help_start.html +++ b/OpenKeychain/src/main/res/raw/help_start.html @@ -5,10 +5,14 @@ And don't add newlines before or after p tags because of transifex --> -

Getting started

-

First you need a personal key. Create one via the menu in "Keys" or import existing secret keys. Afterwards, you can download your friends' keys or exchange them via QR Codes or NFC.

-

On Android lower 4.4, it is recommended that you install OI File Manager for enhanced file selection.

+

How do I activate OpenKeychain in K-9 Mail?

+

To use OpenKeychain with K-9 Mail, you want to follow these steps:

+
    +
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. +
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. +
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. +

I found a bug in OpenKeychain!

Please report the bug using the issue tracker of OpenKeychain.

diff --git a/OpenKeychain/src/main/res/raw/help_wot.html b/OpenKeychain/src/main/res/raw/help_wot.html deleted file mode 100644 index d2ce4a7ae..000000000 --- a/OpenKeychain/src/main/res/raw/help_wot.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -

Web of Trust

-

The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.

- -

Support in OpenKeychain

-

There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.

- -

Trust Model

-

Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.

- -

Certifying keys

-

Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.

- - - diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 30c3d5018..f60c0dd5b 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -34,7 +34,7 @@ "Export Keys" "Key Not Found" "Upload to Keyserver" - "Verify Key" + "Confirm Key" "Key Details" "Help" "Log" @@ -55,7 +55,7 @@ "Defaults" "Advanced" "Passphrase Cache" - "Certify" + "Confirm" "Actions" "Key" "Synchronize Key" @@ -113,7 +113,7 @@ "Search cloud" "Export all keys" "Show advanced info" - "Verify via fingerprint comparison" + "Confirm via fingerprint comparison" "Message" @@ -225,7 +225,7 @@ "Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists." "Please specify which file to export to.\nWARNING: File will be overwritten if it exists." "Do you really want to delete all selected keys?" - "After deletion you will not be able to read messages encrypted with this key and loose all key verifications related to it!" + "After deletion you will not be able to read messages encrypted with this key and lose all key verifications related to it!" "Delete key '%s'?" "Also export secret keys" "You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys." @@ -245,7 +245,7 @@ "Successfully sent key with NFC Beam!" "Key has been copied to the clipboard!" "Fingerprint has been copied to the clipboard!" - "Please select a key to be used for certification!" + "Please select a key to be used for confirmation!" "Key is too big to be shared this way!" "Text has been copied to the clipboard!" @@ -384,7 +384,7 @@ "Start" "FAQ" - "Web of Trust" + "Key Confirmation" "NFC Beam" "Changelog" "About" @@ -526,7 +526,7 @@ "Edit key" "Encrypt text" "files" - "Verify key" + "Confirm key" "Update from keyserver" "Share with…" "Share over NFC" @@ -546,16 +546,16 @@ "Something is wrong with this identity!" - "You have already certified this key!" + "You have already confirmed this key!" "This is one of your keys!" - "This key is neither revoked nor expired.\nYou haven’t certified it, but you may choose to trust it." + "This key is neither revoked nor expired.\nYou haven’t confirmed it, but you may choose to trust it." "This key has been revoked by its owner. You should not trust it." "This key has expired. You should not trust it." " It may be OK to use this to decrypt an old message dating from the time when this key was valid." "No proof from the cloud on this key’s trustworthiness." "Start search" "Keybase.io offers “proofs” which assert that the owner of this key: " - "Note: Keybase.io proofs are an experimental feature of OpenKeychain. We encourage you to scan QR Codes or exchange keys via NFC in addition to verifying them." + "Note: Keybase.io proofs are an experimental feature of OpenKeychain. We encourage you to scan QR Codes or exchange keys via NFC in addition to confirming them." "Posts to Twitter as" @@ -628,8 +628,8 @@ "Expired: The contact needs to extend the key's validity!" "Expired: You can extend the keys validity by editing it!" "My Key" - "Verified Key" - "Unverified: Scan QR Code to verify key!" + "Confirmed Key" + "Unconfirmed: Scan QR Code to confirm key!" "Keys" @@ -831,7 +831,7 @@ "No valid self-certificate found for user ID '%s', removing from ring" "Removing invalid user ID '%s'" "Removing duplicate user ID '%s'. The keyring contained two of them. This may result in missing certificates!" - "User id does not verify as UTF-8!" + "User ID does not verify as UTF-8!" "Processing user attribute of type JPEG" "Processing user attribute of unknown type" "Removing bad self certificate for user attribute" @@ -846,7 +846,7 @@ "Removing outdated revocation certificate for user attribute" "No valid self-certificate found for user attribute, removing from ring" "Removing invalid user attribute" - "User id does not verify as UTF-8!" + "User ID does not verify as UTF-8!" "New public subkey found, but secret subkey dummy generation is not supported!" @@ -1176,11 +1176,10 @@ "No certificates for this key" "Only validated self-certificates and validated certificates created with your keys are displayed here." "Identities for " - "The keys you are importing contain “identities”: names and emails. Select exactly those for certification which match what you expected." + "The keys you are importing contain “identities”: names and emails. Select exactly those for confirmation which match what you expected." "Compare the displayed fingerprint, character by character, with the one displayed on your partners device." "Do the displayed fingerprints match?" "Revocation Reason" - "Verification Status" "Type" "Key not found!" "Error processing key!" From 1aebd7412f5cdd3fde31f502ac1baecaeba453da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 18:38:58 +0100 Subject: [PATCH 45/53] Fix transifex --- .tx/config | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/.tx/config b/.tx/config index c7ec499c4..fe16cc2f4 100644 --- a/.tx/config +++ b/.tx/config @@ -17,14 +17,9 @@ file_filter = OpenKeychain/src/main/res/raw-/help_changelog.html source_file = OpenKeychain/src/main/res/raw/help_changelog.html source_lang = en -[open-keychain.help-wot] -file_filter = OpenKeychain/src/main/res/raw-/help_wot.html -source_file = OpenKeychain/src/main/res/raw/help_wot.html -source_lang = en - -[open-keychain.help-nfc-beam] -file_filter = OpenKeychain/src/main/res/raw-/help_nfc_beam.html -source_file = OpenKeychain/src/main/res/raw/help_nfc_beam.html +[open-keychain.help-certification] +file_filter = OpenKeychain/src/main/res/raw-/help_certification.html +source_file = OpenKeychain/src/main/res/raw/help_certification.html source_lang = en [open-keychain.help-start] @@ -32,7 +27,3 @@ file_filter = OpenKeychain/src/main/res/raw-/help_start.html source_file = OpenKeychain/src/main/res/raw/help_start.html source_lang = en -[open-keychain.nfc-beam-share] -file_filter = OpenKeychain/src/main/res/raw-/nfc_beam_share.html -source_file = OpenKeychain/src/main/res/raw/nfc_beam_share.html -source_lang = en From de31fcc45fac49683ae49e15d070df7b13a15a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 19:04:15 +0100 Subject: [PATCH 46/53] Partially fix file names --- ...ud_search_24px.svg => ic_cloud_search.svg} | 0 .../drawable-hdpi/ic_key_plus_black_18dp.png | Bin 0 -> 466 bytes .../drawable-hdpi/ic_key_plus_black_24dp.png | Bin 0 -> 434 bytes .../drawable-hdpi/ic_key_plus_black_36dp.png | Bin 0 -> 661 bytes .../drawable-hdpi/ic_key_plus_black_48dp.png | Bin 0 -> 583 bytes .../ic_key_plus_grey600_18dp.png | Bin 0 -> 651 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 642 bytes .../ic_key_plus_grey600_36dp.png | Bin 0 -> 938 bytes .../ic_key_plus_grey600_48dp.png | Bin 0 -> 954 bytes .../drawable-hdpi/ic_key_plus_white_18dp.png | Bin 0 -> 480 bytes .../drawable-hdpi/ic_key_plus_white_24dp.png | Bin 0 -> 467 bytes .../drawable-hdpi/ic_key_plus_white_36dp.png | Bin 0 -> 717 bytes .../drawable-hdpi/ic_key_plus_white_48dp.png | Bin 0 -> 704 bytes .../drawable-mdpi/ic_key_plus_black_18dp.png | Bin 0 -> 331 bytes .../drawable-mdpi/ic_key_plus_black_24dp.png | Bin 0 -> 261 bytes .../drawable-mdpi/ic_key_plus_black_36dp.png | Bin 0 -> 434 bytes .../drawable-mdpi/ic_key_plus_black_48dp.png | Bin 0 -> 371 bytes .../ic_key_plus_grey600_18dp.png | Bin 0 -> 449 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 382 bytes .../ic_key_plus_grey600_36dp.png | Bin 0 -> 642 bytes .../ic_key_plus_grey600_48dp.png | Bin 0 -> 583 bytes .../drawable-mdpi/ic_key_plus_white_18dp.png | Bin 0 -> 353 bytes .../drawable-mdpi/ic_key_plus_white_24dp.png | Bin 0 -> 280 bytes .../drawable-mdpi/ic_key_plus_white_36dp.png | Bin 0 -> 467 bytes .../drawable-mdpi/ic_key_plus_white_48dp.png | Bin 0 -> 446 bytes .../drawable-xhdpi/ic_key_plus_black_18dp.png | Bin 0 -> 434 bytes .../drawable-xhdpi/ic_key_plus_black_24dp.png | Bin 0 -> 371 bytes .../drawable-xhdpi/ic_key_plus_black_36dp.png | Bin 0 -> 583 bytes .../drawable-xhdpi/ic_key_plus_black_48dp.png | Bin 0 -> 730 bytes .../ic_key_plus_grey600_18dp.png | Bin 0 -> 642 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 583 bytes .../ic_key_plus_grey600_36dp.png | Bin 0 -> 954 bytes .../ic_key_plus_grey600_48dp.png | Bin 0 -> 1155 bytes .../drawable-xhdpi/ic_key_plus_white_18dp.png | Bin 0 -> 467 bytes .../drawable-xhdpi/ic_key_plus_white_24dp.png | Bin 0 -> 446 bytes .../drawable-xhdpi/ic_key_plus_white_36dp.png | Bin 0 -> 704 bytes .../drawable-xhdpi/ic_key_plus_white_48dp.png | Bin 0 -> 908 bytes .../ic_key_plus_black_18dp.png | Bin 0 -> 661 bytes .../ic_key_plus_black_24dp.png | Bin 0 -> 583 bytes .../ic_key_plus_black_36dp.png | Bin 0 -> 1080 bytes .../ic_key_plus_black_48dp.png | Bin 0 -> 1093 bytes .../ic_key_plus_grey600_18dp.png | Bin 0 -> 938 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 954 bytes .../ic_key_plus_grey600_36dp.png | Bin 0 -> 1578 bytes .../ic_key_plus_grey600_48dp.png | Bin 0 -> 1805 bytes .../ic_key_plus_white_18dp.png | Bin 0 -> 717 bytes .../ic_key_plus_white_24dp.png | Bin 0 -> 704 bytes .../ic_key_plus_white_36dp.png | Bin 0 -> 1254 bytes .../ic_key_plus_white_48dp.png | Bin 0 -> 1351 bytes .../ic_key_plus_black_18dp.png | Bin 0 -> 583 bytes .../ic_key_plus_black_24dp.png | Bin 0 -> 730 bytes .../ic_key_plus_black_36dp.png | Bin 0 -> 1093 bytes .../ic_key_plus_black_48dp.png | Bin 0 -> 1703 bytes .../ic_key_plus_grey600_18dp.png | Bin 0 -> 954 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 1155 bytes .../ic_key_plus_grey600_36dp.png | Bin 0 -> 1805 bytes .../ic_key_plus_grey600_48dp.png | Bin 0 -> 2523 bytes .../ic_key_plus_white_18dp.png | Bin 0 -> 704 bytes .../ic_key_plus_white_24dp.png | Bin 0 -> 908 bytes .../ic_key_plus_white_36dp.png | Bin 0 -> 1351 bytes .../ic_key_plus_white_48dp.png | Bin 0 -> 2081 bytes .../originals/key-plus/drawable/key-plus.xml | 8 ++++ .../drawables/originals/key-plus/readme.txt | 5 ++ Graphics/update-drawables.sh | 45 ++++-------------- .../ic_action_encrypt_file_24dp.png | Bin 0 -> 524 bytes .../ic_action_encrypt_text_24dp.png | Bin 0 -> 651 bytes .../drawable-hdpi/ic_action_new_account.png | Bin 556 -> 0 bytes .../ic_action_verified_cutout_24dp.png | Bin 0 -> 805 bytes .../drawable-hdpi/ic_cloud_search_24dp.png | Bin 0 -> 726 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 642 bytes .../key_flag_authenticate_24dp.png | Bin 0 -> 1535 bytes .../key_flag_authenticate_24px.png | Bin 1302 -> 0 bytes .../drawable-hdpi/key_flag_certify_24dp.png | Bin 0 -> 2598 bytes .../drawable-hdpi/key_flag_certify_24px.png | Bin 2289 -> 0 bytes .../drawable-hdpi/key_flag_encrypt_24dp.png | Bin 0 -> 1749 bytes .../drawable-hdpi/key_flag_encrypt_24px.png | Bin 1530 -> 0 bytes .../res/drawable-hdpi/key_flag_sign_24dp.png | Bin 0 -> 1950 bytes .../res/drawable-hdpi/key_flag_sign_24px.png | Bin 1751 -> 0 bytes .../drawable-hdpi/status_lock_closed_24dp.png | Bin 0 -> 743 bytes .../drawable-hdpi/status_lock_closed_24px.png | Bin 675 -> 0 bytes .../drawable-hdpi/status_lock_error_24dp.png | Bin 0 -> 806 bytes .../drawable-hdpi/status_lock_error_24px.png | Bin 748 -> 0 bytes .../drawable-hdpi/status_lock_open_24dp.png | Bin 0 -> 736 bytes .../drawable-hdpi/status_lock_open_24px.png | Bin 675 -> 0 bytes .../status_signature_expired_cutout_24dp.png | Bin 0 -> 906 bytes .../status_signature_expired_cutout_24px.png | Bin 789 -> 0 bytes ... status_signature_expired_cutout_96dp.png} | Bin .../status_signature_invalid_cutout_24dp.png | Bin 0 -> 485 bytes .../status_signature_invalid_cutout_24px.png | Bin 444 -> 0 bytes ... status_signature_invalid_cutout_96dp.png} | Bin .../status_signature_revoked_cutout_24dp.png | Bin 0 -> 962 bytes .../status_signature_revoked_cutout_24px.png | Bin 861 -> 0 bytes ... status_signature_revoked_cutout_96dp.png} | Bin .../status_signature_unknown_cutout_24dp.png | Bin 0 -> 742 bytes .../status_signature_unknown_cutout_24px.png | Bin 740 -> 0 bytes ... status_signature_unknown_cutout_96dp.png} | Bin ...tatus_signature_unverified_cutout_24dp.png | Bin 0 -> 925 bytes ...tatus_signature_unverified_cutout_24px.png | Bin 813 -> 0 bytes ...atus_signature_unverified_cutout_96dp.png} | Bin .../status_signature_verified_cutout_24dp.png | Bin 0 -> 772 bytes .../status_signature_verified_cutout_24px.png | Bin 695 -> 0 bytes ...status_signature_verified_cutout_96dp.png} | Bin .../ic_action_encrypt_file_24dp.png | Bin 0 -> 406 bytes .../ic_action_encrypt_text_24dp.png | Bin 0 -> 513 bytes .../drawable-mdpi/ic_action_new_account.png | Bin 424 -> 0 bytes .../ic_action_verified_cutout_24dp.png | Bin 0 -> 585 bytes .../drawable-mdpi/ic_cloud_search_24dp.png | Bin 0 -> 506 bytes .../drawable-mdpi/ic_cloud_search_24px.png | Bin 712 -> 0 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 382 bytes ...4px.png => key_flag_authenticate_24dp.png} | Bin ...ify_24px.png => key_flag_certify_24dp.png} | Bin ...ypt_24px.png => key_flag_encrypt_24dp.png} | Bin ...g_sign_24px.png => key_flag_sign_24dp.png} | Bin ...d_24px.png => status_lock_closed_24dp.png} | Bin ...or_24px.png => status_lock_error_24dp.png} | Bin ...pen_24px.png => status_lock_open_24dp.png} | Bin ... status_signature_expired_cutout_24dp.png} | Bin ... status_signature_expired_cutout_96dp.png} | Bin ... status_signature_invalid_cutout_24dp.png} | Bin ... status_signature_invalid_cutout_96dp.png} | Bin ... status_signature_revoked_cutout_24dp.png} | Bin ... status_signature_revoked_cutout_96dp.png} | Bin ... status_signature_unknown_cutout_24dp.png} | Bin ... status_signature_unknown_cutout_96dp.png} | Bin ...atus_signature_unverified_cutout_24dp.png} | Bin ...atus_signature_unverified_cutout_96dp.png} | Bin ...status_signature_verified_cutout_24dp.png} | Bin ...status_signature_verified_cutout_96dp.png} | Bin .../ic_action_encrypt_file_24dp.png | Bin 0 -> 623 bytes .../ic_action_encrypt_text_24dp.png | Bin 0 -> 787 bytes .../drawable-xhdpi/ic_action_new_account.png | Bin 701 -> 0 bytes .../ic_action_verified_cutout_24dp.png | Bin 0 -> 1080 bytes .../ic_cloud_search_24dp.png} | Bin .../drawable-xhdpi/ic_cloud_search_24px.png | Bin 1428 -> 0 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 583 bytes ...4px.png => key_flag_authenticate_24dp.png} | Bin ...ify_24px.png => key_flag_certify_24dp.png} | Bin ...ypt_24px.png => key_flag_encrypt_24dp.png} | Bin ...g_sign_24px.png => key_flag_sign_24dp.png} | Bin ...d_24px.png => status_lock_closed_24dp.png} | Bin ...or_24px.png => status_lock_error_24dp.png} | Bin ...pen_24px.png => status_lock_open_24dp.png} | Bin ... status_signature_expired_cutout_24dp.png} | Bin ... status_signature_expired_cutout_96dp.png} | Bin ... status_signature_invalid_cutout_24dp.png} | Bin ... status_signature_invalid_cutout_96dp.png} | Bin ... status_signature_revoked_cutout_24dp.png} | Bin ... status_signature_revoked_cutout_96dp.png} | Bin ... status_signature_unknown_cutout_24dp.png} | Bin ... status_signature_unknown_cutout_96dp.png} | Bin ...atus_signature_unverified_cutout_24dp.png} | Bin ...atus_signature_unverified_cutout_96dp.png} | Bin ...status_signature_verified_cutout_24dp.png} | Bin ...status_signature_verified_cutout_96dp.png} | Bin .../ic_action_encrypt_file_24dp.png | Bin 0 -> 905 bytes .../ic_action_encrypt_text_24dp.png | Bin 0 -> 1082 bytes .../drawable-xxhdpi/ic_action_new_account.png | Bin 855 -> 0 bytes .../ic_action_verified_cutout_24dp.png | Bin 0 -> 1615 bytes .../drawable-xxhdpi/ic_cloud_search_24dp.png | Bin 0 -> 1587 bytes .../ic_key_plus_grey600_24dp.png | Bin 0 -> 954 bytes .../key_flag_authenticate_24dp.png | Bin 0 -> 3678 bytes .../key_flag_authenticate_24px.png | Bin 3073 -> 0 bytes .../drawable-xxhdpi/key_flag_certify_24dp.png | Bin 0 -> 6148 bytes .../drawable-xxhdpi/key_flag_certify_24px.png | Bin 5303 -> 0 bytes .../drawable-xxhdpi/key_flag_encrypt_24dp.png | Bin 0 -> 3497 bytes .../drawable-xxhdpi/key_flag_encrypt_24px.png | Bin 3158 -> 0 bytes .../drawable-xxhdpi/key_flag_sign_24dp.png | Bin 0 -> 4231 bytes .../drawable-xxhdpi/key_flag_sign_24px.png | Bin 3765 -> 0 bytes .../status_lock_closed_24dp.png | Bin 0 -> 1300 bytes .../status_lock_closed_24px.png | Bin 1160 -> 0 bytes .../status_lock_error_24dp.png | Bin 0 -> 1481 bytes .../status_lock_error_24px.png | Bin 1316 -> 0 bytes .../drawable-xxhdpi/status_lock_open_24dp.png | Bin 0 -> 1310 bytes .../drawable-xxhdpi/status_lock_open_24px.png | Bin 1165 -> 0 bytes .../status_signature_expired_cutout_24dp.png | Bin 0 -> 1719 bytes .../status_signature_expired_cutout_24px.png | Bin 1590 -> 0 bytes ... status_signature_expired_cutout_96dp.png} | Bin .../status_signature_invalid_cutout_24dp.png | Bin 0 -> 809 bytes .../status_signature_invalid_cutout_24px.png | Bin 694 -> 0 bytes ... status_signature_invalid_cutout_96dp.png} | Bin .../status_signature_revoked_cutout_24dp.png | Bin 0 -> 1835 bytes .../status_signature_revoked_cutout_24px.png | Bin 1660 -> 0 bytes ... status_signature_revoked_cutout_96dp.png} | Bin .../status_signature_unknown_cutout_24dp.png | Bin 0 -> 1512 bytes .../status_signature_unknown_cutout_24px.png | Bin 1377 -> 0 bytes ... status_signature_unknown_cutout_96dp.png} | Bin ...tatus_signature_unverified_cutout_24dp.png | Bin 0 -> 1714 bytes ...tatus_signature_unverified_cutout_24px.png | Bin 1555 -> 0 bytes ...atus_signature_unverified_cutout_96dp.png} | Bin .../status_signature_verified_cutout_24dp.png | Bin 0 -> 1424 bytes .../status_signature_verified_cutout_24px.png | Bin 1319 -> 0 bytes ...status_signature_verified_cutout_96dp.png} | Bin .../ic_action_encrypt_file_24dp.png | Bin 0 -> 1095 bytes .../ic_action_encrypt_text_24dp.png | Bin 0 -> 1331 bytes .../ic_action_verified_cutout_24dp.png | Bin 0 -> 2168 bytes .../ic_cloud_search_24dp.png} | Bin .../ic_key_plus_grey600_24dp.png | Bin 0 -> 1155 bytes .../key_flag_authenticate_24dp.png | Bin 0 -> 5211 bytes .../key_flag_certify_24dp.png | Bin 0 -> 8878 bytes .../key_flag_encrypt_24dp.png | Bin 0 -> 4734 bytes .../drawable-xxxhdpi/key_flag_sign_24dp.png | Bin 0 -> 6060 bytes .../status_lock_closed_24dp.png | Bin 0 -> 1740 bytes .../status_lock_error_24dp.png | Bin 0 -> 1919 bytes .../status_lock_open_24dp.png | Bin 0 -> 1764 bytes .../status_signature_expired_cutout_24dp.png | Bin 0 -> 2411 bytes .../status_signature_invalid_cutout_24dp.png | Bin 0 -> 958 bytes .../status_signature_revoked_cutout_24dp.png | Bin 0 -> 2475 bytes .../status_signature_unknown_cutout_24dp.png | Bin 0 -> 2105 bytes ...tatus_signature_unverified_cutout_24dp.png | Bin 0 -> 2314 bytes .../status_signature_verified_cutout_24dp.png | Bin 0 -> 2148 bytes .../layout/api_account_settings_fragment.xml | 2 +- .../main/res/layout/certify_key_fragment.xml | 2 +- .../res/layout/create_key_final_fragment.xml | 2 +- .../res/layout/decrypt_result_include.xml | 4 +- .../src/main/res/layout/edit_key_fragment.xml | 2 +- .../main/res/layout/first_time_activity.xml | 2 +- .../main/res/layout/import_keys_list_item.xml | 2 +- .../src/main/res/layout/key_list_fragment.xml | 2 +- .../src/main/res/layout/key_list_item.xml | 2 +- .../src/main/res/layout/keyspinner_item.xml | 2 +- .../src/main/res/layout/select_key_item.xml | 2 +- .../src/main/res/layout/view_key_activity.xml | 2 +- 222 files changed, 36 insertions(+), 48 deletions(-) rename Graphics/drawables/{ic_cloud_search_24px.svg => ic_cloud_search.svg} (100%) create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_48dp.png create mode 100644 Graphics/drawables/originals/key-plus/drawable/key-plus.xml create mode 100644 Graphics/drawables/originals/key-plus/readme.txt create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_verified_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png rename OpenKeychain/src/main/res/drawable-hdpi/{status_signature_expired_cutout_96px.png => status_signature_expired_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png rename OpenKeychain/src/main/res/drawable-hdpi/{status_signature_invalid_cutout_96px.png => status_signature_invalid_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24px.png rename OpenKeychain/src/main/res/drawable-hdpi/{status_signature_revoked_cutout_96px.png => status_signature_revoked_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png rename OpenKeychain/src/main/res/drawable-hdpi/{status_signature_unknown_cutout_96px.png => status_signature_unknown_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24px.png rename OpenKeychain/src/main/res/drawable-hdpi/{status_signature_unverified_cutout_96px.png => status_signature_unverified_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24px.png rename OpenKeychain/src/main/res/drawable-hdpi/{status_signature_verified_cutout_96px.png => status_signature_verified_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_verified_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_key_plus_grey600_24dp.png rename OpenKeychain/src/main/res/drawable-mdpi/{key_flag_authenticate_24px.png => key_flag_authenticate_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{key_flag_certify_24px.png => key_flag_certify_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{key_flag_encrypt_24px.png => key_flag_encrypt_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{key_flag_sign_24px.png => key_flag_sign_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_lock_closed_24px.png => status_lock_closed_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_lock_error_24px.png => status_lock_error_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_lock_open_24px.png => status_lock_open_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_expired_cutout_24px.png => status_signature_expired_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_expired_cutout_96px.png => status_signature_expired_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_invalid_cutout_24px.png => status_signature_invalid_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_invalid_cutout_96px.png => status_signature_invalid_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_revoked_cutout_24px.png => status_signature_revoked_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_revoked_cutout_96px.png => status_signature_revoked_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_unknown_cutout_24px.png => status_signature_unknown_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_unknown_cutout_96px.png => status_signature_unknown_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_unverified_cutout_24px.png => status_signature_unverified_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_unverified_cutout_96px.png => status_signature_unverified_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_verified_cutout_24px.png => status_signature_verified_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-mdpi/{status_signature_verified_cutout_96px.png => status_signature_verified_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png rename OpenKeychain/src/main/res/{drawable-hdpi/ic_cloud_search_24px.png => drawable-xhdpi/ic_cloud_search_24dp.png} (100%) delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_key_plus_grey600_24dp.png rename OpenKeychain/src/main/res/drawable-xhdpi/{key_flag_authenticate_24px.png => key_flag_authenticate_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{key_flag_certify_24px.png => key_flag_certify_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{key_flag_encrypt_24px.png => key_flag_encrypt_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{key_flag_sign_24px.png => key_flag_sign_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_lock_closed_24px.png => status_lock_closed_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_lock_error_24px.png => status_lock_error_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_lock_open_24px.png => status_lock_open_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_expired_cutout_24px.png => status_signature_expired_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_expired_cutout_96px.png => status_signature_expired_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_invalid_cutout_24px.png => status_signature_invalid_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_invalid_cutout_96px.png => status_signature_invalid_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_revoked_cutout_24px.png => status_signature_revoked_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_revoked_cutout_96px.png => status_signature_revoked_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_unknown_cutout_24px.png => status_signature_unknown_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_unknown_cutout_96px.png => status_signature_unknown_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_unverified_cutout_24px.png => status_signature_unverified_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_unverified_cutout_96px.png => status_signature_unverified_cutout_96dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_verified_cutout_24px.png => status_signature_verified_cutout_24dp.png} (100%) rename OpenKeychain/src/main/res/drawable-xhdpi/{status_signature_verified_cutout_96px.png => status_signature_verified_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_verified_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png rename OpenKeychain/src/main/res/drawable-xxhdpi/{status_signature_expired_cutout_96px.png => status_signature_expired_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24px.png rename OpenKeychain/src/main/res/drawable-xxhdpi/{status_signature_invalid_cutout_96px.png => status_signature_invalid_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png rename OpenKeychain/src/main/res/drawable-xxhdpi/{status_signature_revoked_cutout_96px.png => status_signature_revoked_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24px.png rename OpenKeychain/src/main/res/drawable-xxhdpi/{status_signature_unknown_cutout_96px.png => status_signature_unknown_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png rename OpenKeychain/src/main/res/drawable-xxhdpi/{status_signature_unverified_cutout_96px.png => status_signature_unverified_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24px.png rename OpenKeychain/src/main/res/drawable-xxhdpi/{status_signature_verified_cutout_96px.png => status_signature_verified_cutout_96dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_file_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png rename OpenKeychain/src/main/res/{drawable-xxhdpi/ic_cloud_search_24px.png => drawable-xxxhdpi/ic_cloud_search_24dp.png} (100%) create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_sign_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_error_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_open_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_expired_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_verified_cutout_24dp.png diff --git a/Graphics/drawables/ic_cloud_search_24px.svg b/Graphics/drawables/ic_cloud_search.svg similarity index 100% rename from Graphics/drawables/ic_cloud_search_24px.svg rename to Graphics/drawables/ic_cloud_search.svg diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d5420e3b32d7413d6c67546126ae2574b181c0ee GIT binary patch literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0d(}6TtKf~3pEvFe67-KzM978;gzrAAbJv&f@?L&Ohv=z?Wrp?ac z2X&IRJ1y+y;Cl4r0v`~tvZwEN+V431(!!Kim-u9@EVp!c?RV_tx+GQ-DDXC5mGiwr zo+rHTspK~`@yk@adpPg+9Q*Ha?nz_|aDSba-w%=R0qW}ij0l9u-d zY}s1J;?=nSz~&8hhZX0kbRKxUWbXCYj5!ahSAVWu@jzWo=zmswmi5i+H+KDB!LqOW za!dWI<)wmwZ!A7oh6wMQI6Y#|FYg~R*ZvpuwI2*WzUbLZ-(z79mp+sHJMmMFo!9%n z@jBZ(EAMQ2UwO^zbj9=#QT`vjQ>V;0lay(HV#_i8pks{t9%!Y$XU=K;DlL<`HZMWq zrD7V}W{IOG7YMJ(JhSXtZo|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zvQ&rUPlPeufHm>3#+VMq5u8$B>A_Z?D_yvp7l||JZ-}rAkPPle1&# z+fpulhv%{rUaat2Ej0BK_X4r4O&%gze!j&!!xoAD_j{;!vnMtG-5bttvu#e=SK!T3 z`R=pUrQ_w4^>daln5^(X`yuO#5z~_dfXj{Ee^ovK2#hSl*W<8Jn~(@0j|w-thXej%T8l zfwN2v4LKYGPM-*oHMZ4RqyKDUyR^*%x#bZ@3;Jj3X?Q5#)V}@KFYHx$)B9xtQ(X0@ zua0`4etvbC^KF@_!3j0OCvTcj+*IE8yl5{;&@h?h8vO?6MS2)psBMJ6=9V505`=ivx`+!JzsRsUFXWb<oq!Dz;Lk0qUOI}T$_ zAg_T-nD4U3GdyXRv`cse7IC~Ke;l7xv%+P^ie@#OA~v2OeG7M5Vy|(g%PUftG_kE2 z`40-ldrItYM*fCCd}G}rdBi?tv#vcebIK` zvA!jW^&3&F->97*xM3&j&FhdL%k-}sHjdQa~jx3abU$(S6J&|AU>klJJvVE vEmahYVgty)idEU}L(JkzN-PqI^fCVcuU7@J-gTAu00000NkvXXu0mjft3ez- literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..80bcc9e625da3b267d816d6876a1481382820159 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|VnFPZ!6Kid%1I?)77G6mjDhxsjQ)#V{=5CznlQ z?^51l;f;J!xh5O8Zu~A-!w`4)h|^>KWA~kO$~-w5_crg|Y`puYUy<{n6umo>6VrDv zJ8>ws2sr61n3(*|s(?X;>GuJ?4ZJqY{0BI8u;w)szHmC7!fnC2uc6bqr?I;v?(NG- zYXrm%KY!$qY1ca-&YQsT=U?!-9G(;3FZWGyWK2p+me{pG>1EKFQ#1SXUL5L55U%*B zknXhUa_GN7am%b|i?W8z^aX2#-a&$h+_5IcYBrWCch6eN*+w?KlX*7(iOhPFTSs|H_>68S+?%{*dXxCXuRK+(dfmSk zsKx|-EX!H*|Cx8Rqu!Al{9RrGN3I9<_yy$HzI?&r+xaw1Im%Js_}+-jrd3s&Unwmp z3-<jKpY~7Wt6LL~$_WQ#;*>?l&v)-C*E(t=i7QlCE4sezTcza4 kCX}LpL;y{6$^FSZL3S_CUi-Y)z^G>MboFyt=akR{01Y1J9{>OV literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3cbf76ba3bc831bd940b9ceb76da9f8a13eae080 GIT binary patch literal 651 zcmV;60(AX}P)e8(lFS1b z+k&@;z)jPV9odaNfEi1<`0O-Gm`yk!5Fj9bxT?K(QY6jFM}Xh1As!I@OY=TZJN@W z?2{Fr@qPao0JK`ITf-8|Y!s1)0H)IAh={z=T7LsDV)2&&oO2vUthz(Sm>1Uivg^8w zmW@BNA#7!>^&DXfzrd0B)4a<-l>AaS_?8lzP|cbe^Vro6v5zzq_tm&#WRp57N-k(Eo)= z;d$P100#lA#&Nuqr&i@50|3cslJg{|^Va4T8wCGUtgmmTwO;PVA~H&{C?Y>de(mO? zC_1{`d)(~^DUM{_r9WYkMF7P-ll3J=@}@P}6o69zUXi>zbQ^7Gt?vW42H-&yMU#1I l|L@aCatXlm^tlTFz;B76v0g#4-){f_002ovPDHLkV1gj<8p!|v literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..af3bc9d05f714163c1cc18d3028f62200b7c89a7 GIT binary patch literal 642 zcmV-|0)737P)F^CgE6o&t|$##NPf)2DKdc1SLX$%^8B)xLQ!CI}xEk!!_b(Td}^ovKg}1o^>Wup=U;X6Unowd>S1Og$mSw#fBRYx4N~s&;60Ym|0Pg8+ z`sSTPqGZix^DTh8Gs^7Qwq2d^-I+1>5R_645%B@+PwGUn1E5r|*FUE&1OQy6Ukmq?d zJtkQKaCsEAMdXQ|55sWk|4V1?+aAfr0qN36P-iZozpiAzvqFg(8`q5IB%duJlzoRX cp^X2IAD%?72WKAlP5=M^07*qoM6N<$g1A>2UH||9 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c9e69db00e3cfb21748be1b64eb6e212a8029a6e GIT binary patch literal 938 zcmV;b16BNqP)uPo+I5(Sq0DAyH9kmmVw@@u0MaKwA$5A>!u$@;)z#?rvsh|0a`!`Q7$=-}~nM zcHe$8^B^T9B_-v5q}>TY5cF+qYz$T^m8UY9OnGy2^WNOt+)C0S9f<`&;H|B#y{D@0 z1Fr&)R1G`eS76@ryvxO6@$aOiS`stHjHv2W5qZ9adJln%*4nR<7R$s9=JWZtL}Wok zo@ue(W5AhQF4tEomA*TaV!rRc3@iYB9n>Am<#Ow#Qt3ugVv$=h2!j6A)zv$|$u4SF zfETT`x04X_qJrgedAv(0fUK$(l8}PvUrdZK%fPcS^L_w+QPm+4d6U{MS&fRwr@;Dt zN~r2hYweHKv21Gwphj%ZR?KFz z!;NN($dzg-fG`YyQ`HX-VDW9SM@&@*V)7TGf~va6AtOqx(kNL~ACHQQ$P-D6G!+B> zjLAPobi+B9v`AC2OeS+PCjYcC=F<51_@g_Y#TauzL_SJdq@Ktdv@zxuFcLFw4fq`x z0-lV?TL<1&)vYG$7#5M)$OVdAbIx6fo1D#NmkWi$-I`c~+z|LOrdEFw@m)T*)_&70 z$@l#Y=Un8NsxF6N_-zZ5_k9G>GY8f~ahT-=~NyUl*SZnWWZ*RW@d9MmlL${AL|wS{;cTx{+M&_ zdUee6yjP0F;!pc|-DA5IQ?a8)Dt6R3h!@TKs#>g%B`uzklF}Xj0{1xpLCEXw7ytkO M07*qoM6N<$f+o?st^fc4 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e0999bd81dc50321add11839b832affd8c8646c0 GIT binary patch literal 954 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|T?Gr;B4q#jUq9cjpT`3bfZ3TWnJ7Sim7Ar^@t? zmEB8#*J;s{kNgU2G`jj9D=MlAsXVt{@u%1NNw{(;zX48ODnYWI*JBn=Cw&vL{#dO*BuA`4$D{#au({)hV z@}je|^J0wNcd-K=OgqJU4cXaiA8$Lv*51~(PC?R=VZ-4~YgT7+Pk3R`EOT7a@K_B) zfQOc)aecno?A`1;{ZExj861;wHL)yZ*v#;bm!E(C>Z@7RjC0ru1P=-KcWe{mYE8Yp z?eaH<^Pg||O^fk3)5)>_H_%Asb+6f8+f_3s+$x--er(3^4BLCg-Z$j7#B-%RJ0)LK z_jp&{fiqLLaQAr6SYR7epf`QDbh-_93#Zi7Chpclzbzg|D)?Mb*W7V2<4vdWJk~=j zo&W#6diCliL_%A0Mu(n7UvQ53GYh|o9ePV*6Jid@edfRTD*e!nq@K#8+u!1ACm6cD zY2M`E?l>*g*65gtf_e9BMjyr*tFC6ns=nVkd0X!6rSD6!{_I-%Sg1I*d}c@9S7lH2 zju+n)_NOr%I{oU@sZ*v5r#YX-nH=+34h+bU3xEFnQBSjDcbIeO?x8b}o9nJHax^g< z`2P3z8JpYB_iWzx{=Wb29~vECG3|`K8;{TPJY(~?^4`-e-2GlEjtn ze#`7o*FX{1lX`#m(}6TtKf~3pEvFe67_&WH978;gznx<5&Fm;}w7z%=XOu>U0JpTG z^g%y?9F+wMVPa7c5fL0>*XmgJH}*z&Xi4kpupCrUP@48qMT=!|hOpxmr%yT8HXQr2 z(^#DQWOiO!-u*qZt9NtD9${D=I%Nu5T7%vLt{di?lh&M?^h;&#EA=?l+#{MI9#+B0 zYql(!_~DUj!ll#R2Y3zmSk`S*UCE)*$!GED-qgnQ1=m+UZH(MkZN`zZw}$hBZPoh9 z92HrUAK&FCJZCrbk?kzISHUH!qXu2OFLpU44M1fbmVslmC4GtIVG@2!DUW(BQw_HJrCe_TFV+ P958sg`njxgN@xNAKL)@D literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8fed050051f8d6eb3aa8666373f44f7edd6cf60a GIT binary patch literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zvQ&rUPlPeufHm>3#+V#yC$G$B>A_Z>K5xGdl{n?a%B|W^`p@VrB}- zm2Hw|;OcK+X;;u(#^f5{QOA(cP8E5#a`x@L zH@92Q-aECZ=-1&#QjM9OrzfSU?DgC=xg&3Q*fBStl{Dt|!1t(i4aqNp>6#cICYrod-GGp#v^^qRWw*_2a zOiy!6?x{O@rM9&r&Nxpc_V25nPsK0pb3g5onZNL6XZrWKZ+w8k&fw|l=d#Wzp$Pz< C&cDL| literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..387d046b4bebc7cdf9f6be8945de83fbbb0d4a10 GIT binary patch literal 717 zcmV;;0y6!HP)=|f=wzB z0=9x+L=+KH7-C_eXb~_`6oi1$Xf*s5v*Nltb9Y|ron7u%o;mmK`F8G{Jv$Hx1OkD- zSk?uS)&ax7R$vKuXJ(7OMRFmjCTU#KeM#T-FRPMfC7qMB*>|m3q#BZ5C>DzjMD2cyBX1cv3aoUgqYhk8xHbt) zbXh-VW^cRNN*XJv4c|)h?MfQS(#q42Gc_gw*w zo7tyIi8bXGfCIqmjC(EtN6hSzFDa*3Q|=A054cJ91^_SxG|cRtPbr8da3{_88K)&( zBRZZ3fn7us$`_)6`6+PQ%w~KG1p^ZO)Taejk)x=avL1v}YG_Xf;V8y!rAIreQg!m8{ zp0U0mj8s7^hz%wKD^_N^PhuXp8WRfy0)5PHxVpd%f+|Vk00000NkvXXu0mjf8lNli literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d45e7a4b65496ecaad3b74194a72bb130a46efe0 GIT binary patch literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|S${r;B4q#jUq9_h*R&inQ-f-Y6)@ys2r$R6&*X z6W9f$;}edGZ`kOqoMXj&&~L-mjpDx>=Jxt0Bx*SxR8@4m81ZBCOr@5))$iWDd9!!% z^K7EwJ_Y}Tj zbW>OMveDC?X;UnpOHS?6ZBJR{y^BkR;kB$yHB-*4n@hH|h=|Ymw7f)_J%OXgoBP9z znU0gLHLgE!lyClj*&UIeZ8WDkem^n!v+xbZcMREQOPB9_Unptu?!kXE^Wxc)zgR84 zD?e#l+LilRr>YMsNtT!&emrmH-uYn{?%bdK`)r8YEBP<1JKkNnZ?L)9MS6Rq|I+3& zLWyQqUA-=78Wh}$HQs!`(~Rvv=F11SIlO9<+9luK%ZiM%)pVS1{K_7}k~e;pzue6* zVRuPGt|w>J?7;s*8}u`EGMz6i*xA?kciEonUy9V`8gHEa_43^5GbK~fjvqM9_mpAJ zs>+#+wy|f!Cpw;W=4(8D;7_*beD$sQr74R~m5JP5vv!wI$kllzrA_Bb)^r8;X0e*i z)vnXq=HgTe~DWM4fT<|Q^ literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ef4f8b36e85a033adda84e1b5a9d33f48531070e GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pF!Co&kM-8=IP=XVsZNHrM+29fdZ@#@?AY7?<>rmV7FKE zi)PT$j?@F`9*Q@9a49O7U0bQ5WVSMBsgK~LC7VQ(7N6D8IsL9lJBd%`+?l=Q&*uF; zT<<)oQ@X-IJlf|&)bf`+yJh70OG~<4kLd4kVwbjYy==56d8S%(#2>+*sg1jh_!dgG z+AqAm!`=Fm>^-BtybFiS_a*6s7Brr3x;wAJqW}N^ literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..797d1f492a6d84bec15c76f719d41ae6311ef49f GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE(}6TtKSPDj(q%x-1Wy;o5Rc<;CtLG1C}^l z>KmKpjhEPjAJsc@+w0$SXgJdn*&wf|IDygh0;A{zhJ&GxR1MaI6t;TqQ?v_xlXXEN zNpry$i->DY_ilt#`R|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zvQ&rUPlPeufHm>3#+VMq5u8$B>A_Z?D_yvp7l||JZ-}rAkPPle1&# z+fpulhv%{rUaat2Ej0BK_X4r4O&%gze!j&!!xoAD_j{;!vnMtG-5bttvu#e=SK!T3 z`R=pUrQ_w4^>daln5^(X`yuO#5z~_dfXj{Ee^ovK2#hSl*W<8Jn~(@0j|w-thXej%T8l zfwN2v4LKYGPM-*oHMZ4RqyKDUyR^*%x#bZ@3;Jj3X?Q5#)V}@KFYHx$)B9xtQ(X0@ zua0`4etvb%BW{5+eNaVf9R?qoK)_w1QA;IA3>gTe~DWM4f D`o)SD literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6ca369e37542a47c81a29021c7b2640eaeae8772 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pF!Co&x?V9(Z|!pF~s8Z*$ErHX9tQLt$(iUJfYzq`(2ho zAsKF~7xfob^5wE0^%T(4-@z)QRViO`;?l}y0iC&9yBB$gnX8+#7rs=nP!W=@*zUaF z!SQkWk}30^&ij3@^0_SEpZp6GOr(0(+KmB(}6TtKSPDj(q#+`jGUe>jv*e$-%c|0Iuanzwm&lHZ3VM-e`0F# zV^NzUQMLtFlN`ia!(ED5KZ=<}SF&ht{lw-cBGl0;_-K=2-XX3{byv?M%w&-}kc z;p~w!$13N^hliGOX&hZ@8;k`gxNM|1TcNTGn@VxtV+$ zrmLL1sKBb&qMoqa&p*_(_&cY;>&q6$H13OhcxlP7YSzq~t5>Df&eGq?QIUDW)Nu3K zsDlcV+-kVzT>W_FuK3!S$0YP;^DDMwU7Qrgx~hut&i0y=xM@$nDs-RG3BOt^Xvr?u zSpLA##qZa=7i>aKD`s{7Wwq1|7-0SI8P?7(f#xr P6l@Hhu6{1-oD!M<5%rYB literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..af3bc9d05f714163c1cc18d3028f62200b7c89a7 GIT binary patch literal 642 zcmV-|0)737P)F^CgE6o&t|$##NPf)2DKdc1SLX$%^8B)xLQ!CI}xEk!!_b(Td}^ovKg}1o^>Wup=U;X6Unowd>S1Og$mSw#fBRYx4N~s&;60Ym|0Pg8+ z`sSTPqGZix^DTh8Gs^7Qwq2d^-I+1>5R_645%B@+PwGUn1E5r|*FUE&1OQy6Ukmq?d zJtkQKaCsEAMdXQ|55sWk|4V1?+aAfr0qN36P-iZozpiAzvqFg(8`q5IB%duJlzoRX cp^X2IAD%?72WKAlP5=M^07*qoM6N<$g1A>2UH||9 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..144e829894b637c1ecf42cb1a0cdd1edb1ea2e8f GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>R#!H?qjv*QM-cH}`#q223_TN}#+qb5z`x?8t zq9T`F^xGg9uP`%5RY`1<^=$PEZX332+#(>_{6KgG|AN{m=Fia*E|Wbsy-qD({JFH+ z!gx-8xn4SB|MABsg*_*UupHDnSvu)6gPQf@c^>zeEIJ?mU}E4_4_F(v-1SL-ix}I} zi8)$Jw=LG#rQg$Vt%~!2WW&dn;;jrJJ%-nJa$kA@`mfr&FUy5u$s1*}`J z_1g>Xqs#{?(sR^8hwevfd`hqD|Td(C=79D43Q8}DAc~T6}OIZPZ z*KXakE}d_5_(h~sqQtz(IdxxqC*<&H|5Go_OImtG>|WLEEnBRTjSp*Hc$uoDsT#$g z75UAvmX+avL~-ugxxSm`c$m4S=)Lw6DVXo{-bAXGouS+H-@=a-|EyQ$?KLU6za=yO z#*#lL^GcR{V5&6!#B|?I^4Hg|oWiljsmXdMGqSNbF?~Ww^#E_ zc*N2RK_8@pSaSZf3QRCr8SLp2mz+eI8_U!p_AtBG$`tZBEn~k~u z`+A9Q^LCKVV6sloc)51N;xnR%9QNw?oJejsTsd`@F?aR~c)C^tM2sJFxEnwfn zAf3SbrP1%<%D+2vw&!d=mpJ8yU)}BSbA}mhsix;tdpCX4KCbau*z1(dXJx^5O(q_v iH?iB?C$_0i6uBzLvS7P-Rx$@TtUO))T-G@yGywo$VSwNO literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e52ae7e2282baa2f86c00bc1b746bd4b56278ec1 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE(}6TtKSPDj(q%x-Vow*x5Rc<;CtLF!G7xY{4_0VA6dKH|8q?FI z9I&ut4uguz*9@7=ZjHp;fFsXM|7DmapTBi!KF0y38%*jC*kl?_4eF=KbqRh1L1=C7ST5gy*QzbO-{hMdLLit@unr|KBRh-!# zhKm>#sQLeI-f-~yWMOwv&2tamvYCY$h|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zvQ&rUPlPeufHm>3#+V#yC$G$B>A_Z>K5xGdl{n?a%B|W^`p@VrB}- zm2Hw|;OcK+X;;u(#^f5{QOA(cP8E5#a`x@L zH@92Q-aECZ=-1&#QjM9OrzfSU?DgC=xg&3Q*fBStl{Dt|!1t(i4aqNp>6#cICYrod-GGp#v^^qRWw*_2a zOiy!6?x{O@rM9&r&Nxpc_V25nPsK0pb3g5onZNL6XZrWKZ+w8k&fw|l=d#Wzp$Pz< C&cDL| literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1ca76e485e31728e400a0beb46d6e038fc6eca GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>RMo&){$B>MBZ)X_#9d;0K{qMF#hQY$&fygq4 zQ>+>jE!-|WlM@lS(|o9%p^zbCF^3eFT(2%`y6&}&*C)GtULq2iyXpVU**6PSju+0^ z%RYmV{{Z&~&Kk!21Ih)=EU$ZV59&8g`mfoj{d&*Y53C!!IN~=malO7%`XlrBhuK2G zum5=6F3Gz=epfF=gcAByEA>#z2dxyYY!;?IcanAYxlR-84kBa_xj67Pn~=sLQ^yB z^z;M$OP0U-J9o*_tp~(1K528m6mEuI`te4O`|Hw6< fu-*fUKHdGybJgaoSvVyL7{Uymu6{1-oD!M|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zvQ&rUPlPeufHm>3#+VMq5u8$B>A_Z?D_yvp7l||JZ-}rAkPPle1&# z+fpulhv%{rUaat2Ej0BK_X4r4O&%gze!j&!!xoAD_j{;!vnMtG-5bttvu#e=SK!T3 z`R=pUrQ_w4^>daln5^(X`yuO#5z~_dfXj{Ee^ovK2#hSl*W<8Jn~(@0j|w-thXej%T8l zfwN2v4LKYGPM-*oHMZ4RqyKDUyR^*%x#bZ@3;Jj3X?Q5#)V}@KFYHx$)B9xtQ(X0@ zua0`4etvb%BW{5+eNaVf9R?qoK)_w1QA;IA3>gTe~DWM4f D`o)SD literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..80bcc9e625da3b267d816d6876a1481382820159 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|VnFPZ!6Kid%1I?)77G6mjDhxsjQ)#V{=5CznlQ z?^51l;f;J!xh5O8Zu~A-!w`4)h|^>KWA~kO$~-w5_crg|Y`puYUy<{n6umo>6VrDv zJ8>ws2sr61n3(*|s(?X;>GuJ?4ZJqY{0BI8u;w)szHmC7!fnC2uc6bqr?I;v?(NG- zYXrm%KY!$qY1ca-&YQsT=U?!-9G(;3FZWGyWK2p+me{pG>1EKFQ#1SXUL5L55U%*B zknXhUa_GN7am%b|i?W8z^aX2#-a&$h+_5IcYBrWCch6eN*+w?KlX*7(iOhPFTSs|H_>68S+?%{*dXxCXuRK+(dfmSk zsKx|-EX!H*|Cx8Rqu!Al{9RrGN3I9<_yy$HzI?&r+xaw1Im%Js_}+-jrd3s&Unwmp z3-<jKpY~7Wt6LL~$_WQ#;*>?l&v)-C*E(t=i7QlCE4sezTcza4 kCX}LpL;y{6$^FSZL3S_CUi-Y)z^G>MboFyt=akR{01Y1J9{>OV literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..827aa4b8592e9de7bcaf8d60cb654a281ee98227 GIT binary patch literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE(}8pX7+2iB`GtXjDb>@(F{I+w+uMfOB90QrKJFLtNlaSWs!(?D zkdo&5j(rRXWsn% z|3U5{qtko%Pp6eVbC{&!2}IqGeE5^sF`75}K9DL9jbN=~j&IaIAon3BM*gy|M3ZWQ zbOoo3$QAhqoCVc3ZOb;W?peO(`Sx% z1-9&Z%hV%RYyYV({C4$^=U!&LrRveMMIZ3~HUIx%a)F-h%UL!lb!X>a`TJ!__Qs=s zX4_X9<}Xv9zm26vLHGdU2QiD;c}|zic0Tie6}F4hbE)|^qW20y48E;sVsmAFu}N{W|IOzO+z0ymuCHUd&wVWK;zrxJ7e{@0 zcd>lfTyW;KZLGCNEYpt=i)VA^t&5HLCw=R&_m0!T9~K#GNKKeNSv+a?j;}X5=PMn0 z%^-2@_zn-|bkim0FZ!|>Ea9E0#@z5Q$J0!jfhRe5-%EzJ0-dEV85aC)jy%iGkSp&i zgiD?SQ(%8HPhVNW_}9QU}fNEu~e+g2-w>i6HabKc)t;b576Y=Nty6 OJO)o!KbLh*2~7ZB4l!Z? literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..af3bc9d05f714163c1cc18d3028f62200b7c89a7 GIT binary patch literal 642 zcmV-|0)737P)F^CgE6o&t|$##NPf)2DKdc1SLX$%^8B)xLQ!CI}xEk!!_b(Td}^ovKg}1o^>Wup=U;X6Unowd>S1Og$mSw#fBRYx4N~s&;60Ym|0Pg8+ z`sSTPqGZix^DTh8Gs^7Qwq2d^-I+1>5R_645%B@+PwGUn1E5r|*FUE&1OQy6Ukmq?d zJtkQKaCsEAMdXQ|55sWk|4V1?+aAfr0qN36P-iZozpiAzvqFg(8`q5IB%duJlzoRX cp^X2IAD%?72WKAlP5=M^07*qoM6N<$g1A>2UH||9 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..144e829894b637c1ecf42cb1a0cdd1edb1ea2e8f GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>R#!H?qjv*QM-cH}`#q223_TN}#+qb5z`x?8t zq9T`F^xGg9uP`%5RY`1<^=$PEZX332+#(>_{6KgG|AN{m=Fia*E|Wbsy-qD({JFH+ z!gx-8xn4SB|MABsg*_*UupHDnSvu)6gPQf@c^>zeEIJ?mU}E4_4_F(v-1SL-ix}I} zi8)$Jw=LG#rQg$Vt%~!2WW&dn;;jrJJ%-nJa$kA@`mfr&FUy5u$s1*}`J z_1g>Xqs#{?(sR^8hwevfd`hqD|Td(C=79D43Q8}DAc~T6}OIZPZ z*KXakE}d_5_(h~sqQtz(IdxxqC*<&H|5Go_OImtG>|WLEEnBRTjSp*Hc$uoDsT#$g z75UAvmX+avL~-ugxxSm`c$m4S=)Lw6DVXo{-bAXGouS+H-@=a-|EyQ$?KLU6za=yO z#*#lL^GcR{V5&6!#B|?I^4Hg|o=uJQvb0|T?Gr;B4q#jUq9cjpT`3bfZ3TWnJ7Sim7Ar^@t? zmEB8#*J;s{kNgU2G`jj9D=MlAsXVt{@u%1NNw{(;zX48ODnYWI*JBn=Cw&vL{#dO*BuA`4$D{#au({)hV z@}je|^J0wNcd-K=OgqJU4cXaiA8$Lv*51~(PC?R=VZ-4~YgT7+Pk3R`EOT7a@K_B) zfQOc)aecno?A`1;{ZExj861;wHL)yZ*v#;bm!E(C>Z@7RjC0ru1P=-KcWe{mYE8Yp z?eaH<^Pg||O^fk3)5)>_H_%Asb+6f8+f_3s+$x--er(3^4BLCg-Z$j7#B-%RJ0)LK z_jp&{fiqLLaQAr6SYR7epf`QDbh-_93#Zi7Chpclzbzg|D)?Mb*W7V2<4vdWJk~=j zo&W#6diCliL_%A0Mu(n7UvQ53GYh|o9ePV*6Jid@edfRTD*e!nq@K#8+u!1ACm6cD zY2M`E?l>*g*65gtf_e9BMjyr*tFC6ns=nVkd0X!6rSD6!{_I-%Sg1I*d}c@9S7lH2 zju+n)_NOr%I{oU@sZ*v5r#YX-nH=+34h+bU3xEFnQBSjDcbIeO?x8b}o9nJHax^g< z`2P3z8JpYB_iWzx{=Wb29~vECG3|`K8;{TPJY(~?^4`-e-2GlEjtn ze#`7o*FX{1lX`#m(}8pX7+2iB`GtXjh0oK)F{I+w+uP@}=eSC+e|W#=HQfU2Nx)4ZxME`5wU#1H5-%sw_lT4@vKgH;_dbLY?h@4K6GR+~^mao(QGFXylt@IH9i zF`cU+pF!t&<-eK5dEvViOQkIsvfobWm}7p-#^gbWJ=2VD_u?<-dCmRBcfc~d#Ae#bm!-j(3t=6U; zd<$;o+|yUO&R{cPi$U_XW5>U*wsD=P`;(@d|~X868~YUY6~iZ}t4$ z#VkMBMNAr}izE+p?&>l=<})p|a^JUgS2TVopNO(%eNfygrFwc(@Y=9!--owOvfgDp zx3iEzd`gx{Xz1SObGmm$zZY}N&-$znQ#98!#(*Mk3Tk8`h73FyPv^l z>+QF_|Nqp=9@w?@8#BXdhQ2IwkLVNb7hImqv5uTJ_v5|%JDCmN>y%G#GG^dAT6Eaa ziOE9F^10XQtH1VLU+~vZ`xfs7F`)w+XK?l!P7m&p4OL_mnOOX9O2!)xsgv!qcYAs; zq&}I`uP$Xh$%*NQa+;H%F{XTCvE0g4ue!E= zdoq_TBHKSKw3PLL;9Ir~?n!HM<6CdP&A*%XU6R3miI$hkwQt|Psk!|P zk-6|Z>&2r-kM38_^Jn;xapEgS!_>KR=RW5j>-aYaU z_QvaWJ+f%H&KT2QvyOa88Dd3_T>px$JO81a=ovDT_c&{lthCO+kzfODD&&{ rhKM`D%N8b~OTg7I2!cT1**xaPPA8Q$jYXNjB7(uw)z4*}Q$iB}$RH13 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8fed050051f8d6eb3aa8666373f44f7edd6cf60a GIT binary patch literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zvQ&rUPlPeufHm>3#+V#yC$G$B>A_Z>K5xGdl{n?a%B|W^`p@VrB}- zm2Hw|;OcK+X;;u(#^f5{QOA(cP8E5#a`x@L zH@92Q-aECZ=-1&#QjM9OrzfSU?DgC=xg&3Q*fBStl{Dt|!1t(i4aqNp>6#cICYrod-GGp#v^^qRWw*_2a zOiy!6?x{O@rM9&r&Nxpc_V25nPsK0pb3g5onZNL6XZrWKZ+w8k&fw|l=d#Wzp$Pz< C&cDL| literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1ca76e485e31728e400a0beb46d6e038fc6eca GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>RMo&){$B>MBZ)X_#9d;0K{qMF#hQY$&fygq4 zQ>+>jE!-|WlM@lS(|o9%p^zbCF^3eFT(2%`y6&}&*C)GtULq2iyXpVU**6PSju+0^ z%RYmV{{Z&~&Kk!21Ih)=EU$ZV59&8g`mfoj{d&*Y53C!!IN~=malO7%`XlrBhuK2G zum5=6F3Gz=epfF=gcAByEA>#z2dxyYY!;?IcanAYxlR-84kBa_xj67Pn~=sLQ^yB z^z;M$OP0U-J9o*_tp~(1K528m6mEuI`te4O`|Hw6< fu-*fUKHdGybJgaoSvVyL7{Uymu6{1-oD!M=uJQvb0|S${r;B4q#jUq9_h*R&inQ-f-Y6)@ys2r$R6&*X z6W9f$;}edGZ`kOqoMXj&&~L-mjpDx>=Jxt0Bx*SxR8@4m81ZBCOr@5))$iWDd9!!% z^K7EwJ_Y}Tj zbW>OMveDC?X;UnpOHS?6ZBJR{y^BkR;kB$yHB-*4n@hH|h=|Ymw7f)_J%OXgoBP9z znU0gLHLgE!lyClj*&UIeZ8WDkem^n!v+xbZcMREQOPB9_Unptu?!kXE^Wxc)zgR84 zD?e#l+LilRr>YMsNtT!&emrmH-uYn{?%bdK`)r8YEBP<1JKkNnZ?L)9MS6Rq|I+3& zLWyQqUA-=78Wh}$HQs!`(~Rvv=F11SIlO9<+9luK%ZiM%)pVS1{K_7}k~e;pzue6* zVRuPGt|w>J?7;s*8}u`EGMz6i*xA?kciEonUy9V`8gHEa_43^5GbK~fjvqM9_mpAJ zs>+#+wy|f!Cpw;W=4(8D;7_*beD$sQr74R~m5JP5vv!wI$kllzrA_Bb)^r8;X0e*i z)vnXq=HgTe~DWM4fT<|Q^ literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e236e0176a8d83104673799b61cfbfc93f810a58 GIT binary patch literal 908 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE(}8pX7+2iB`GtXjS=`gbF{I+w+uPRbeF7zpef+QO)ZFFN;iS~W zG55$)fzCrq7cL5rb2{iAxMR9X4Wk!lVaFv^MU9RCSy8E?BDte)CePtW(@(#)XLI_z zcx&zK^DvfTOFdtm z;<3x}$fNVS=h(iVxZvJpzcx$H>dnvNy;rx+s5<{5zoFOjaSdxuf5*-xkHa@FN!>m9 ziKu*nc7e&qA6K{VKFImz(8zt0dBwu_svdjy&fWh1;&=ZCQU&ez?(rWed%#k_Hlt(t z?2aGly|-Bk_;!R;+&O<>Vn@Zd>2~Ez<&C8`Sy!!%XUNratmf+f$!zgw`y=z_DmIzC zTYg*27;`k=e0FoOd4GLHX0h^ahMTuoHZ0t5{`S;ceM`;0H^@)9YY^^wWV;!!>ROh4 zY2pi)Io@Gjv&f9GM*mH5^wMp~D}5Q{xqsV4u6!GjC4AuZA-m-&Z(jh-GM*aSkdw<) z5p&~t(Sx|nH-0UCw!PZ-cIUIT9jC+!zLVxO_m@rW8>S4kt26C0dZHMFzl$%uwCGwLmk}rx zZ9aKook){yIBe*a7iXEJ*{W0+*wkiw^c!Cd-&c1r!PiF?bR7-NxK&+PSc?gri| gxD7Z125oP|ZN!}BBssp?2FxoAp00i_>zopr0NVVI0RR91 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..970f443361478930b4813c329a720e7fe4fc1684 GIT binary patch literal 661 zcmV;G0&4wC^KF@_!3j0OCvTcj+*IE8yl5{;&@h?h8vO?6MS2)psBMJ6=9V505`=ivx`+!JzsRsUFXWb<oq!Dz;Lk0qUOI}T$_ zAg_T-nD4U3GdyXRv`cse7IC~Ke;l7xv%+P^ie@#OA~v2OeG7M5Vy|(g%PUftG_kE2 z`40-ldrItYM*fCCd}G}rdBi?tv#vcebIK` zvA!jW^&3&F->97*xM3&j&FhdL%k-}sHjdQa~jx3abU$(S6J&|AU>klJJvVE vEmahYVgty)idEU}L(JkzN-PqI^fCVcuU7@J-gTAu00000NkvXXu0mjft3ez- literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..80bcc9e625da3b267d816d6876a1481382820159 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|VnFPZ!6Kid%1I?)77G6mjDhxsjQ)#V{=5CznlQ z?^51l;f;J!xh5O8Zu~A-!w`4)h|^>KWA~kO$~-w5_crg|Y`puYUy<{n6umo>6VrDv zJ8>ws2sr61n3(*|s(?X;>GuJ?4ZJqY{0BI8u;w)szHmC7!fnC2uc6bqr?I;v?(NG- zYXrm%KY!$qY1ca-&YQsT=U?!-9G(;3FZWGyWK2p+me{pG>1EKFQ#1SXUL5L55U%*B zknXhUa_GN7am%b|i?W8z^aX2#-a&$h+_5IcYBrWCch6eN*+w?KlX*7(iOhPFTSs|H_>68S+?%{*dXxCXuRK+(dfmSk zsKx|-EX!H*|Cx8Rqu!Al{9RrGN3I9<_yy$HzI?&r+xaw1Im%Js_}+-jrd3s&Unwmp z3-<jKpY~7Wt6LL~$_WQ#;*>?l&v)-C*E(t=i7QlCE4sezTcza4 kCX}LpL;y{6$^FSZL3S_CUi-Y)z^G>MboFyt=akR{01Y1J9{>OV literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..28af77c8b35b36adf55e4d9369150b9a09b4ef73 GIT binary patch literal 1080 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p{OJwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pJDNuux17Z=EI&Yjv*Dd-rn`?@C%eV{_(wps+#IV4Hcy& z$4(t_5;D6M;W1_EiAy&sIz4Vo2+BEC-B+*JuMd!zV=kDn_`ti!;lrwvu zTb{RlUjP1m@bZJ*U;%oV2(D1HsEV@hxMxzT^wnW)CECSq6i zdx;z9eLFezti=PN#O77{@(rRJ{Ws~{YJ6^@zb5J@Z_d&gvzJ_&#k^^A^e3gmtEQg2p`Pz6T`=7u@oJr|UcW8JG#S;nh^?R4B!sIKbY`^wZaL1kM%+TO z+CXQA+n)umyxre0dfsGu#J*&;PP^VC_AA@}FsL1on<2u>zVE_~19FUFkDf`lGXyu3 z9{9`lN;jG_Et7d}Mayi#m**1_@|l{aI&r4WPiL=c@RYnAkij_j^P2;!WO8}f-l-a7 zEaiC9=>GV8qod{R$ms_bsLDoMW0ZX>_{sH-bD7+8+gmHAtZC%^zT)@H~f{zg+3|Y8hkgdjU5lm~K#)D?P9JpKHa`!gl4_Nao$o1Ix8H z*dIT?ee!!lhkwb;|F*BXZFI$+(_C5T_cp6C&a|{2u3Hsxnm0(B`P62v zmwb7;?d#(Yls+(fx2{-cL&vfEGV<)Zq}ME7#=M_(O*PY2`I5b-(jL__{hoGwhvwP< zE8E|JGi-w0+Z+2`%k-L?cPza-b)x!)?FSlf$gaEGTzx!Dvr;|1{NZ<>Ydq40+>zR< z`3dn2Tc6Co!uwVy@1)byC%illm^K(E&6j7&R@#;y#9h$z=sj0;LAK+pr6J{=U#l9g z9@xnA`xdXx!Pvw{D_L*!Rcquun_40) zn(t2ENrA-JWk0?rPvu&Zrm}%^zpm%}!rjSf?ysspHJVm)zv8)*b>H%U$sO*qW_SMF z&we19_x3pNgID+0$9Ky#*jY8+l{=oPy}kniS|+D@olIv_w%qsru!<0CS`U-4TchOS z13iHW$21I*MP?XsosobE3m5Iq)R=A4cXE^d&cmDE1^k}g>``bNo28vOSxWh@mkEZ> z86xs?YUM&U{|Q_#y`$b%hx3Awx#whjRxCaM%~eZm{xN*tc4^U>P!D}z-e&N0^>bP0 Hl+XkKDWB2I literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..5b859b5c8aacc0d907c5a9ccd4f9d644ee6c1894 GIT binary patch literal 1093 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>cu_bxCy8vk*`02d69!PN(ctjQh zX%8@VJDF_<5-cllOb60n{S1{~6$2O;m@jy`IEGZ*dVAMDTQppz{p0fQ(;nHc;9B=* zvu4*cub1~c96k$iwcheoe7T6bR(a|=uY;jSn-oOuWQj>_E?n%L+sv)Yr7Lp9?DmVK zbso-nM#XjM?`B$m|9OC)>Es#9?`Ni;^f~v0$77O;ClYe44cPIQ@q=Z7*bfm4Mj2K< zrs_t;4^kDZHq6%=+7Hw|VB8S6a^^*fT5R z*j3>NzXPRT&1Brb^2hbxgPe8Z2ewzZz3M%`VqN$xzH`r_82hIG`_L81bZur$#l5Rm z1q;6@tk|je!T4#@=ACs5{@h)bb&K_n+s_L*>*7~7t>u$uGS`%!R#?ibzs~xt`lbK z&P&afXYG9Myqi7kSF!XC#yg95xi!AxJZkyCd)0$y+b&&7pBc7x{zUd8^HlDv`p57r zdyB38ubY?B*V=`@-gn~8!`%lO+1|=aGcSP@! zJICgG-AJ3``XKdCnZEn&EUvqX{+Fg3e@V3rj$gw$udy%H;se8V>rMQuOITh!_Q_pe zmLkvP!FgeyPpe7AP|v2(s2^QYmrHkJ*!O=ioD5H@X-&e#?@i~vDS0!a@3_L1L^cmal2C2Ms&&QL&rD3N9zS3_ x!HEYiT2>{eW*q+9uPo+I5(Sq0DAyH9kmmVw@@u0MaKwA$5A>!u$@;)z#?rvsh|0a`!`Q7$=-}~nM zcHe$8^B^T9B_-v5q}>TY5cF+qYz$T^m8UY9OnGy2^WNOt+)C0S9f<`&;H|B#y{D@0 z1Fr&)R1G`eS76@ryvxO6@$aOiS`stHjHv2W5qZ9adJln%*4nR<7R$s9=JWZtL}Wok zo@ue(W5AhQF4tEomA*TaV!rRc3@iYB9n>Am<#Ow#Qt3ugVv$=h2!j6A)zv$|$u4SF zfETT`x04X_qJrgedAv(0fUK$(l8}PvUrdZK%fPcS^L_w+QPm+4d6U{MS&fRwr@;Dt zN~r2hYweHKv21Gwphj%ZR?KFz z!;NN($dzg-fG`YyQ`HX-VDW9SM@&@*V)7TGf~va6AtOqx(kNL~ACHQQ$P-D6G!+B> zjLAPobi+B9v`AC2OeS+PCjYcC=F<51_@g_Y#TauzL_SJdq@Ktdv@zxuFcLFw4fq`x z0-lV?TL<1&)vYG$7#5M)$OVdAbIx6fo1D#NmkWi$-I`c~+z|LOrdEFw@m)T*)_&70 z$@l#Y=Un8NsxF6N_-zZ5_k9G>GY8f~ahT-=~NyUl*SZnWWZ*RW@d9MmlL${AL|wS{;cTx{+M&_ zdUee6yjP0F;!pc|-DA5IQ?a8)Dt6R3h!@TKs#>g%B`uzklF}Xj0{1xpLCEXw7ytkO M07*qoM6N<$f+o?st^fc4 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e0999bd81dc50321add11839b832affd8c8646c0 GIT binary patch literal 954 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 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f5674bc7f8c93af57dd79d5a9c8770476af11c GIT binary patch literal 1805 zcma)7c~H~W7XBqcmLSELB8xyU0wPtBrLq+akg&FZN`-_dP=Y8y*$e^`AnHT|Vo;DO z!2mU&@DL+QY#>8`ml{B2lLp$z5(rylZ4@Fw%loy{KRWZ?%lp5?!9yK zLWBME;3jYY0Q3U!>=h64pMD^7ZBHm@y%&J>3d@i#jRi4GaYkCJTO(};q-{Uh%;Wa%rv6|w)f4Sx zZ&Y+cCO>SG@cGwA-g@~r$2V!wz3s{rG00Q?e!RLPAs*DPLl+|BWguPj_dr#?a8vOVMGXo(v7l z!6KkCC%~Szqr-_dft!v5u0Q6X7~P#V`Qy%FQn_kEhr0l=EeV`_T^+=I(U^FZLA<#) zrbiwRBt?)bP$ni>#W6|_8R8(u-t>*t=xB3Ey_2FK1IQH9qvs3GrIWw@nGP7oUOCg$ z(nHv^pgF?L3c3r2rJGYOIoJHEmTjCc0Y$_E=nyEs`K4T{A05kjc)fLWMQ5K)f{4T6 zl;Nf=T2bae#5S48GT_2*11g>88;F`PTe?UjDunVyDj9&mT7wfpJJe6AQLcKo>}RWd zISsoz)`VK?`htZubv=(zKO?x6gKU+C)`r35E;+^>6rmQy^yMzQ)6_oo+CmhY#hSX^ zy(fMS1Gd$N@x?0I@1ow`GmdMgu=jAxZdkjV#Nr01LDaP)?uQq zs4OilMSR#``zX&R@yog|W|Rh?EDn}w z!rOP%;8?#o`Ft-y5QP=O0P@mK1l|g51uVel)1q34hrT=DvHzPPrspqA7}(V0rdYyU z@Fdlb5$jJrV!lhN_;Jg+*b=`NEdcJ%@pE6)%DGP!3dKzKQN6V&EGf$9+849h{S#qz zlG?-D!x`PeUH{4z1RB}Yqz`EPwNa6++ar5510O>Xm?k* zX#cFLBqm)_E8^EsjEAT7ok4qe zMW`m=wd1R#`h#f90+uw^&}62|+Q@h;ImcSIYb{P~S)4BY7<^RrU`B1_mj9qF`I76( zkl{I&GKb|o{>Z@rKnib+?7YpEwR+jMtkBIosTqdM$9JT4!ommh`zLVkTSp<%hS)9? z_y)7}E$k4+@)NaL{}TM>n2y(m*$T43E7@F^M)KN`2pw=FJ4TY@flq zchh_zH^V+3?I~Kk*91rscqdJ}oPmtzs!C?;rMA=UH@QcX`xW=k#=fdp%WBh*rA)xw z1F_bxo!aPRtf6S5N=>LA4jg(PjA()7aQj%pQoWMEnbWKJb%*I5CC6&R((&Z*j{X(w zCWQEJ7$3ExV@L#JdLOl^iK*(Wm;j0wGj3=3YFA@#Ar?tpmS^?k?{{{0)QNyvmbVtF=QC$6Zoe zV_`D;?C}_yKOKTL&}4)eS^U#Pv4N*N85hk2ar+ae5&z#={b)tR|4HJiocssk|1k~Y e@0fS_9eTuOX>R+&ZxX-{3kbjkW1o0OU-=Ksw@2*& literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..387d046b4bebc7cdf9f6be8945de83fbbb0d4a10 GIT binary patch literal 717 zcmV;;0y6!HP)=|f=wzB z0=9x+L=+KH7-C_eXb~_`6oi1$Xf*s5v*Nltb9Y|ron7u%o;mmK`F8G{Jv$Hx1OkD- zSk?uS)&ax7R$vKuXJ(7OMRFmjCTU#KeM#T-FRPMfC7qMB*>|m3q#BZ5C>DzjMD2cyBX1cv3aoUgqYhk8xHbt) zbXh-VW^cRNN*XJv4c|)h?MfQS(#q42Gc_gw*w zo7tyIi8bXGfCIqmjC(EtN6hSzFDa*3Q|=A054cJ91^_SxG|cRtPbr8da3{_88K)&( zBRZZ3fn7us$`_)6`6+PQ%w~KG1p^ZO)Taejk)x=avL1v}YG_Xf;V8y!rAIreQg!m8{ zp0U0mj8s7^hz%wKD^_N^PhuXp8WRfy0)5PHxVpd%f+|Vk00000NkvXXu0mjf8lNli literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d45e7a4b65496ecaad3b74194a72bb130a46efe0 GIT binary patch literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|S${r;B4q#jUq9_h*R&inQ-f-Y6)@ys2r$R6&*X z6W9f$;}edGZ`kOqoMXj&&~L-mjpDx>=Jxt0Bx*SxR8@4m81ZBCOr@5))$iWDd9!!% z^K7EwJ_Y}Tj zbW>OMveDC?X;UnpOHS?6ZBJR{y^BkR;kB$yHB-*4n@hH|h=|Ymw7f)_J%OXgoBP9z znU0gLHLgE!lyClj*&UIeZ8WDkem^n!v+xbZcMREQOPB9_Unptu?!kXE^Wxc)zgR84 zD?e#l+LilRr>YMsNtT!&emrmH-uYn{?%bdK`)r8YEBP<1JKkNnZ?L)9MS6Rq|I+3& zLWyQqUA-=78Wh}$HQs!`(~Rvv=F11SIlO9<+9luK%ZiM%)pVS1{K_7}k~e;pzue6* zVRuPGt|w>J?7;s*8}u`EGMz6i*xA?kciEonUy9V`8gHEa_43^5GbK~fjvqM9_mpAJ zs>+#+wy|f!Cpw;W=4(8D;7_*beD$sQr74R~m5JP5vv!wI$kllzrA_Bb)^r8;X0e*i z)vnXq=HgTe~DWM4fT<|Q^ literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c82204fa3ba97bae277eeeb11ee55eebdc76eb2a GIT binary patch literal 1254 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p{OJwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pJDNuux17ZmO@V#$B>F!Z}0eagr>?I|M))sZU={`tI8DD z{0tVcmb44nqE559R=Ik(U2t2G;B~;FI-7cQPw2{yZoBo$dL`w7U6k@BE(g|L6aAJB!a1&nrH71`eLhmH5i0!djqL zz*wMGaOr{nen#N~j1MMv{McS%ET-e>t$J7OrK#uSS$7jXt5s}OGE-mv66f(;?p5V- z>0rx*zI3lkvnQ?7+H3!L+LEJ_%+4FGnE7VPmPKFwoz-=2>0r3U+Tg=FKKxS%eI^5X21NqzH3S9q@K-@;N*eJOS?4|UX7f-gumhI z(r&v`PX!I*c6I2f$|p`*w=h1D(I#M5!@8|Mz4mM`*=W4O^-|>0?iWFq!WS)hdcgm{ zr894R81uha`jZvsk3NkGY`=0~-)V{Jy|>mk?AlylU!`xlLErdT z9FNV+UrCmwmuXiNe%8%ca=tON_{O#R1MLUmW^F!a-0-?_=RM0h$s6`d>eet9iEXem z?CEts^5NQQk6U3?u?Kke$@<9gXUlJYCStfnO+BO7{*C3V+e)>c&LntcAN1hUQR2I_ zzEni`z-M4kN3C|XIFS4#c5?5bTEW5-@TX&Z1jRSlSt}=b~W0F=%+H_!BwW9Wh4uJyk4?*o)-?8WQbkxe` zZ7whB-|*7<$n1u8$-n=%^f#VXdUTnu`m*=UM#thMu1Crem={}C&sj9nVV{vwo9XPp zt(L52x=Lk?t26!F+DZ%m$`xd~^zfeZ%N0?XtCZRONzU_^_u0#a(?wS8{T>{wT+0%A zDeHk%f^LE02B8SIV(F*i57K9Cm4AHT_kju*nRlBQk6+n6H7zh(Ta(-2EHq19Qt{K= zI`80%#S4A@MU~4$q~b?a->>XjqAQv2U8z?Yd+vsy;gsjo+n1KVez_}dhUM&iYc0Qo zCt)$7s{EnPJ^tLKe^y+#*s%P|Imx(ZX|~S}Xg$Vcu_bxCy8vk*`02d69!PN(ctjQh zX%8@VJDF_<5-cllOb60n{S1{~6$2O;ST1?GIEGZ*dVBY5wrr@(v5(J9^tOoAFos8& z@0-%KDDO_jVu8(D^IRsb3h;1b7w$~K?Z><(;jZy?y)QU(v~H= zRqkqL?p`9T8mpb@b?N=2bDmLCOQJ5NPYP3+>!bNMc=Nv%2fj^t8+p4u_y40B`Hu29VUu7_j9XL zSq?^K-~1-K^>%+l+LfIFiZm$U9{TY%O~Y|YyJ)0tyC)}+4$`0{SO|ObSHhgw$9~#YOllD zJI}K{fnIdDpy_EH?6od-;=WU|jcHf@16A>P@?Tx&GCy`| zFXp)Lcaopjn$Me-91r$NZ`b+H=J`HrL%&q(R^EVfGA|xBef{fo>0RRC%O)SzEV+Aj z;|d*h2W#$W_S1uYt$piw*05OiD`(UR&I^4`sq*)8&TXFf?8al+FCd|SmHqGYdrw*l zOb}l1nrrIci!m<3S05!{qZL<90}d(PDM;5`vPv7_d`?_x1Q45$ad5!EY*@R zN;l+NaB>kJ%M+FtAqzL9&)T|H=j=vfh|w3Ov!0IMQd@hwc~-KR^()~mKr8sUr`7LX zvNWx+MC0sxJ=5chHqBwE)q8opsdUD)Ek0mBe;%=T_(ZW`8F&`<45am32YPQ?^dIXd_#?u%=MV_pbo=byQ$pg{9hb);w)+w()5gzB4 z)ll*B-HTgR6Yn!K!ZYdQuGXDyw~zXXnX(_NlV&+4&FI8I3i5bgezo_paq+Dezt6e3 yDYOXSMPI69m#NG=uJQvb0|VnFPZ!6Kid%1I?)77G6mjDhxsjQ)#V{=5CznlQ z?^51l;f;J!xh5O8Zu~A-!w`4)h|^>KWA~kO$~-w5_crg|Y`puYUy<{n6umo>6VrDv zJ8>ws2sr61n3(*|s(?X;>GuJ?4ZJqY{0BI8u;w)szHmC7!fnC2uc6bqr?I;v?(NG- zYXrm%KY!$qY1ca-&YQsT=U?!-9G(;3FZWGyWK2p+me{pG>1EKFQ#1SXUL5L55U%*B zknXhUa_GN7am%b|i?W8z^aX2#-a&$h+_5IcYBrWCch6eN*+w?KlX*7(iOhPFTSs|H_>68S+?%{*dXxCXuRK+(dfmSk zsKx|-EX!H*|Cx8Rqu!Al{9RrGN3I9<_yy$HzI?&r+xaw1Im%Js_}+-jrd3s&Unwmp z3-<jKpY~7Wt6LL~$_WQ#;*>?l&v)-C*E(t=i7QlCE4sezTcza4 kCX}LpL;y{6$^FSZL3S_CUi-Y)z^G>MboFyt=akR{01Y1J9{>OV literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..827aa4b8592e9de7bcaf8d60cb654a281ee98227 GIT binary patch literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE(}8pX7+2iB`GtXjDb>@(F{I+w+uMfOB90QrKJFLtNlaSWs!(?D zkdo&5j(rRXWsn% z|3U5{qtko%Pp6eVbC{&!2}IqGeE5^sF`75}K9DL9jbN=~j&IaIAon3BM*gy|M3ZWQ zbOoo3$QAhqoCVc3ZOb;W?peO(`Sx% z1-9&Z%hV%RYyYV({C4$^=U!&LrRveMMIZ3~HUIx%a)F-h%UL!lb!X>a`TJ!__Qs=s zX4_X9<}Xv9zm26vLHGdU2QiD;c}|zic0Tie6}F4hbE)|^qW20y48E;sVsmAFu}N{W|IOzO+z0ymuCHUd&wVWK;zrxJ7e{@0 zcd>lfTyW;KZLGCNEYpt=i)VA^t&5HLCw=R&_m0!T9~K#GNKKeNSv+a?j;}X5=PMn0 z%^-2@_zn-|bkim0FZ!|>Ea9E0#@z5Q$J0!jfhRe5-%EzJ0-dEV85aC)jy%iGkSp&i zgiD?SQ(%8HPhVNW_}9QU}fNEu~e+g2-w>i6HabKc)t;b576Y=Nty6 OJO)o!KbLh*2~7ZB4l!Z? literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..5b859b5c8aacc0d907c5a9ccd4f9d644ee6c1894 GIT binary patch literal 1093 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>cu_bxCy8vk*`02d69!PN(ctjQh zX%8@VJDF_<5-cllOb60n{S1{~6$2O;m@jy`IEGZ*dVAMDTQppz{p0fQ(;nHc;9B=* zvu4*cub1~c96k$iwcheoe7T6bR(a|=uY;jSn-oOuWQj>_E?n%L+sv)Yr7Lp9?DmVK zbso-nM#XjM?`B$m|9OC)>Es#9?`Ni;^f~v0$77O;ClYe44cPIQ@q=Z7*bfm4Mj2K< zrs_t;4^kDZHq6%=+7Hw|VB8S6a^^*fT5R z*j3>NzXPRT&1Brb^2hbxgPe8Z2ewzZz3M%`VqN$xzH`r_82hIG`_L81bZur$#l5Rm z1q;6@tk|je!T4#@=ACs5{@h)bb&K_n+s_L*>*7~7t>u$uGS`%!R#?ibzs~xt`lbK z&P&afXYG9Myqi7kSF!XC#yg95xi!AxJZkyCd)0$y+b&&7pBc7x{zUd8^HlDv`p57r zdyB38ubY?B*V=`@-gn~8!`%lO+1|=aGcSP@! zJICgG-AJ3``XKdCnZEn&EUvqX{+Fg3e@V3rj$gw$udy%H;se8V>rMQuOITh!_Q_pe zmLkvP!FgeyPpe7AP|v2(s2^QYmrHkJ*!O=ioD5H@X-&e#?@i~vDS0!a@3_L1L^cmal2C2Ms&&QL&rD3N9zS3_ x!HEYiT2>{eW*q+9^A^ z#aM|sku0~B+=g~sMlNgRWMnw2=ls`m{y0zH=llM=p3nDre?EV{zn8o`95*1e5C8yd zaCWlC$;tgHMVP$ehQi=-zye$y?d6o8CA+6IIo3rw;i+;uebd3VP|L56v5__;Il14| z#f_eqkM41{w>f-vaBjFO%hzXf>&Lh;^~}4aHQqQ^UeS)a;Bf8jb}GlJ4I{lX0*r^r zPFXkjSJMk`EFle1)t829qQ;Oo3@%F*I`5cyXRK%RL2f!ZZ|I2dySSwW-V8y}~__s{7Y501q&d zs+)nipU1TnZt7@WO?>%8z^*9|KWfyuRcI&NZ`vWbzDoXle+6YhU*aGM1jJ@Y)tli` z8sRu}p*HziLJd7=w7jkv#XbWhrfO1vTmDxS=4U2AsVqR<7=dbw}9VK$!N4l1M|t9a}y=I{ z^GO0J*s|@$YWd$t4zBkI2Yxhgz;@MnfaDI2nAC~RJ83B~UNQ)L_j$b}N!-*o+dfm$ z0mj6o+=;&>DlD~{6lcJ0COD7dgd01wg&9@ghYE3&IQuk|>(EGRbCC?#%}<&tcPTvp zcI%ccTy3~Bjp)D&ZNyim25?N!$n!QNOR2x$shXA>52!C*CL%t0i?z*5z#epMlnxn?+3qOal8CXn#-dryRbMNg z^QW*n64ip_w4hM$Wg4}S*qZ?*GFI8>rJTP;YA@G>kEie-s3N#Wv0J88U)Pg$pQD=$ z-*#U==@+3NJcidN`x4y^f@eO4RJG}Rsr>VvqP4CdeRCjSxa!N%pPH_wcmB!NUT!f~zWB(?UEZ&0|+0N)@@s#BE(K(p?0;P#mOW z=Ao5;MRmB3-sc3M!f1y=_vh*Iz<-VYTcm%y$}S)3F{)Ds)eS`HzWe5M08C83rw2d4Mdpvg)~#)KXcchZdYc=k!H3bVD;Nt zw4ck$wdIz@t9N$WP+XS+>z;FvWqR+%#dO%1sP26p+w4qVkA}0s`P})yn!TMoW`3%^9p1%M#L7(ALSxgH|?{PRrpdw;Es0c;$=O#wNi2#C? zB~#lMh#d)d27{HT6knr_mKDe>s7TSyP4siKW#U)2;XU((YrlZK^5=S%UMy;`%%sAO zRFGkJ!t@h|gv=D?`8QCo*Zp<8HCC9`e#p*tte>4JkS?%&>`4>1t)4D|?-S`TAWGIy z4atWz3B^;Ujqz-t{VXln762GM%GFowdruqnhc2KKj0csh(>3^EffRj zgy(9K7fi7r224j}c}*t<>l|8W_g!vPP)vfRMp)}{N!jMPUr;A;K1y_3G=S&;3^Cx6 z?jLBdq=Q28q#XhaKLGxpyVkE9moOI@!gKL3uV9$x$-fc6*}=oU%9eQUAJ^Cd`2YX_ literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e0999bd81dc50321add11839b832affd8c8646c0 GIT binary patch literal 954 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|T?Gr;B4q#jUq9cjpT`3bfZ3TWnJ7Sim7Ar^@t? zmEB8#*J;s{kNgU2G`jj9D=MlAsXVt{@u%1NNw{(;zX48ODnYWI*JBn=Cw&vL{#dO*BuA`4$D{#au({)hV z@}je|^J0wNcd-K=OgqJU4cXaiA8$Lv*51~(PC?R=VZ-4~YgT7+Pk3R`EOT7a@K_B) zfQOc)aecno?A`1;{ZExj861;wHL)yZ*v#;bm!E(C>Z@7RjC0ru1P=-KcWe{mYE8Yp z?eaH<^Pg||O^fk3)5)>_H_%Asb+6f8+f_3s+$x--er(3^4BLCg-Z$j7#B-%RJ0)LK z_jp&{fiqLLaQAr6SYR7epf`QDbh-_93#Zi7Chpclzbzg|D)?Mb*W7V2<4vdWJk~=j zo&W#6diCliL_%A0Mu(n7UvQ53GYh|o9ePV*6Jid@edfRTD*e!nq@K#8+u!1ACm6cD zY2M`E?l>*g*65gtf_e9BMjyr*tFC6ns=nVkd0X!6rSD6!{_I-%Sg1I*d}c@9S7lH2 zju+n)_NOr%I{oU@sZ*v5r#YX-nH=+34h+bU3xEFnQBSjDcbIeO?x8b}o9nJHax^g< z`2P3z8JpYB_iWzx{=Wb29~vECG3|`K8;{TPJY(~?^4`-e-2GlEjtn ze#`7o*FX{1lX`#m(}8pX7+2iB`GtXjh0oK)F{I+w+uP@}=eSC+e|W#=HQfU2Nx)4ZxME`5wU#1H5-%sw_lT4@vKgH;_dbLY?h@4K6GR+~^mao(QGFXylt@IH9i zF`cU+pF!t&<-eK5dEvViOQkIsvfobWm}7p-#^gbWJ=2VD_u?<-dCmRBcfc~d#Ae#bm!-j(3t=6U; zd<$;o+|yUO&R{cPi$U_XW5>U*wsD=P`;(@d|~X868~YUY6~iZ}t4$ z#VkMBMNAr}izE+p?&>l=<})p|a^JUgS2TVopNO(%eNfygrFwc(@Y=9!--owOvfgDp zx3iEzd`gx{Xz1SObGmm$zZY}N&-$znQ#98!#(*Mk3Tk8`h73FyPv^l z>+QF_|Nqp=9@w?@8#BXdhQ2IwkLVNb7hImqv5uTJ_v5|%JDCmN>y%G#GG^dAT6Eaa ziOE9F^10XQtH1VLU+~vZ`xfs7F`)w+XK?l!P7m&p4OL_mnOOX9O2!)xsgv!qcYAs; zq&}I`uP$Xh$%*NQa+;H%F{XTCvE0g4ue!E= zdoq_TBHKSKw3PLL;9Ir~?n!HM<6CdP&A*%XU6R3miI$hkwQt|Psk!|P zk-6|Z>&2r-kM38_^Jn;xapEgS!_>KR=RW5j>-aYaU z_QvaWJ+f%H&KT2QvyOa88Dd3_T>px$JO81a=ovDT_c&{lthCO+kzfODD&&{ rhKM`D%N8b~OTg7I2!cT1**xaPPA8Q$jYXNjB7(uw)z4*}Q$iB}$RH13 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f5674bc7f8c93af57dd79d5a9c8770476af11c GIT binary patch literal 1805 zcma)7c~H~W7XBqcmLSELB8xyU0wPtBrLq+akg&FZN`-_dP=Y8y*$e^`AnHT|Vo;DO z!2mU&@DL+QY#>8`ml{B2lLp$z5(rylZ4@Fw%loy{KRWZ?%lp5?!9yK zLWBME;3jYY0Q3U!>=h64pMD^7ZBHm@y%&J>3d@i#jRi4GaYkCJTO(};q-{Uh%;Wa%rv6|w)f4Sx zZ&Y+cCO>SG@cGwA-g@~r$2V!wz3s{rG00Q?e!RLPAs*DPLl+|BWguPj_dr#?a8vOVMGXo(v7l z!6KkCC%~Szqr-_dft!v5u0Q6X7~P#V`Qy%FQn_kEhr0l=EeV`_T^+=I(U^FZLA<#) zrbiwRBt?)bP$ni>#W6|_8R8(u-t>*t=xB3Ey_2FK1IQH9qvs3GrIWw@nGP7oUOCg$ z(nHv^pgF?L3c3r2rJGYOIoJHEmTjCc0Y$_E=nyEs`K4T{A05kjc)fLWMQ5K)f{4T6 zl;Nf=T2bae#5S48GT_2*11g>88;F`PTe?UjDunVyDj9&mT7wfpJJe6AQLcKo>}RWd zISsoz)`VK?`htZubv=(zKO?x6gKU+C)`r35E;+^>6rmQy^yMzQ)6_oo+CmhY#hSX^ zy(fMS1Gd$N@x?0I@1ow`GmdMgu=jAxZdkjV#Nr01LDaP)?uQq zs4OilMSR#``zX&R@yog|W|Rh?EDn}w z!rOP%;8?#o`Ft-y5QP=O0P@mK1l|g51uVel)1q34hrT=DvHzPPrspqA7}(V0rdYyU z@Fdlb5$jJrV!lhN_;Jg+*b=`NEdcJ%@pE6)%DGP!3dKzKQN6V&EGf$9+849h{S#qz zlG?-D!x`PeUH{4z1RB}Yqz`EPwNa6++ar5510O>Xm?k* zX#cFLBqm)_E8^EsjEAT7ok4qe zMW`m=wd1R#`h#f90+uw^&}62|+Q@h;ImcSIYb{P~S)4BY7<^RrU`B1_mj9qF`I76( zkl{I&GKb|o{>Z@rKnib+?7YpEwR+jMtkBIosTqdM$9JT4!ommh`zLVkTSp<%hS)9? z_y)7}E$k4+@)NaL{}TM>n2y(m*$T43E7@F^M)KN`2pw=FJ4TY@flq zchh_zH^V+3?I~Kk*91rscqdJ}oPmtzs!C?;rMA=UH@QcX`xW=k#=fdp%WBh*rA)xw z1F_bxo!aPRtf6S5N=>LA4jg(PjA()7aQj%pQoWMEnbWKJb%*I5CC6&R((&Z*j{X(w zCWQEJ7$3ExV@L#JdLOl^iK*(Wm;j0wGj3=3YFA@#Ar?tpmS^?k?{{{0)QNyvmbVtF=QC$6Zoe zV_`D;?C}_yKOKTL&}4)eS^U#Pv4N*N85hk2ar+ae5&z#={b)tR|4HJiocssk|1k~Y e@0fS_9eTuOX>R+&ZxX-{3kbjkW1o0OU-=Ksw@2*& literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1151dfa16d22b284870794ec920d765e16550114 GIT binary patch literal 2523 zcmbVOdo+b$fav&(?O%sm|5OsAY_K3Q zfAIkG@(QR6LBef3W5*ZSXo~;YJ)&QhmL{o@oXB*li+)*UrM+9J?J_MW%~SaI?y!d@ zh}{)3Pz?L(MPkUt-bJL>`zGTMNAJ_rECqKXgl1!1=lUQNS0V#75x!_t_hTPbSY;W@ zZ*ENBaO@&aUG*iA`rELP{cAgV+Ye!rInnJ2+kNI7A^88NcZRPBkexy4%AYSEFGpO+ zr8DHRasfV67SechV~w`b{)8Lv5W?hG1A3#c;m8lh^{_;|5Cox`4m2e^;u zlS8YUD`8awsu(Zb+_$z9ij zP;eq`&8aW|wJU4stX?h>)7OF0Q0>WE0n(||O2sTTz{jI{sh+Ezvci5J&60-*`nNT( zki(sl2awCczzk(Eb)@y3KEv ztvRT>zJs^Ao&;=BmL-#cKXl0_SYh=8Ee2N?ByI|-TmUGFWTKPz z^02?LkrBQJw3;=cGF36x!8{l@#)+N)4mk~fJ2n!ws=&H7_;F5wyx_z*V#W2ZkTLYB zx$uGj10DQ@f`?U$3G61JC-mfJBVldR&9c5qJS>3eqfr*{?5C+WD1zADJNi!kincp3 zR>1J^aOU*5p8ix~=vYng6don4pFZM5!&z@D!<3`hMh=sdlFtSh=PrV#$qDZPVC=jC z8r(`NHa6&p)qvxbt$UZoCq! zUkmPCER4_;+9!s_W>HZwEiw_9i6K8VTZzbPk(Az zF#vr3lKD2LL^r;NSn5;2iDne7`wu`|M=W9(caLQ;_arHoR0B}D#lKDN}CGZ;(gF}+Izh*K7JNE9~Z0_QUSTA4qJ<9X=$SA zMy8{N!apV8L%>P)J5Id1tDT))SJp}nt+z}fR#bu-ooC>rIohy#i= zy31>%60fEag%Vq3R2R+oR*tU0=QM9`M2C9A+b6^7leu86EFG+b&6;i9pjeWlCza5U z!!Nc4$MRmRL8-HUumJ08(Ni!QUjgTx(u5c*Oq4!6TW$uuYLeY z&+DjeNJ8#5C!3NkB_)+~HEnyIvmhB&x=`@0Xe5kqMDnE@Yz!J0_dMADKV4}Lg>EKaDzcN%e19XQ=0&!Hx-YO$t?&x1PzS*$C#Ohbbi(Ui`Eyb=bO~O=l{QsL-`Xr_2~rh1B29YGhqq*dI3np892i>F!kTxA($`# literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d45e7a4b65496ecaad3b74194a72bb130a46efe0 GIT binary patch literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE=uJQvb0|S${r;B4q#jUq9_h*R&inQ-f-Y6)@ys2r$R6&*X z6W9f$;}edGZ`kOqoMXj&&~L-mjpDx>=Jxt0Bx*SxR8@4m81ZBCOr@5))$iWDd9!!% z^K7EwJ_Y}Tj zbW>OMveDC?X;UnpOHS?6ZBJR{y^BkR;kB$yHB-*4n@hH|h=|Ymw7f)_J%OXgoBP9z znU0gLHLgE!lyClj*&UIeZ8WDkem^n!v+xbZcMREQOPB9_Unptu?!kXE^Wxc)zgR84 zD?e#l+LilRr>YMsNtT!&emrmH-uYn{?%bdK`)r8YEBP<1JKkNnZ?L)9MS6Rq|I+3& zLWyQqUA-=78Wh}$HQs!`(~Rvv=F11SIlO9<+9luK%ZiM%)pVS1{K_7}k~e;pzue6* zVRuPGt|w>J?7;s*8}u`EGMz6i*xA?kciEonUy9V`8gHEa_43^5GbK~fjvqM9_mpAJ zs>+#+wy|f!Cpw;W=4(8D;7_*beD$sQr74R~m5JP5vv!wI$kllzrA_Bb)^r8;X0e*i z)vnXq=HgTe~DWM4fT<|Q^ literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e236e0176a8d83104673799b61cfbfc93f810a58 GIT binary patch literal 908 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE(}8pX7+2iB`GtXjS=`gbF{I+w+uPRbeF7zpef+QO)ZFFN;iS~W zG55$)fzCrq7cL5rb2{iAxMR9X4Wk!lVaFv^MU9RCSy8E?BDte)CePtW(@(#)XLI_z zcx&zK^DvfTOFdtm z;<3x}$fNVS=h(iVxZvJpzcx$H>dnvNy;rx+s5<{5zoFOjaSdxuf5*-xkHa@FN!>m9 ziKu*nc7e&qA6K{VKFImz(8zt0dBwu_svdjy&fWh1;&=ZCQU&ez?(rWed%#k_Hlt(t z?2aGly|-Bk_;!R;+&O<>Vn@Zd>2~Ez<&C8`Sy!!%XUNratmf+f$!zgw`y=z_DmIzC zTYg*27;`k=e0FoOd4GLHX0h^ahMTuoHZ0t5{`S;ceM`;0H^@)9YY^^wWV;!!>ROh4 zY2pi)Io@Gjv&f9GM*mH5^wMp~D}5Q{xqsV4u6!GjC4AuZA-m-&Z(jh-GM*aSkdw<) z5p&~t(Sx|nH-0UCw!PZ-cIUIT9jC+!zLVxO_m@rW8>S4kt26C0dZHMFzl$%uwCGwLmk}rx zZ9aKook){yIBe*a7iXEJ*{W0+*wkiw^c!Cd-&c1r!PiF?bR7-NxK&+PSc?gri| gxD7Z125oP|ZN!}BBssp?2FxoAp00i_>zopr0NVVI0RR91 literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4694a2a206eee5114a33b91bf7bc433fcf750b4a GIT binary patch literal 1351 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>cu_bxCy8vk*`02d69!PN(ctjQh zX%8@VJDF_<5-cllOb60n{S1{~6$2O;ST1?GIEGZ*dVBY5wrr@(v5(J9^tOoAFos8& z@0-%KDDO_jVu8(D^IRsb3h;1b7w$~K?Z><(;jZy?y)QU(v~H= zRqkqL?p`9T8mpb@b?N=2bDmLCOQJ5NPYP3+>!bNMc=Nv%2fj^t8+p4u_y40B`Hu29VUu7_j9XL zSq?^K-~1-K^>%+l+LfIFiZm$U9{TY%O~Y|YyJ)0tyC)}+4$`0{SO|ObSHhgw$9~#YOllD zJI}K{fnIdDpy_EH?6od-;=WU|jcHf@16A>P@?Tx&GCy`| zFXp)Lcaopjn$Me-91r$NZ`b+H=J`HrL%&q(R^EVfGA|xBef{fo>0RRC%O)SzEV+Aj z;|d*h2W#$W_S1uYt$piw*05OiD`(UR&I^4`sq*)8&TXFf?8al+FCd|SmHqGYdrw*l zOb}l1nrrIci!m<3S05!{qZL<90}d(PDM;5`vPv7_d`?_x1Q45$ad5!EY*@R zN;l+NaB>kJ%M+FtAqzL9&)T|H=j=vfh|w3Ov!0IMQd@hwc~-KR^()~mKr8sUr`7LX zvNWx+MC0sxJ=5chHqBwE)q8opsdUD)Ek0mBe;%=T_(ZW`8F&`<45am32YPQ?^dIXd_#?u%=MV_pbo=byQ$pg{9hb);w)+w()5gzB4 z)ll*B-HTgR6Yn!K!ZYdQuGXDyw~zXXnX(_NlV&+4&FI8I3i5bgezo_paq+Dezt6e3 yDYOXSMPI69m#NG3GnmM zQa4lw06^=MH|DGox!bk_u3XPfBqEdmzv%0QQKE9JoqUn21hr)EFrpH@znW)vg6lSU zJ^4hO61iVZz)g_?0HXF3=ES-5v8Bnt`DmO`=O@`n;bA+Ar5f);Hd?;B_6_xsu>nn? zr{7|ahBw`!4gVt&hV3<(ue_~(zPLXIo@WcswQej3|9+?gZW*)_!8Ry_1%=Few-EH_ z+^rTBa>W*h$S3l}861%yMv}EPJ=ZB+E0<<%2{Md}%}@RO7xR)XL*u>|J_(itNrEvG za+#`jkdP)t62OPffpOpw0jrCA3yIbj8xOeubN&i&w8C7}JPg zOLX+K_C}*Bd@I3)N=u8IUG(9gYTWTj0^TnSuT8A;UD~)0$1VIUt~1SG0j{kwLd{Vbo`)qTV4MTl-=!}8{3!PVehR)pS>tgNgU_+JNEJkf^k2Ja0_VE%mPs0TYLX6;M0sa_D{m zlu$^{rP^W=23Pb%wjYf)00L~a#MUEWWK@q{zUr(xw1s(RQ2Hx3SDD2qyA7HRMYwSv zfJTgh{;?DT(7$AvN6u!ZK*AsRC6SIu4Mp9|u?KIaLA_FrgR`3R(G7m|=dMRzZ%6bF~OgXrh%gtsILkgR(E+Oej zh3EAl^I3h0LGCN#F_$hy)tTU@w$S7=f@92D94jvB>I1%dFtY$?do*X5du)Jp3=#>8 z8BnpoFGxv5B)pK~~)@C9(gG7W)S@ zN?g;xs>^~ui7->Xz}SG!w^zv@WAHRCj~^dmJ>B;F_h+|Vu)fXp_JW`2HN$XUZBktvd?SE+!y$_yZn9h>CM-O6U&8H zi0A8pUl;#S?_Z`U-Uy8hN#Y`$B*9LnYkqiMyGx?}jO~XcQ^>i{X`9KXH($C`y{aE| zHm`Sj>})Qu;eK??H9um?heTUXHjpeN9SvGJeZ#%zSGu2kMR5!#dpa`1Q*w0W`r4Ih zY*E8Tb%z@~kwR9M$lw1q1+8PYMD8C$<-Guj45!h@`e0E}sw9CG)q+9w#KYfSRx~e5w zOb@edc$CsPvVapc1{rSTs67l+^m7iQ36C=@WkO+j#b8)z)>bstHr5y((a~VIS zxexCc^v@r_2(yc1qr;9k;Kz_y;siN;&->S36ruOH5YcAPzKznl^h`9-sc(QmKt=W@ zl)+q)x*VIxF4Hz>E%VFj{L;TDdr5>NyjAN)XPs=-blDJsgWnsRIX%QmqHjA5oFqj;5?He^fdM(h`bNqkyd)8{Z$FV8%vTZ>Og0*B1Zp!2>^C z7(jPN!R|nHgk|m->=dLt7Qhchv%!p}y%#1uq~#yjt8?KoyOObTF}&14PCVLjteR9E zzk1k3yX?v3$(N8nD?{&Z`39M+d6fgM$-?@X7arag20(Bh@Z<{IJs1ttltKdDX@WI) z;M_44dd)X({kZuMeFJIka=lsX^t;|S-&gmsS#(lTCb}k7|K`wto$#N9(eghW4^`j0 Ug3-c7rGNvcuznb(N6gLt0i{;RW&i*H literal 0 HcmV?d00001 diff --git a/Graphics/drawables/originals/key-plus/drawable/key-plus.xml b/Graphics/drawables/originals/key-plus/drawable/key-plus.xml new file mode 100644 index 000000000..9cfdbe3e8 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable/key-plus.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/Graphics/drawables/originals/key-plus/readme.txt b/Graphics/drawables/originals/key-plus/readme.txt new file mode 100644 index 000000000..cb0ceb16a --- /dev/null +++ b/Graphics/drawables/originals/key-plus/readme.txt @@ -0,0 +1,5 @@ +Thanks for visiting MaterialDesignIcons.com +Check back often for new icons and follow @MaterialIcons for updates. + +Icon: key-plus +By: Austin Andrews \ No newline at end of file diff --git a/Graphics/update-drawables.sh b/Graphics/update-drawables.sh index 2e73641f5..4784af204 100755 --- a/Graphics/update-drawables.sh +++ b/Graphics/update-drawables.sh @@ -10,17 +10,6 @@ XXXDPI_DIR=$APP_DIR/res/drawable-xxxhdpi PLAY_DIR=./drawables/ SRC_DIR=./drawables/ - - -# Launcher Icon: -# ----------------------- -# mdpi: 48x48 -# hdpi: 72x72 -# xhdpi: 96x96 -# xxhdpi: 144x144. -# xxxhdpi 192x192. -# google play: 512x512 - # Adobe Illustrator (.ai) exports by Tha Phlash are way better than the Inkscape exports (.svg) #NAME="ic_launcher" @@ -32,38 +21,24 @@ SRC_DIR=./drawables/ #inkscape -w 192 -h 192 -e "$XXXDPI_DIR/$NAME.png" $NAME.svg #inkscape -w 512 -h 512 -e "$PLAY_DIR/$NAME.png" $NAME.svg -# Actionbar Icons -# ----------------------- -# mdpi: 32x32 -# hdpi: 48x48 -# xhdpi: 64x64 -# xxhdpi: 96x96 -for NAME in "ic_action_search_cloud" "ic_cloud_search_24px" "ic_action_encrypt_file" "ic_action_encrypt_text" "ic_action_verified_cutout" +for NAME in "ic_cloud_search" "ic_action_encrypt_file" "ic_action_encrypt_text" "ic_action_verified_cutout" "status_lock_closed" "status_lock_error" "status_lock_open" "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" "key_flag_authenticate" "key_flag_certify" "key_flag_encrypt" "key_flag_sign" do echo $NAME -inkscape -w 32 -h 32 -e "$MDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -inkscape -w 48 -h 48 -e "$HDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -inkscape -w 64 -h 64 -e "$XDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -inkscape -w 96 -h 96 -e "$XXDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -done - -for NAME in "status_lock_closed" "status_lock_error" "status_lock_open" "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" "key_flag_authenticate" "key_flag_certify" "key_flag_encrypt" "key_flag_sign" -do -echo $NAME -inkscape -w 24 -h 24 -e "$MDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 32 -h 32 -e "$HDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 64 -h 64 -e "$XXDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" +inkscape -w 24 -h 24 -e "$MDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 36 -h 36 -e "$HDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 72 -h 72 -e "$XXDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 96 -h 96 -e "$XXXDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" done for NAME in "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" do echo $NAME -inkscape -w 96 -h 96 -e "$MDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 128 -h 128 -e "$HDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 192 -h 192 -e "$XDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 256 -h 256 -e "$XXDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" +inkscape -w 96 -h 96 -e "$MDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 128 -h 128 -e "$HDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 192 -h 192 -e "$XDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 256 -h 256 -e "$XXDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" done for NAME in "create_key_robot" diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..944a9919979593480cc2137f15732e2c6c740c7b GIT binary patch literal 524 zcmV+n0`vWeP)9~0ZHUpT$H=@lDz}>?utBE?sj%&_wCN?&g3MK zCG@0Cz(kUSrhs{%&`Bu?LgT<0a0{FR55RI-gbKh3FbQk{8^9e<17<=kB)M!$^04WX zjY_IZ+7GjFeL|Ji_t+&JapbBMNneVFY7#D6 zCHjR~^LJbkiZgFOH!Ozw@O<9eW`YagCB}k3IK+F4wt>O6T88h}CB0dEel4kJiJ_`t zbK@J^Gsd1e#n28gV%cd0@7fk)oK6WS1O324C&iqC+1_R9Zvr2{upxiOx49&fYd(a` zA7r8Yc=UH%zSMqv0#_mOcVO2qNGgWzfr%)JS#VhZT|zc=3E9vkWJBf&H65+fh^lB3 zs{J#O`12ZtRaw%Jq(;O7-G;iP14(0+g6_AOxh!>LKB!YimyivaBlHc5u@3Z6B%eM2 O0000=pjo!s|tm!41U zbRh=x9&h>tdYuBAlN_jd`ijfxirA7(cV5cLEw69e&(1DKAB8?9hB~c9MVigYOQw(TUva^=aHZ%sui36PykD;`FV&T9v z;y_I-8itcz6a#u#8%0XlJI~7se7xwXcjj_F8A526yquTOlMuqvoS%Tgls(HxVrRSV z**lG6Ipb;JcEMP`;B8N{lQTm_=}OM%uk|wWvZ>#Da|>ttw2i7P(C1YCI?hzUg7Ux8 lQ=Mm9am)-wc|ko={Q(+zA@vAgf42Yt002ovPDHLkV1na|9u5Ei literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png deleted file mode 100644 index 790af372d7258d2fc1f92d6df49b9cd87ed74bd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)_W`va@Gq zmY_H>bCy~3?0yWh%iLkl-t6?5k=*34EJ0zJnAvMm5<(8>c=TQgeM!^OLi>H~d+mE= zVN6^Wnt&!Sa{`v^0X)xJLUzf@Ns^>v_isu9y@G5F$v@G2g!DcZ8B+rI5VDQHtBgnt zL`uwf7bAmzgzR4M^=nACuIql}dHzdo!~ouJQJG5EOdoivgxN=+$}SZ4v_FHoY*~Wx zwpPCZ@(w8h0B{GH-SJ8az_aQB%4`*iItl6(SoO3!4Z?P#Zb^L(^Z{_Vf$#bAQ=|Px z*@LVmT}EzGt5AXbKBXq`h5SCFCh&>;{zy$A#DK^6MQ8$ickvOn6O*~qNbpSWU$D-c zB?)}Sw??OB)(-%DPZrP!fM4Bt~Le4;urw4eB zzdiyrpvAX_FUT6;VF3_RZ-MQhfVKdmC1Cz)3OHI8XfrSw04A+kR?P_a!njh>ljJp| zeo5LR>7Ff^HC5{YV1^`Zlk_I_Sw+%SNmXlxqw97D_-VcZ>k_{zaNUTXv(67hk`rO&`V zOHP%42YZ&LflgnbLmq|~Xg-==D*yv<$yVD16ah~?Ob3Crz_Efb6F^51AQ7(*-#pB} z;9e|UI_#>OH)Hl<-xSNJFRNxAkbnae?*W(26Ay<{Kq5Zuzb^sOAf70>wS0j@ymg!c z#tVQ<0T+Q4zIC#09WJ#hzBTkn+L;_J(#M!_NrRGZNg9weTEu)dK&C2+Zzqc+eULO+ j#w-L-P|fTAhl1!2U0sZ$e7Oz_00000NkvXXu0mjfg5pu% literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6f8c72cd6fa8e0bd75687842905e15647b4170f1 GIT binary patch literal 726 zcmV;{0xA88P)#Uea+%d+n)9dM)XVwNsM52Ui9{ zo-W`9P{Xf}zy+WXGDZkYA5h5wl2!%S|F3}#0-qXyiB$!9^Ndx%zf*6Lv>>TJ5&JA@ z#^Q^T_DMP<>5QZvN1d{yW0IEt_8l5e&2}bZw!M~j>8@`)S7H#j4wO>`#}l3r;5P8Y z+L4ScVQAwWIAb4Rf%u-SaKfVEV9&Ehg&)luhCUZ5f1t)mFQMf07@@L+kF|4%CC z0oo3H@eDLz-dT@tmi3kC(gJW3IN<_%;2ES2bOJ?S#p7KuU#Io+=^@aa1UizV6Tmj> zN2|cF4R!#SPvz$=9`9qT4FKI2@FAeXBGAwJs@M&TS{ui<0DFk`o1cL| zF9kdb?DPY;Omr1VF4-b*1^5bVwb;o(sBZ$U1p>vY1FwKdV9r2eO&VY*R7FJZMKjb0 z)L8s;-)j-5(=kv9c)tNq6B)i~Qito&CPQ7#$k(ttR{FFp(Y(LUrD+luKGzj?SkkDZ z!;*$1?FcvqeEOy6GigrJGf9t=$vk)J4OPp1xwe6PY6JQ78(O()&*M8Lvj6}907*qo IM6N<$f?UixD*ylh literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..af3bc9d05f714163c1cc18d3028f62200b7c89a7 GIT binary patch literal 642 zcmV-|0)737P)F^CgE6o&t|$##NPf)2DKdc1SLX$%^8B)xLQ!CI}xEk!!_b(Td}^ovKg}1o^>Wup=U;X6Unowd>S1Og$mSw#fBRYx4N~s&;60Ym|0Pg8+ z`sSTPqGZix^DTh8Gs^7Qwq2d^-I+1>5R_645%B@+PwGUn1E5r|*FUE&1OQy6Ukmq?d zJtkQKaCsEAMdXQ|55sWk|4V1?+aAfr0qN36P-iZozpiAzvqFg(8`q5IB%duJlzoRX cp^X2IAD%?72WKAlP5=M^07*qoM6N<$g1A>2UH||9 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca38976f1b2c2c0272b3beba79b0c867aadb5e1 GIT binary patch literal 1535 zcmV(^b8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11$;?FK~z|U?U!3<9Ay;8f8XrR&g_me-Q8?A8#OoUhSDff(x((# ze2}U|1Rq7w>VqJn;G0DZtuH=_&_4JgXsMSUcy z+xx1js;?=EqTX(xt?bt3HB!pFZQI9_$>djKV`EMOP+wo)TL%st_^_v^$0daLPatg) zw_PKpWOjCT_qlWDO29V_K&ELP+A2&nK{aUgw^d)ge_&uhGYsSHDp0M5yk4)`3}ffB z{B-6xpS=4t)4z-(rBe&&I1Y~EG$g6|>iz9}^?o4)LI|Upvtv^`l`_ZP*~jALZ|L{i zOnm)5pN>7>5I7c#;W!RUOG`{oPd6kyb?Ouo6BBJA+No7FcLyFW{q!x7ppTKE2$^h# zLQdh@@*ID!CNTpMq?E+taV91vD3{Azy?T{kFo@Ud@4wkoN~ELEEePF z(W7*Ccee%E6e#igFQ`g|<<%96#UlCjEN(n3B;wrX?`CCXg`GQhl1ilr27~P1zn|6B zRU(lHj^kjOCWC{6q|<5qem~)Gm~Gp(b?m2G0!b;^bKnr4A00Xi~g(BI#Wq9`r>vt@;zeBwoZ`1vFOYp4bUARWP9D>l!( z@;Z*=pzAsV0|PCyrCFiozG+v^TPpP2vu`pu@EE^c`H{7?r42ul`@46rXXGjF@7Ylc z>UO*T^HI`Pq55eG@W}99hIfs&4b(~cf8%Smw%dMjaSgpnuN}*{Q$z+m9B*MbN0-;cdTrP*EX?Q#yGMNmON(Ct;kw}C@B7tET6pKZ| z;cyF7!&xS!td03gmo9Ps{CTFQr&(TJ=FFKhEG#TAIXTJ2ixX1>3fxUauET(*SCxbG>p^e>+t>`Px}mR~Igqi%cdXmzI{k7eZK4%5+sB_4Mh} z$Au6N_xJZlT`rgFX3&OL$jy>$)r1fdpin536N$u?6DLl538(<#<}_6RKVSv|0ZY>~ zuar_qDP8{yK`T&22qClC?0Pnv%>Wr7C8cyk^HYnB7i)!$a&G>q>OHW6~JYKi~=002ovPDHLkV1hpk+!X)- literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png deleted file mode 100644 index 9d4ed6e843f07b87016f9450f48bbd476c1a0803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1302 zcmV+x1?l>UP)H9Nh&YW!ln3dCs4Fm$uOfIFgT|4=`Yr>3S5LLh{oR;wX|06+*qqtU?WbW*R^ zIeq#xx~{jCU`Ga;LDfc`#FM|N*L?VNg;ds{XP2|(@9phvJvS3HzgH9mDJ80^q9_WM zW!dVY13=SRC}#Qct55Jp2UtoyVIy6~J*Fc>fy-CE=G2MLFin$0B0;@g?`X&E;tPdB zcs!o2AUYWM@#c3Zy=5}lBo197UV~meM4vCjPj@f#!SPQKLJ$gtS^(@+-_z5BloCzT zI#}ph0?V>+2nW?_17ib(*bH7SFR;9v!s`lCt5tD06qc8lF-_C<)BqzRBWRjt3vR~} zytDrVH*S85-~A>HYoiq?q>k4;f}(6{Ash~4nr7GDS5?*4*JPt>3Htj&T>N5=M~~tZ zN^3|d5eSBd$9QA(t=0w(hXWx**MVavzULC5loF4-kMZdH&pg44PQx8F5Rb$qGlVzC&SrlBYbKA#WEvIvDj#9}erZZ{`Sp2V^&d_EtVrXhqtRaN|cKk0OuqeqVt z37#2!Y4rVRUq~dC-;+#M6Mjxw*MtjvP4>ZZsNgY;>D&+gY;{n4M{w#WG0h&a_iQui-1!I zA({*b!1r|NY?h|$UEu|-0a!p4C;$a1r4-MD{=c-Bel33m;1z&>0EsDosb|B@8UO$Q M07*qoM6N<$f^eHp0ssI2 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..32a8a5df7deca329b992177b82cde65b090df3d3 GIT binary patch literal 2598 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 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ee330eaf36d2a2cfb0a6bda03518693a6f4d2f98 GIT binary patch literal 1749 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png deleted file mode 100644 index 0464246432455c038c331525927193af3400e0f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1751 zcmZ{kd0bOh7RO&mjjRHKP=u66nh{4D!V+ank85dzQ@f+n3pd{8*k~_@ELrqBlZcwaKqFL!Yo{H z2;a1jdIw8`MA1?iSAqaCnamy)#$!CL7_k>gVpP+vJ8{ttjfjIv`3NB83S&edCQacZ zpcoMj)jwh20uznEGf^5Vk^p!jER`!mxx#p^e$(M1+?}Lxvk;6YLBBm_9IC0dEG- zLmsSm;cr~)%kty|pXw<>`5ef!Ju_y(rMOqhtgI|N6o%RyRaEhR%&qyY^%YT9OIKba zr!5nVw@3NuJMN05#<7W~4DIELSxh7F7=7) zyX?h(OQq9iny_Cs7N>jmk9~C%n!fSv^bgA$gnL@E9c?Fnzn)MwKJ_~MSZ$hMgQcZB zw2#bC=>FRGU5K)|gFDB`15I>|bRzPfRFn47?YuuxxlH|Si)Ggl|J_+_7ZqX5)WOxB z1L5kK!lAD#L*|~$WMVBqD~uYMQXTcv8tv3{ugu0U_(&AOAzr9ZQ)f|c*xiQjHo3!}F z@V0MiPKEY7K4O=#C>to&3DB&$GbOt|v+-w#nT~L^^Tm!CYnc z2weMyk_x+4w|vAty0Ds{8fbVHcj3=5_6*X>b+1D|Wp_sHqV;#!3%k`beEI2onP+$ovAQq&cb<7kXXS?%$Y407 zz=kqFaWa_Ino_4i5WQq_2h?~=O;$f6c3b&!NZs@Ftm8>EyJ}_6*q_SRuRQ9>E@xjY zgilf*1gHn6D{cMPNaO5&5>yt{-wf?#wsaM0860f8Xi}snCiHp3mykO_VWMl)%dol5 zsUHQCDaf(&VS(W!L9dZn{qX&vs^gX(a3Q^3FBw=OXe)en8WD#)s?}{K8FSg&uZ8EV zSSu^ayC?6|-8S#(@{JQU1~ANQcO{f9$}$tx{8tLD-2dK#EQ=+g5m>68I=EVTFA&sE z|A+c9mjIZRy5H%DcD4?F&u)6o4=iUSNtUCqgH%)6{@R$EnQXT8tSRwu#8!qnF8O00 z>sc!?3yK$>%~wX)%4i#AFC)_&)Na)#-?f9E_Z5>}=GL!Wo69Q7%Da~Um61JN4TH7P z-Gb9OKvq-mOj}ol!Ix<*j_E>Mizcf6>6>tG-HC50f%<>RCaXgec$ue->A>{X1$A8H z_{vd2#!7Nx+U`G^8|!Y}Y#)~V3$q;Ydkd>rFM|5_Kx-)Vr99cq0fG$AjmY|R7w39! zB1Nx5OI8JqORfPan|Fh&A8OtnXL+GDUTH zq!L7C$V}h*>b#w7tq5Z&yx|1_fioS^Z>lYqaUx|OC#d|2;$d6b{T5{^j;dK0$}pQ#}!=x@)oQtG9Xq(lOA?)hh8fpo^1Y5x?u!FKDtbMMJAIgo(mTT m2G0>3qMWbnt{*<#mkIdi&bJi$FVx{bBjD>Dz$*8O{QBR0ssFbC diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..350268538fe4ed985b321bc54fa10706fccb2507 GIT binary patch literal 743 zcmV?P)?ju~5M;Feaj}#bn`ToI5+avtIFqQ_R^t=R7-m@64GsNmP}YtppALo9Ao* zXaO&P@j1IL=}G0}l9CND;1KWuP>KBn&H#OtYE*#P1UyIp@ofs&-6#;S1emM=Q`lEv zeM+r`iEs8aurc6&1>6K40pEZ@U>C5}yRR2GXJ$Jj{fbsfn4LWxp85jN+u?V1444hX z9L;`Zz_UQ&D+zHY0&!DWK)|{{(ivbw0#Fa|CJ?_W7Plb!K4CcEyDjNuNgR^C17m?p zgR!_WpcMh%co|HaCIY@JprwgLI%zWC>yHJL0WAvnrjv2P_qJjIWk6P;cq1wUD!bme z{<|6KI*=*Q51H98upih5to1HG2i_&-?*oQB-+SO5ZjBoIV{Z$ru*a#tt5>!2(X9hm z2K?wEkbwT!*0CLuTauQ>^U27{B z=reGu7)W|bwT`lJplgz5J>SKggtq2gbxFG-l002ovPDHLkV1fbSGRXh{ literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png deleted file mode 100644 index a1b090630aed5facf3c2eeefc793ce31cf0981a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)K_zq% zlmazr2n#2Ts5**=vI1NwOaK^-6xjoIBI~aU5db>Q zw$vtm3)~I-ZUK|PALDldJSaloeM<3(h<`uu*Z40NA+TYReRLeztcf|uMF6-Clufdy z4g!5CyVljnzpe2LN-uEL*ft{mb!-C_V;gAX93ybg=oMhMS#?z{r}*{eA#ly;RXy8d z2g*%yxd>bcE(zGD91$r2PkI$=-nyPL?sF_2af2+w?x z+Epww@)B56)y=x1s>jr>;TJ|=!D(xXER82br-)1&+s#%G_~(p!m8V!*4SNKu1rmF) zme5QqzEAp>P^+X0jD$7C-ZMp{2bcz)VFyQkDDVY%r>aZg!YLm&%~1k<_R9bO002ov JPDHLkV1n-&7vBH? diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a615c93a0eec31d855d6f6379da503124d412987 GIT binary patch literal 806 zcmV+>1KIqEP)1hFL#$pN~L) zp;w04J+4$Mx7+%4+!2 zd9h1&-79yp|`&D)@e z^e+8Y)hXa8(8xuUaShD^o2@>_fzQBx%f2^)YU!e`0bQ~7@#5ETKwWM%kOB`dwdXL& ze?gj1z%b?uw-C_1fB*_S0p^$SHGr#_FO-m2Ytn$u1qLZg>%RNYTHtvbfzGD_MNoaf kHQ-ANL8gH-_SmY*A4by4i_@%07*qoM6N<$f;l8+uK)l5 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png deleted file mode 100644 index e567055aaba827a86876afd84ee88a6fe8b152e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVLoK~z|U?Uv1p zk5LrIKWFkb`3aK+n&l)WFOw97gdG-&rILk2Lt~+6{s6NwC?#cSVIyTD<)v(_28}Y4 zGFcf?3{7Ta=2$%US9k97JoldG`3)=II*W6jd(ZjabMHCl5mm(s5orgG0-J!1KsPV} z3<~azO#&PO#sE#o9bmQDuOaXf;GQ9{FW-Q}^F`oFB+ysjcZ5V|O9X&@ zz--`n8n^&-xi#&;4&Z44iHEfb00Mjn9DWD3m8@?AZWfR@QkOtifwTTZ#+Cu&!JezJ zJ#CQ!*&OIo?md)3Reu1t0`r#Go+<=JRrP1gnZw)pBCsLQM-0IM-Us?h5m{4*z~Vrk zG7^|J_%adrC-_fbL1++>MZjLNKH#HUMEVRq*B020i^zRdeVzLfG?MMWC#nseDsmf; z(oP5r{l(x-*?G^=A%=mAWT%XwF-P;#zk+z` zhJX&Yc0KUX`}PW0<-VOJKf-+(unwaTlfW-WdW5V}#$E9Js`|yPdjNbkd##WG1)c*9 zZ_m1BR-E1myi52PD69e_fgFj7!CSh5CUyY_eS`a5e?q=_B~gdKc~!mZ8{B`wAn6Lo zqv93x1!?aI^i&13^ad^k!FpY=a}`O{egg+YqyZozr-18Zjq93-^m^+isd5z_^W}*Q zG%Mh2$qCN@CxMxSkIS)PG-e=CCbK2PLOB+@f*a=4E4^E_uCS5~dTUi(?U{XOg1XYbXMB0^J3Db2@rEdT8Tn2r$)VHg)8VyLlr zMAUX9?7~Y#h5x`I%xknp1DK__Rs*EdUtvdIfiM#fdVp#BHw@NUE7jRUDW${Motb)s z3%G%gScbLOlzH|ERz$?>u8Y;E&gOA`^)bvECub|3XL3#zzcSp*2%o8uw<(kN8B==( z!s3kR7c8l{_l{@sS9i;q)b)Kbn2BAAh=&zU;X#n&9dvFtXBI0{hLKV=IOl-6+O+Lau1~@V*RixpsM-4+kaP~ z2?xsFWhtdWY}2{|7IjSD$BV*sU*a@QN5s!DGnvzMzus^4rhd%tqGYcQ%+YEUCJHDp z(CzBjp!#g;x2^kg&Or3YH#xXWK9k z5zlb6M6eX-N+x!>M6eWSUCmf+D+St_QrglUq?A_Sz`q1aTK}@PeZjO6!BU`ixY!;< z#IR-^W#56$Ma0*R*zpp7A literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png deleted file mode 100644 index 98e32eadc03f28b70d044f6f2af4eaf6f35c47a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)IwRJXACbu6^mnaxvvj(#k2uhF5aHTC zY`$U>b%W?g4@cWAMygIOpl&YYc!R6BjOShC4K{h%6-+5R#zoERcr(5f=DsT31$B57 z5%ZM~@e_A@Db%ZgZH2LaCSW9`G`8ZTl#b(UVQ$kt>1PrSS6=V2dU>@&S}Ot7JHL-# zy%gzHz)VEETyY}e8y>EwfXTvGM|3lIs@R=U8qZ=wYaw8%Fz-q)&06)yui!}^g-bEh zQZskema z0008rNkl**m0A^csKn=E=N~t>F3{U{ZfdLVjwdjU{MoWoa5qW6QuLin+955sz zBNdqZ!vTSBkBq;1{6%7rw(xuxDBkby*A_Nk3?wp0IwpT zPMbjAEuyc$ZkLJ9YX@Fv{Ux9!LaTsY2hhMjAcB=LZW+dQOVK=V2)F@!bd2b8;5@Jm zsJGPU1ZIuAE9MBT0j7251kh$Fv|rDqsQF;V6JVvK)?p1V!2L3~DcY=`y4|?n09*!2 z31P}H4eYZ(odQOItaaII(Ng2O4S1FkBpf9@e^jJj)P&UuBUOM2M|Y%O49tlt!wB#V zXiW?REDKHYYRBC)K(}fHQ;rUAARt5KJ`op_1RqRa{XLtv>pZj$SmNjlxAMwq5s@~a z3FroXdE{=e-gS&nm*-RVIPyD)-?K`DzVdOetltA>3d?69RAb1a#xCDiW*^S^?WKqm zBl<@@YE<~RfNaN7vo$ZU-|FK6n(`>NQ7P4G>rhJ71A9GcRQR}nCOnE|ftyOHjHT}a z!Agy5l|GIM8F%Ci#~XsBz8yGDaE$fI`vGKpS6L4Dod7CLSU1L~Pe)%3VT!=kq(E8V zU5$YH(jGr{lKzzFiZMbb#6&RJ_HO2CdtKM$ZB@SqAXGr-wczc@h%>?FZbO#|~9 zSnuWI3#6e6z~clUa|D}Yqqj#AAPuE}1Hc`EKU*8fTi_zFHfepOO;Ry7ytkO07*qoM6N<$g8NW;wEzGB literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png deleted file mode 100644 index 84ac9bec2c6c2355cef42cd8950460d37f4a8f3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmV+w1M2*VP)QZskema z0007LNklB03{{wh>}M#kqKoW$xzDJ*ib?q<)%DF zl!?g5VfI`-Y?`_A|I%C0q8d#(Tfzt`D&uYIx*g8w->{wq5M zwvv=(**FZ1{UL4^+_|_tMpWPB28wx0N#s@8uAH|5e_>BY|k1|%Oc%$NbBSc;uILpXq-h9ji|$mcBZh%5#Q z{{dmf!&Ps000kvWTq8&P>lsEGaEY)y>Q+OU%hk(M>Kb$uBLD<;~JyU|_WHba4!cXuW#_Q+^mbYA8?)dLQYigRLUKPOB2d&Wj@cyHQN2nn*Zq^AJ@>CnQQ(@71*y*5R7z> zU88!MrSpWGMdt}UhRv*Tu1_-jLayd8vOBCVWh`5|b1T!f1J#qtby_FA-5Y;|#UDs!Q0w+$4m%L-+`u$n>{Mgm1C|^w>nEJ27Fika zZ>>Hd{9__pU(%Z8XL`F1h&ayOUnY^sN8PxtQ<2!J~_FLnOkK&7kH@{haxHIzG<6F&=H$r#+Enw5Ty}&S&+uDEf ze3rAtJYG%DEH%^|Kg%qgyrA~|If)fYZlM!jKY1iDaqFtO*^{N*y~9Mm+)m!b_LhCw Xd!^k={gd2)q0Qjw>gTe~DWM4fw4%S7 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png deleted file mode 100644 index 967e00e803ff390e38303392408503cb4d3bcebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8!2- zc_7SqVezI6prB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt*yOMIo6b zIjIcAndy0nC8b5Fx|w-pi8+}my2+&_`K2YYyjdCy42=AqE{-7)t!Jlu_Z>3eahShc zC|r`WlUMp%s-5^;?gHZo2Jg);J+Af$ANTa`m@@bA_a#?0YOnG-|Ml9`dBOq{9bL-S zG6>%6I-w@HVAX#!0|xs8q7rLoOyZSkFfL#+OY>n{cX{2U83*e>&k&N^<8`P(UDfM> zVkgg?DKq42%K3H)u@QWT-J&zrazb0bVgQHB2oz@>>XKk;xuKTOKqCx+=pxJ@jr#A@fJLfFY zp#NXQ{lP)wI^$K1;T|{M&bY_Sx!2vuJ?Za46XlP4Hr|;~@vr}+d}pj~&9wB{O{=wx gSWBbt-u}pZJ)SAyu>JDMz(8d1boFyt=akR{05!m>RR910 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..82799481a47916fd4b284b50a7d34afb13375174 GIT binary patch literal 962 zcmV;z13mnSP)QZh0qaU z0009ONklx+QRFqN)xe1G?5JU#T1S29ef)?V( zq9R%);=(p!1W|~XQBe{^5CknsMJy7c4^To;Q2ZdvnWi}{?wx$+zUQ2K-+3qKz_U5$ z`S_o&=REfoAq4-YHn(2~MNtf55fTq%Pm!?!JI<6Ta;eq*H#!ni&D%PMn@am?@dW=2YAw zcI}Iz7{O62=^C8g#_%1E;4E%Yp0x)s*kC&vLO9sf8(EnFe9W?c_3 z0jDr81@vpe=;f9$Phlbx{Le)HsxBbhkx)K{xh-Hu8({X}xy0C;F`#V;i?vgst zj}fIGGB8gzz`R?BsqCIf=&uMNnB#hj6>C=_eTt%Z93Nm_Y#jTrA%rj)8B0AW1DLi# zUqz_TL}vIHt|ev}upa}NmED`LyRE)u`yxt{s>4?4JlX(rAO}G&;SkXxCLb-YCx zm__0r1p!Z_fOcd8$K;bXFqQ9*5QZh0qaU z00088NklikC1OH}M-rbIub370WsI3M|KNTt#k(TR4g>80uBG2Y6Xo z^ic~qil6cJlnh`5;{$^0aSSsDHh^7I1Xtq{7WX!Q9X*QP#RVM4xA?0=|4lR#5&Yej z_5K^%@oK%v6gz4&&bOF2+G+sL;`fH+b9lLgA&*P^7nsRGo;Qc^2f#DALB3y0&-Nx6!^AnMQV}bBM2YexZXn>Dl zH8wOf^US(|UjyMt3w!~-Z-K9^Xh#Fh>bijkf#{V6_+p)RgilsI*8^sOjQ))*wh9u zYku00|54Lrw5JFBfnuw5!Ivveyn6nq%H0wjt+zYi@AR1V&&uYEYJ4zB9~Aho#lQ`0 z!|WjM8LYwCmi*HyS8-^dEVj2}8OF-yJc5IYW4V5g)Z-fFKEY}*FoZ)r8?sMa!?KXo zv7Vpf;S}L#Ft3r(qnlUZ%clU}#K$_mkU9-ijBLPR{LuoPD9wHnHEI;8EZ%#hl!ow{ n_~Z0)&iU3r^#(QYUypwQsfvIg><{tD00000NkvXXu0mjfJtvH- diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..919ffd1d3bc0f0cab950923f760ed1d2d3de5b80 GIT binary patch literal 742 zcmVQZPVnKC z0006xNkl7Z}0YNJf6a@tZ6=I_$pSQ$@r8 zey5b?n&w*35adEcOyMg&N5r#;IN69OrBo|0iPRx}Vyt%FnlPtxVA}Bw8p*GdllE26`4H~1$*{1xw5MT^L<#88SCZ{T<6awLj)~~{{`sYYQtj1u4y^CGS)R3)O-MLCPe}RMZ zai-$lgyXrr43BCgY#MJm0%5aOT4n*2JsSSv8zF@ zqy1X<-b6#HwVH1F9$1f$s#WJ+XpQaA2q>(F^T*X)7UiCJ96%9PT4G5U}6 Y7qR?E@$Ekcd;kCd07*qoM6N<$f=ydSrvLx| literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png deleted file mode 100644 index 82cc25a4bddb1a850b77702c3ae1e2e0177f74b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 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 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a1500ff3d55b0312750a8e5c30bd5e5448f7048e GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4{zjBnbIO@ z!M7b5u16wWbe7CnC9Csv>h}*_&TE#peB?T5zM+{fuQ;AvQf*_emwSoG(-*uINBN!^ zMt`{bu+oJ+GU@&U!PCwgmn_;lDa-HEX`QlyIR#_oSE*;PEO6H}1qt<$jqs(zd)&&L}SFRr9@^fc>^{dmdKI;Vst0Feu!+W-In literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7f53d973fdaf9815f04dc56ba213473411a0e1 GIT binary patch literal 513 zcmV+c0{;DpP)#-JwxX^A85p{NkW~DT-hdm$|*HK(7)-4nAro~a3dd#hVF`zX?OG(@Mt)v4h@>6R>my-4YOzO^}_juBlPw`xD0|s{W7eo*F zH#kV--^stJcUo3v(70a5F`oUear#q~=e8?Sa20<5CM7a01mM{900000NkvXXu0mjf DpOn@H literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png deleted file mode 100644 index 69c801dcc77bf20bb2fe8205d32870b926ac79d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmV;Z0ayNsP)=gKn&g%%w}hqMUzay zGk`^7(O6yqEEX(wSS(XZuwcPrhvjQ>V!7OnvRwH|)}%Suy8HUydR|NaPHCFXzBJCN`|-|{@xPNIZ!VaHK1Okgo7*OgYFta+!0<{}Y-(;Kp92?fSXxeJog ztp^a}siEn$qxh?{rQfHg00RKlw_rBS SPnmT90000O(xlS=Y4+9=G~pyjR7iWRFsu2sVYKk zoupn#wUSOHy@pZ&t`P^8feRqVU;F?!z$(z@Vz}U=zyraN1(HB4ios$Cus?QyiZBKv z5uo3|y)mB&GKd4|2nKUNBe3bs-+?ZdK`H|L5UBKYO~A94-*Xw9hlD=@ErxE(Sj%EO z3lm-ge1E2xa_f#3_Sjk^;Myq40As%O!kBWv-+}5<1}hdpiu?;u zsObjY90o@w({IoUyjVmhK!SW5uN?3kFz7N6Fj+#J0rnkmfCWFV)M2+40J6m~#jOlH zu9M_)KtMaN4Ln)ES>ON|a4}*K`lFwa)aPxYb4j<7eu6|%4E_~m|Eu@~ X^cSoK%d!N200000NkvXXu0mjfn55~6 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..eceece7ca2ed31526a5de562102c34e2898f1655 GIT binary patch literal 506 zcmVqcS&V9I4M z0yG>VbxW!_xSDbGSo|HR0CQ1;O@{!$g(Wo|T+_JtEJE~w{m|exAt@9oJGioOFA22} zw5%wg?Md1ICV*ptes^s@0jzuKLR<=Hc@jDVzpMy`nzQ{Z!9Xi12Cb~5CrL{Q2YpP^ zwOtJjNdrkUlIA6?NLsVJ)ufBUH{>+*fMp=-`I4%D48bA!smXJU>jTr_ftdWE$*Dtp wkJwd_A!yeX{=xh33RHpVP&dQ>oBZ1bUsLU@>Rl-eFR-RkG? z`;2-^U9FbXCou-TtLyU^Xjfk+jN*LYTuz9Os1537buK2}n`L05I*}l*x=C#bqe(({ z(0UUSE2|gOok<36rwC65&dC&x>OkP#$lyIQ8Zat#z;WPAN+&b{CE#0HyHv#+GI&RT z_rL*&&Vth!53C~Ec87uK6yDSD*^!|Kuof5qnowV5Oqptbn6h*J-5nL&5AhE5XAZpz z`Y_tDvM?9KQI8t6+k`r7)V3=^>~4YNs)MLwImuttQ^vPbn|e0fUo2o?ygsb$?i}mZ z20Q>B0?&yGsTJr1x_}8_5V#ijS956oLhUKwI13|2TXf!;xQE)Teyov+-pU#tvRL&N zG4UvYGpaUK7gCptJNMH}^e4n-)J|hg!)@x&5}Js^3w28+XWR=(3D^Pb4_8}`YR(}6TtKSPDj(q#+`jGUe>jv*e$-%c|0Iuanzwm&lHZ3VM-e`0F# zV^NzUQMLtFlN`ia!(ED5KZ=<}SF&ht{lw-cBGl0;_-K=2-XX3{byv?M%w&-}kc z;p~w!$13N^hliGOX&hZ@8;k`gxNM|1TcNTGn@VxtV+$ zrmLL1sKBb&qMoqa&p*_(_&cY;>&q6$H13OhcxlP7YSzq~t5>Df&eGq?QIUDW)Nu3K zsDlcV+-kVzT>W_FuK3!S$0YP;^DDMwU7Qrgx~hut&i0y=xM@$nDs-RG3BOt^Xvr?u zSpLA##qZa=7i>aKD`s{7Wwq1|7-0SI8P?7(f#xr P6l@Hhu6{1-oD!M<5%rYB literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1e397ebed49ee109c37ff6543bb8197890f5a20c GIT binary patch literal 623 zcmV-#0+9WQP)4S=B9|*)wkaQv; zLJA8D!7fc&;Tj9MR4D|t3kZr3u~1M#QrM_PBt-9i7Q4oE^X|{?9?o0X4~}KuyqTTf z-J3V}wj_x>^T;}ZtmIz66YB&bbOOUbH?R%-YROBI51%)ZE_9!=q^@SZ)`=r&CX)2N zq*X~*;r))Jr#=hllXNMmCTTn}-XrN-C}Q4c0aIa;Umdo|(6-$uhV?Eq9A3)~TLriT zh8hL17SIu1|2S+_;EEjPWz#6a#d4_%A0^{d?0TEzQhN7IujoOhjnZs_%rt@ zZtzLK3h*(hQ{I-)e-r|&DFj$k2(YFQU`-*w8lMEDI!L($Y-UU(EvcUC60n>xku>ZQ zyq-ynOF#vf;9-7=Ghh)IOB=xI?R4Alsfbfi2(YFQU`-*wnj2M_(Zs-kCMN&@002ov JPDHLkV1gjW14jS= literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1cbd993a7a58a6e4b3d6a3c6177882c1f821a16e GIT binary patch literal 787 zcmV+u1MK{XP)kL2QDGkV0$% z7FsD{V_{=wVPWSVVyO@aLB$_X3sDf^Fd!C6K!gNQL`4j8rx=pgVi$9_PIhN!CO3Nz zEW0za-?#6(yEC&tJ(B2VmcN)L0Ffvf5EF<=^t z+ifue+eyyGmLSsF*|13cpGVUyaCR!Fv;a&n#i64gCUg#WSV5+ z`-iC$S5>?bn@)TSco*=Phsm7963k^QYz*8Wc@_!98sLOu?7eJ7jA8U!ru-9lQ4k}N zhq)`+22&@_R@?{Pmk?OQPGCn%`85mg1*NgM0tZ}^cY-QCN;qM21=jrwnB8msUe`LM<|3S9n#QMn>jK8%tUB)4f RPuKte002ovPDHLkV1g9PR~rBT literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png deleted file mode 100644 index c6dfd0bcb0920916a39f61aa9bc8416f44648dae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&z5~_6nGw&@93ae0Jl9Q*>--5y?ZPhF&1SQ*+wCIf0DyTu;x8KJw@|)B zV5}t|L;xYid_FIS2{6={_LF1a6W|`9w50#@`0r)ADFD7k+ksg3@)GKw>Lc0C<{;S8g!KyMmf}qi zq>T36iKSsBfW79%hqt}Yb9ZWb34EI96f z%>K?P1gLH-0bxEsUi(ug&I1gXKjZ~4`djM(7%6A2R^>B!_cAUXhD^UNYu%545>0Ir+A3P2IeUko6_d?+O>+q{BVZU7WU zevEy;Ck{e;;v?#nnP+I)W9wFWU82JEG|cx?%+C#<0T`3c3}~dJy))*hs;uN900@0d zTn3;M16EKz65oBBN>i-^AdaHqqAdYiek3)_Xy!}j2Py-hyjk)r7=$|0zeLSCOi|t} zmHsVY!wlfpXXA`EJ!uyjih!J^*qIoh7$*ko_tF&g7h|*$A^-${01yBIKpP?JC1;{B jBauiX5{ZPN9{~mcZ63bu)#~)v00000NkvXXu0mjf;P5wv diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..896aca575c6b42f9f2352b0d44b1863accdcd635 GIT binary patch literal 1080 zcmV-81jqY{P)+JgNSO=qD{4^ z1f!%{1hov@6p|IzD1{J2VJH$UqNqhpAo*vk$U>oDL0XLIg* z-uHRVea}7Tytk*akTEjf1lr<~fceIP7qDo^{;mRU1Fi+eftA1#VCsT)1o&}S0f!-A zIdCtq1=t8IE*SGIFaf*^eBCO#+O#cGx2tDtj#>2`^}41!nv%a?J=KEvAkM3=sY|*R zFrvOZMB;-uq^_vLsb~34ybO37xT{sp=J6A7C-6;)ajAeF@B!6Ay%?ARZURo^3`_Tc zom@QfP(!$Xn+++BIRQ_1 zNPf>itTFYyfZgGy0>;$eJ0d@+UKxq|Nx*(fjAv>Q-wlinX;EH?^T2(;nMlk{f&Pc0 z-V$$MqNCY=A`)+ndO9-ZFLh~XTx#+D*#Y@|k$8)&ay^A$8pTp*Jtg1ZdN`Iyg%{>x zrf^57GbUh7A*oW#09%36foGe6rwV+m4t2%^1dUr@J8&q_KMuS_byUe=Jk%Kzu&Th} zZ@^=~9~rxkftMn&cT-)6N>EEc?p8GmJOI1_+z5OXu{#B9141XpXMx)@aq^rZUxgi+ zFT!&J_Lr%<25kOSH%0t!RA(|V2JvOcS4_Yo2}d8Py~wzStqy3a&qr*oQBTw)uev|v zFP1{b6R&cTcW;K*c+LptBoIVRS&AGB4bnS$p$mu$AclC zsbHUG9R8wiu0ejC)#bejW~?T))?scU^GcTk2Y?rW(TwdFu!pjmQ3#(C-UO3xV6{43 zI77LV+S_pE`{-YMYNZhB>otPJQtI)RZlo@*&!Yl>sZ z;(Mk+(1Yq)_4}6Ozc9Y%pk;-v5nvxxv8fJbX;;4gnW{E)EM-($*t!BZ3|!xWP#sKD zmFbV<3`=L|ELBPIhvuA$agOSsm?aPOUhz@jW~$?HS2zjW3hXT&ky;>;Hmbg2{nKO) zpQ+<@`7{yGZ)?@}hd}&06Lp_11@zlGtGmFjHAqjZ2h?r;zh^XRb^Z_JFbZs-x}?W` y@|~nwoF5V{Y}Ljv11@-`k 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 A761SM literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png deleted file mode 100644 index 38589ba0e9689db8bccd3ddcf69157cbb17a3dce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 zcmV-d1E~CoP)pn-CGtp@~RNBz&pqH*1=jV|eiro)NHr_)_aX)V$fkmj^FmhJfwiORdiu z+Pw4+_tp}UfWyzU*=Z7U3BADE{H7T+(7c_#fEvQjeYy2D`=bR!z&OdBeFV#LLZUGv?S(VzqZJ}O- z6&n^0`2{$4QE~lWdtL*q6`;*j)B@hMAn^RiW!)B_wXbRo%y#S}-4XI2=3l_u8n%(@ z)$=C7pLVU^_DT0$_mFY@8@IUWHr4QlI9c`*Y1F^+x|q&3h&f{cE?M=xM$zE9iyuzD<+1Qz~{!LFx1 z{M)E6#0^;dhCI z@H;Mm@C^kJzM%lZHxxklh5`-_q(^S2 zk^q_@`Tzs~ov=yA-JK_5fB*yl0uTTQKmZ^B0e}Dm00K^ee#GbgBLDyZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H103UQkSaeirbZlh+b7^O8VRUtJWi57Pa%pC1Wn?X5b#!labeYN! z1pojAp-DtRRCt{2oNI_xRTRg6<0}=B8Z}Xi%z?^C!qlwBq7RlC%2;4;%94^oL7yCg25f5o{Uc4)GLTf{ z)l1SGNr#o57D?+QH5A!~BE`91(xK$CTuh6k*Ch=pq8&wav0H#wfm>5McF+tg2VMrw zrE;2Dpt-0)un)KoIGMs(DuH?fD}kp|I7`40pb7XYucH(K4FNU)x94?~n6tnW zzz2DpC3fu*J98);Yw0E7GPj#!5D!iV)LA8;Ah}w;1dtq(Zq~J5wpuZMNNqVIWK97tWG^8 zy(p>8qgQ_@e4a(hdZOCnGYNe5E3E+_kB3*l1r94u*zqkL1D zvbh9$GF9tx^1Gy~?!kM zFmRj8$VZ?Nzy!~rMe!`~t;41tupa0i;J3+T;3Lo!pe`V2YTgCbc-XA~#svDl$7SFn z(8$1`DLI5?DP24OJQLx6q|3lZpkWb#Q}8!7?)>Sn8wI=-8DjvB1#C47v;g?pVbcd2 zcY;^xofwgI(?_7;k%7-)I}I_s54`DNw+t8`8KZ;D_7(XA&Bam?-vpNX0l!?+bYOmH zrAm=IZbpsz-froH!DPM`b-BQpu>!y!D#{&cI2cGNn_Zh6w^DzOk zSPXpOu;~e`1?mIqRgPnscRg0LI|EnRqcVIos(ij?tE4)Q`Ya8oj}K$B;`s=)+B493 zNz*+14VARJOWC8cJdUgEWcg(cL%2LEX38%13YHjmaT1t}?V|&<0gnQ|ILZyhX4EM^ zuxiEf+GX+CL(lG`7kC)h4D9u=Z37l!`{)h0_pEwg;tchyi!aBp&BgL~Jl5j^9@kb$ zi{v+!gj`D^x{eQPT(NyC_+wz;ZSosae6C57{t1ll%S=~%-~PNY@X?)$eOWOnuv}LL z0qd|=dum#M9WJAy1Om7M*p20~W78$8+Wi#4ET+`u`Oadt0@@riFPW9FvYor!7)gI6 z^j(Sr^4xOnxMDxSdk>fyQ?Lx%fvbV*68h}Q8K4n&8uvfM3e+E4bB&ED+zkl(c6w82 z!Pu4YS!~noRAl)|vxEq7Apd8;jo6H|PaY=)vldIIM3FbQ@+tNt6@M%#j@7_Zc^srj zKJCB~^RB(~N^%}s13pg9gDoi!vs{YpUfi9^VIni{N literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a0924d025d89e65a8831d3685738265b0ed2a765 GIT binary patch literal 1587 zcmV-32F&@1P)`NGxm72*ey%#EeDD6c<3f&TZ$; z&fRlo=FGJV^MheIvvZzv=9xKX&iS8n14$HAr*yI_@PDT;$U$L{gTf#Og+UGqgB%nF zIVcQrP#EN(Fvvk+kb}V|soYb6$v|t&(FFVvI=%ru0JZ_g>Rr*G&Xd(v-~r$+U_`>a zUBJh{OBloILcI*S99RV0fS+dlCGZTe7U=b$SCzaCngqNCOwCEZ1GpX7nUj95o%D^E zej_h)0Hy<90rvwz9tGrO&|=_SOlO=o!+_Pm+vM=k@!iClfmeZBe2OMuy)E0@*UqOw z0k9Fc+LvHTHUKvR$9;(TG-wg9vc_w>fGxlt;8%NYJa9HJlk83NY2dMp8U{%|j>(dG zsXU?OlJVZJ_UbaJqy`I0`A)LY}z+a;+vMyp-Y7D>lr@*KDSYmdp-Y&DbeRF!-3 z*2FHA^h3f*oscvmqBBI&Qb|W^$bVGQ5}PNiF~e#n;h;=E>D{1HB&|+SAt}D?uS=n` zE=Fg03Y}|WbTSzDk4e0sQ(kYHKmqp-mq4aEh7ofE2TkkbFnjlPk>n|yR{9# zkx+Up@Ip#0Y~Hb<^buP|66U2XJZjJoTX=g~LEybe`c7bU2EEZ%W1uozv;yA)?*L2a z`*OO8yizMOG=(xP5zVz8G}lHnTRdp~C~2Yke+Vj$@Hl8L@P5K46Xh5trW_vk`~;kn zQTJ!ec&1E%X=+0<>H_Ql?!$z0`w?zp%RCfzfJ$?QlieJw#_&*Dz@Hv;0os6%Ffput zlnt7P85L(G+SeQg_Ic3VXSK?Vz8iX;k&8Q0oKT3t5K#2n3F-T7A64q03d0rhcQKz2P5N&lBCTkbT-?( zVXa3!)zQW8k_I7ZcMjs+lFn1*jh!ZGO#+QIHcwb%f~3E_)^uQIl4F5e)&J=u={lKk zXf^iQYvM+>Z{<|iYAg>V9U{L4zK4JnG3Nu!{Ae1L5yehSe-jsh41i}b{ljda#dBTb z_zX!qa(n{4l2*yYmQsZqBn6T#ikxec=_B%HSBbuLsXPdPg_!m8=_&G01wIG1180QJ z?*OjA&nSH$&MILR@A9S%bE8jETj*m9W*<-oaEU!PJaSDvOj01}HsFmM3yE?9*ov7T zmRDArF{9%t_V2m$pGs`UjDHSB&bI-Zs0^z4VrL*}6lSa2$=Z&WgnFB_sRaCmStoA< zF2-z-7#TUAS99wuPYJTbjO$H3P1+ESC~l*#Lu>@{Zf^U5ap6hjBN+wjP2O+Pb3ku& zZGJUozh5IU(3{jj^6kc8zOLs3J<&MOBFs~1B&xkh^GRopFoWA3lZsze{jLtfc;9>> zQ+H&-EooV*D$71$Mq+l2<{g;w&30fNW|MguUI*?VG+7>Kf6yRc6^+*?r9qf!&=W)= z3AJpXnuU2HjWh&E!X8YYvp(*hNp_gc$GlB5X^d%!i~X2S`HPf0{))8#K02!w+HV{d1^>qxi+4gTf#Og+UGqgB%nFIVcQrP#EN( lFvvk+kb}Y?2Zccn{sl9e79595R2u*Q002ovPDHLkV1h3S&L98) literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e0999bd81dc50321add11839b832affd8c8646c0 GIT binary patch literal 954 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png deleted file mode 100644 index d786dc72f3262a12c858c5409d736d8b84ce7ad5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3073 zcmV+c4F24TrYMq#U@Z}+%=%s1d5Hj1{9k>v2oXcViPDfzVrqdvi+D!h6!IW;t1*?8m9)0Dn%;Wrt=dp1 z^h4mqrTsUFeEs#;jhd$IzVE*K)>V9p;7Z#DaMje@-p~5{X2O z5W--y+14O)If@}T+cuF%P*zrkrfJog95W4&42Hr^esq48;r~6w_{bUD6}2?9-ABbe zt-n{Hw-PH!5|SiIISnWjy~hr6bl>+7Lf~*ZkYh5DaEP5>|69KC_b+3yJBu!OrM^t8 z+JKMV+sFGq`DfZUHqhMQLsM0v@i3r)Ui#=iKBkAHn&84)1_Z@lpai9~{T-+h;3$Bq#Q1UP#1D2EOmA`}Yo&O7h0 zfB$||RYeHF`|rQc#*G_!_0?B7efl&50|Oj9c#u#i#L&Pd-UsUmtt-?xnW2mi_zp^TG=+@WBTkaQyi3 ztb((damxnyzxa$2n;A8kAfd#GMq?zD1gfT@X#yo4!)CECd1+wT!H*m{g4Jrp?RN9Y zC!a7gGlR?J!sqj`VZ#QZ(I`HjkGi@#B9Ta1#Gylnc=OFSdFrXBP!xraKmM48h6c*Y z%6Q;`2k7YN$SOFW@Dx^61MJQ+6h$Q#S4hUf$niL;suGSwiODiZW|FFk)n2;njBMGm zg|4nH3vIY&WCrA1 z0-4jPVe4)ZIz1PL{e)FaiHdld@BngYfLhAWtEyXae0m-Do)u}6N@U;^P&7i6v1W3|C zTZjWqgC`#OA?2QC-uun>al2fcAG*lo)k{=W)~9niolX*o#4=*}$fpDwjmCmvGxM(6 zfYiWnB!mzeLP*H6N-` z%|d1YfYoZHrluyZ;6i6X-WuR^cql8YV&?iB9(NTIW|B!kA|XiL)Id!FNH`r8%mjh} zl$YO=&X-!-nS?Vdc4ptw-}%;it}8?~6m%8%*5CYq|9oW+4o3+as@ss|c@oJuaC2h4 z-iX!WK#mCp1}^f)fAk2I6?N%6Hk*yQy1HdofqZ8xv+Cy?Q%IhI4FGuftAEX0@ESjT z^G8%vRAaFiF&WJ_iohb0YLdX!>jbV}r>4rs_x|y~GBRef8I#GBQ$#*_x_Z7YJA ziMDRu&6f5D*Ol1qh|N_8@;(gRDI(S*HXHKJfICgZt;A+S-Xa){Mj0F&q@$yQv9U3x zr>8NS&9t|-^ZDnWQ(s??q9|Osas_~njt+*0hp|{JxLhvIojaF)X)!f5#oXK+t*x!} z_4T2uDpgfgIGs)|T)2P`f~KY>qR}Y9U@#rm*w{!U5+N82($dmGe}6xkrcqg0NmW%9 z0B6peN$0cM?Fl&%BwMy@!C)|O`SN8hUc5+4OA8-<_#vvQvSY^%nwpw8 zdGaIxZnvB1>FIP_Pfrh}rKMcEc8!sd5n5VWICbh2s;aVm`}Xwvfm5eWkxVApxpOBq zH8u3~^xT>O*{%dD^{-T9Rui+*n5D}&$pDm;aP z?gUfVwrv~r_4VlolFrUfDl04Tcsw{94ulZsbUN<8|9*@{BX+x;C!Tl$olb`kg68Jt z^pt(C* zJJB=^x7$rL8eKmFmKsr7TFS)41j%F)olZwE7^I}61X-4upP$F$@zC4bOGQNmrKP3x z_xI!Vdhz@H$g)f*6r!!IEnTpjPAB8zFH@28XCBE z?HaLIjM~~-`uh4X7z~V$kF#ytHYO$}(kEeJVgjSlNGujZk|eBFE2E>M=yW=2YHAoA z9VHM50AMs4DJv^0$bg$Zka*>lSA061?((zGK8vC#$g-SuHsspgj@Z@0>-C~23U9yt zc4W_^&CKGnMoyo~bgb)*w zB$Y~%WJ>iL7R4I@>)6e$sFwQPEOdlPeW zbH4>_0FopLAw)tFLLf2Wx=H zBQUQ4|KD+^ujk)8?ix^R0>#E%1By+c*tlyzu?Z9#cMT{ufnwuJZ@~Wn<_Xo{FJ)*J P00000NkvXXu0mjfeoD*r diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..671fb88c3273865d3b1d849ad1bde52cdd9f44a7 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png deleted file mode 100644 index 608f065af769ad55112c04650c51b2aed07e9969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1316 zcmV+<1>5?GP)L8?)XUb>943ocm;Yy?f5N=bm%#d&7L;x4OUcJLmho=il$# zb46824G|Gw8?YPL0;~hp18aawz#qT`;8)-);EbxyCT|#kswOjFJMbYe4QK(I1x^D` z0YgdKn27iTz!wEc=h;ud{!~K5CcYdv7KwPbodVYOtpLCs!1syBcWesS)pr5_TY*Mm z@*Qge_r?-HG6KO6kz0UCU}LF3#W0QO2~%YQ4V5V@A}cYIT?qNVf$uQOU{Txzd@3R% z0cHP-l3o7|{JZWI;5cvqxQlF72L!kiv*f)4TrLpvNNsZfa4XRAZ0HnlpJ&|dz&X#j ze*$B532?%*k)HwM1!Io_A9%)pt#Sc?abV7)ac96xw1M?}<594 zV-kp$FeGi*0PGB{AXI?IJbXS;)ycs40I2F&;A0Qhy=5vX+ARf>x!Jnq9I&a(*j!NG zCP!Tgd>b0S@J2{P)@B0Oa9&k67Yb~zvjMEOxLj0K+w)w641sYEpPvKb+VG3x`Iv|d zhXhU~z`209Huwm-E+lY>0BbyaV)p=_cTac%hB!)Ikk;1B`C!)HDq zZdv%W>whSf4K4H*~r87jn*00Cu|1n}@#)B-FjEcJkZGK)$8uWV36b^tE`_XD>B zV~!#X%pqtji~y@V>bwM;1&*rfX|KqRTzmy^l4?G9#I}>baPXNRChME*10rSY6fhDh zz`K1wAch?dIuR0)8Qf!i5b%SlZp(YvQveaU8NU>C5O5hY40^ulyk*ce;}$_3sqsP# zW8sr}C)mQ=3p!e`+$``W=5#p*^7k$|6W|ugPd-iH(FI58?|GJM0eiA?PXbpXv}JXn zRUm=@EnuR@_XL*+Ens(7xfmi;D!}zOnDbF3PlRT-Xc0xIRDcGs!?M5VCBpULVk!6j zpa`JAU%=g-A~b#c|?W`jQDJH*<+GZlzXsQ|A! z2tAJZX3+6(1J5QFp;7^6$l3W}E?D-u4c-R!TLgFz_-9ZAPnhU*o?p<8y$;cm39varrHV<34^gc9wlP0dJVCLaCv3JV zPk_Ad0;5@@E8CKGVLr2E5n?q}bw%F8o?Bs6Z2~_=s5}%y#32uG-c?Z^-ip+Kx^cq# z)Up1)PMk4VmwgG0S~=PtW+J?d-|sQ~W}gGgo%~!5nFt$!S1@;g>n3KidEjfzFL=v* axLpHVcAb-vQGA;K0000(oh diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b15100f6a3c912a9b318c8f9bb256eea2556a27a GIT binary patch literal 1310 zcmV+(1>yRMP)BLDyZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H101tFUSaeirbZlh+Y;R+0EpKpTZZ+i^CjbBhfJsC_RCt{2oK0vQ zRTze!&;D5hCKyVswxS?KrAk4uC>5%WE)-WPMa7LEbf*+?tD-9l71Wi2xKV2~MZt~K zAF35JRq>D7`qLJ)tk5ndryeh83f48RsmOdrf-#WG{kRKl70iWdZup*H4FJBH{KFfl**j`uEeK2BCm_M$mVXW&(XWX)kbu zxiCJFG+vfLVL<7DZ;?mpp`soxN%|EyzpBrNuw#&U=1m89L|5oR+DEFvqcZgXIaCLr zu2ydZIn)E>P!Etpy{33v;bA^$z9CdD}LB%U*zzHlBm4ZzHg_kg}&K)|C7=uB1dKCrMbAmAd3FPH0< zxFclJ{x*^ub*HoL%xZK2y12wbnyS@VjV?d~B^J_DotM?v#7hm;?3c-)DS&nYx02kR z=?69d&rmXQWX=>S~KhS z%-v9BAz6wEXaOF}fZ6)bT;G6o&IaRR%?Ur=Jk+Z#) zN;)VuAfH_*>TVVj&@?dON|Lmn|LMi*E=gmaxzTpBn1J%^I>VJ!;ZQ6frZ{)yzBOR-P$jh72hRnJ&7Ntu0g0Xke_ zAx%~0W1=oVQLlq)(t)f-7ocIl_s&DN>h;W4j|Eh>Q{Q`l>W%}z(lVCd-AwXUmDn9B zGxh^3OIf3sLb{gZiN4q!D-YYzVjyxQgyteKrAn1UxHg)OVx*037W0 UGX&A>vj6}907*qoM6N<$f^Ml>%K!iX literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png deleted file mode 100644 index ee34dd3965423fd70da3b77cbbafe6d3f9f869df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1165 zcmV;81akX{P)jJg_BXi@JQ{gj!lfVyS;ic9M z>;UR&UI1WS1$R8lt^(6)QUG8ia5SgFi>(J(SyKW40-Om@{GfdWme!I0hXWQrXdi%i zm2#It0cMEEHr#|)F1mp`xcOpk!5UJp7&^xsRsCXU-=V@gKM{D3|6S_<)&Nry^34Rc z;>Nje&V$j00C2>UWIwPET#xg}+X%FK=KcoE3N8TdfBiQPg0F#P#x^#2if}xJ0DC>j zt*fw?wR(zddPu5-Sf>ZE8Kb6M!Wip}Q>ki=nDLz;2JwRhIlF z0e}{uJ|m_>Rc{*em!cInk*1-^lGrN143C)G#@v5EReu1_GQy@?a$5zM>=E>N!cTxK!sX%-u(s&$r@-AJyJtyi6<|_^e*k!5%$8%v7^P}K*xUhp;~ zq0j=f71s8KgsQ#)4g};AT!5<{F;!pqOhae^e3r_eJ2^s{R7b2jByQ6`-819c&ncToKwYB6|Y1=Y^00 zj1Ab9H`0c{&tNR_N8&NtGy%GEAQB6SU!bN5aGUG{%6|*)CwekAM^6xcU$0X81TW&14ZvpHnSrTZ7lnrcFK|zi fr&RSr)&;)-340YF_GISH00000NkvXXu0mjfOZWMf diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e07f9d6517e9134a440142db197467068bd93818 GIT binary patch literal 1719 zcmV;o21xmdP)BLDyZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H103LKjSaeirbZlh+b7^O8VRUtJWi4fRaA|U7WG!QLbZ>QZskema z000IGNkl~hG%NAZg!T|3qa@T1B?Vx-d6 zs8Je76qOVdRBF%%G5XL$=waGBwQ?fVN~3g?vb50}&2d&A_MN<5?!9NPefGWQ2=j*p z19z|2|Ln&)d+#%%s&u0=dSo3y-qB4^0=fxGKsP}N=q4xuJ*^5NBES@&8E6AOR@L1B zb`}B+29=*x^_2iW{ef$N(ZCK|ylvhFRMlI65y1O^7RgCqH899%>u`ykB-v=RFTkQQ ze)a-4dfPELyelE84}r6CM9`uHd#iwcsR;rG1M5ALcp?u30oMT?9yWIYR|OLUj0g4^ zlIR3(%90>pIB>vVw*$D>Ob~DlaLAa177`zw1wpt)XH!7T3M}>}2)G$&4|Jr!w?N+v z2wIsUW(A%Gq$)wcRQ$$oHQ7tj*mlGBvLbn`#KtEjzgO**KqK%`%D5F+o1(=xJ^+)Ne#z~{04}e=$^^i3J z5$Owz1t#F;qZ>+^OcIfofEHjo(4wjbEk0EBI50;6#;PwTw?Ud=cnn z?D~U%2Z61HAVMbpCxLMR!)`YIEA#wnlk{Q_0}mSl6JQ3g4mch_N+tOcmmpz*lnIu zh%4Go)R>%N*#M04jBi?*-rPo+pG?442mS?SRBYp6M8F4eNyEXft=|%C8tZC&x|149(7V(kq5c6?gRn7fiH59ypJ3O z#)jmX=3HzAa77CJdZH0nCnCMgnt{D%ByM@kx@TBrUR{P5?nO20WJBavjH_A*ITw_&%cl1+gdTiwtdj@QkW%^lhxF$8cA0IwJWWpxT z#4toe67#nZ6ti$UKU7gf8gSPF)8d4xb|y8l5ESF7bzxEp-H8NTUoHc$e6k|w%8Yc2 zk!ymQMdS{vl86i>pggF6=mfO}22u&niAa-CXBF|v4X=DG1nmqAq!P{r){DpmNexA$ zmxw%$J1&le9bT=BFRQU%7!`NZVr~_mSEcI5f;dk5v*n+zZ zdO2>j8$xjyHW9hIHLm19b9)7FFHm z-P$t53d5{FXU2JaC7Ef-*W80t^)Fz#RWB#lq^fUO6ilnw|4Jf#aCOm0vvRhWqN<-+ z6oQsdbr-ZB3DM0E>#gJf_Bp6zK3YxobBd4b0R{%;n3A9d+#z4q1XPowcpmXYnWT%M z?xbNB?lN~?agVBQ57ti8gNl066!LNXw^Wv<&MgK(1(GIV`vAC>(t+`sOU(%?kkkZx zl`%PofN9Zkib+s`q`tuG8IiM#gp1*s6I4XhEx6AZ>OssAUda9;rW)?z;aZxrNn z^*Hp4fw~iPnsbpx+{)L4J1cJjhTtw%wc>h8E6}Q{e`FG4mIR#%_z#F^TT$GKWEKDb N002ovPDHLkV1l3F{Wt&s literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png deleted file mode 100644 index 33a3efed10ef2a17917371fbd507ef9bcb2bbcd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1590 zcmV-62Fdw}P)QZskema z000GvNkl)g&08( z21Y&DQ%Mg+M7M|PAs;HFA}Y`aDJ{E>smWB6i8I<5mbaX6X7%vx6WilC=Ud<2d-geD ze^@Y=wZ8RV|GmF&ul=3xh^lfbqpsQns*V2zs5XIWJI$gZuj08f?~qaRoUoSs+!U?Q-=KzKzp1OToD`aEN811=600B8k%Hxm9EXw6dq zU_8)c9Pb!#yIBC>Cg4a2VPH2fDh~mG22Na$EY=4sFCOcpr+|no170Tl2{9gcBPz5M zdVr5&zn=|U68n8SPDBe<18sr)>VW4&q*+y0{rlGx(@Fg6iXwM$j+2QCEGB^ct)!Vkp)TpcjT zG2m`hZBx~a2}q=ds_szLTYv?)DQ3lj!VkssyumoYK46imejbn%5gCcQYO~@bBHSe+ z!+>^Rs|Iv)s=7f$E(6{NW>~1igX44SDg5)N9heX>UuOW%;1;-$dAc8X1<&KPDA#b@ zLhBp*?UIi{U@)+;Lf|LBnFb>Dzh%xu86~_7z7+tmx07l>*NyUMi zjRdX$zRRfaV*3?XV&G5*tSu4W1Dtbmp1~KAymQRTjsy25t|3M7Q-Fh2F1}!Wz{1=Fz`ZlH*FfQM z+XsvdttIKE=nJ@xu9h$wcuPdW-eMD6{l!%OYFDzyLh6yIC=*1a4tMKc5TtUxH~^fd zs()IXL#MzU)OPXUI@w38&gMHHy87FIX~}ryii5yJRXyNy47mfY8A>ze@NSx2t2t)3_byH1P7a3ecRA2)L_p z*y^mReYm~EH1P7a3NR)m5r8cTV!lq9)5|+A0SYUBSdi*3fT^V|gL6bgDmhpM=ubfc z+{!*8I7nnL?(vuu-Zs}NKz9lf1UFYi1Bct}Jp zvO0^%IN*ttIWrT$e(I_`8i3bD#5<>>U7go}vr^{t^EP&6Gs&(M?f|azMKA8i&Y_B40loRNWOo$I{+Z+tG~j1a$KwE z0VaDFzX(Cw;!#_iJ~9%#;lcUA(#glHrD%M4cg0ne$hstXVk;#S-d*DMO( zgZpM!ebzjKTHz!Rky*f!$U@E)bpr3=_6;_vYTBLYk{ECSPDmy)87IOR+_yf)0Hbin oTDl|a0(PqE)?7H{DL^gaAJ=b9CEqd8B>(^b07*qoM6N<$f>H~~xc~qF diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8eaeba8d229360c0ae6c5de3abd243cb2f1176c5 GIT binary patch literal 809 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 Z{sZR0&?0>iA`Som002ovPDHLkV1n-fB~t(Z literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png deleted file mode 100644 index 58929661f36aa0c1f5b6e2af924b772e5358ac8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcmV-?27~#DP)QZh0qaU z000HgNkl%e`r=!7{@9Cw5-iFaXM`0YEMA>j(qS)GbMdMH29h zK;I~XPiYG+JMaf)#n%r^2WAC28Rg|MRs^$yB$x`|cZUE@1Fr%VE{Qhee<^Ulk%TP-%l#w-yyf8d8=y7` z@R0v|NH*iFbtV9~2Kdj?;XA;1PvF-k1h0WkpwyLs?Uv4-@BuvVy~YFhls;@t08nS? zWTQv$t1&sm2Y8K{6{gq{u*br|4t!N-aHnVRDScW@0C25^;cj4>C-8TWzjC?da1Fk|oQw8F;>WFJm@`143Fi}c10Ph3iEW3UNG-|C+hA(QZ&sfBhhA)bMDxsmB z!ggt*l&Z(<^_N<9-Gu>vBIf@Gg?7^Lr4gW%Qkd#5mkemFj|d%x?biX#*n{5n#3fO4UasY087W=n#SyAP&H6Nyr42_`{}m-Y$dTi{l$^)X@l0b#pzj2SFe zA!D&acvo%&jtgyu^*ds!w=BMDgtl8_*8!OMR8oVVB1iRyIT>~VzXv$qVO_CUXn$Mm z5D4bep4f-yoRnae%#os$S_FIuOcdA(%U+;PYyG!nKY)vc?a~r>)H*==Qo^jLi%O}5 z81R#Xc2d#`EYn)|TJ}rHB4N8Ud`Sps%)FqKx(@gVm@KrBk~ZKLm$gMmnuP7r@kNZK z^~lCjFHjchw*dG@*f*?gz=a9x3hDH%fvaPaU|_7)!q{CwpLxJh2k`rWi;{p3{7aAQ zx`y?QG1x9NxEr%|?gIWN5+0fau~q;lgg#%C67Yfr5SKSY4gi%&!3VLvWZ}17O2ASF zP*VK`sPY8S*Bw0HvF85e*9_+sD{OaITs+RNc=xd-sS0W&>;pMu#6xAA|JEVYHi>5c^8 zyMWoAz+Z{om`~}ttab&C=ipY=Y2Ya`c5oelS72VWa5*phfzWEziGU!8RoK5L5Pk%o z2QIY$t$_K!vzS+GT>SPRNV+yJNo@cg6E%(&4SbF{PHPXe1NaMbm#Z-wGIN33knc`M z$q=Tv+Lb#hySuWPoWE^|tg@6zd z>v2zvzV!%jlM@bC0s<16aL>}dbRQWfz9U9JK*CJm?NN9d`hmxRiHYJ*N_#x@cJ6tax@Z->V`0sjMz1&6XqcOZTM0000KY diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9684786f4d9b1903f69890ddc6d688fb41d6a6 GIT binary patch literal 1512 zcmVP)BLDyZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H103LKjSaeirbZlh+b7^O8VRUtJWi54XYi@6MZY^VVbZ>QZPVnKC z000F$NklZnA^Lcb9s(-}A}UeBvZ)~mVah3*-NU(eymP(hW1qA4KG&E( ztfzDKTI>Ap|E#n3I{RE1V^}~u+R9F#3Q1kS0PrX9t1;%El2ZbprOe=xHcEO!(j+hq zdM09fbI|2|2}Jo@)XkfavipfCRw zECEJ+2Jp7jkhC3m$BXm%mliX zT4T(lYsbE7&>>HL=vK|@>-DDYC<1p`lJg=?(y3#TaCxO$Dr(4+X_&kW-^%d=0&cO*m zl5Qa?w6^GTd|nj~NxI55nMQD>puG3J4+R0V0xw#QX^6rENxBIb&N|12<6<~*qAoTEolN74zEzS8oX z{skP)IW|H8^$ZdHLPZp0fK@4R`W(c#p$r8bB>IJlBCWpUsXz6|t)g56N!kEx%Nw)~ zX-}v;Pq2F2E$QYw1M@1#m3knIf*_}gtO=5|9@vp5SPVia2;fdhn{5Z>QPA@_$HgI( zf*^;AtS(g2THrz3ASno?Ab>5B?ywnPtAqo%-x(WHL13w(%mhgq1Rl0dCmkUb1h7fc z)~qMnC}teLMsStRFrYnyb?H1@fmF+n@)-SyQjGKWxDo^1ik7h$*Oh5#BIaP za;A}eMdh_uA%cJvL~kyA60|xYw$HfRT&%@LiQZB9L|h?uU7+hRQRx=MBJrT4K47oY zlo}(h5c??5wYUb@o^(RmoMr^*a+Xd!_EZ}G^;jPu_JpLP#+ZK_9!;n{%YbwEtpUwq zu^-DM5p=i-5)Wl3fws&90ZV~DnjrCz_LvPphngVa&~_SFlu8iLgTL8pn#}^Ih(60K zBmUkj1dW%F*mXWtRDTqQvg*N?;`xIRkf2qcfu|9N=bSB2((s{_@G3B4AEBK z-Uj6C#$UrMi*1lG21%#z^U<3PegWPl+DN_<*h;idx=h?!CFo1w`jV4rMhsM+VxN_o zMswnOW6aMB1jXYMxX^MvPE-sRZ~@T=IW0q?-?*P5Qq3M3^reIT!P2FOQvc-bQow)D3$WzIBh(N8 O0000QZPVnKC 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 IM6N<$g8Bsr{{R30 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png deleted file mode 100644 index 3829bb3a0d5f1f5a524f11b8f82a002a6c1e0b3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1555 zcmV+u2JHEXP)w(d{C^Zmr7gl!Qkzo zNTnbW2%@M|yay_x_) z&Y3;?oazsYbM~1zv)20e%5ofHlCCKqs(}bmD&khJoF{0Pvow9`j~n-UNt918_CQ=~Y0RW0MoW2N*I2RrRoA zdnZCwa}i(;unyCm)ssvDF9B`2*`1T~Hv->!bUZ4@fk%PnsuBP!0k#+DcvKDpcM}Zd zLJ0uw0LH86d{{OErxrp0PzUtafYVXg33PfT0B8ob)PS=|G6F2~LI7|&@O2G1nI(S$ zD|00P^N4%D2As2%-+&8ke6tFKMC2KuFSBAcrh!j^PcSq1C}vKX51av<3#m#Q}GZ0mSV<~ixDpXE#=P6f&L!gh@<|E z6%hak@TG&|Nnm{?jz{d654`DM$24$RB?P#3{SB_pN9-ANuw`3W1ON@d4-N_s0CRID zpaU3luxUj(1oS%I{c9~8nul3Ltp~2MAq=?7!KPirtQq2zv;aRkDB7IiL_P2_W^9K4 zHv}xTAmMul+itZXV4dULPn>Xq_TNeQ?{`@}0eH*7w$E$`c-KL}B+!^*{1p~$+>$}S z!w&XM0}I3L)e(Y-Gy%)09Q!qWQ}Z5+HWp`;?=8cgCInHLBTf}FLa-X$Xa31xFJ z@kJUGvsg;Q`DI%*+m356YYoDaOABtZe;$$nLimE^v-NwD3GSZBNrJf2oTL~a7k z%0bu6Sw)zDjvN}U1PVN&s&{H|i{lU+xNOWx=L`YiIiMOnUfb5lZ{Yul6iYx+LtsZzfrwm;$tdxSSOSh<*7LscRZ7{~0`x=ZX3r3ys#BN~ z8{bIl{%04UAK;_Xm*{G65R=U06YU~$K|)z`!tZ%vNLBaETtxzpMHCwhRYUp{x5QNS zAZ}YuCj+*GFXHm`2Fc!+s}vK2X5bh!kc zbw>9DQPo|*+m+B;o%rC1LfM)C0g| zV*cU9oZ|6>CL~-Z5}>Lh#EhAf5PN}5Nrh=W0N^RiS>efwF<^Dt-b3mO6RJ8bBDY~y zaCyWAjVWO;0(w;SKx!?^P02;T&s0B*El2vSe6y((kkE~JG*;U&8+p~*FWZU% z2`e#KnALVLO*R4bUI++CxQKkt=kk_G;NG(RDfbTn2@8OaYryG}{0dxGkuR0}DIlQ% zc#+x3PDRUZEEA)1B_Kq^63jMs(T)#e(&kcgfxQzDBI0^XhKO&+j{zHird;gKi-3TH zI?TI7TYfN>?2&iRbtp@+|_y?Ot>~?SFCU5`%002ovPDHLk FV1jS#vx)!! diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..12d43f635119a01e414a03e705f9bb0c3b0839c9 GIT binary patch literal 1424 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..15650500dd402428394083fdf519f1b1e0d456a8 GIT binary patch literal 1331 zcmV-31t<88FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11h7d&K~#90?VVkSRaF$nf0I_yWR^YH2Ut-`C8-bPgalcELC^;g z5`9xxqJ6zY&|9w&5d=jKMi0^VLq>&Q51BlGfR5pD)Xo!x8W5JBOhjj+;z2n@o z&$)Y_wYz)$;K1y;>+H2=|L3fI_c?p-GvJ)V(BmZS0CL9!P{ssM#spBt1W?8VP-eDv z00}YxECz;(;}YO|V7NH`4C>6r0c|V--T+o~v3VbO1UL}Fp{1bXJPhohd*cJ#0qg`; zhj3~F2+snq0)w9R=K-66+k16vDG06xz5r&m{B8_*0r(R51y~B)0BitGZn4`BTmkH@ z?cF(-^D*e08*%Myan7ATgZ*;n-0lwhk9&zB_bcED;Ki2mufQ_kNSAXi2EL;`U9AGP z)(If@K44`>`9ZojK8Q%ql+@!*?g9+8{Cp7D=6T+xF7;F*X8{%f7qpbW0etiE@4&v6 zvI$UwvpULS70++A@2tz4oCQb%6F`~VZpO_=^7R7X+>XyK0v@PP*SwaWXBFo<;5T49 zaMY)goW=ngfaieI8u0ZOa1S11gIol-8ThbapNEiJ7=Ls#%B2r@RKe#wU~QREE&^Pp z8L6E5er#fIESIi}Ds= zBk&1uZAeFU1x#lQc!=YTKgBrm#4IQ#z;w1U^Q5ai$Ro*MR82wik>{UR0%wK{BrU1^j^PD3R+K|o%J=v(F+4*20jg2Rdu5R zJ_0O?9!19Z2vB+%8TH9AwXZ^#RJ50LqvE%9sGkgy@7vskunmgN49#k?Kx@5CRNSZD~&xZlliyuoR?> z380J#po|HiOo&c+hzRp#3KmAHHyJ_*aA9#6HLw(a4!lP81#w-$#{14}{5 z_y~~0rgF!$9Qz0`5$mht+3zanFa|QeW zJQX_-B@O`hlXxEh@Dgwf@OQ*mn&wkv75u1X5LI{19Ymf1ub|p)DQl3und>rv?B6in zLmeRB==LD}+Ab3KhS${A#hZZ}Yo0p++y%TBE}V2oeIVA?jSp!HFoEn^(zlHd=?XB3 zH2%BVfy5?70kUa)NKb%Crmlby^V^IJA002ovPDHLkV1ik;P^tg` literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..49b13017c860975dc77f83fb1514063285af5648 GIT binary patch literal 2168 zcmZve_d6R57lvaiwbzH*wW(dBRBaJeTZkDF)E1;>Q)#RaZH@90rM1O~t*98WRjt;l z8darMy6~bt{rx@H^_=@U=eqxZC)L`@jD<;n2><}F0L_hUFX{O=jP#d#JrAjM30j09 z(4O&f;uw8WF7GR$=FW&q-{Nnmr1kGNUOxFFOu!L#A@B&KS2zrSL?Una2L~X$y+UC( zLc)Cu_H_j=C6T|9y?;a?41n?S?_)r^hY9}>Wzr=Ll3l~FNPU?QGfm|zl6;w$E6z~mOQ83%m8T+MB+xO4XpPrDI zf@ru-4_+Hl6#Ye;CiZB5uHssz{KrQ|_%{H|HnVl!f1=+4Sxj$7Q6DF<w{LuP49inpXm{wc&mi-I#oiXxD6@U4nRzNj zU6}M@w$}B@sWQVwVexWUAA@>*;zTEgMk!jkK*1oR++8dxwf4I)n(bkKK&UgO5pme6 zBUCL<|=G)xAXtjjyRom2a#}52^W)1CzX^9c7q^T7MHWk-Fp=MA# zmb?@u*JQ%&0o!4GLI^i_4?MELr%kH+srkp*(rG#C21?OD!iqvgoHqTI6{u0)rmF#w z<*+Ni(~|dd2Vy+>n*>_*oD3}kssWQ$3La@SkI{-4wqdS2$|$ZHUMn6?)oU7ms6{{o z1m~MR+XFa}nxdD8Hlxo&@IF7~vEA5_--gq*5gnHey zD(ng-?jF8rJRtQ9${>grEV5O76_KGEFp=7Ez%(9m*Z@Y_Mad5Qdz(+t?EJi~G(=>Q zGwhDrl%3itd>Qgem@tGLDCQEAJODPUTo;~oOR{n-qN?f;mlIscWHvF(FqwY8%h8JE zk4POpwU#XPc`Uo`s_8q5ma`YGm?aVDz&Xo!Pju)}UA=P;tJ5l%P^+1OzI5fWd)8~( zT8-c6FmX6GudogZ^r&*Nb_fp6I<(D~BlXOsKUyAAC-S(J=xGAh)Ll!)gU;q;G2bGT zs~)Ln-CH)**GAV)T}?SVO*PGt2BN zB}k4$!I9o#^YpMR-RHVi{S~V7RiN)X*2oM(Czk*gfnlpmP5urJ12x$Tw7N~xP~B$^ z?LHf!z}I}mbxK%2Y~-K3&Ki%LUa_(EKm{%4@1XlQ+H4n}{S@nZgZX0*OV*k(FCSsa z?d<$$}tM>12H*@7t7R2r~@vWQYG7X|HOwluC* z7xj1>=Tr~PW))#{yQ$Vs*5>PO5|8CZHU$c^J`eMRmBT}Z98R*p&rHJ;+(m`EBo|Oy zsk_*g;T*z-DTnvW&3^GSAH2D&qbl8EFr~k(F7>G^_0=>GyBl6>Z?;aUiivN8-6>nm zZGy61(HL$yejQ##(PYRO!7F{`KC{-`P6mZlfMXgz^Gxj3b%VZSyXy_ci`U6QY(LyQ z+ia^mv7O!s3qId+K@-#*@|K@GUneFx@@Z~UB{I^l`>tzPx8=~u zNkD^eJ*U%imx=*~Yq_x#2GN{;oWR(c~)~mFfRDKV5~$yj)}rDal|k22aRw^kivp#R$a! zQRmtg%R&%Q!?6ON%JXhUK4;0`siWD4?M`&_FJ${>biPY=m)P`(oXhr4_3%R6tCjg_ rwJNvC_kcpSKj~yFJy3oBi8H=CZup6)*WFJq3jhFUVr5)s=$ZI`o*o8L literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24px.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_search_24dp.png similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24px.png rename to OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_search_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e69e5732c08719b81d962b6b0ddb39e8f8aa61e1 GIT binary patch literal 1155 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE(}8pX7+2iB`GtXjh0oK)F{I+w+uP@}=eSC+e|W#=HQfU2Nx)4ZxME`5wU#1H5-%sw_lT4@vKgH;_dbLY?h@4K6GR+~^mao(QGFXylt@IH9i zF`cU+pF!t&<-eK5dEvViOQkIsvfobWm}7p-#^gbWJ=2VD_u?<-dCmRBcfc~d#Ae#bm!-j(3t=6U; zd<$;o+|yUO&R{cPi$U_XW5>U*wsD=P`;(@d|~X868~YUY6~iZ}t4$ z#VkMBMNAr}izE+p?&>l=<})p|a^JUgS2TVopNO(%eNfygrFwc(@Y=9!--owOvfgDp zx3iEzd`gx{Xz1SObGmm$zZY}N&-$znQ#98!#(*Mk3Tk8`h73FyPv^l z>+QF_|Nqp=9@w?@8#BXdhQ2IwkLVNb7hImqv5uTJ_v5|%JDCmN>y%G#GG^dAT6Eaa ziOE9F^10XQtH1VLU+~vZ`xfs7F`)w+XK?l!P7m&p4OL_mnOOX9O2!)xsgv!qcYAs; zq&}I`uP$Xh$%*NQa+;H%F{XTCvE0g4ue!E= zdoq_TBHKSKw3PLL;9Ir~?n!HM<6CdP&A*%XU6R3miI$hkwQt|Psk!|P zk-6|Z>&2r-kM38_^Jn;xapEgS!_>KR=RW5j>-aYaU z_QvaWJ+f%H&KT2QvyOa88Dd3_T>px$JO81a=ovDT_c&{lthCO+kzfODD&&{ rhKM`D%N8b~OTg7I2!cT1**xaPPA8Q$jYXNjB7(uw)z4*}Q$iB}$RH13 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..438d9eb84405f1678765686fa0eb789889d6c72d GIT binary patch literal 5211 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6d6f46ffef3f96a59b8e0cd16b115f0d1bc3c9 GIT binary patch literal 8878 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 X_Nc7S%hUOl1wc_wO}0kbJmmiY220Oi literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..77c2e1911945c062b9b8886d36245abf4aff0987 GIT binary patch literal 4734 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4116e13fa7fc61df08d0bf96065f0e5bae76b4b2 GIT binary patch literal 1740 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 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb8995990833494cbf188a2974b5a3815cf24b0 GIT binary patch literal 958 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEX7WqAsj$Z!;#Vf2?p zdx0>cx_#CrprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt*yOMIo6b zIjIcAndy0nC8b5Fx|w-pi8+}my2+&_`K2YYyjdCy49tR_E{-7;bKc&y%@c7HXnVMR z!qbik2lg>7{AtN(D9Jee0hdlp+X2CthK4yDM+8qCFm%#lN;}GN^4{EcuYRqnTD`+tTyDqeFpo*WpK-!+h7-XIPb8TXl=xkqsjM_z`CT@j zf|59c9b<(#cT>k3h8od{+Mj2yUUif80n-68(s!@rG5;uwE(g2;Z!M#=eo2{QHdcXJ#QjxSf_>DupBk;U{t z;J$2P!5?3acCo7an){@ig8!HvI(%8UqyC~H~q(VQ{G zwL_-f*ukvj#mCtUn-o$y?(+!9DtiCXYgoZC^HDjoi}MMw`z#7vPRD+vG32zY`RL2o z!I8iDm^r(G;*wr_mV_jh&p!?`sJTc8)oUDZ;W+$=pM3^HVn&U4!x4_dk9RYwxD<50 z=bFHAPjA0iD0INp8CWMCB3__&gxQ6S@E=+xhHH>`Tcut!nvA#;QHs$bn( z8Gg0ja$%{eQD8W*l3zCAC&w?-hZoN?#&n;se0cN!vbvU?_J@|s&F>5Nc#=bOeh)rs zf^FU3Vm-^cztvXOc7?o#b{9GX?2QkZeB7+$BWkaFsN~~jMIT9fVW%(RtIk>(9Y5b7 z@Rc>|@UoeY+}$j;Jh-)G{d=RETh?z|o6~=Pd+t(Yr`$VUE-Th{cXDj4EI-_o{kv-M z4_^j1j>JdOia%r@Bs2)<)u}iA7gUqwNPKLr^nveVrUQq3y)x5(iPgLunUCZ<1)eKx zR~EQ*)V@LBy~bf{flJ5svmX3o;2$ZMWOll6n>=F;i=Id63rjA1SG7GJN{OX!<*wfBtNT_rPq# N;OXk;vd$@?2>>5SjI00v literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d77c5e1c1af735e120acd2f8c00b895f89cbe696 GIT binary patch literal 2475 zcmV;c2~_rpP)QZh0qaU z000R7Nkld$3nk6~{k|d%3(yMnwaBftXHXqi9y5O;R&DmSC8V8B_ZsHMKEK zOEEI&VPOmdqc~P(rr~oK2G9t60*#GPV>oDyg*_;}NI;bc&4xIvPIS1-uG$HrR&b=UP>LHeTk%(NY44NE>i6FeS0E z9^JnTEKY2ds_ydWyE1AQKtu)ur{V~o3>*+4?0 z)@a*-p8*Hg!b1(j4+EwHZ`4eDnh-OAefCNLfHvS#T&Gw!*?G1J_%bkXuMq$^1NcJ= zkXy#q0q68-0f6DaBP~Ft#hwC2gyJaJC`d%c;mH3$kN|PhRp{CwM-u%A_IXXz^Ba4 z`VO7}PE*xw7AL;?fO)*T$Oo7J{5+YJtqu=O&lS|y6#N%Abpa$}n*Fe7F?$XEj5@4Q( zgnkbUiAeq+U|CJ%_t<>10Jx=p*7^O7#2xK)0848oUxDss--05up=V&9>$yl(|6%k| z2qMw}ECfCsBVH2-@R__16cHfTK>;jR)yIrJ3L$weu>hD9BVIw|^H-n~v#ea(4IC4x z*%=5dGUS?NHvn%M%6E}7N7SrRlZ?sV6N&tGT(jew{3{dxcN+a%SXF?Z7=rE~LdTns zA7XOw>V_C67=0}$EdZ_q*uIVwE9;-?HgVi*@SnTHHZDN3BRKMXH#^fyIOOjkZ&D}r`fkl<}uO` zYe!)LaAWK4ih(u-Aped4RC`M(&-?!jx80G1I@r=jfI5RrMfMF2iATUDnTeOLt8 zgV!tpIx_xV1iKAo0T7W}fGe$jdSR}rUgyEjn})J`@R}unr5Q0DFCZdwfU7J%QgExP zUhB!1*XFsU1Q3zgz%_>0X}C>QulDHgAVb+bdClnQhfuwz?*iH@j4pm)h?!-#`y3J{ zd9F3&Gpf)qGznyxcp6i(QZoaP|04n{{sJ~v%x4!V3wQGZ{n1eQPn4+8_X3cAM7RF ze{Tfx#~X9}d|3g8;0`gW8gNC5&l>`ee?KL+1yvMah9SpYWGq*27IcY`oTD0iT_1q_ z2P2W+0sPgF=c-KKO#*+xNYL!W&sPJGzkmuid=&+_%9!i5RRuT@H@Q|d@Md6Y0P+_` zB!3_5dyF$5(H2P{)V|uPwungQxh3_#$(Zj8dH##6jt;WIp&}jz&QsN{7{NqjH1^5C zeEtet0Y_2)Rj;_?&%8eDZ&L4eV1|ZWlDCUZR1 zS4miH8J5{SaoB|i;@g0^9`i4? zGpI_!HwGks6>$&nI0XNjxo4Nkp+eHbfENRh|1V%Nr% z!nX*o0k_gHi|U#94&WM|~52#!a?ut?Izn;oS$} zHn3UNP4+cx1tzHKixwwd4)0dgS8yA<*ZA<)2e1w}(Mmpee1nFnzKmNrw$PW)7R3{| zX6H{{yagC*3+~M4&?ApJY#yGUMSB;ZL5TASb3AYzwiCDB)H_c>-z6y`AHf~aYT0vE zH@4so9$6W}dC(U+tLkroV{yA3qdZ9Wh;HDgxOx4R!J>p}f>N5K_Y>w+s}Q!7ls&yc zc!?!IgAgYHzit7N)9hK`lTrDIEkJ`1XXEZ9>n2@sZ_2xXi04`NSgkK~PTu`85jYFC z`61?=^hVsGsYSq(s=6~`?6*<-8?}3oybkIFoETFG^BTmLaHFzCz;CqT1e#B@i~zkM zB1huH7>}Fj?6IK*ioeA>Z(8caZ7p4*0ba&wMav411rZs}{|hn#H&*ZLF*VFi#zvnL pU~fav8?k;gN523yqhElU@jre;OeouDajgIV002ovPDHLkV1naCcv}Df literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ee06612347eb121c38d8cf4ff51ea64eeb8a3a2e GIT binary patch literal 2105 zcmV-92*&q`P)QZPVnKC z000M!NklTZ~>+6~}-7X*)ovw1wINgzHC_^<4;p>p!GIUSB`6_%A^{Qz1VTbWAOTVuZGc)@Vn}UK3rc74u+I$N4BzGK zbM`)af6n}p{WRySwPvsV-{+it`($QJkdA@W0gQJhrw+geNdlGvi-Co}@xVWUzXLmg zm&|N$x(NMIKXgHojsdO%ZU9c`a_L9FR^UG1Ni!RYA6-4NPk^NLz|Zkl>$AX>X0|(g zRN=@r0g{dYeh*w)!_0fYRc7{dn5e>&WdbA(0M7tl4q)yh;0!a{7Qj|;a(xS0OPI=lyEFtb+z#8?h9Yoy>tA>RkAMtKhS8ijH@ z_?ZX%0vM|3V{21&VrGpdU_;Hye;63_@V64TB&CY4WlhyfBhLUyQ*nL&=WCcb+RWbb z^!qq)K?Prro7sgG?(?Rpx1crDtNb0lm0$2eMSsgBom25%FQO+v(xJc|HO&k*d>_D1 zYusC!CKPZJPa5)fTcFFgF8sY)m%IQQ{Iv+FvMGJ|w${@7@z^Nc;orPAwr9iA% zrPK-lI2E`uq`_bbC|dsyL)mLX4hjJHQSp`+gpdlj7}rn6!nZjxMt=9J44O922|Bn6qy4U&N3OL18UTRre;)v*)+un4$5grQIhh~4^!@oCjD6#%fg z811b^?F1B~g^kP}kyird0pG1_B!mK*Tvu7DTM0Z4)QwHWj9+DHC7_rw3U#JK8OpZm z*sXtXM@Zz|B3}TII&73P{oVA>RZ5toQs<2Pz~$(wVq% zpA?j>*rvN6sCXPs6$PZ+RX9abnfLn?3IJGF>;Ni_R{|uR23+D5Qh3U=?i31u3diC2 zDqu6=Cc3Lqrgf)M0C*mUQ#t{XP9e@&ZocHK0Ps8x$43EodtM)luC2Qmp{%lwG$f^u z!zr~vL(&PrHkvunsu!;Vf9>-3K_J>nHV=MdX1Ddcs^oT``>40QXgrn!z}#MS+p|lN zv;era*L4$ohEm7jl;;|&Ucw#x^hMxY+`}(74g#l|+4j%;r9Ab2U3meRRN}+&DB#@;;vHN5T;?rk9d1A=M}B2y2YX#)X7A&^-g9Gxq|pnQ$F!Uo zz&_HqluqTivZs&$7iAD{yRx;L0@jj#B(W181A9EK-x({AntW5z$U^3k1QbUBtW6S9 zIVR&y#45{~u>uLe$hOy31+2kMEa%L5k*;l;<&u^H4EL9Vz%J7FkG;x2fH@`l|1aUX ztkm&#EBB1NhT@hOrVglVc>xbAMQ$;fldCbiAz-R>w;<};< z6~yIVxY@Ct&@vQZX8*oVB>{N!<7%v?o09;^v}mkzm=brosv9@{`j2lm+~QS zSLr$7A_)V)Wx$KT|1$U|`my{6xF7c;(tgWQS}C^vFT|adlk0S4P8L<;|BROoi7}tCPtrx1^-^{i200000NkvXXu0mjf!o$-? literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..1602747f14c8aa218335298d6ddcee5b6db75594 GIT binary patch literal 2314 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 a_VzF6%s2mt2s7sZ0000 diff --git a/OpenKeychain/src/main/res/layout/certify_key_fragment.xml b/OpenKeychain/src/main/res/layout/certify_key_fragment.xml index 2df3755a4..c1227f906 100644 --- a/OpenKeychain/src/main/res/layout/certify_key_fragment.xml +++ b/OpenKeychain/src/main/res/layout/certify_key_fragment.xml @@ -95,7 +95,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/status_signature_verified_cutout_24px" + android:src="@drawable/status_signature_verified_cutout_24dp" android:layout_gravity="center_vertical" />
diff --git a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml index 9b6a807cb..84625d1fd 100644 --- a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml @@ -180,7 +180,7 @@ android:layout_weight="1" android:text="@string/btn_create_key" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_new_account" + android:drawableRight="@drawable/ic_key_plus_grey600_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml index 659d1c207..7317e7742 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml @@ -24,7 +24,7 @@ android:id="@+id/result_encryption_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/status_lock_open_24px" + android:src="@drawable/status_lock_open_24dp" android:layout_gravity="center_vertical" /> diff --git a/OpenKeychain/src/main/res/layout/keyspinner_item.xml b/OpenKeychain/src/main/res/layout/keyspinner_item.xml index 757dae5be..45147e7b1 100644 --- a/OpenKeychain/src/main/res/layout/keyspinner_item.xml +++ b/OpenKeychain/src/main/res/layout/keyspinner_item.xml @@ -50,7 +50,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:src="@drawable/status_signature_revoked_cutout_24px" + android:src="@drawable/status_signature_revoked_cutout_24dp" android:paddingLeft="16dp" android:paddingRight="16dp" /> diff --git a/OpenKeychain/src/main/res/layout/select_key_item.xml b/OpenKeychain/src/main/res/layout/select_key_item.xml index 13f63d2ee..e12892aae 100644 --- a/OpenKeychain/src/main/res/layout/select_key_item.xml +++ b/OpenKeychain/src/main/res/layout/select_key_item.xml @@ -50,7 +50,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:src="@drawable/status_signature_revoked_cutout_24px" + android:src="@drawable/status_signature_revoked_cutout_24dp" android:paddingLeft="16dp" android:paddingRight="16dp" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_activity.xml b/OpenKeychain/src/main/res/layout/view_key_activity.xml index 314d93be8..4aa3bc448 100644 --- a/OpenKeychain/src/main/res/layout/view_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_key_activity.xml @@ -120,7 +120,7 @@ android:id="@+id/view_key_status_image" android:layout_width="96dp" android:visibility="invisible" - android:src="@drawable/status_signature_unverified_cutout_96px" + android:src="@drawable/status_signature_unverified_cutout_96dp" android:layout_height="96dp" android:layout_above="@id/toolbar2" android:layout_alignParentRight="true" From 2bfe355d446bdb86f720e37f7351f672fd2aebe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 20:03:20 +0100 Subject: [PATCH 47/53] More icon naming fixes and design --- Graphics/get-material-icons.sh | 1 + .../keychain/ui/adapter/SubkeysAdapter.java | 4 +- .../keychain/ui/util/KeyFormattingUtils.java | 28 ++++++------- .../drawable-hdpi/ic_action_encrypt_file.png | Bin 623 -> 0 bytes .../drawable-hdpi/ic_action_encrypt_text.png | Bin 787 -> 0 bytes .../res/drawable-hdpi/ic_help_grey_24dp.png | Bin 0 -> 588 bytes .../drawable-mdpi/ic_action_encrypt_file.png | Bin 480 -> 0 bytes .../drawable-mdpi/ic_action_encrypt_text.png | Bin 572 -> 0 bytes .../res/drawable-mdpi/ic_help_grey_24dp.png | Bin 0 -> 406 bytes .../drawable-xhdpi/ic_action_encrypt_file.png | Bin 836 -> 0 bytes .../drawable-xhdpi/ic_action_encrypt_text.png | Bin 976 -> 0 bytes .../res/drawable-xhdpi/ic_help_grey_24dp.png | Bin 0 -> 716 bytes .../ic_action_encrypt_file.png | Bin 1095 -> 0 bytes .../ic_action_encrypt_text.png | Bin 1331 -> 0 bytes .../res/drawable-xxhdpi/ic_help_grey_24dp.png | Bin 0 -> 1018 bytes .../drawable-xxxhdpi/ic_help_grey_24dp.png | Bin 0 -> 1384 bytes .../src/main/res/layout/edit_key_fragment.xml | 6 +-- .../encrypt_decrypt_overview_fragment.xml | 15 ++++--- .../src/main/res/layout/view_key_activity.xml | 4 +- .../layout/view_key_adv_keybase_fragment.xml | 2 +- .../res/layout/view_key_adv_subkey_item.xml | 38 +++++++++--------- .../res/layout/view_key_adv_user_id_item.xml | 2 +- .../src/main/res/layout/view_key_fragment.xml | 18 +++++++-- .../src/main/res/raw/help_certification.html | 8 ++-- 24 files changed, 70 insertions(+), 56 deletions(-) delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png diff --git a/Graphics/get-material-icons.sh b/Graphics/get-material-icons.sh index b1d4c7a0e..ae2914a89 100755 --- a/Graphics/get-material-icons.sh +++ b/Graphics/get-material-icons.sh @@ -34,6 +34,7 @@ python copy OpenKeychain navigation grey close 24 python copy OpenKeychain social grey person 24 python copy OpenKeychain social grey person_add 24 python copy OpenKeychain social grey share 24 +python copy OpenKeychain action grey help 24 # navigation drawer sections python copy OpenKeychain communication black vpn_key 24 diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java index ff5fbb49a..096dea51f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java @@ -272,12 +272,12 @@ public class SubkeysAdapter extends CursorAdapter { PorterDuff.Mode.SRC_IN); if (isRevoked) { - vStatus.setImageResource(R.drawable.status_signature_revoked_cutout_24px); + vStatus.setImageResource(R.drawable.status_signature_revoked_cutout_24dp); vStatus.setColorFilter( mContext.getResources().getColor(R.color.bg_gray), PorterDuff.Mode.SRC_IN); } else if (isExpired) { - vStatus.setImageResource(R.drawable.status_signature_expired_cutout_24px); + vStatus.setImageResource(R.drawable.status_signature_expired_cutout_24dp); vStatus.setColorFilter( mContext.getResources().getColor(R.color.bg_gray), PorterDuff.Mode.SRC_IN); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java index 38ed88b9c..3a2177e8d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java @@ -413,10 +413,10 @@ public class KeyFormattingUtils { case STATE_VERIFIED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_green_light; @@ -430,7 +430,7 @@ public class KeyFormattingUtils { } case STATE_ENCRYPTED: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_lock_closed_24px)); + context.getResources().getDrawable(R.drawable.status_lock_closed_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_green_light; } @@ -445,10 +445,10 @@ public class KeyFormattingUtils { case STATE_UNVERIFIED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_orange_light; @@ -462,7 +462,7 @@ public class KeyFormattingUtils { } case STATE_UNKNOWN_KEY: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_orange_light; } @@ -477,10 +477,10 @@ public class KeyFormattingUtils { case STATE_REVOKED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; @@ -495,10 +495,10 @@ public class KeyFormattingUtils { case STATE_EXPIRED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; @@ -512,7 +512,7 @@ public class KeyFormattingUtils { } case STATE_NOT_ENCRYPTED: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_lock_open_24px)); + context.getResources().getDrawable(R.drawable.status_lock_open_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; } @@ -525,7 +525,7 @@ public class KeyFormattingUtils { } case STATE_NOT_SIGNED: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; } @@ -538,7 +538,7 @@ public class KeyFormattingUtils { } case STATE_INVALID: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; } @@ -552,7 +552,7 @@ public class KeyFormattingUtils { /** special **/ case STATE_UNAVAILABLE: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.bg_gray; } diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png deleted file mode 100644 index 1e397ebed49ee109c37ff6543bb8197890f5a20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)4S=B9|*)wkaQv; zLJA8D!7fc&;Tj9MR4D|t3kZr3u~1M#QrM_PBt-9i7Q4oE^X|{?9?o0X4~}KuyqTTf z-J3V}wj_x>^T;}ZtmIz66YB&bbOOUbH?R%-YROBI51%)ZE_9!=q^@SZ)`=r&CX)2N zq*X~*;r))Jr#=hllXNMmCTTn}-XrN-C}Q4c0aIa;Umdo|(6-$uhV?Eq9A3)~TLriT zh8hL17SIu1|2S+_;EEjPWz#6a#d4_%A0^{d?0TEzQhN7IujoOhjnZs_%rt@ zZtzLK3h*(hQ{I-)e-r|&DFj$k2(YFQU`-*w8lMEDI!L($Y-UU(EvcUC60n>xku>ZQ zyq-ynOF#vf;9-7=Ghh)IOB=xI?R4Alsfbfi2(YFQU`-*wnj2M_(Zs-kCMN&@002ov JPDHLkV1gjW14jS= diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png deleted file mode 100644 index 1cbd993a7a58a6e4b3d6a3c6177882c1f821a16e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmV+u1MK{XP)kL2QDGkV0$% z7FsD{V_{=wVPWSVVyO@aLB$_X3sDf^Fd!C6K!gNQL`4j8rx=pgVi$9_PIhN!CO3Nz zEW0za-?#6(yEC&tJ(B2VmcN)L0Ffvf5EF<=^t z+ifue+eyyGmLSsF*|13cpGVUyaCR!Fv;a&n#i64gCUg#WSV5+ z`-iC$S5>?bn@)TSco*=Phsm7963k^QYz*8Wc@_!98sLOu?7eJ7jA8U!ru-9lQ4k}N zhq)`+22&@_R@?{Pmk?OQPGCn%`85mg1*NgM0tZ}^cY-QCN;qM21=jrwnB8msUe`LM<|3S9n#QMn>jK8%tUB)4f RPuKte002ovPDHLkV1g9PR~rBT diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e2779ba95dd4b4e2d6b7b29f3488226f2ce8b327 GIT binary patch literal 588 zcmV-S0<-;zP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00G2FL_t(Y$JLgxN&`UGuiH-I7g9?cKF1j zKyfa#7e2XSj~y=g)Rc1-rGoUoIc2b;4RE5Vhc?iXmbh;?v8!cd!$4`x;(KBULWWh= z$RG$Ys+#R76O`A!wt^r`@lKN_?@S^H%Uaf!4oVtzGmIeIb;eZ$VaTYfgbG?P7I+&E zkFU;r3J9zj^Q>ID@vZ%r)W;c;!% zXZ0=e;?&Sg2mAC*>-`FpGk1TA=ZLA5LbWIQ!x~#QG}(*z-$h%i^?L#pqniJ@^VH5- z9n^Xp9Xgp@R59TPWY%K)kHw3wM|O%WOI-!zepbru5|LnzB4ujSsZ*m&f!TKX{qOrx akMRu=Grprw4zeo%0000`UKjTM(_pfM9^oj z^hE><8!HhD(XrJTuElY)5^$>4)WKl9sXnWfZU`7u-_@niTv=_Z z)hIs;4@?66Kr!gI@Cr->Yady8V8>+KsHN7Pf}O1cPe3UJZyq>-&ewso@xFOc4~zq= zz(~xdH((2Bv>|8%r~~`Ja4aL@-rI!ptE7b>-auOl0%jmJy$?`G+xQvYD>j*EpC15s*ko$X} zC!i;wCm<}K+2PnP?Fu*o?m8%7Hw`KJBANo$fzdxC7B~a83Dx|x0=kZWWx}3-T<{6c W@hdlOtj<*c0000k}@P)u z!fmbm2^N;Zil88tT4^D^KomPsS*=wNY!nqA9E(k0$R?XHX4V52l9@AePLj)=n>tDS zC+h!I9cXm8cQ-HzWPvT!0CRq?o$l=0WpDcw5o3S=yJ!@vQg zUk7aWtFO3lgc)E6c#I+hldy|&@n}mZXzuq66e%a)888yJAOl+_Z()x#3iuu2Lm6#Rmi-6ec(LKz&OyCz<`f?V8DhL zWgzE;b3_@~02ZsPTL$`F8h8Lss;qlSL%f=SDav^eg-+K7vR*hx)LF1Zxh}*-$(4bc z!TbbfV=(JQQdl<`<{LN$KK~$UV$YTs?1(0S0?=-Zbr60?m8g7D0f)c>aA)PfqR(3l z>Fegw>LZgRVS(yZ@>j4iVCF@t;$Zi0SOj{2ZD1`;ai~nfn&Ss&rZrhB6xu=n0000< KMNUMnLSTaCo9y!d diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..2f086e41a21a5bed3c68844aa5a07abb70e3e926 GIT binary patch literal 406 zcmV;H0crk;P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_009n3L_t(I%dM0_YQjJmg@0TaP^o9=8M^fbqAj6{qPX_} z-x=Jt5bzF)Ucxg-cS_JwT9_#{bbP16qK7-qsp1>~}TiO;E0ph%4mg`|L%ia(rQQdUSq1D@($Mey11!!ttt zHLWN)DMJ`}~ z@Wl4ai(Hi+5oRfGVSq^nuzh!AfbPYi&}!?0TVIWb`rw47rP8_Mr-v_a0`Io*4ldSt zvyHbPG+0@>`>rdRr^A>f5fKYUv=3Xo<4@qK_Bz!Y_Ea_ENB{r;07*qoM6N<$f@|!g A=Kufz literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png deleted file mode 100644 index 5f528864d8207cad08a7a8a395621382d6885804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=EX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l9rSc@ z45^s&cD8-Ch@-@@`sL4m@@qRg=&&ejtw>lX#2uIuB64v5idGHBjo+Dnh^pL(h;qGP zB6Pv6gJY3K+{%ay0ilEMgt$E)W*b&l#FU+zxp!xE`Hi0k3#xZ-KELPlopWd2y@~O4 zSz)w#3-bjv$px|vW*en9$lbWs@34mL4%0nm-2}cLoHne-_DpqAS!SZ7bpGf$eZieC z7e{vINX%jMOTQi8n3=#R!LFCM?uGq{Rt@$cq1o^&8A!Fk)? zrSAL0(p(sByi}6uX58vHH&|c6Cg&T&Z>xRp8T!7SxPQXVy>YRFaKx5pdXCT2ymz}i zS^MSuqK-S8rv^X!-OzsEtwR*k8@1*CHHzg6^cIBi?wC=&;0&9|zxhk+_ZmqXh-l?E zoHp1YX8dK%#|ycP_qkl3oMSTJ+{3Kau=+q&{KPo695y)y@eiwQ4j4Uq`DSLmgIo+_ zT>9K49HqPsYxmVlcWJ{QL@ZVv5)+jt9(+Q@-1y+b$A31C_9H9pqDulgGY;((yO*8#=FMyRbMRK#*4oRmoWvqYL{229}MT92EACP1U zm3tHJpq_l7u4}Ive`~@&@e4;{7!PWEHrlyxLYpHNJA*5k|1mAssM@#e%eF1R6wl!4 L>gTe~DWM4fQ0H35 diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png deleted file mode 100644 index f8867e9229a4f05b9d6c3945919c1d3a8245dc34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 976 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 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png deleted file mode 100644 index 15650500dd402428394083fdf519f1b1e0d456a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1331 zcmV-31t<88FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11h7d&K~#90?VVkSRaF$nf0I_yWR^YH2Ut-`C8-bPgalcELC^;g z5`9xxqJ6zY&|9w&5d=jKMi0^VLq>&Q51BlGfR5pD)Xo!x8W5JBOhjj+;z2n@o z&$)Y_wYz)$;K1y;>+H2=|L3fI_c?p-GvJ)V(BmZS0CL9!P{ssM#spBt1W?8VP-eDv z00}YxECz;(;}YO|V7NH`4C>6r0c|V--T+o~v3VbO1UL}Fp{1bXJPhohd*cJ#0qg`; zhj3~F2+snq0)w9R=K-66+k16vDG06xz5r&m{B8_*0r(R51y~B)0BitGZn4`BTmkH@ z?cF(-^D*e08*%Myan7ATgZ*;n-0lwhk9&zB_bcED;Ki2mufQ_kNSAXi2EL;`U9AGP z)(If@K44`>`9ZojK8Q%ql+@!*?g9+8{Cp7D=6T+xF7;F*X8{%f7qpbW0etiE@4&v6 zvI$UwvpULS70++A@2tz4oCQb%6F`~VZpO_=^7R7X+>XyK0v@PP*SwaWXBFo<;5T49 zaMY)goW=ngfaieI8u0ZOa1S11gIol-8ThbapNEiJ7=Ls#%B2r@RKe#wU~QREE&^Pp z8L6E5er#fIESIi}Ds= zBk&1uZAeFU1x#lQc!=YTKgBrm#4IQ#z;w1U^Q5ai$Ro*MR82wik>{UR0%wK{BrU1^j^PD3R+K|o%J=v(F+4*20jg2Rdu5R zJ_0O?9!19Z2vB+%8TH9AwXZ^#RJ50LqvE%9sGkgy@7vskunmgN49#k?Kx@5CRNSZD~&xZlliyuoR?> z380J#po|HiOo&c+hzRp#3KmAHHyJ_*aA9#6HLw(a4!lP81#w-$#{14}{5 z_y~~0rgF!$9Qz0`5$mht+3zanFa|QeW zJQX_-B@O`hlXxEh@Dgwf@OQ*mn&wkv75u1X5LI{19Ymf1ub|p)DQl3und>rv?B6in zLmeRB==LD}+Ab3KhS${A#hZZ}Yo0p++y%TBE}V2oeIVA?jSp!HFoEn^(zlHd=?XB3 zH2%BVfy5?70kUa)NKb%Crmlby^V^IJA002ovPDHLkV1ik;P^tg` diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d64fa516040f4db40def6cb053a5bd998c67a2ad GIT binary patch literal 1018 zcmV004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00VMKL_t(&-tC%APg6k@h8qm!qrl2qs2>SS{Rv81f(4cs zQ8BLk10Xbc17YO`gNe}uOf)X|QW9MOfdvU91sWQH#YAO6jF!4HX&T~2+oD`oBs0>v zXJ+o)hD9^Wp7ZAEy>sTAIp=!dIbF+B1}X!UfsU6CofyV6wva{^1r(4)8e5pgFgj3M zN}vFuh@$|@X63Pg0i1Ims1-~2V~fJBLo6cX9#9)LrBT=wN7y`25bv~Lj@K+2O#=1c zrz0E-77oyD2B-=z9m5>2ad@2qH6UgT$AX0w)Hwn2jE`M;C#afB4~ma zUIY=rBkW5c)$0INkuNKSTc|kUSAjc76P~N$y(9*DL5R-Sqz50~5Z+^|Ks|)uC>fnk z2!)#}KtbZ%nUOlZW{GntAP@AG*gJB$ybj-ObzaK?wGj{dHfLRpD0YxT4oUQ*iu>&@ zp%jt>+9U#GjzI#SNs--;7=* zX}x9#P=1gjP=Hp^|sr{40CKsq`y)XH0ME0=JpN_^arjG9C7FT&V9U`zK5vjQ1IZ z8yfx-rc=iiMqx_Be^3n6p#{X=K|X8vN5nw2T7l0hsP~a<%MXua_7MXeDSOB4E5-ri z?H85msc4aZSW=t<&QjN)#gYQe)AzDaNrA4)T&3eB!->h=?ZYL)Il?vBcFe4H*sJ(W z$@hmEao{>ows<#I)NJZ@9jHsS>G|AMpl9k`ST9yw16oF2B#j6A z_W#L3ZTM1;Riik|c27rcJmtl>F`TF3y`wh3>sC6KMCVSI$q{FOoL<-`i7ES`l->|H zgmujn+Tz}ryafviC0qgX#S*CL4+;F}!y58L=^jI`eSn+()S?FM7{VkHNFjqf^2i{C o1ST+u>!>b&j8X95vg!umA6#xJL07*qoM6N<$g5c4^X8-^I literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8fc6711478a9b32b1b58c4ef10d2e5dba646a492 GIT binary patch literal 1384 zcmV-u1(*7XP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00iJkL_t(|+U=XqYg|5s9Qwy3nh(zT29N3^0C6mellCJt#ze_%*| zq-~}qFv)Wv1LfT}@11k+xo@8ExZC@_=X_@FJ@34G&aFe;|9jNM05L!e5Cg;jQ3B{d z8bdgXF-&0|OIX1QmN1VgT*Vm-A&vHE0yJYU@|b}`7)1^OZ4* zjbQ-vP?IFAAJU_BbpfL8Qi03&$BMCg(Nc#*Yu3g}0Zr%nR<@fT|$r6d5F z7+d!Vj$o~?+Oq)uA?u9?N2FkYugK=6(M?*ATTvuyo;C&OC!6{mZRCiS!XISaeI@{# z$Zy?ghWq~^6v+XhQy<_8Ik)d-rzBg+dtp=;ppX1FAJNJr2g&*w9e^Y`VJ>(^p6$qC z8p~Kl0VlD|Ga?nq$##Md@Co_%>Gue|dDom(2W=q^PPR%HT!jjrCvI~MTYEp*R#{UvnQ1o8r{+e6`+}QOx56edf9jOl56&J3`>h% z!PE<2uf-3QWtXkBtfzO=0P+?ACY5gu&eJ&>z>GzJV=h~7v7Rna06HwXzk=6X);?n@ zv;_mCEdqR@So@Qyup<~?$eR0?m5B8&TLZxWXDzuurUb!y{K{4t4h9&r;{FdF6`4V; ze=!hX%7XhpdgPL6lr@wlf&u2m-T%p>2J^N?QObdXxnO`LVfV+;qS$y7B~7(bFu;oN zoA-Ie!W#w^hH|(7i+DxR@4W>^?3g}I3*vBstS67Cpk&V?C9KU7{^ z*Nim@Vf3ny`wPk$#C`$QOThqVgaE!#e*fzNs;9zB=G@0!?}(^o!%L^PyL3MnQSA)| zXcq!_!OGrhqkK{pMNGLv=&XQdf%Z*2ECS$GEeU9zpaJZ$0fp$!KB@$ujT+5(}t(h zH3j(6ykn~o<23{LS*a*!HT|Wus%GW@MYKw_U3O_4NSOlM_V3i|V!BVF!R=T*d_EP(m4HlrV=0T*4`2 q(aY>|k1s^W05L!e5Cg;jzT;mZEXDE&)Bv{t0000Z literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml index 2a2dee32c..8f9709711 100644 --- a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml +++ b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml @@ -30,7 +30,7 @@ android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" - style="@style/SelectableItem" /> + style="?android:attr/borderlessButtonStyle" /> + style="?android:attr/borderlessButtonStyle" /> + style="?android:attr/borderlessButtonStyle" /> diff --git a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml index 6f822148e..3ef8e3551 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml @@ -23,7 +23,7 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" + style="?android:attr/borderlessButtonStyle" android:text="@string/btn_encrypt_files" android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" @@ -43,7 +43,7 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" + style="?android:attr/borderlessButtonStyle" android:text="@string/btn_encrypt_text" android:drawableRight="@drawable/ic_content_copy_grey_24dp" android:drawablePadding="8dp" @@ -70,7 +70,7 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" + style="?android:attr/borderlessButtonStyle" android:text="@string/btn_decrypt_files" android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" @@ -86,9 +86,10 @@ android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:clickable="true" - android:paddingRight="4dp" - style="@style/SelectableItem" - android:orientation="horizontal"> + style="?android:attr/borderlessButtonStyle" + android:orientation="horizontal" + android:paddingLeft="8dp" + android:paddingRight="0dp"> + android:src="@drawable/ic_action_encrypt_file_24dp" /> + android:src="@drawable/ic_action_encrypt_text_24dp" /> - - + android:layout_toLeftOf="@+id/subkey_item_status" + android:layout_toStartOf="@+id/subkey_item_status"> @@ -79,7 +70,7 @@ android:id="@+id/subkey_item_ic_sign" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/key_flag_sign_24px" + android:src="@drawable/key_flag_sign_24dp" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> @@ -87,7 +78,7 @@ android:id="@+id/subkey_item_ic_encrypt" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/key_flag_encrypt_24px" + android:src="@drawable/key_flag_encrypt_24dp" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> @@ -95,7 +86,7 @@ android:id="@+id/subkey_item_ic_authenticate" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/key_flag_authenticate_24px" + android:src="@drawable/key_flag_authenticate_24dp" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> @@ -127,4 +118,15 @@ + + diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml index f5423817e..cd7a79663 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml @@ -55,7 +55,7 @@ android:id="@+id/user_id_item_certified" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/status_signature_unverified_cutout_24px" + android:src="@drawable/status_signature_unverified_cutout_24dp" android:layout_gravity="center_horizontal" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_fragment.xml index bba412f99..9a75d59e6 100644 --- a/OpenKeychain/src/main/res/layout/view_key_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_fragment.xml @@ -22,23 +22,35 @@ card_view:cardUseCompatPadding="true" card_view:cardCornerRadius="4dp"> - + + - + android:layout_below="@+id/view_key_header" /> + diff --git a/OpenKeychain/src/main/res/raw/help_certification.html b/OpenKeychain/src/main/res/raw/help_certification.html index 19ca85b4f..8228a4ac1 100644 --- a/OpenKeychain/src/main/res/raw/help_certification.html +++ b/OpenKeychain/src/main/res/raw/help_certification.html @@ -12,10 +12,10 @@ The most simplest way to confirm a key is by scanning the QR Code or exchanging To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys.

Key Status

-


Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. -

Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. -

Expired: This key is no longer valid. Only the owner can extend its validity. -

Revoked: This key is no longer valid. It has been revoked by its owner.

+


Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. +

Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. +

Expired: This key is no longer valid. Only the owner can extend its validity. +

Revoked: This key is no longer valid. It has been revoked by its owner.

Advanced Information

A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. From 484a9371b7915f5c6c3dd2088cc5ff48642f4bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 20:40:55 +0100 Subject: [PATCH 48/53] Remove help button for now --- Graphics/get-material-icons.sh | 1 - .../drawable-hdpi/ic_help_grey600_24dp.png | Bin 655 -> 0 bytes .../drawable-mdpi/ic_help_grey600_24dp.png | Bin 484 -> 0 bytes .../drawable-xhdpi/ic_help_grey600_24dp.png | Bin 838 -> 0 bytes .../drawable-xxhdpi/ic_help_grey600_24dp.png | Bin 1183 -> 0 bytes .../drawable-xxxhdpi/ic_help_grey600_24dp.png | Bin 1675 -> 0 bytes .../src/main/res/layout/view_key_fragment.xml | 18 +++--------------- 7 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey600_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey600_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey600_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey600_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey600_24dp.png diff --git a/Graphics/get-material-icons.sh b/Graphics/get-material-icons.sh index ae2914a89..b1d4c7a0e 100755 --- a/Graphics/get-material-icons.sh +++ b/Graphics/get-material-icons.sh @@ -34,7 +34,6 @@ python copy OpenKeychain navigation grey close 24 python copy OpenKeychain social grey person 24 python copy OpenKeychain social grey person_add 24 python copy OpenKeychain social grey share 24 -python copy OpenKeychain action grey help 24 # navigation drawer sections python copy OpenKeychain communication black vpn_key 24 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey600_24dp.png deleted file mode 100644 index 9f24b7b609e52961175f9e70a768918f275f1735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)y^GX97{;GBd)fr_Y(zK&i}OEF1X1x&3qJ~*gX65Vu#+U?qD{oYkjYkd zUaK}XCvw;L!KtvU_!sz5X=meEY$2F^Y@+0b9GT7Ro(OrW%ro=8^UKSdnEPNy*wKrl1ml#vIzqK zg|}>(qZtr@6UKO;wO-$DaWOZj$>9VvS00E+zb>F+&0Jj!VA<4K>phm>e?@ZMu)a;Q zLSre4q5}Xflsyqyvx%Jw5P%yns!#IY00lvCz5pugi|_ldY~rmC#yZ7uJTn{)ZvnUs zU{`rgMDE3L{L3a!MR{>OgiBEmsU$TX9u22|; z`$gm(}6TtKSPDj(q#+`jQO4}jv*e$uZC{)Vs;d$EtV-~w{&4~^vD-h zDXVLoE59J@7KrY!r!{)InhO~@ZM>0IWAlX{aUPgbocznPI3 z_cg8T-k!UWH(14Fr-TczG+uuHy}u)a|G+Vozo*V@-}k<}SwZ4lZovBM-P>~SGv4sg ztPJyd+miSrEhk`YSnTyu`OXz{wsNM`bv~}p?ppL?d8xMVi^@3HY&(_<3X7BkMHx-h zECm8@e%|91C2yTv{9DR?deF8lJ5*aXFvMhSop_OxVTzEERBzSg?%nb;BlG6H TSEaLo@xb8e>gTe~DWM4f+bF}w diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey600_24dp.png deleted file mode 100644 index 72c7e7bb0c1312ec6e791715bf1d9cd54b433ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 838 zcmV-M1G)T(P){q^@@4atkc4l^f6e;#L zC{8jdGW{joYnqTOrI6I&ZK~4i681sFhre znY84NPXH0M8|>2-9McAS`*t}(3t;9}gX^OOjW%`*ZX;?P`$)C*{TkO=p-_00XaPe*L#F`T*7=BN zdUSMjEwKWmlou^yL``co%cq?p;x-B8!_xqT6ZmZ^*`Lz(@Y?!sbfmna)H!wIj*h@rHHTWOo^ZCAs ziHY^?^8ObA*=)9Xb#-+Sz(GSu9>7hd)WbOH#r_SftgKumB2)9r0M03;-o#Ze_HTfQ zP8(cIM3>@hzAgd)oG{p*1wk+ucd>d1&@LY$dRm8CbrGPu=RgSYezyo{)EP6GjP;Yr zP6^N=o6Q!Yv!qCo;$Osm7xI0db#|pxT`rD0@+y%ENChMayIw$w6nhs>OuPx*G8!!K_~->s7)AKVSn2ksw}d@gR7Rj36%AVS5_Z zQ{Q%&>2X&ULF2)T_>n~fgCNG}lH?GGcy%RFC-?!Pg5WF;OHV%!DItbrtJiD(H2~+B`O_@R ze%ST~MNuRsCMKQ%FazLViTVuSJb>j+r*mRuWu?FE42t9UF(O(9uz$c*Ys@^8W!dLj zq1(DaX`1d>UtfO>K-F;S<6#&cOVhMxQ@>S%=I7_{$n*RY00%6UxDW)vk%fhY-)yzP znnBW>vjFzlsv-F{2!cm#nN+cnv{tL_%=7#t?3)7s`|>gnbssJIx&x01x%%Rkxi?Q#ZR;zWh zsa%^;6vbX5; z?LG-$uOh6^%%7R6IZ6f*fJ7tiY`fk5-BeMdn^l|C>-FaWJfw1s&+Cy(pk|cZNoN~J=mWbXlIlO=&HzCm7l6k$|Zm*fvGIR#b&CNZ*%x?fFv!D7V48vD!=y7&=;aaNI>P_S0<1GNk zO1^rTnGe~z+%OadB}sB8Gk=IH7aGdY5keelG#VXS+MF9C%~^%sq5RdH&-480#l^*e zPY5={=_;0{X~4`UP~Mz3d%fPYZF2y}lXSP+eSwI|9FO*h=%r?}`Sw<6bZHO~k1+;SX5BkOf4DLS7!8AFT$uy7 zUBz_n4qXhx@B@b$-5EqgyEVc-PSdn-r4ex3gKkp=F!PrV^#O2e&@D=FmC7ZD`mShj zSX+6gaARZRSBLrl4EcfC|G5QXnxQtx#T}twOY>4%>8$e0&kE4 xZ;%3SkOFUz0&kE4Z;%3SkjLZkcs$#de*ig~VDH2@@!bFb002ovPDHLkV1gOVGI;<1 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey600_24dp.png deleted file mode 100644 index 9d14c61a28f0e7ad5abfa094c8a78a93155b7d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1675 zcmV;626Xv}P)pT2F!RCQ-rh^9wcm`~8qm?vG0n29Rm{8^z(XmtGJtQ1Xm`C{|F~MM{-HXj z>ybMHJkOg6po^Jb$AACuR*8t{LjYTXAULl&$C2d5fJ&uemCNP!BuO?9(c~;*F!PXM z7@GzM2W$QP{dLtj1359kb=^5c^a(T1my$Hm31)sV48t?3b2n5Aa2)4Z0LNq%9{`%M zjx}Q|rKB>r=Xn(X9|5>kLHJ2Tv~uy{#TO49I&@rB4U`$+y6zhQwnObKGyp7Hv}n<# z!-o$aQz1afIl%M0<;=Vnif7;m8btJ55Cj9V14}ocv$Jz(+Z&Yp0C5NSOia z*RQ`bj^m$^Zf|FRh*k$da7Cn(=Xq0@c{hONDPl&ZY0m2I?*2XN+DJJEG#ZVUk*@gL zY};NTT6_Qqg5Zj6+baNUOA*&@YR()f1~j*nMH#SdyVLjmByC*Z_Y>Q;I{^rqhld~N>+8Eb78=&BT|2d{t?eX$nF8IIneWQ_rjCpm@EF96-Z)mp z2Y}{S8wI;jQ+uXlZh&DJ3kAEJvu%6VSnFtxc`jq^!pN8b_Y1ZkxWQ7hC7NT3o(n{^ z3zNA4Ns`PF?DAQLa)icCp z7Sf(dQ`P~(Fr1WijM0)L$t)tF1zF}#P$<7AEEB^pUJ_|fL2vHaZg}E7|_+#H4DHpkv>V1?31BwLKsjg zm3kn);*(-PE*?$H63_DS`po$c=Jx=Wr09OF zR4UbE>Xr6bO4j(ke_IqqJpkT9`o%@Hr>Ey9nYzb?0iNeAjiP7=fO}gQ=A>=g@5zVUWF z3V9OtJnt1EI*Qhde-*&$|2pC!jdXPy+BCS}XoA5xp4% z!A{l5jHD0-IF9oafJa&w;w*p{f*|-#buRy>5UU^}dM#~VX8zhV%>`i?=C1fa0nP!w z@3%!!^e2F}6x|QRalEWrt^TDtj~kKu889?7^e9pkpNNjzw!J*h#Rm#tfMFPE-m1JB z$MGuP_phqff7AR_3m65$Pbf3 - - - - + android:layout_marginBottom="4dp" /> + From e312b0e675fcd81b19b95453f04b55aee927b1f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 20:47:37 +0100 Subject: [PATCH 49/53] Set key signature algo from SHA512 to SHA256 --- .../keychain/pgp/PgpKeyOperation.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java index 1a251eb79..da0394573 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java @@ -100,8 +100,8 @@ public class PgpKeyOperation { private static final int[] PREFERRED_HASH_ALGORITHMS = new int[]{ HashAlgorithmTags.SHA512, HashAlgorithmTags.SHA384, - HashAlgorithmTags.SHA224, HashAlgorithmTags.SHA256, + HashAlgorithmTags.SHA224, HashAlgorithmTags.RIPEMD160 }; private static final int[] PREFERRED_COMPRESSION_ALGORITHMS = new int[]{ @@ -131,6 +131,7 @@ public class PgpKeyOperation { private static final int SECRET_KEY_ENCRYPTOR_S2K_COUNT = 0x90; private static final int SECRET_KEY_ENCRYPTOR_HASH_ALGO = HashAlgorithmTags.SHA256; private static final int SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO = SymmetricKeyAlgorithmTags.AES_256; + private static final int SECRET_KEY_SIGNATURE_HASH_ALGO = HashAlgorithmTags.SHA256; public PgpKeyOperation(Progressable progress) { super(); @@ -1025,7 +1026,7 @@ public class PgpKeyOperation { // add packet with EMPTY notation data (updates old one, but will be stripped later) PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); { // set subpackets @@ -1051,7 +1052,7 @@ public class PgpKeyOperation { // add packet with "pin" notation data PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); { // set subpackets @@ -1236,7 +1237,7 @@ public class PgpKeyOperation { int flags, long expiry) throws IOException, PGPException, SignatureException { PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); @@ -1279,7 +1280,7 @@ public class PgpKeyOperation { PGPUserAttributeSubpacketVector vector) throws IOException, PGPException, SignatureException { PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); @@ -1298,7 +1299,7 @@ public class PgpKeyOperation { PGPPrivateKey masterPrivateKey, PGPPublicKey pKey, String userId) throws IOException, PGPException, SignatureException { PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator(); @@ -1312,7 +1313,7 @@ public class PgpKeyOperation { PGPPublicKey masterPublicKey, PGPPrivateKey masterPrivateKey, PGPPublicKey pKey) throws IOException, PGPException, SignatureException { PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPublicKey.getAlgorithm(), HashAlgorithmTags.SHA512) + masterPublicKey.getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator(); @@ -1356,7 +1357,7 @@ public class PgpKeyOperation { PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator(); subHashedPacketsGen.setSignatureCreationTime(false, creationTime); PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - pKey.getAlgorithm(), HashAlgorithmTags.SHA512) + pKey.getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); sGen.init(PGPSignature.PRIMARYKEY_BINDING, subPrivateKey); @@ -1377,7 +1378,7 @@ public class PgpKeyOperation { } PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPublicKey.getAlgorithm(), HashAlgorithmTags.SHA512) + masterPublicKey.getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); sGen.init(PGPSignature.SUBKEY_BINDING, masterPrivateKey); From 7c8f338297aee49f98c40f74da504972b8198779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 20:57:11 +0100 Subject: [PATCH 50/53] Use material save icon --- Graphics/get-material-icons.sh | 1 + .../res/drawable-hdpi/ic_action_save_white.png | Bin 394 -> 0 bytes .../main/res/drawable-hdpi/ic_save_white_24dp.png | Bin 0 -> 341 bytes .../res/drawable-mdpi/ic_action_save_white.png | Bin 362 -> 0 bytes .../main/res/drawable-mdpi/ic_save_white_24dp.png | Bin 0 -> 257 bytes .../res/drawable-xhdpi/ic_action_save_white.png | Bin 441 -> 0 bytes .../res/drawable-xhdpi/ic_save_white_24dp.png | Bin 0 -> 359 bytes .../res/drawable-xxhdpi/ic_action_save_white.png | Bin 495 -> 0 bytes .../res/drawable-xxhdpi/ic_save_white_24dp.png | Bin 0 -> 489 bytes .../res/drawable-xxxhdpi/ic_save_white_24dp.png | Bin 0 -> 747 bytes OpenKeychain/src/main/res/menu/log_display.xml | 2 +- 11 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_save_white_24dp.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save_white.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png diff --git a/Graphics/get-material-icons.sh b/Graphics/get-material-icons.sh index b1d4c7a0e..95df5ca9d 100755 --- a/Graphics/get-material-icons.sh +++ b/Graphics/get-material-icons.sh @@ -10,6 +10,7 @@ python copy OpenKeychain navigation white refresh 24 python copy OpenKeychain av white repeat 24 python copy OpenKeychain av grey repeat 24 python copy OpenKeychain editor white mode_edit 24 +python copy OpenKeychain content white save 24 python copy OpenKeychain action grey delete 24 python copy OpenKeychain action grey done 24 diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save_white.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save_white.png deleted file mode 100644 index 0fe36a1ec3d5519890f4a978080ab567401f6cf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmV;50d@X~P)GDd`KZz4U!n2!bF8Vg~}1uL2sk0CtQ#x7_sKTZkQf3;ueQ2hi^I2o#WqBmqd8LtzI#nGqM_^ zoRLLaNL(B<>5+u=m4G&hi=)A1H3?Sb`xlI5`=&c~& z#0^M9hTOp3(iVY8w?3j1GYU;AN;qnI#9;>CifKY5;6o;cz4o?hA|Dj+se(7Kp=9X$ z+dF-LPQ2ZTRqsE#iLtg(POIL3w4#vsz89TNpfyzY*H%pE?8b#r=%1pHsg}}6o9TT^ oxkR9H;INe-2!bGv!bgAs0M`Oe{s;Z08UO$Q07*qoM6N<$f`(h64gdfE diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8c9e9cec086bc0b7d2e1a07185c395e13a5e1175 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?sJbhuaI)d^k>+d46LQ%{X`<{PUA`t{6e7JM3FKIN!BNFf90-x2ib!)x_O)QuDLd zgzzm{d#-tb)(q~C>zyBlMmHus=FjE&Dj*>7X@T{r@4vZ%twOTiMl5&Qd+}znlnRf> zKM5(G7t?-i*6y`j5}xa{H$g7(!p)0C$|_4zgNqG>t<+>E9&5=s(ol1h^@`c1%m*jt jO|n{gP19FMD7c7%}D z)uDE_$GML$fJR#~IAX@WydXD@{eWVx#yeHE7i@eCz{N9i^77iSF{Qdx0F;b@NLNU+ z1o7Asz$l1x#e%Q41`xCed#Es35DP$t{85XYS?Ei({;{YLHBq`AA;m6h;0@)T{w4M9 zO98Y9o$$H+PwniGhU!o18GZ$#_6*qvIvedKz7H1xH4m^YQ;5mAyaUJmUC*r zmAbAekPeF&DcA)KDQckf^iP8TaB&oKEDt44WBMt_ldk{+0K^$qNLVDtO8@`>07*qo IM6N<$f?n;B_5c6? diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..bb26bc075dc41e7b30c7413a109940b7b302d945 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKR z>FMGaVsZNF<+Gd(20U#K^)9?hYU&Hr+0pbkOnk$5akq@Iaeu6wci%ZBOFtg;)Jv}6mIvSeSd@>osa u2)V+urqV#XU#fqBZjH;5pTCx0y~%J?&PdMil4K>&5e%NLelF{r5}E+b@_6J5wKF2%}Nf{+psjI zdDFy3;z>io^2fJaH8Go0G!AW4BrGD&VS|J+R{>v3NI}3?5>gTHv4oTad?XFUAnJhAibi%P z{*n$w1{(ziyIyvi533K%R25`o{zs_2v-=N#*|yls-=vKzMeEt<;LvBqHy zGn2MJo#2KIOr3lu);O$VmRiRD_W7y%B4uZ+-hO`-cyWW0nu?0z`<=D=1(SMq{j%IJ zk>RKS_X%5ex4+s~X8mfO9=zrDZ_{hcUAve*?KrXY(x;;hK(8`*y85}Sb4q9e0E^az A761SM literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save_white.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save_white.png deleted file mode 100644 index ccf8c82cd562b4b72f1652b0aaa6db771b4eb712..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+7$&)Pcx)8=rJT8VDP!XXvOe~ zL6$-61;gBC)(BrVy8Z@Vk?{WiE>2HFJz2ZT71_b+(8E4Kge zJH?hVF4?}fcaPkCEib=)%w_|r_^St z%72+{p$}zLWmcbP=t)&(ePZz7%K1iBRnLr~lta5Ft^TB%x0~^Ku3Orn%c^UnM0DL* zM5Z}7BywV>{xq{NX|*vhaWF8lED#9&qaf_Gr)-x<~`r7%GBHY8@qE!*O? zN&mJb=LWAJpq>5#A5>c&Crx;*?~~@8>%ATvd<+Z=c004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00Ci1L_t(&-tF1XO2a@92Jl?k6>MKX@X$Z6Af@;yE$tJO zqEC>QDlH<#s}T`21o|9G@zl?Qm!iAbP1>Ew;hVV)B>Z4EnSn`=G%FK=2qK7}hJp;1 zc*ZBr73pc9YrNy!k=6&92%KP&t++(2Nb7+zK#ycAegS$UTk$wf`GjkcG(e>!9Z(5L z3*;o}fgB`Fkd>qh0zm{36g>zch#-OpB1ju_zzP%e&_Wx1OtIDl<+%Cx^azC(=n{n1}JxMeo2Ki=wLal;~YzaR^EAWBMX{%K{HuU&kGvJf?8gXkp;Dz2I_l3Ls`(& z3!2M<)?Uzq^q+cE%DI(q9R)g0P8U0k=DKx|x_HtWKMIU3hqbHlh6oem1~Uv`U@*iy z@G4gXeTxmS`!LX}7$^$^-HU-1VW11-BAho{M|7o>RnD+*%?sSy f6GRX}1pUb$u{XmgXM?Q~00000NkvXXu0mjfr`^33 literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..51998492cb52124ca6e6990966998dff0f116c0e GIT binary patch literal 747 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s zRFUlI;uunK>+S8+*}{P$$3Nza!c3{BD-ZhULqtjc1(;GfgFqpH`U zoHuZPP>Eox5X@n=;kd@=%lVDbmm`wFMQ9Uahe8VLgFm&5ECLP;j6zIHWT7qrJ4eAG zjN!A7(P8O*OxZ6MpAfK(WDK!9>iq9Y?XDh1y$$E=5}JhUWv+)6wL9K!I6Wt0Qeo@j zGDhK^3X!11^}Y^M?b1L0kzPGx>20Ni37Y562+G}HKC^jc;?u&TMb9Ggc@2);Y zXA9enlb0Lb#M*3Pd-15)q0F578iVW~u2cUs8=_v=&pz^a4(Ew|S4z%Lu~=~GScCm0 z{)5u5S+)rs_NhvH_jupYy%(7F)_gw^eO4#dZ2M)=HXE*)Y5jMlXBiz=+COvg8Nu7z zr(BkKFne?5yQ5NnTk>Do7tZ3^FC8{7@mSKAI&WgYXp&ANjnSXpOoa=mUr!3=% z&okb#otmF$-d)HrVY!dyRku}z&5z%Gs*O9W6|m?8o0U+!#q)||x#91BGxxN^Vq4*W b&?Ehw%@P7vCQFq9(;$PVtDnm{r-UW|xDGfS literal 0 HcmV?d00001 diff --git a/OpenKeychain/src/main/res/menu/log_display.xml b/OpenKeychain/src/main/res/menu/log_display.xml index 03af3c5ad..7a2f77b79 100644 --- a/OpenKeychain/src/main/res/menu/log_display.xml +++ b/OpenKeychain/src/main/res/menu/log_display.xml @@ -4,7 +4,7 @@ From fe8b08ac84b0360463612ac517444dbd7d2f96d7 Mon Sep 17 00:00:00 2001 From: Daniel Nelz Date: Wed, 4 Mar 2015 21:07:32 +0100 Subject: [PATCH 51/53] #1042 replaced some int constants with enums Created enum FragAction in CreateKeyActivity.java and enum State in KeyFormattingUtils.java and replaced int constants with them --- .../keychain/ui/CreateKeyActivity.java | 18 ++++--- .../keychain/ui/CreateKeyFinalFragment.java | 3 +- .../keychain/ui/CreateKeyInputFragment.java | 3 +- .../keychain/ui/DecryptFragment.java | 21 ++++---- .../keychain/ui/KeyListFragment.java | 9 ++-- .../keychain/ui/SelectPublicKeyFragment.java | 7 +-- .../keychain/ui/ViewKeyActivity.java | 9 ++-- .../ui/adapter/ImportKeysAdapter.java | 5 +- .../ui/adapter/SelectKeyCursorAdapter.java | 5 +- .../keychain/ui/adapter/UserIdsAdapter.java | 9 ++-- .../keychain/ui/util/KeyFormattingUtils.java | 50 ++++++++++--------- .../keychain/ui/widget/CertifyKeySpinner.java | 7 +-- .../keychain/ui/widget/SignKeySpinner.java | 7 +-- 13 files changed, 84 insertions(+), 69 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java index 62c38d136..60cc404b6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java @@ -28,9 +28,11 @@ public class CreateKeyActivity extends BaseActivity { public static final String EXTRA_NAME = "name"; public static final String EXTRA_EMAIL = "email"; - public static final int FRAG_ACTION_START = 0; - public static final int FRAG_ACTION_TO_RIGHT = 1; - public static final int FRAG_ACTION_TO_LEFT = 2; + public static enum FragAction { + START, + TO_RIGHT, + TO_LEFT + } @Override public void onCreate(Bundle savedInstanceState) { @@ -42,7 +44,7 @@ public class CreateKeyActivity extends BaseActivity { getIntent().getStringExtra(EXTRA_NAME), getIntent().getStringExtra(EXTRA_EMAIL) ); - loadFragment(null, frag, FRAG_ACTION_START); + loadFragment(null, frag, FragAction.START); } @Override @@ -50,7 +52,7 @@ public class CreateKeyActivity extends BaseActivity { setContentView(R.layout.create_key_activity); } - public void loadFragment(Bundle savedInstanceState, Fragment fragment, int action) { + public void loadFragment(Bundle savedInstanceState, Fragment fragment, FragAction action) { // However, if we're being restored from a previous state, // then we don't need to do anything and should return or else // we could end up with overlapping fragments. @@ -63,15 +65,15 @@ public class CreateKeyActivity extends BaseActivity { FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); switch (action) { - case FRAG_ACTION_START: + case START: transaction.setCustomAnimations(0, 0); transaction.replace(R.id.create_key_fragment_container, fragment) .commitAllowingStateLoss(); break; - case FRAG_ACTION_TO_LEFT: + case TO_LEFT: getSupportFragmentManager().popBackStackImmediate(); break; - case FRAG_ACTION_TO_RIGHT: + case TO_RIGHT: transaction.setCustomAnimations(R.anim.frag_slide_in_from_right, R.anim.frag_slide_out_to_left, R.anim.frag_slide_in_from_left, R.anim.frag_slide_out_to_right); transaction.addToBackStack(null); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java index 6e0115342..920488e3e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java @@ -43,6 +43,7 @@ import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; import org.sufficientlysecure.keychain.service.SaveKeyringParcel; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.Algorithm; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.ChangeUnlockParcel; +import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; @@ -117,7 +118,7 @@ public class CreateKeyFinalFragment extends Fragment { mBackButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mCreateKeyActivity.loadFragment(null, null, CreateKeyActivity.FRAG_ACTION_TO_LEFT); + mCreateKeyActivity.loadFragment(null, null, FragAction.TO_LEFT); } }); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java index 8aa9fa6db..ac74e87ed 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java @@ -32,6 +32,7 @@ import android.widget.AutoCompleteTextView; import android.widget.EditText; import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction; import org.sufficientlysecure.keychain.util.ContactHelper; import java.util.regex.Matcher; @@ -161,7 +162,7 @@ public class CreateKeyInputFragment extends Fragment { ); hideKeyboard(); - mCreateKeyActivity.loadFragment(null, frag, CreateKeyActivity.FRAG_ACTION_TO_RIGHT); + mCreateKeyActivity.loadFragment(null, frag, FragAction.TO_RIGHT); } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java index 8723c7255..3814aa287 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java @@ -31,6 +31,7 @@ import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; public abstract class DecryptFragment extends Fragment { private static final int RESULT_CODE_LOOKUP_KEY = 0x00007006; @@ -141,16 +142,16 @@ public abstract class DecryptFragment extends Fragment { if (signatureResult.isSignatureOnly()) { mEncryptionText.setText(R.string.decrypt_result_not_encrypted); - KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_NOT_ENCRYPTED); + KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, State.NOT_ENCRYPTED); } else { mEncryptionText.setText(R.string.decrypt_result_encrypted); - KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_ENCRYPTED); + KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, State.ENCRYPTED); } switch (signatureResult.getStatus()) { case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: { mSignatureText.setText(R.string.decrypt_result_signature_certified); - KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_VERIFIED); + KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.VERIFIED); setSignatureLayoutVisibility(View.VISIBLE); setShowAction(mSignatureKeyId); @@ -161,7 +162,7 @@ public abstract class DecryptFragment extends Fragment { case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: { mSignatureText.setText(R.string.decrypt_result_signature_uncertified); - KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNVERIFIED); + KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.UNVERIFIED); setSignatureLayoutVisibility(View.VISIBLE); setShowAction(mSignatureKeyId); @@ -172,7 +173,7 @@ public abstract class DecryptFragment extends Fragment { case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: { mSignatureText.setText(R.string.decrypt_result_signature_missing_key); - KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNKNOWN_KEY); + KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.UNKNOWN_KEY); setSignatureLayoutVisibility(View.VISIBLE); mSignatureAction.setText(R.string.decrypt_result_action_Lookup); @@ -190,7 +191,7 @@ public abstract class DecryptFragment extends Fragment { case OpenPgpSignatureResult.SIGNATURE_KEY_EXPIRED: { mSignatureText.setText(R.string.decrypt_result_signature_expired_key); - KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_EXPIRED); + KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.EXPIRED); setSignatureLayoutVisibility(View.VISIBLE); setShowAction(mSignatureKeyId); @@ -201,7 +202,7 @@ public abstract class DecryptFragment extends Fragment { case OpenPgpSignatureResult.SIGNATURE_KEY_REVOKED: { mSignatureText.setText(R.string.decrypt_result_signature_revoked_key); - KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_REVOKED); + KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.REVOKED); setSignatureLayoutVisibility(View.VISIBLE); setShowAction(mSignatureKeyId); @@ -212,7 +213,7 @@ public abstract class DecryptFragment extends Fragment { case OpenPgpSignatureResult.SIGNATURE_ERROR: { mSignatureText.setText(R.string.decrypt_result_invalid_signature); - KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_INVALID); + KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.INVALID); setSignatureLayoutVisibility(View.GONE); @@ -224,9 +225,9 @@ public abstract class DecryptFragment extends Fragment { setSignatureLayoutVisibility(View.GONE); mSignatureText.setText(R.string.decrypt_result_no_signature); - KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_NOT_SIGNED); + KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.NOT_SIGNED); mEncryptionText.setText(R.string.decrypt_result_encrypted); - KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_ENCRYPTED); + KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, State.ENCRYPTED); valid = true; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index b56da463a..08963eb1d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -70,6 +70,7 @@ import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment; import org.sufficientlysecure.keychain.ui.util.Highlighter; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.ExportHelper; import org.sufficientlysecure.keychain.util.FabContainer; @@ -716,13 +717,13 @@ public class KeyListFragment extends LoaderFragment // Note: order is important! if (isRevoked) { - KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, State.REVOKED, R.color.bg_gray); h.mStatus.setVisibility(View.VISIBLE); h.mSlinger.setVisibility(View.GONE); h.mMainUserId.setTextColor(context.getResources().getColor(R.color.bg_gray)); h.mMainUserIdRest.setTextColor(context.getResources().getColor(R.color.bg_gray)); } else if (isExpired) { - KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, State.EXPIRED, R.color.bg_gray); h.mStatus.setVisibility(View.VISIBLE); h.mSlinger.setVisibility(View.GONE); h.mMainUserId.setTextColor(context.getResources().getColor(R.color.bg_gray)); @@ -735,10 +736,10 @@ public class KeyListFragment extends LoaderFragment } else { // this is a public key - show if it's verified if (isVerified) { - KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, KeyFormattingUtils.STATE_VERIFIED); + KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, State.VERIFIED); h.mStatus.setVisibility(View.VISIBLE); } else { - KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, KeyFormattingUtils.STATE_UNVERIFIED); + KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, State.UNVERIFIED); h.mStatus.setVisibility(View.VISIBLE); } h.mSlinger.setVisibility(View.GONE); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java index afec3bf06..835dd272c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java @@ -46,6 +46,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainDatabase.Tables; import org.sufficientlysecure.keychain.ui.adapter.SelectKeyCursorAdapter; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; import java.util.Vector; @@ -376,15 +377,15 @@ public class SelectPublicKeyFragment extends ListFragmentWorkaround implements T // Check if key is viable for our purposes if (cursor.getInt(mIndexHasEncrypt) == 0) { h.statusIcon.setVisibility(View.VISIBLE); - KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_UNAVAILABLE); + KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, State.UNAVAILABLE); enabled = false; } else if (cursor.getInt(mIndexIsVerified) != 0) { h.statusIcon.setVisibility(View.VISIBLE); - KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_VERIFIED); + KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, State.VERIFIED); enabled = true; } else { h.statusIcon.setVisibility(View.VISIBLE); - KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_UNVERIFIED); + KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, State.UNVERIFIED); enabled = true; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 0be6c26f6..10545a867 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -74,6 +74,7 @@ import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.QrCodeUtils; import org.sufficientlysecure.keychain.ui.widget.AspectRatioImageView; @@ -839,7 +840,7 @@ public class ViewKeyActivity extends BaseActivity implements mStatusText.setText(R.string.view_key_revoked); mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, - KeyFormattingUtils.STATE_REVOKED, R.color.icons, true); + State.REVOKED, R.color.icons, true); color = getResources().getColor(R.color.android_red_light); mActionEncryptFile.setVisibility(View.GONE); @@ -855,7 +856,7 @@ public class ViewKeyActivity extends BaseActivity implements } mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, - KeyFormattingUtils.STATE_EXPIRED, R.color.icons, true); + State.EXPIRED, R.color.icons, true); color = getResources().getColor(R.color.android_red_light); mActionEncryptFile.setVisibility(View.GONE); @@ -915,7 +916,7 @@ public class ViewKeyActivity extends BaseActivity implements mStatusText.setText(R.string.view_key_verified); mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, - KeyFormattingUtils.STATE_VERIFIED, R.color.icons, true); + State.VERIFIED, R.color.icons, true); color = getResources().getColor(R.color.primary); photoTask.execute(mFingerprint); @@ -924,7 +925,7 @@ public class ViewKeyActivity extends BaseActivity implements mStatusText.setText(R.string.view_key_unverified); mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, - KeyFormattingUtils.STATE_UNVERIFIED, R.color.icons, true); + State.UNVERIFIED, R.color.icons, true); color = getResources().getColor(R.color.android_orange_light); mFab.setVisibility(View.VISIBLE); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java index 6ba9e26ad..429feb075 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java @@ -37,6 +37,7 @@ import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.ui.util.Highlighter; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; import java.util.ArrayList; import java.util.HashMap; @@ -175,9 +176,9 @@ public class ImportKeysAdapter extends ArrayAdapter { } if (entry.isRevoked()) { - KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.REVOKED, R.color.bg_gray); } else if (entry.isExpired()) { - KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.EXPIRED, R.color.bg_gray); } if (entry.isRevoked() || entry.isExpired()) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java index a836b35df..226fda20b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java @@ -33,6 +33,7 @@ import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.ui.util.Highlighter; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; /** @@ -133,11 +134,11 @@ abstract public class SelectKeyCursorAdapter extends CursorAdapter { boolean enabled; if (cursor.getInt(mIndexIsRevoked) != 0) { h.statusIcon.setVisibility(View.VISIBLE); - KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.REVOKED, R.color.bg_gray); enabled = false; } else if (cursor.getInt(mIndexIsExpiry) != 0) { h.statusIcon.setVisibility(View.VISIBLE); - KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.EXPIRED, R.color.bg_gray); enabled = false; } else { h.statusIcon.setVisibility(View.GONE); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java index 6a4f61f4b..3486f1516 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java @@ -36,6 +36,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.Certs; import org.sufficientlysecure.keychain.provider.KeychainContract.UserPackets; import org.sufficientlysecure.keychain.service.SaveKeyringParcel; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; public class UserIdsAdapter extends UserAttributesAdapter { protected LayoutInflater mInflater; @@ -127,7 +128,7 @@ public class UserIdsAdapter extends UserAttributesAdapter { if (isRevoked) { // set revocation icon (can this even be primary?) - KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.REVOKED, R.color.bg_gray); // disable revoked user ids vName.setEnabled(false); @@ -149,13 +150,13 @@ public class UserIdsAdapter extends UserAttributesAdapter { int isVerified = cursor.getInt(INDEX_VERIFIED); switch (isVerified) { case Certs.VERIFIED_SECRET: - KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_VERIFIED, KeyFormattingUtils.DEFAULT_COLOR); + KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.VERIFIED, KeyFormattingUtils.DEFAULT_COLOR); break; case Certs.VERIFIED_SELF: - KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_UNVERIFIED, KeyFormattingUtils.DEFAULT_COLOR); + KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.UNVERIFIED, KeyFormattingUtils.DEFAULT_COLOR); break; default: - KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_INVALID, KeyFormattingUtils.DEFAULT_COLOR); + KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.INVALID, KeyFormattingUtils.DEFAULT_COLOR); break; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java index 38ed88b9c..28deb1d5d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java @@ -379,27 +379,29 @@ public class KeyFormattingUtils { public static final int DEFAULT_COLOR = -1; - public static final int STATE_REVOKED = 1; - public static final int STATE_EXPIRED = 2; - public static final int STATE_VERIFIED = 3; - public static final int STATE_UNAVAILABLE = 4; - public static final int STATE_ENCRYPTED = 5; - public static final int STATE_NOT_ENCRYPTED = 6; - public static final int STATE_UNVERIFIED = 7; - public static final int STATE_UNKNOWN_KEY = 8; - public static final int STATE_INVALID = 9; - public static final int STATE_NOT_SIGNED = 10; + public static enum State { + REVOKED, + EXPIRED, + VERIFIED, + UNAVAILABLE, + ENCRYPTED, + NOT_ENCRYPTED, + UNVERIFIED, + UNKNOWN_KEY, + INVALID, + NOT_SIGNED + } - public static void setStatusImage(Context context, ImageView statusIcon, int state) { + public static void setStatusImage(Context context, ImageView statusIcon, State state) { setStatusImage(context, statusIcon, null, state); } - public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, int state) { + public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, State state) { setStatusImage(context, statusIcon, statusText, state, KeyFormattingUtils.DEFAULT_COLOR, false); } public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, - int state, int color) { + State state, int color) { setStatusImage(context, statusIcon, statusText, state, color, false); } @@ -407,10 +409,10 @@ public class KeyFormattingUtils { * Sets status image based on constant */ public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, - int state, int color, boolean big) { + State state, int color, boolean big) { switch (state) { /** GREEN: everything is good **/ - case STATE_VERIFIED: { + case VERIFIED: { if (big) { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_96px)); @@ -428,7 +430,7 @@ public class KeyFormattingUtils { } break; } - case STATE_ENCRYPTED: { + case ENCRYPTED: { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_lock_closed_24px)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { @@ -442,7 +444,7 @@ public class KeyFormattingUtils { break; } /** ORANGE: mostly bad... **/ - case STATE_UNVERIFIED: { + case UNVERIFIED: { if (big) { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_96px)); @@ -460,7 +462,7 @@ public class KeyFormattingUtils { } break; } - case STATE_UNKNOWN_KEY: { + case UNKNOWN_KEY: { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { @@ -474,7 +476,7 @@ public class KeyFormattingUtils { break; } /** RED: really bad... **/ - case STATE_REVOKED: { + case REVOKED: { if (big) { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_96px)); @@ -492,7 +494,7 @@ public class KeyFormattingUtils { } break; } - case STATE_EXPIRED: { + case EXPIRED: { if (big) { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_96px)); @@ -510,7 +512,7 @@ public class KeyFormattingUtils { } break; } - case STATE_NOT_ENCRYPTED: { + case NOT_ENCRYPTED: { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_lock_open_24px)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { @@ -523,7 +525,7 @@ public class KeyFormattingUtils { } break; } - case STATE_NOT_SIGNED: { + case NOT_SIGNED: { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { @@ -536,7 +538,7 @@ public class KeyFormattingUtils { } break; } - case STATE_INVALID: { + case INVALID: { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { @@ -550,7 +552,7 @@ public class KeyFormattingUtils { break; } /** special **/ - case STATE_UNAVAILABLE: { + case UNAVAILABLE: { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java index 6d0e6556f..fc912fccb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java @@ -31,6 +31,7 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.KeychainDatabase; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; public class CertifyKeySpinner extends KeySpinner { private long mHiddenMasterKeyId = Constants.key.none; @@ -103,16 +104,16 @@ public class CertifyKeySpinner extends KeySpinner { @Override boolean setStatus(Context context, Cursor cursor, ImageView statusView) { if (cursor.getInt(mIndexIsRevoked) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.REVOKED, R.color.bg_gray); return false; } if (cursor.getInt(mIndexIsExpired) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.EXPIRED, R.color.bg_gray); return false; } // don't invalidate the "None" entry, which is also null! if (cursor.getPosition() != 0 && cursor.isNull(mIndexHasCertify)) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_UNAVAILABLE, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.UNAVAILABLE, R.color.bg_gray); return false; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java index fe91e306e..10327a6a4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java @@ -29,6 +29,7 @@ import android.widget.ImageView; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; public class SignKeySpinner extends KeySpinner { public SignKeySpinner(Context context) { @@ -84,15 +85,15 @@ public class SignKeySpinner extends KeySpinner { @Override boolean setStatus(Context context, Cursor cursor, ImageView statusView) { if (cursor.getInt(mIndexIsRevoked) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.REVOKED, R.color.bg_gray); return false; } if (cursor.getInt(mIndexIsExpired) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.EXPIRED, R.color.bg_gray); return false; } if (cursor.getInt(mIndexHasSign) == 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_UNAVAILABLE, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.UNAVAILABLE, R.color.bg_gray); return false; } From f3af54c814961f48b1d41095a684b7f87c351974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 21:12:52 +0100 Subject: [PATCH 52/53] Show fingerprint menu item only if not revoked or expired --- .../keychain/ui/ViewKeyActivity.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index f90326a7d..3eb5f1057 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -119,6 +119,9 @@ public class ViewKeyActivity extends BaseActivity implements private boolean mIsSecret = false; private boolean mHasEncrypt = false; private boolean mIsVerified = false; + private boolean mIsRevoked = false; + private boolean mIsExpired = false; + private MenuItem mRefreshItem; private boolean mIsRefreshing; private Animation mRotate, mRotateSpin; @@ -171,7 +174,7 @@ public class ViewKeyActivity extends BaseActivity implements } }); - mRotate = AnimationUtils.loadAnimation(this, R.anim.rotate); + mRotate = AnimationUtils.loadAnimation(this, R.anim.rotate); mRotate.setRepeatCount(Animation.INFINITE); mRotate.setAnimationListener(new Animation.AnimationListener() { @Override @@ -345,7 +348,7 @@ public class ViewKeyActivity extends BaseActivity implements MenuItem editKey = menu.findItem(R.id.menu_key_view_edit); editKey.setVisible(mIsSecret); MenuItem certifyFingerprint = menu.findItem(R.id.menu_key_view_certify_fingerprint); - certifyFingerprint.setVisible(!mIsSecret && !mIsVerified); + certifyFingerprint.setVisible(!mIsSecret && !mIsVerified && !mIsExpired && !mIsRevoked); return true; } @@ -396,12 +399,12 @@ public class ViewKeyActivity extends BaseActivity implements private void certifyImmediate() { Intent intent = new Intent(this, CertifyKeyActivity.class); - intent.putExtra(CertifyKeyActivity.EXTRA_KEY_IDS, new long[]{ mMasterKeyId }); + intent.putExtra(CertifyKeyActivity.EXTRA_KEY_IDS, new long[]{mMasterKeyId}); startCertifyIntent(intent); } - private void startCertifyIntent (Intent intent) { + private void startCertifyIntent(Intent intent) { // Message is received after signing is done in KeychainIntentService KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(this) { public void handleMessage(Message message) { @@ -807,8 +810,8 @@ public class ViewKeyActivity extends BaseActivity implements mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0; mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0; - boolean isRevoked = data.getInt(INDEX_IS_REVOKED) > 0; - boolean isExpired = data.getInt(INDEX_IS_EXPIRED) != 0; + mIsRevoked = data.getInt(INDEX_IS_REVOKED) > 0; + mIsExpired = data.getInt(INDEX_IS_EXPIRED) != 0; mIsVerified = data.getInt(INDEX_VERIFIED) > 0; // if the refresh animation isn't playing @@ -832,7 +835,7 @@ public class ViewKeyActivity extends BaseActivity implements // Note: order is important int color; - if (isRevoked) { + if (mIsRevoked) { mStatusText.setText(R.string.view_key_revoked); mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, @@ -844,7 +847,7 @@ public class ViewKeyActivity extends BaseActivity implements mActionNfc.setVisibility(View.GONE); mFab.setVisibility(View.GONE); mQrCodeLayout.setVisibility(View.GONE); - } else if (isExpired) { + } else if (mIsExpired) { if (mIsSecret) { mStatusText.setText(R.string.view_key_expired_secret); } else { @@ -865,7 +868,7 @@ public class ViewKeyActivity extends BaseActivity implements mStatusImage.setVisibility(View.GONE); color = getResources().getColor(R.color.primary); // reload qr code only if the fingerprint changed - if ( !mFingerprint.equals(oldFingerprint)) { + if (!mFingerprint.equals(oldFingerprint)) { loadQrCode(mFingerprint); } photoTask.execute(mMasterKeyId); From 0706bca8c61d7b260be1b4541827aac905560436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Mar 2015 21:14:37 +0100 Subject: [PATCH 53/53] Rewording secret_key_deletion_confirmation --- OpenKeychain/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 970226cc1..88eb89ec6 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -227,7 +227,7 @@ "Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists." "Please specify which file to export to.\nWARNING: File will be overwritten if it exists." "Do you really want to delete all selected keys?" - "After deletion you will not be able to read messages encrypted with this key and lose all key verifications related to it!" + "After deletion you will not be able to read messages encrypted with this key and lose all key confirmations done with it!" "Delete key '%s'?" "Also export secret keys" "You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys."