object oriented split user id
This commit is contained in:
@@ -31,7 +31,6 @@ import android.os.Bundle;
|
||||
import android.os.Message;
|
||||
import android.os.Messenger;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.support.v4.app.LoaderManager;
|
||||
import android.support.v4.content.CursorLoader;
|
||||
import android.support.v4.content.Loader;
|
||||
@@ -247,14 +246,14 @@ public class CertifyKeyFragment extends LoaderFragment
|
||||
while (!data.isAfterLast()) {
|
||||
long masterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
|
||||
String userId = data.getString(INDEX_USER_ID);
|
||||
String[] pieces = KeyRing.splitUserId(userId);
|
||||
KeyRing.UserId pieces = KeyRing.splitUserId(userId);
|
||||
|
||||
// Two cases:
|
||||
|
||||
boolean grouped = masterKeyId == lastMasterKeyId;
|
||||
boolean subGrouped = data.isFirst() || grouped && lastName.equals(pieces[0]);
|
||||
boolean subGrouped = data.isFirst() || grouped && lastName.equals(pieces.name);
|
||||
// Remember for next loop
|
||||
lastName = pieces[0];
|
||||
lastName = pieces.name;
|
||||
|
||||
Log.d(Constants.TAG, Long.toString(masterKeyId, 16) + (grouped ? "grouped" : "not grouped"));
|
||||
|
||||
|
||||
@@ -186,12 +186,12 @@ public class CreateKeyFinalFragment extends Fragment {
|
||||
Algorithm.RSA, 4096, null, KeyFlags.SIGN_DATA, 0L));
|
||||
mSaveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(
|
||||
Algorithm.RSA, 4096, null, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE, 0L));
|
||||
String userId = KeyRing.createUserId(mName, mEmail, null);
|
||||
String userId = KeyRing.createUserId(new KeyRing.UserId(mName, mEmail, null));
|
||||
mSaveKeyringParcel.mAddUserIds.add(userId);
|
||||
mSaveKeyringParcel.mChangePrimaryUserId = userId;
|
||||
if (mAdditionalEmails != null && mAdditionalEmails.size() > 0) {
|
||||
for (String email : mAdditionalEmails) {
|
||||
String thisUserId = KeyRing.createUserId(mName, email, null);
|
||||
String thisUserId = KeyRing.createUserId(new KeyRing.UserId(mName, email, null));
|
||||
mSaveKeyringParcel.mAddUserIds.add(thisUserId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,14 +128,14 @@ public abstract class DecryptFragment extends Fragment {
|
||||
mSignatureKeyId = signatureResult.getKeyId();
|
||||
|
||||
String userId = signatureResult.getPrimaryUserId();
|
||||
String[] userIdSplit = KeyRing.splitUserId(userId);
|
||||
if (userIdSplit[0] != null) {
|
||||
mSignatureName.setText(userIdSplit[0]);
|
||||
KeyRing.UserId userIdSplit = KeyRing.splitUserId(userId);
|
||||
if (userIdSplit.name != null) {
|
||||
mSignatureName.setText(userIdSplit.name);
|
||||
} else {
|
||||
mSignatureName.setText(R.string.user_id_no_name);
|
||||
}
|
||||
if (userIdSplit[1] != null) {
|
||||
mSignatureEmail.setText(userIdSplit[1]);
|
||||
if (userIdSplit.email != null) {
|
||||
mSignatureEmail.setText(userIdSplit.email);
|
||||
} else {
|
||||
mSignatureEmail.setText(KeyFormattingUtils.beautifyKeyIdWithPrefix(getActivity(), mSignatureKeyId));
|
||||
}
|
||||
|
||||
@@ -545,7 +545,7 @@ public class EditKeyFragment extends LoaderFragment implements
|
||||
Messenger messenger = new Messenger(returnHandler);
|
||||
|
||||
// pre-fill out primary name
|
||||
String predefinedName = KeyRing.splitUserId(mPrimaryUserId)[0];
|
||||
String predefinedName = KeyRing.splitUserId(mPrimaryUserId).name;
|
||||
AddUserIdDialogFragment addUserIdDialog = AddUserIdDialogFragment.newInstance(messenger,
|
||||
predefinedName);
|
||||
|
||||
|
||||
@@ -273,9 +273,9 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi
|
||||
if (!isModeSymmetric() && mEncryptionUserIds != null) {
|
||||
Set<String> users = new HashSet<>();
|
||||
for (String user : mEncryptionUserIds) {
|
||||
String[] userId = KeyRing.splitUserId(user);
|
||||
if (userId[1] != null) {
|
||||
users.add(userId[1]);
|
||||
KeyRing.UserId userId = KeyRing.splitUserId(user);
|
||||
if (userId.email != null) {
|
||||
users.add(userId.email);
|
||||
}
|
||||
}
|
||||
sendIntent.putExtra(Intent.EXTRA_EMAIL, users.toArray(new String[users.size()]));
|
||||
|
||||
@@ -36,7 +36,6 @@ import org.sufficientlysecure.keychain.pgp.PgpConstants;
|
||||
import org.sufficientlysecure.keychain.pgp.SignEncryptParcel;
|
||||
import org.sufficientlysecure.keychain.ui.util.Notify;
|
||||
import org.sufficientlysecure.keychain.util.Log;
|
||||
import org.sufficientlysecure.keychain.util.Preferences;
|
||||
import org.sufficientlysecure.keychain.util.ShareHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -253,9 +252,9 @@ public class EncryptTextActivity extends EncryptActivity implements EncryptActiv
|
||||
if (!isModeSymmetric() && mEncryptionUserIds != null) {
|
||||
Set<String> users = new HashSet<>();
|
||||
for (String user : mEncryptionUserIds) {
|
||||
String[] userId = KeyRing.splitUserId(user);
|
||||
if (userId[1] != null) {
|
||||
users.add(userId[1]);
|
||||
KeyRing.UserId userId = KeyRing.splitUserId(user);
|
||||
if (userId.email != null) {
|
||||
users.add(userId.email);
|
||||
}
|
||||
}
|
||||
// pass trough email addresses as extra for email applications
|
||||
|
||||
@@ -688,14 +688,14 @@ public class KeyListFragment extends LoaderFragment
|
||||
|
||||
{ // set name and stuff, common to both key types
|
||||
String userId = cursor.getString(INDEX_USER_ID);
|
||||
String[] userIdSplit = KeyRing.splitUserId(userId);
|
||||
if (userIdSplit[0] != null) {
|
||||
h.mMainUserId.setText(highlighter.highlight(userIdSplit[0]));
|
||||
KeyRing.UserId userIdSplit = KeyRing.splitUserId(userId);
|
||||
if (userIdSplit.name != null) {
|
||||
h.mMainUserId.setText(highlighter.highlight(userIdSplit.name));
|
||||
} else {
|
||||
h.mMainUserId.setText(R.string.user_id_no_name);
|
||||
}
|
||||
if (userIdSplit[1] != null) {
|
||||
h.mMainUserIdRest.setText(highlighter.highlight(userIdSplit[1]));
|
||||
if (userIdSplit.email != null) {
|
||||
h.mMainUserIdRest.setText(highlighter.highlight(userIdSplit.email));
|
||||
h.mMainUserIdRest.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
h.mMainUserIdRest.setVisibility(View.GONE);
|
||||
|
||||
@@ -211,9 +211,9 @@ public class PassphraseDialogActivity extends FragmentActivity {
|
||||
// the catch clause doesn't return.
|
||||
try {
|
||||
String mainUserId = mSecretRing.getPrimaryUserIdWithFallback();
|
||||
String[] mainUserIdSplit = KeyRing.splitUserId(mainUserId);
|
||||
if (mainUserIdSplit[0] != null) {
|
||||
userId = mainUserIdSplit[0];
|
||||
KeyRing.UserId mainUserIdSplit = KeyRing.splitUserId(mainUserId);
|
||||
if (mainUserIdSplit.name != null) {
|
||||
userId = mainUserIdSplit.name;
|
||||
} else {
|
||||
userId = getString(R.string.user_id_no_name);
|
||||
}
|
||||
|
||||
@@ -841,9 +841,9 @@ public class ViewKeyActivity extends BaseActivity implements
|
||||
case LOADER_ID_UNIFIED: {
|
||||
if (data.moveToFirst()) {
|
||||
// get name, email, and comment from USER_ID
|
||||
String[] mainUserId = KeyRing.splitUserId(data.getString(INDEX_USER_ID));
|
||||
if (mainUserId[0] != null) {
|
||||
mName.setText(mainUserId[0]);
|
||||
KeyRing.UserId mainUserId = KeyRing.splitUserId(data.getString(INDEX_USER_ID));
|
||||
if (mainUserId.name != null) {
|
||||
mName.setText(mainUserId.name);
|
||||
} else {
|
||||
mName.setText(R.string.user_id_no_name);
|
||||
}
|
||||
|
||||
@@ -197,9 +197,9 @@ public class ViewKeyAdvActivity extends BaseActivity implements
|
||||
case LOADER_ID_UNIFIED: {
|
||||
if (data.moveToFirst()) {
|
||||
// get name, email, and comment from USER_ID
|
||||
String[] mainUserId = KeyRing.splitUserId(data.getString(INDEX_USER_ID));
|
||||
if (mainUserId[0] != null) {
|
||||
setTitle(mainUserId[0]);
|
||||
KeyRing.UserId mainUserId = KeyRing.splitUserId(data.getString(INDEX_USER_ID));
|
||||
if (mainUserId.name != null) {
|
||||
setTitle(mainUserId.name);
|
||||
} else {
|
||||
setTitle(R.string.user_id_no_name);
|
||||
}
|
||||
|
||||
@@ -237,9 +237,9 @@ public class ViewKeyAdvCertsFragment extends LoaderFragment implements
|
||||
TextView wSignStatus = (TextView) view.findViewById(R.id.signStatus);
|
||||
|
||||
String signerKeyId = KeyFormattingUtils.beautifyKeyIdWithPrefix(getActivity(), cursor.getLong(mIndexSignerKeyId));
|
||||
String[] userId = KeyRing.splitUserId(cursor.getString(mIndexSignerUserId));
|
||||
if (userId[0] != null) {
|
||||
wSignerName.setText(userId[0]);
|
||||
KeyRing.UserId userId = KeyRing.splitUserId(cursor.getString(mIndexSignerUserId));
|
||||
if (userId.name != null) {
|
||||
wSignerName.setText(userId.name);
|
||||
} else {
|
||||
wSignerName.setText(R.string.user_id_no_name);
|
||||
}
|
||||
|
||||
@@ -140,25 +140,25 @@ public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> {
|
||||
|
||||
// main user id
|
||||
String userId = entry.getUserIds().get(0);
|
||||
String[] userIdSplit = KeyRing.splitUserId(userId);
|
||||
KeyRing.UserId userIdSplit = KeyRing.splitUserId(userId);
|
||||
|
||||
// name
|
||||
if (userIdSplit[0] != null) {
|
||||
if (userIdSplit.name != null) {
|
||||
// show red user id if it is a secret key
|
||||
if (entry.isSecretKey()) {
|
||||
holder.mainUserId.setText(mActivity.getString(R.string.secret_key)
|
||||
+ " " + userIdSplit[0]);
|
||||
+ " " + userIdSplit.name);
|
||||
} else {
|
||||
holder.mainUserId.setText(highlighter.highlight(userIdSplit[0]));
|
||||
holder.mainUserId.setText(highlighter.highlight(userIdSplit.name));
|
||||
}
|
||||
} else {
|
||||
holder.mainUserId.setText(R.string.user_id_no_name);
|
||||
}
|
||||
|
||||
// email
|
||||
if (userIdSplit[1] != null) {
|
||||
if (userIdSplit.email != null) {
|
||||
holder.mainUserIdRest.setVisibility(View.VISIBLE);
|
||||
holder.mainUserIdRest.setText(highlighter.highlight(userIdSplit[1]));
|
||||
holder.mainUserIdRest.setText(highlighter.highlight(userIdSplit.email));
|
||||
} else {
|
||||
holder.mainUserIdRest.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ import android.widget.TextView;
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.pgp.KeyRing;
|
||||
import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction;
|
||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -83,9 +82,9 @@ public class MultiUserIdsAdapter extends CursorAdapter {
|
||||
|
||||
{ // first one
|
||||
String userId = uids.get(0);
|
||||
String[] splitUserId = KeyRing.splitUserId(userId);
|
||||
if (splitUserId[0] != null) {
|
||||
vName.setText(splitUserId[0]);
|
||||
KeyRing.UserId splitUserId = KeyRing.splitUserId(userId);
|
||||
if (splitUserId.name != null) {
|
||||
vName.setText(splitUserId.name);
|
||||
} else {
|
||||
vName.setText(R.string.user_id_no_name);
|
||||
}
|
||||
@@ -93,9 +92,9 @@ public class MultiUserIdsAdapter extends CursorAdapter {
|
||||
if (isHeader == 1) {
|
||||
vHeaderId.setVisibility(View.VISIBLE);
|
||||
String message;
|
||||
if (splitUserId[0] != null) {
|
||||
if (splitUserId.name != null) {
|
||||
message = mContext.getString(R.string.section_uids_to_certify) +
|
||||
splitUserId[0];
|
||||
splitUserId.name;
|
||||
} else {
|
||||
message = mContext.getString(R.string.section_uids_to_certify) +
|
||||
context.getString(R.string.user_id_no_name);
|
||||
@@ -108,13 +107,13 @@ public class MultiUserIdsAdapter extends CursorAdapter {
|
||||
|
||||
StringBuilder lines = new StringBuilder();
|
||||
for (String uid : uids) {
|
||||
String[] splitUserId = KeyRing.splitUserId(uid);
|
||||
if (splitUserId[1] == null) {
|
||||
KeyRing.UserId splitUserId = KeyRing.splitUserId(uid);
|
||||
if (splitUserId.email == null) {
|
||||
continue;
|
||||
}
|
||||
lines.append(splitUserId[1]);
|
||||
if (splitUserId[2] != null) {
|
||||
lines.append(" (").append(splitUserId[2]).append(")");
|
||||
lines.append(splitUserId.email);
|
||||
if (splitUserId.comment != null) {
|
||||
lines.append(" (").append(splitUserId.comment).append(")");
|
||||
}
|
||||
lines.append('\n');
|
||||
}
|
||||
|
||||
@@ -122,16 +122,16 @@ abstract public class SelectKeyCursorAdapter extends CursorAdapter {
|
||||
ViewHolderItem h = (ViewHolderItem) view.getTag();
|
||||
|
||||
String userId = cursor.getString(mIndexUserId);
|
||||
String[] userIdSplit = KeyRing.splitUserId(userId);
|
||||
KeyRing.UserId userIdSplit = KeyRing.splitUserId(userId);
|
||||
|
||||
if (userIdSplit[0] != null) {
|
||||
h.mainUserId.setText(highlighter.highlight(userIdSplit[0]));
|
||||
if (userIdSplit.name != null) {
|
||||
h.mainUserId.setText(highlighter.highlight(userIdSplit.name));
|
||||
} else {
|
||||
h.mainUserId.setText(R.string.user_id_no_name);
|
||||
}
|
||||
if (userIdSplit[1] != null) {
|
||||
if (userIdSplit.email != null) {
|
||||
h.mainUserIdRest.setVisibility(View.VISIBLE);
|
||||
h.mainUserIdRest.setText(highlighter.highlight(userIdSplit[1]));
|
||||
h.mainUserIdRest.setText(highlighter.highlight(userIdSplit.email));
|
||||
} else {
|
||||
h.mainUserIdRest.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@@ -72,20 +72,20 @@ public class UserIdsAdapter extends UserAttributesAdapter {
|
||||
vDeleteButton.setVisibility(View.GONE); // not used
|
||||
|
||||
String userId = cursor.getString(INDEX_USER_ID);
|
||||
String[] splitUserId = KeyRing.splitUserId(userId);
|
||||
if (splitUserId[0] != null) {
|
||||
vName.setText(splitUserId[0]);
|
||||
KeyRing.UserId splitUserId = KeyRing.splitUserId(userId);
|
||||
if (splitUserId.name != null) {
|
||||
vName.setText(splitUserId.name);
|
||||
} else {
|
||||
vName.setText(R.string.user_id_no_name);
|
||||
}
|
||||
if (splitUserId[1] != null) {
|
||||
vAddress.setText(splitUserId[1]);
|
||||
if (splitUserId.email != null) {
|
||||
vAddress.setText(splitUserId.email);
|
||||
vAddress.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
vAddress.setVisibility(View.GONE);
|
||||
}
|
||||
if (splitUserId[2] != null) {
|
||||
vComment.setText(splitUserId[2]);
|
||||
if (splitUserId.comment != null) {
|
||||
vComment.setText(splitUserId.comment);
|
||||
vComment.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
vComment.setVisibility(View.GONE);
|
||||
|
||||
@@ -92,20 +92,20 @@ public class UserIdsAddedAdapter extends ArrayAdapter<String> {
|
||||
// save reference to model item
|
||||
holder.mModel = getItem(position);
|
||||
|
||||
String[] splitUserId = KeyRing.splitUserId(holder.mModel);
|
||||
if (splitUserId[0] != null) {
|
||||
holder.vName.setText(splitUserId[0]);
|
||||
KeyRing.UserId splitUserId = KeyRing.splitUserId(holder.mModel);
|
||||
if (splitUserId.name != null) {
|
||||
holder.vName.setText(splitUserId.name);
|
||||
} else {
|
||||
holder.vName.setText(R.string.user_id_no_name);
|
||||
}
|
||||
if (splitUserId[1] != null) {
|
||||
holder.vAddress.setText(splitUserId[1]);
|
||||
if (splitUserId.email != null) {
|
||||
holder.vAddress.setText(splitUserId.email);
|
||||
holder.vAddress.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.vAddress.setVisibility(View.GONE);
|
||||
}
|
||||
if (splitUserId[2] != null) {
|
||||
holder.vComment.setText(splitUserId[2]);
|
||||
if (splitUserId.comment != null) {
|
||||
holder.vComment.setText(splitUserId.comment);
|
||||
holder.vComment.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.vComment.setVisibility(View.GONE);
|
||||
|
||||
@@ -100,8 +100,8 @@ public class AddUserIdDialogFragment extends DialogFragment implements OnEditorA
|
||||
|
||||
// return new user id back to activity
|
||||
Bundle data = new Bundle();
|
||||
String userId = KeyRing.createUserId(mName.getText().toString(),
|
||||
mEmail.getText().toString(), mComment.getText().toString());
|
||||
String userId = KeyRing.createUserId(new KeyRing.UserId(mName.getText().toString(),
|
||||
mEmail.getText().toString(), mComment.getText().toString()));
|
||||
data.putString(MESSAGE_DATA_USER_ID, userId);
|
||||
sendMessageToHandler(MESSAGE_OKAY, data);
|
||||
}
|
||||
|
||||
@@ -100,9 +100,9 @@ public class DeleteKeyDialogFragment extends DialogFragment {
|
||||
}
|
||||
);
|
||||
String name;
|
||||
String[] mainUserId = KeyRing.splitUserId((String) data.get(KeyRings.USER_ID));
|
||||
if (mainUserId[0] != null) {
|
||||
name = mainUserId[0];
|
||||
KeyRing.UserId mainUserId = KeyRing.splitUserId((String) data.get(KeyRings.USER_ID));
|
||||
if (mainUserId.name != null) {
|
||||
name = mainUserId.name;
|
||||
} else {
|
||||
name = getString(R.string.user_id_no_name);
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView {
|
||||
|
||||
public class EncryptionKey {
|
||||
private String mUserIdFull;
|
||||
private String[] mUserId;
|
||||
private KeyRing.UserId mUserId;
|
||||
private long mKeyId;
|
||||
private boolean mHasDuplicate;
|
||||
private Date mCreation;
|
||||
@@ -222,23 +222,23 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView {
|
||||
}
|
||||
|
||||
public String getPrimary() {
|
||||
if (mUserId[0] != null) {
|
||||
return mUserId[0];
|
||||
if (mUserId.name != null) {
|
||||
return mUserId.name;
|
||||
} else {
|
||||
return mUserId[1];
|
||||
return mUserId.email;
|
||||
}
|
||||
}
|
||||
|
||||
public String getSecondary() {
|
||||
if (mUserId[1] != null) {
|
||||
return mUserId[1];
|
||||
if (mUserId.email != null) {
|
||||
return mUserId.email;
|
||||
} else {
|
||||
return getCreationDate();
|
||||
}
|
||||
}
|
||||
|
||||
public String getTertiary() {
|
||||
if (mUserId[0] != null) {
|
||||
if (mUserId.name != null) {
|
||||
return getCreationDate();
|
||||
} else {
|
||||
return null;
|
||||
|
||||
@@ -39,7 +39,6 @@ import org.sufficientlysecure.keychain.Constants;
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.pgp.KeyRing;
|
||||
import org.sufficientlysecure.keychain.provider.KeychainContract;
|
||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||
import org.sufficientlysecure.keychain.util.Log;
|
||||
|
||||
import java.util.Calendar;
|
||||
@@ -162,9 +161,9 @@ public abstract class KeySpinner extends TintSpinner implements LoaderManager.Lo
|
||||
TextView vKeyEmail = (TextView) view.findViewById(R.id.keyspinner_key_email);
|
||||
TextView vDuplicate = (TextView) view.findViewById(R.id.keyspinner_duplicate);
|
||||
|
||||
String[] userId = KeyRing.splitUserId(cursor.getString(mIndexUserId));
|
||||
vKeyName.setText(userId[2] == null ? userId[0] : (userId[0] + " (" + userId[2] + ")"));
|
||||
vKeyEmail.setText(userId[1]);
|
||||
KeyRing.UserId userId = KeyRing.splitUserId(cursor.getString(mIndexUserId));
|
||||
vKeyName.setText(userId.name);
|
||||
vKeyEmail.setText(userId.email);
|
||||
|
||||
boolean duplicate = cursor.getLong(mIndexDuplicate) > 0;
|
||||
if (duplicate) {
|
||||
|
||||
Reference in New Issue
Block a user