diff options
Diffstat (limited to 'OpenKeychain/src/main')
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.pngBinary files differ new file mode 100644 index 000000000..25a7ed445 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_copy_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..ef17796fb --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_save_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..402d792c0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_share_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..d5a928783 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_black_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..c48a3b463 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_comment_text_grey600_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..9517e1fec --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_copy_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..162981140 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_save_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..779ba94d3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_share_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..4ebf8a227 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_black_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..d50c008c7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_comment_text_grey600_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..9df8ff01a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_copy_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..eef0635b7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_save_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..d359cd6ab --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_share_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..ed2b2525f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_black_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..0e14a9500 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_comment_text_grey600_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..cf184c78d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_copy_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..5620e2595 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_save_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..b364c7603 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_share_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..08f59ea1e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_black_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..de5de6042 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_comment_text_grey600_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..c3078ee92 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_copy_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..4146f9262 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_save_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..925cb2d9e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_share_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..c5d79caff --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_black_24dp.png 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.pngBinary files differ new file mode 100644 index 000000000..9dae1a4a0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_comment_text_grey600_24dp.png 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> | 
