mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-08-13 15:53:53 -04:00
action encrypt to contact in view and multi select
This commit is contained in:
parent
caf3b02042
commit
a2f0667593
@ -113,4 +113,17 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/SectionHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="4dp"
|
||||||
|
android:text="@string/section_actions" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/action_encrypt"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/key_view_action_encrypt" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -2,7 +2,10 @@
|
|||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/delete_entry"
|
android:id="@+id/menu_key_list_public_multi_encrypt"
|
||||||
|
android:title="@string/menu_encrypt_to"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/menu_key_list_public_multi_delete"
|
||||||
android:icon="@android:drawable/ic_menu_delete"
|
android:icon="@android:drawable/ic_menu_delete"
|
||||||
android:title="@string/menu_delete_key"/>
|
android:title="@string/menu_delete_key"/>
|
||||||
|
|
@ -55,6 +55,7 @@
|
|||||||
<string name="section_defaults">Defaults</string>
|
<string name="section_defaults">Defaults</string>
|
||||||
<string name="section_advanced">Advanced</string>
|
<string name="section_advanced">Advanced</string>
|
||||||
<string name="section_master_key">Master Key</string>
|
<string name="section_master_key">Master Key</string>
|
||||||
|
<string name="section_actions">Actions</string>
|
||||||
|
|
||||||
<!-- button -->
|
<!-- button -->
|
||||||
<string name="btn_sign_to_clipboard">Sign (Clipboard)</string>
|
<string name="btn_sign_to_clipboard">Sign (Clipboard)</string>
|
||||||
@ -102,6 +103,7 @@
|
|||||||
<string name="menu_sign_key">Sign key</string>
|
<string name="menu_sign_key">Sign key</string>
|
||||||
<string name="menu_beam_preferences">Beam settings</string>
|
<string name="menu_beam_preferences">Beam settings</string>
|
||||||
<string name="menu_key_edit_cancel">Cancel</string>
|
<string name="menu_key_edit_cancel">Cancel</string>
|
||||||
|
<string name="menu_encrypt_to">Encrypt to…</string>
|
||||||
|
|
||||||
<!-- label -->
|
<!-- label -->
|
||||||
<string name="label_sign">Sign</string>
|
<string name="label_sign">Sign</string>
|
||||||
@ -357,4 +359,7 @@
|
|||||||
<item quantity="other">%d keys selected.</item>
|
<item quantity="other">%d keys selected.</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
|
|
||||||
|
<!-- Key view -->
|
||||||
|
<string name="key_view_action_encrypt">Encrypt to this contact</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -22,6 +22,7 @@ import java.util.Set;
|
|||||||
import org.sufficientlysecure.keychain.Id;
|
import org.sufficientlysecure.keychain.Id;
|
||||||
import org.sufficientlysecure.keychain.R;
|
import org.sufficientlysecure.keychain.R;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract;
|
import org.sufficientlysecure.keychain.provider.KeychainContract;
|
||||||
|
import org.sufficientlysecure.keychain.provider.ProviderHelper;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.UserIds;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.UserIds;
|
||||||
import org.sufficientlysecure.keychain.ui.adapter.KeyListPublicAdapter;
|
import org.sufficientlysecure.keychain.ui.adapter.KeyListPublicAdapter;
|
||||||
@ -105,7 +106,7 @@ public class KeyListPublicFragment extends Fragment implements AdapterView.OnIte
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
||||||
android.view.MenuInflater inflater = getActivity().getMenuInflater();
|
android.view.MenuInflater inflater = getActivity().getMenuInflater();
|
||||||
inflater.inflate(R.menu.key_list_multi_selection, menu);
|
inflater.inflate(R.menu.key_list_public_multi, menu);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,8 +118,6 @@ public class KeyListPublicFragment extends Fragment implements AdapterView.OnIte
|
|||||||
@Override
|
@Override
|
||||||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||||
Set<Integer> positions = mAdapter.getCurrentCheckedPosition();
|
Set<Integer> positions = mAdapter.getCurrentCheckedPosition();
|
||||||
switch (item.getItemId()) {
|
|
||||||
case R.id.delete_entry:
|
|
||||||
|
|
||||||
// get IDs for checked positions as long array
|
// get IDs for checked positions as long array
|
||||||
long[] ids = new long[positions.size()];
|
long[] ids = new long[positions.size()];
|
||||||
@ -127,10 +126,19 @@ public class KeyListPublicFragment extends Fragment implements AdapterView.OnIte
|
|||||||
ids[i] = mAdapter.getItemId(pos);
|
ids[i] = mAdapter.getItemId(pos);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case R.id.menu_key_list_public_multi_encrypt: {
|
||||||
|
encrypt(ids);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case R.id.menu_key_list_public_multi_delete: {
|
||||||
showDeleteKeyDialog(ids);
|
showDeleteKeyDialog(ids);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,8 +172,7 @@ public class KeyListPublicFragment extends Fragment implements AdapterView.OnIte
|
|||||||
// setListShown(false);
|
// setListShown(false);
|
||||||
|
|
||||||
// Create an empty adapter we will use to display the loaded data.
|
// Create an empty adapter we will use to display the loaded data.
|
||||||
mAdapter = new KeyListPublicAdapter(getActivity(), null, Id.type.public_key,
|
mAdapter = new KeyListPublicAdapter(getActivity(), null, Id.type.public_key, USER_ID_INDEX);
|
||||||
USER_ID_INDEX);
|
|
||||||
mStickyList.setAdapter(mAdapter);
|
mStickyList.setAdapter(mAdapter);
|
||||||
|
|
||||||
// Prepare the loader. Either re-connect with an existing one,
|
// Prepare the loader. Either re-connect with an existing one,
|
||||||
@ -227,6 +234,20 @@ public class KeyListPublicFragment extends Fragment implements AdapterView.OnIte
|
|||||||
startActivity(detailsIntent);
|
startActivity(detailsIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void encrypt(long[] keyRingRowIds) {
|
||||||
|
// get master key ids from row ids
|
||||||
|
long[] keyRingIds = new long[keyRingRowIds.length];
|
||||||
|
for (int i = 0; i < keyRingRowIds.length; i++) {
|
||||||
|
keyRingIds[i] = ProviderHelper.getPublicMasterKeyId(getActivity(), keyRingRowIds[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
Intent intent = new Intent(getActivity(), EncryptActivity.class);
|
||||||
|
intent.setAction(EncryptActivity.ACTION_ENCRYPT);
|
||||||
|
intent.putExtra(EncryptActivity.EXTRA_ENCRYPTION_KEY_IDS, keyRingIds);
|
||||||
|
// used instead of startActivity set actionbar based on callingPackage
|
||||||
|
startActivityForResult(intent, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show dialog to delete key
|
* Show dialog to delete key
|
||||||
*
|
*
|
||||||
|
@ -50,6 +50,9 @@ import android.os.Bundle;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.text.format.DateFormat;
|
import android.text.format.DateFormat;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.View.OnClickListener;
|
||||||
|
import android.widget.Button;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
@ -67,6 +70,7 @@ public class KeyViewActivity extends KeyActivity implements CreateNdefMessageCal
|
|||||||
private TextView mFingerint;
|
private TextView mFingerint;
|
||||||
private TextView mExpiry;
|
private TextView mExpiry;
|
||||||
private TextView mCreation;
|
private TextView mCreation;
|
||||||
|
private Button mActionEncrypt;
|
||||||
|
|
||||||
// NFC
|
// NFC
|
||||||
private NfcAdapter mNfcAdapter;
|
private NfcAdapter mNfcAdapter;
|
||||||
@ -86,6 +90,7 @@ public class KeyViewActivity extends KeyActivity implements CreateNdefMessageCal
|
|||||||
mExpiry = (TextView) this.findViewById(R.id.expiry);
|
mExpiry = (TextView) this.findViewById(R.id.expiry);
|
||||||
mCreation = (TextView) this.findViewById(R.id.creation);
|
mCreation = (TextView) this.findViewById(R.id.creation);
|
||||||
mAlgorithm = (TextView) this.findViewById(R.id.algorithm);
|
mAlgorithm = (TextView) this.findViewById(R.id.algorithm);
|
||||||
|
mActionEncrypt = (Button) this.findViewById(R.id.action_encrypt);
|
||||||
|
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
mDataUri = intent.getData();
|
mDataUri = intent.getData();
|
||||||
@ -172,6 +177,19 @@ public class KeyViewActivity extends KeyActivity implements CreateNdefMessageCal
|
|||||||
mCreation.setText(DateFormat.getDateFormat(getApplicationContext()).format(
|
mCreation.setText(DateFormat.getDateFormat(getApplicationContext()).format(
|
||||||
PgpKeyHelper.getCreationDate(mPublicKey)));
|
PgpKeyHelper.getCreationDate(mPublicKey)));
|
||||||
mAlgorithm.setText(PgpKeyHelper.getAlgorithmInfo(mPublicKey));
|
mAlgorithm.setText(PgpKeyHelper.getAlgorithmInfo(mPublicKey));
|
||||||
|
|
||||||
|
mActionEncrypt.setOnClickListener(new OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
long[] encryptionKeyIds = new long[] { mPublicKey.getKeyID() };
|
||||||
|
Intent intent = new Intent(KeyViewActivity.this, EncryptActivity.class);
|
||||||
|
intent.setAction(EncryptActivity.ACTION_ENCRYPT);
|
||||||
|
intent.putExtra(EncryptActivity.EXTRA_ENCRYPTION_KEY_IDS, encryptionKeyIds);
|
||||||
|
// used instead of startActivity set actionbar based on callingPackage
|
||||||
|
startActivityForResult(intent, 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user