aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BaseActivity.java12
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesActivity.java11
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java10
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java33
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java32
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java41
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java41
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java30
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_copy_24dp.pngbin0 -> 594 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_save_24dp.pngbin0 -> 638 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_share_24dp.pngbin0 -> 686 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_close_black_24dp.pngbin0 -> 301 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_comment_text_grey600_24dp.pngbin0 -> 455 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_copy_24dp.pngbin0 -> 464 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_save_24dp.pngbin0 -> 447 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_share_24dp.pngbin0 -> 487 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_close_black_24dp.pngbin0 -> 257 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_comment_text_grey600_24dp.pngbin0 -> 308 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_copy_24dp.pngbin0 -> 698 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_save_24dp.pngbin0 -> 750 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_share_24dp.pngbin0 -> 887 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_close_black_24dp.pngbin0 -> 360 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_comment_text_grey600_24dp.pngbin0 -> 469 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_copy_24dp.pngbin0 -> 944 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_save_24dp.pngbin0 -> 1105 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_share_24dp.pngbin0 -> 1334 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_black_24dp.pngbin0 -> 425 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_comment_text_grey600_24dp.pngbin0 -> 748 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_copy_24dp.pngbin0 -> 1208 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_save_24dp.pngbin0 -> 1417 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_share_24dp.pngbin0 -> 1872 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_black_24dp.pngbin0 -> 565 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_comment_text_grey600_24dp.pngbin0 -> 882 bytes
-rw-r--r--OpenKeychain/src/main/res/layout/create_key_input_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/decrypt_files_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/decrypt_text_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_files_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml83
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_text_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml45
-rw-r--r--OpenKeychain/src/main/res/layout/help_activity.xml35
-rw-r--r--OpenKeychain/src/main/res/layout/toolbar_inner_layout.xml26
-rw-r--r--OpenKeychain/src/main/res/layout/toolbar_inner_layout_white.xml26
-rw-r--r--OpenKeychain/src/main/res/layout/toolbar_standalone.xml26
-rw-r--r--OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml26
-rw-r--r--OpenKeychain/src/main/res/layout/toolbar_standalone_white.xml13
-rw-r--r--OpenKeychain/src/main/res/layout/toolbar_tabs.xml24
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_activity.xml43
-rw-r--r--OpenKeychain/src/main/res/menu/encrypt_file_activity.xml16
-rw-r--r--OpenKeychain/src/main/res/menu/encrypt_text_activity.xml16
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml18
53 files changed, 328 insertions, 295 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BaseActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BaseActivity.java
index e6c2542a2..41fa50705 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BaseActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BaseActivity.java
@@ -88,12 +88,20 @@ public abstract class BaseActivity extends ActionBarActivity {
/**
* Close button only
*/
- protected void setFullScreenDialogClose(View.OnClickListener cancelOnClickListener) {
- setActionBarIcon(R.drawable.ic_close_white_24dp);
+ protected void setFullScreenDialogClose(View.OnClickListener cancelOnClickListener, boolean white) {
+ if (white) {
+ setActionBarIcon(R.drawable.ic_close_white_24dp);
+ } else {
+ setActionBarIcon(R.drawable.ic_close_black_24dp);
+ }
getSupportActionBar().setDisplayShowTitleEnabled(true);
mToolbar.setNavigationOnClickListener(cancelOnClickListener);
}
+ protected void setFullScreenDialogClose(View.OnClickListener cancelOnClickListener) {
+ setFullScreenDialogClose(cancelOnClickListener, true);
+ }
+
/**
* Inflate custom design with two buttons using drawables.
* This does not conform to the Material Design Guidelines, but we deviate here as this is used
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesActivity.java
index 89dd4970b..162b10eca 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesActivity.java
@@ -17,9 +17,12 @@
package org.sufficientlysecure.keychain.ui;
+import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.view.View;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
@@ -40,6 +43,14 @@ public class DecryptFilesActivity extends BaseActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setFullScreenDialogClose(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ setResult(Activity.RESULT_CANCELED);
+ finish();
+ }
+ }, false);
+
// Handle intent actions
handleActions(savedInstanceState, getIntent());
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java
index 81a8a2ac4..1e9e7bcb1 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java
@@ -18,9 +18,11 @@
package org.sufficientlysecure.keychain.ui;
+import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
+import android.view.View;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
@@ -49,6 +51,14 @@ public class DecryptTextActivity extends BaseActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setFullScreenDialogClose(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ setResult(Activity.RESULT_CANCELED);
+ finish();
+ }
+ }, false);
+
// Handle intent actions
handleActions(savedInstanceState, getIntent());
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java
index 0d7e6056e..c595cc5b8 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java
@@ -1,10 +1,30 @@
+/*
+ * Copyright (C) 2014 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
package org.sufficientlysecure.keychain.ui;
+import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.os.Messenger;
+import android.os.PersistableBundle;
+import android.view.View;
import org.openintents.openpgp.util.OpenPgpApi;
import org.sufficientlysecure.keychain.R;
@@ -26,6 +46,19 @@ public abstract class EncryptActivity extends BaseActivity {
protected Date mNfcTimestamp = null;
protected byte[] mNfcHash = null;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setFullScreenDialogClose(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ setResult(Activity.RESULT_CANCELED);
+ finish();
+ }
+ }, false);
+ }
+
protected void startPassphraseDialog(long subkeyId) {
Intent intent = new Intent(this, PassphraseDialogActivity.class);
intent.putExtra(PassphraseDialogActivity.EXTRA_SUBKEY_ID, subkeyId);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java
index 11b596c24..eba19df6d 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java
@@ -314,15 +314,6 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- // if called with an intent action, do not init drawer navigation
- if (ACTION_ENCRYPT_DATA.equals(getIntent().getAction())) {
- // lock drawer
-// deactivateDrawerNavigation();
- // TODO: back button to key?
- } else {
-// activateDrawerNavigation(savedInstanceState);
- }
-
// Handle intent actions
handleActions(getIntent());
updateModeFragment();
@@ -339,17 +330,6 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi
return super.onCreateOptionsMenu(menu);
}
- private void updateModeFragment() {
- getSupportFragmentManager().beginTransaction()
- .replace(R.id.encrypt_pager_mode,
- mCurrentMode == MODE_SYMMETRIC
- ? new EncryptSymmetricFragment()
- : new EncryptAsymmetricFragment()
- )
- .commitAllowingStateLoss();
- getSupportFragmentManager().executePendingTransactions();
- }
-
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.isCheckable()) {
@@ -384,6 +364,17 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi
return true;
}
+ private void updateModeFragment() {
+ getSupportFragmentManager().beginTransaction()
+ .replace(R.id.encrypt_pager_mode,
+ mCurrentMode == MODE_SYMMETRIC
+ ? new EncryptSymmetricFragment()
+ : new EncryptAsymmetricFragment()
+ )
+ .commitAllowingStateLoss();
+ getSupportFragmentManager().executePendingTransactions();
+ }
+
/**
* Handles all actions with this intent
*
@@ -428,7 +419,6 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi
// Save uris
mInputUris = uris;
-
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java
index 860bd8502..ace58b165 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java
@@ -27,6 +27,7 @@ import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
@@ -56,7 +57,6 @@ public class EncryptFilesFragment extends Fragment implements EncryptActivityInt
// view
private View mAddView;
- private View mShareFile;
private ListView mSelectedFiles;
private SelectedFilesAdapter mAdapter = new SelectedFilesAdapter();
private final Map<Uri, Bitmap> thumbnailCache = new HashMap<>();
@@ -78,21 +78,6 @@ public class EncryptFilesFragment extends Fragment implements EncryptActivityInt
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.encrypt_files_fragment, container, false);
- View vEncryptFile = view.findViewById(R.id.action_encrypt_file);
- vEncryptFile.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- encryptClicked(false);
- }
- });
- mShareFile = view.findViewById(R.id.action_encrypt_share);
- mShareFile.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- encryptClicked(true);
- }
- });
-
mAddView = inflater.inflate(R.layout.file_list_entry_add, null);
mAddView.setOnClickListener(new View.OnClickListener() {
@Override
@@ -108,8 +93,10 @@ public class EncryptFilesFragment extends Fragment implements EncryptActivityInt
}
@Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setHasOptionsMenu(true);
}
private void addInputUri() {
@@ -192,6 +179,24 @@ public class EncryptFilesFragment extends Fragment implements EncryptActivityInt
}
@Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.encrypt_save: {
+ encryptClicked(false);
+ break;
+ }
+ case R.id.encrypt_share: {
+ encryptClicked(true);
+ break;
+ }
+ default: {
+ return super.onOptionsItemSelected(item);
+ }
+ }
+ return true;
+ }
+
+ @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CODE_INPUT: {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java
index b13cb7837..5d9994c5c 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java
@@ -23,6 +23,7 @@ import android.support.v4.app.Fragment;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
@@ -33,8 +34,6 @@ public class EncryptTextFragment extends Fragment {
public static final String ARG_TEXT = "text";
private TextView mText;
- private View mEncryptShare;
- private View mEncryptClipboard;
private EncryptActivityInterface mEncryptInterface;
@@ -72,24 +71,16 @@ public class EncryptTextFragment extends Fragment {
mEncryptInterface.setMessage(s.toString());
}
});
- mEncryptClipboard = view.findViewById(R.id.action_encrypt_clipboard);
- mEncryptShare = view.findViewById(R.id.action_encrypt_share);
- mEncryptClipboard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- mEncryptInterface.startEncrypt(false);
- }
- });
- mEncryptShare.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- mEncryptInterface.startEncrypt(true);
- }
- });
return view;
}
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setHasOptionsMenu(true);
+ }
@Override
public void onActivityCreated(Bundle savedInstanceState) {
@@ -100,4 +91,22 @@ public class EncryptTextFragment extends Fragment {
mText.setText(text);
}
}
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.encrypt_copy: {
+ mEncryptInterface.startEncrypt(false);
+ break;
+ }
+ case R.id.encrypt_share: {
+ mEncryptInterface.startEncrypt(true);
+ break;
+ }
+ default: {
+ return super.onOptionsItemSelected(item);
+ }
+ }
+ return true;
+ }
}
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 9390e8a69..0654f0c9a 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
@@ -76,8 +76,8 @@ public class ViewKeyAdvActivity extends BaseActivity implements
mExportHelper = new ExportHelper(this);
mProviderHelper = new ProviderHelper(this);
- mViewPager = (ViewPager) findViewById(R.id.view_key_pager);
- mSlidingTabLayout = (PagerSlidingTabStrip) findViewById(R.id.view_key_sliding_tab_layout);
+ mViewPager = (ViewPager) findViewById(R.id.pager);
+ mSlidingTabLayout = (PagerSlidingTabStrip) findViewById(R.id.sliding_tab_layout);
int switchToTab = TAB_MAIN;
Intent intent = getIntent();
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 c66dc04d0..08c7c02fb 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
@@ -43,9 +43,11 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.regex.Matcher;
public class ContactHelper {
@@ -54,6 +56,17 @@ public class ContactHelper {
public static List<String> getPossibleUserEmails(Context context) {
Set<String> accountMails = getAccountEmails(context);
accountMails.addAll(getMainProfileContactEmails(context));
+
+ // remove items that are not an email
+ Iterator<String> it = accountMails.iterator();
+ while (it.hasNext()) {
+ String email = it.next();
+ Matcher emailMatcher = Patterns.EMAIL_ADDRESS.matcher(email);
+ if (!emailMatcher.matches()) {
+ it.remove();
+ }
+ }
+
// now return the Set (without duplicates) as a List
return new ArrayList<>(accountMails);
}
@@ -62,6 +75,17 @@ public class ContactHelper {
Set<String> accountMails = getAccountEmails(context);
Set<String> names = getContactNamesFromEmails(context, accountMails);
names.addAll(getMainProfileContactName(context));
+
+ // remove items that are an email
+ Iterator<String> it = names.iterator();
+ while (it.hasNext()) {
+ String email = it.next();
+ Matcher emailMatcher = Patterns.EMAIL_ADDRESS.matcher(email);
+ if (emailMatcher.matches()) {
+ it.remove();
+ }
+ }
+
return new ArrayList<>(names);
}
@@ -75,9 +99,7 @@ public class ContactHelper {
final Account[] accounts = AccountManager.get(context).getAccounts();
final Set<String> emailSet = new HashSet<>();
for (Account account : accounts) {
- if (Patterns.EMAIL_ADDRESS.matcher(account.name).matches()) {
- emailSet.add(account.name);
- }
+ emailSet.add(account.name);
}
return emailSet;
}
@@ -256,7 +278,7 @@ public class ContactHelper {
}
public static Bitmap loadPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId,
- boolean highRes) {
+ boolean highRes) {
if (masterKeyId == -1) {
return null;
}
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_copy_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_copy_24dp.png
new file mode 100644
index 000000000..25a7ed445
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_copy_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_save_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_save_24dp.png
new file mode 100644
index 000000000..ef17796fb
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_save_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_share_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_share_24dp.png
new file mode 100644
index 000000000..402d792c0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_share_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_close_black_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_black_24dp.png
new file mode 100644
index 000000000..d5a928783
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_black_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_comment_text_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_comment_text_grey600_24dp.png
new file mode 100644
index 000000000..c48a3b463
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_comment_text_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_copy_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_copy_24dp.png
new file mode 100644
index 000000000..9517e1fec
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_copy_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_save_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_save_24dp.png
new file mode 100644
index 000000000..162981140
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_save_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_share_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_share_24dp.png
new file mode 100644
index 000000000..779ba94d3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_share_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_close_black_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_black_24dp.png
new file mode 100644
index 000000000..4ebf8a227
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_black_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_comment_text_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_comment_text_grey600_24dp.png
new file mode 100644
index 000000000..d50c008c7
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_comment_text_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_copy_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_copy_24dp.png
new file mode 100644
index 000000000..9df8ff01a
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_copy_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_save_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_save_24dp.png
new file mode 100644
index 000000000..eef0635b7
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_save_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_share_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_share_24dp.png
new file mode 100644
index 000000000..d359cd6ab
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_share_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_black_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_black_24dp.png
new file mode 100644
index 000000000..ed2b2525f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_black_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_comment_text_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_comment_text_grey600_24dp.png
new file mode 100644
index 000000000..0e14a9500
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_comment_text_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_copy_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_copy_24dp.png
new file mode 100644
index 000000000..cf184c78d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_copy_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_save_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_save_24dp.png
new file mode 100644
index 000000000..5620e2595
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_save_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_share_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_share_24dp.png
new file mode 100644
index 000000000..b364c7603
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_share_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_black_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_black_24dp.png
new file mode 100644
index 000000000..08f59ea1e
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_black_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_comment_text_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_comment_text_grey600_24dp.png
new file mode 100644
index 000000000..de5de6042
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_comment_text_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_copy_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_copy_24dp.png
new file mode 100644
index 000000000..c3078ee92
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_copy_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_save_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_save_24dp.png
new file mode 100644
index 000000000..4146f9262
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_save_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_share_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_share_24dp.png
new file mode 100644
index 000000000..925cb2d9e
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_share_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_black_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_black_24dp.png
new file mode 100644
index 000000000..c5d79caff
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_black_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_comment_text_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_comment_text_grey600_24dp.png
new file mode 100644
index 000000000..9dae1a4a0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_comment_text_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
index e999d8385..2178fcb1f 100644
--- a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
@@ -62,6 +62,8 @@
android:id="@+id/create_key_passphrase"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
android:imeOptions="actionNext"
android:inputType="textPassword"
android:hint="@string/label_passphrase"
diff --git a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml
index 3cf4a9e7b..3d214dbf6 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml
@@ -5,7 +5,7 @@
<include
android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ layout="@layout/toolbar_standalone_white" />
<!--
fitsSystemWindows and layout_marginTop from
diff --git a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml
index da4aa7099..a6099e25e 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml
@@ -5,7 +5,7 @@
<include
android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ layout="@layout/toolbar_standalone_white" />
<!--
fitsSystemWindows and layout_marginTop from
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 3ef8e3551..bd640d9af 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml
@@ -45,7 +45,7 @@
android:clickable="true"
style="?android:attr/borderlessButtonStyle"
android:text="@string/btn_encrypt_text"
- android:drawableRight="@drawable/ic_content_copy_grey_24dp"
+ android:drawableRight="@drawable/ic_comment_text_grey600_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml
index f9efd81b4..ce8b1302c 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml
@@ -5,7 +5,7 @@
<include
android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ layout="@layout/toolbar_standalone_white" />
<!--
fitsSystemWindows and layout_marginTop from
diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml
index 26b1d809d..029e735b3 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml
@@ -1,72 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fillViewport="true">
-
- <LinearLayout
+ android:layout_height="wrap_content"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:orientation="vertical">
+
+ <ListView
+ android:id="@+id/selected_files_list"
+ android:dividerHeight="4dip"
+ android:divider="@android:color/transparent"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:layout_marginTop="8dp"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
- android:orientation="vertical">
-
- <ListView
- android:id="@+id/selected_files_list"
- android:dividerHeight="4dip"
- android:divider="@android:color/transparent"
- android:focusable="true"
- android:focusableInTouchMode="true"
- android:layout_marginTop="8dp"
- android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_weight="1" />
-
- <View
- android:layout_width="match_parent"
- android:layout_height="1dip"
- android:background="?android:attr/listDivider" />
-
- <!-- Note: The following construct should be a widget, we use it quiet often -->
-
- <LinearLayout
- android:id="@+id/action_encrypt_share"
- android:paddingLeft="8dp"
- android:layout_width="match_parent"
- android:layout_height="?android:attr/listPreferredItemHeight"
- android:clickable="true"
- style="@style/SelectableItem"
- android:orientation="horizontal">
-
- <TextView
- android:paddingLeft="8dp"
- android:paddingRight="8dp"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_width="0dip"
- android:layout_height="match_parent"
- android:text="@string/btn_encrypt_share_file"
- android:layout_weight="1"
- android:drawableRight="@drawable/ic_share_grey_24dp"
- android:drawablePadding="8dp"
- android:gravity="center_vertical" />
-
- <View
- android:layout_width="1dip"
- android:layout_height="match_parent"
- android:gravity="right"
- android:layout_marginBottom="8dp"
- android:layout_marginTop="8dp"
- android:background="?android:attr/listDivider" />
-
- <ImageButton
- android:id="@+id/action_encrypt_file"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:padding="8dp"
- android:src="@drawable/ic_save_grey_24dp"
- android:layout_gravity="center_vertical"
- style="@style/SelectableItem" />
+ android:layout_height="match_parent" />
- </LinearLayout>
- </LinearLayout>
-</ScrollView> \ No newline at end of file
+</LinearLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml
index 67f17fa81..809e64f02 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml
@@ -5,7 +5,7 @@
<include
android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ layout="@layout/toolbar_standalone_white" />
<!--
fitsSystemWindows and layout_marginTop from
diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml
index 6f7b636e1..3c21291cd 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml
@@ -21,50 +21,5 @@
android:hint="@string/encrypt_content_edit_text_hint"
android:layout_weight="1" />
- <View
- android:layout_width="match_parent"
- android:layout_height="1dip"
- android:background="?android:attr/listDivider" />
-
- <LinearLayout
- android:id="@+id/action_encrypt_share"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:clickable="true"
- style="@style/SelectableItem"
- android:orientation="horizontal">
-
- <TextView
- android:paddingLeft="8dp"
- android:paddingRight="8dp"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:text="@string/btn_share_encrypted_signed"
- android:drawableRight="@drawable/ic_share_grey_24dp"
- android:drawablePadding="8dp"
- android:gravity="center_vertical"
- android:layout_weight="1" />
-
- <View
- android:layout_width="1dip"
- android:layout_height="match_parent"
- android:gravity="right"
- android:layout_marginBottom="8dp"
- android:layout_marginTop="8dp"
- android:background="?android:attr/listDivider" />
-
- <ImageButton
- android:id="@+id/action_encrypt_clipboard"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:padding="8dp"
- android:src="@drawable/ic_content_copy_grey_24dp"
- android:layout_gravity="center_vertical"
- style="@style/SelectableItem" />
-
- </LinearLayout>
-
</LinearLayout>
</ScrollView>
diff --git a/OpenKeychain/src/main/res/layout/help_activity.xml b/OpenKeychain/src/main/res/layout/help_activity.xml
index 1722f03ea..0b309a8b1 100644
--- a/OpenKeychain/src/main/res/layout/help_activity.xml
+++ b/OpenKeychain/src/main/res/layout/help_activity.xml
@@ -1,33 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:orientation="vertical">
<include
- android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ android:id="@+id/toolbar_tabs"
+ layout="@layout/toolbar_tabs" />
- <LinearLayout
- android:layout_below="@id/toolbar_include"
+ <android.support.v4.view.ViewPager
+ android:id="@+id/pager"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:elevation="4dp">
+ android:layout_height="match_parent" />
- <com.astuetz.PagerSlidingTabStrip
- android:id="@+id/sliding_tab_layout"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
- android:textColor="@color/tab_text"
- app:pstsTextColorSelected="@color/tab_text_selected"
- app:pstsIndicatorColor="@color/tab_indicator" />
-
- <android.support.v4.view.ViewPager
- android:id="@+id/pager"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
-
- </LinearLayout>
-</RelativeLayout> \ No newline at end of file
+</LinearLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/toolbar_inner_layout.xml b/OpenKeychain/src/main/res/layout/toolbar_inner_layout.xml
new file mode 100644
index 000000000..047225394
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/toolbar_inner_layout.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <!--
+ We always have windowTranslucentStatus=true to get under the status bar.
+ Thus this ImageView is the part under the status bar!
+ -->
+ <ImageView
+ android:id="@+id/status_bar"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/statusbar_height"
+ android:background="@color/transparent" />
+
+ <android.support.v7.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_below="@+id/status_bar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?attr/actionBarSize"
+ android:background="@color/transparent"
+ app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+ app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
+ tools:ignore="UnusedAttribute" />
+</merge> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/toolbar_inner_layout_white.xml b/OpenKeychain/src/main/res/layout/toolbar_inner_layout_white.xml
new file mode 100644
index 000000000..a626efb09
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/toolbar_inner_layout_white.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <!--
+ We always have windowTranslucentStatus=true to get under the status bar.
+ Thus this ImageView is the part under the status bar!
+ -->
+ <ImageView
+ android:id="@+id/status_bar"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/statusbar_height"
+ android:background="@color/transparent" />
+
+ <android.support.v7.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_below="@+id/status_bar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?attr/actionBarSize"
+ android:background="@color/transparent"
+ app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
+ app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
+ tools:ignore="UnusedAttribute" />
+</merge> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone.xml
index 950c2f2ae..4ab94060c 100644
--- a/OpenKeychain/src/main/res/layout/toolbar_standalone.xml
+++ b/OpenKeychain/src/main/res/layout/toolbar_standalone.xml
@@ -1,31 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar_include"
android:elevation="4dp"
+ android:background="?attr/colorPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content">
- <!--
- We always have windowTranslucentStatus=true to get under the status bar.
- Thus this ImageView is the part under the status bar!
- -->
- <ImageView
- android:id="@+id/status_bar"
- android:layout_width="match_parent"
- android:layout_height="@dimen/statusbar_height"
- android:background="?attr/colorPrimary" />
-
- <android.support.v7.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_below="@+id/status_bar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
- app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
- tools:ignore="UnusedAttribute" />
+ <include
+ android:id="@+id/toolbar_inner_layout"
+ layout="@layout/toolbar_inner_layout" />
</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml
index 0336b51fd..b8c190a36 100644
--- a/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml
+++ b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml
@@ -1,31 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar_include"
android:elevation="4dp"
+ android:background="@color/android_orange_light"
android:layout_width="match_parent"
android:layout_height="wrap_content">
- <!--
- We always have windowTranslucentStatus=true to get under the status bar.
- Thus this ImageView is the part under the status bar!
- -->
- <ImageView
- android:id="@+id/status_bar"
- android:layout_width="match_parent"
- android:layout_height="@dimen/statusbar_height"
- android:background="@color/android_orange_light" />
-
- <android.support.v7.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_below="@+id/status_bar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="?attr/actionBarSize"
- android:background="@color/android_orange_light"
- app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
- tools:ignore="UnusedAttribute" />
+ <include
+ android:id="@+id/toolbar_inner_layout"
+ layout="@layout/toolbar_inner_layout" />
</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone_white.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone_white.xml
new file mode 100644
index 000000000..d4269c2ba
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/toolbar_standalone_white.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/toolbar_include"
+ android:elevation="4dp"
+ android:background="@color/white"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <include
+ android:id="@+id/toolbar_inner_layout"
+ layout="@layout/toolbar_inner_layout_white" />
+
+</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/toolbar_tabs.xml b/OpenKeychain/src/main/res/layout/toolbar_tabs.xml
new file mode 100644
index 000000000..91efda682
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/toolbar_tabs.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/toolbar_include"
+ android:elevation="4dp"
+ android:background="?attr/colorPrimary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <include
+ android:id="@+id/toolbar_inner_layout"
+ layout="@layout/toolbar_inner_layout" />
+
+ <com.astuetz.PagerSlidingTabStrip
+ android:id="@+id/sliding_tab_layout"
+ android:layout_below="@id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="?attr/colorPrimary"
+ android:textColor="@color/tab_text"
+ app:pstsTextColorSelected="@color/tab_text_selected"
+ app:pstsIndicatorColor="@color/tab_indicator" />
+
+</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_activity.xml b/OpenKeychain/src/main/res/layout/view_key_adv_activity.xml
index 59888c25a..0b309a8b1 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_activity.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_activity.xml
@@ -1,41 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:orientation="vertical">
<include
- android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ android:id="@+id/toolbar_tabs"
+ layout="@layout/toolbar_tabs" />
- <LinearLayout
- android:layout_below="@id/toolbar_include"
+ <android.support.v4.view.ViewPager
+ android:id="@+id/pager"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
+ android:layout_height="match_parent" />
- <View
- android:layout_width="match_parent"
- android:layout_height="1dip"
- android:background="?android:attr/listDivider"
- android:visibility="gone"
- android:id="@+id/view_key_status_divider" />
-
- <com.astuetz.PagerSlidingTabStrip
- android:id="@+id/view_key_sliding_tab_layout"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
- android:textColor="@color/tab_text"
- app:pstsTextColorSelected="@color/tab_text_selected"
- app:pstsIndicatorColor="@color/tab_indicator" />
-
- <android.support.v4.view.ViewPager
- android:id="@+id/view_key_pager"
- android:layout_width="match_parent"
- android:layout_height="0px"
- android:layout_weight="1"
- android:background="@android:color/white" />
-
- </LinearLayout>
-</RelativeLayout> \ No newline at end of file
+</LinearLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml b/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml
index 9a26d1757..f4aeb76c9 100644
--- a/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml
+++ b/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <item
+ android:id="@+id/encrypt_save"
+ android:title="@string/btn_encrypt_save_file"
+ android:icon="@drawable/ic_action_encrypt_save_24dp"
+ app:showAsAction="always" />
+
+ <item
+ android:id="@+id/encrypt_share"
+ android:title="@string/btn_encrypt_share_file"
+ android:icon="@drawable/ic_action_encrypt_share_24dp"
+ app:showAsAction="always" />
+
<item
android:id="@+id/check_use_symmetric"
android:title="@string/label_symmetric"
diff --git a/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml b/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml
index 71d254bb9..bb9f4058a 100644
--- a/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml
+++ b/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <item
+ android:id="@+id/encrypt_copy"
+ android:title="@string/btn_copy_encrypted_signed"
+ android:icon="@drawable/ic_action_encrypt_copy_24dp"
+ app:showAsAction="always" />
+
+ <item
+ android:id="@+id/encrypt_share"
+ android:title="@string/btn_share_encrypted_signed"
+ android:icon="@drawable/ic_action_encrypt_share_24dp"
+ app:showAsAction="always" />
+
<item
android:id="@+id/check_use_symmetric"
android:title="@string/label_symmetric"
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index 051383a36..39af9ca28 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -11,8 +11,8 @@
<!-- title -->
<string name="title_select_recipients">"Select Keys"</string>
<string name="title_select_secret_key">"Select Your Key"</string>
- <string name="title_encrypt_text">"Encrypt Text"</string>
- <string name="title_encrypt_files">"Encrypt Files"</string>
+ <string name="title_encrypt_text">"Encrypt"</string>
+ <string name="title_encrypt_files">"Encrypt"</string>
<string name="title_decrypt">"Decrypt"</string>
<string name="title_unlock">"Unlock Key"</string>
<string name="title_add_subkey">"Add subkey"</string>
@@ -25,7 +25,7 @@
<string name="title_share_fingerprint_with">"Share fingerprint with…"</string>
<string name="title_share_key">"Share key with…"</string>
<string name="title_share_file">"Share file with…"</string>
- <string name="title_share_message">"Share message with…"</string>
+ <string name="title_share_message">"Share text with…"</string>
<string name="title_encrypt_to_file">"Encrypt To File"</string>
<string name="title_decrypt_to_file">"Decrypt To File"</string>
<string name="title_import_keys">"Import Keys"</string>
@@ -72,9 +72,10 @@
<!-- button -->
<string name="btn_decrypt_verify_file">"Decrypt, verify, and save file"</string>
- <string name="btn_decrypt_verify_message">"Decrypt and verify message"</string>
+ <string name="btn_decrypt_verify_message">"Decrypt and verify text"</string>
<string name="btn_encrypt_file">"Encrypt and save file"</string>
<string name="btn_encrypt_share_file">"Encrypt and share file"</string>
+ <string name="btn_encrypt_save_file">"Encrypt and save file"</string>
<string name="btn_save">"Save"</string>
<string name="btn_do_not_save">"Cancel"</string>
<string name="btn_delete">"Delete"</string>
@@ -86,7 +87,8 @@
<string name="btn_no">"No"</string>
<string name="btn_match">"Fingerprints match"</string>
<string name="btn_lookup_key">"Lookup key"</string>
- <string name="btn_share_encrypted_signed">"Encrypt and share message"</string>
+ <string name="btn_share_encrypted_signed">"Encrypt and share text"</string>
+ <string name="btn_copy_encrypted_signed">"Encrypt and copy text"</string>
<string name="btn_view_cert_key">"View certification key"</string>
<string name="btn_create_key">"Create key"</string>
<string name="btn_add_files">"Add file(s)"</string>
@@ -118,7 +120,7 @@
<string name="menu_export_log">"Export Log"</string>
<!-- label -->
- <string name="label_message">"Message"</string>
+ <string name="label_message">"Text"</string>
<string name="label_file">"File"</string>
<string name="label_files">"File(s)"</string>
<string name="label_file_colon">"File:"</string>
@@ -143,7 +145,7 @@
<string name="label_symmetric">"Encrypt with passphrase"</string>
<string name="label_passphrase_cache_ttl">"Cache time"</string>
<string name="label_passphrase_cache_subs">"Cache passphrases by subkey"</string>
- <string name="label_message_compression">"Message compression"</string>
+ <string name="label_message_compression">"Text compression"</string>
<string name="label_file_compression">"File compression"</string>
<string name="label_keyservers">"Keyservers"</string>
<string name="label_key_id">"Key ID"</string>
@@ -556,7 +558,7 @@
<string name="key_trust_maybe">"This key is neither revoked nor expired.\nYou haven’t confirmed it, but you may choose to trust it."</string>
<string name="key_trust_revoked">"This key has been revoked by its owner. You should not trust it."</string>
<string name="key_trust_expired">"This key has expired. You should not trust it."</string>
- <string name="key_trust_old_keys">" It may be OK to use this to decrypt an old message dating from the time when this key was valid."</string>
+ <string name="key_trust_old_keys">"It may be OK to use this to decrypt an old message dating from the time when this key was valid."</string>
<string name="key_trust_no_cloud_evidence">"No proof from the cloud on this key’s trustworthiness."</string>
<string name="key_trust_start_cloud_search">"Start search"</string>
<string name="key_trust_results_prefix">"Keybase.io offers “proofs” which assert that the owner of this key: "</string>