remove some splitUserId

This commit is contained in:
daquexian
2017-01-21 22:22:42 +08:00
parent 2c7d8761a6
commit f26a355bd6
16 changed files with 189 additions and 69 deletions

View File

@@ -275,6 +275,9 @@ public abstract class DecryptFragment extends Fragment implements LoaderManager.
KeychainContract.KeyRings.USER_ID,
KeychainContract.KeyRings.VERIFIED,
KeychainContract.KeyRings.HAS_ANY_SECRET,
KeyRings.NAME,
KeyRings.EMAIL,
KeyRings.COMMENT,
};
@SuppressWarnings("unused")
@@ -282,6 +285,9 @@ public abstract class DecryptFragment extends Fragment implements LoaderManager.
static final int INDEX_USER_ID = 2;
static final int INDEX_VERIFIED = 3;
static final int INDEX_HAS_ANY_SECRET = 4;
static final int INDEX_NAME = 5;
static final int INDEX_EMAIL = 6;
static final int INDEX_COMMENT = 7;
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
@@ -309,15 +315,15 @@ public abstract class DecryptFragment extends Fragment implements LoaderManager.
long signatureKeyId = mSignatureResult.getKeyId();
String userId = data.getString(INDEX_USER_ID);
OpenPgpUtils.UserId userIdSplit = KeyRing.splitUserId(userId);
if (userIdSplit.name != null) {
mSignatureName.setText(userIdSplit.name);
String name = data.getString(INDEX_NAME);
String email = data.getString(INDEX_EMAIL);
if (name != null) {
mSignatureName.setText(name);
} else {
mSignatureName.setText(R.string.user_id_no_name);
}
if (userIdSplit.email != null) {
mSignatureEmail.setText(userIdSplit.email);
if (email != null) {
mSignatureEmail.setText(email);
} else {
mSignatureEmail.setText(KeyFormattingUtils.beautifyKeyIdWithPrefix(
mSignatureResult.getKeyId()));

View File

@@ -93,7 +93,7 @@ public class DeleteKeyDialogActivity extends FragmentActivity {
try {
HashMap<String, Object> data = new ProviderHelper(this).getUnifiedData(
mMasterKeyIds[0], new String[]{
KeychainContract.KeyRings.USER_ID,
KeychainContract.KeyRings.NAME,
KeychainContract.KeyRings.IS_REVOKED
}, new int[]{
ProviderHelper.FIELD_TYPE_STRING,
@@ -102,11 +102,10 @@ public class DeleteKeyDialogActivity extends FragmentActivity {
);
String name;
OpenPgpUtils.UserId mainUserId = KeyRing.splitUserId(
(String) data.get(KeychainContract.KeyRings.USER_ID));
if (mainUserId.name != null) {
name = mainUserId.name;
} else {
name = (String) data.get(KeychainContract.KeyRings.NAME);
if (name == null) {
name = getString(R.string.user_id_no_name);
}
@@ -274,7 +273,7 @@ public class DeleteKeyDialogActivity extends FragmentActivity {
try {
HashMap<String, Object> data = new ProviderHelper(activity).getUnifiedData(
masterKeyId, new String[]{
KeychainContract.KeyRings.USER_ID,
KeychainContract.KeyRings.NAME,
KeychainContract.KeyRings.HAS_ANY_SECRET
}, new int[]{
ProviderHelper.FIELD_TYPE_STRING,
@@ -282,10 +281,9 @@ public class DeleteKeyDialogActivity extends FragmentActivity {
}
);
String name;
OpenPgpUtils.UserId mainUserId = KeyRing.splitUserId((String) data.get(KeychainContract.KeyRings.USER_ID));
if (mainUserId.name != null) {
name = mainUserId.name;
} else {
name = (String) data.get(KeychainContract.KeyRings.NAME);
if (name == null) {
name = getString(R.string.user_id_no_name);
}

View File

@@ -59,7 +59,10 @@ public class MultiUserIdsFragment extends Fragment implements LoaderManager.Load
KeychainContract.UserPackets.MASTER_KEY_ID,
KeychainContract.UserPackets.USER_ID,
KeychainContract.UserPackets.IS_PRIMARY,
KeychainContract.UserPackets.IS_REVOKED
KeychainContract.UserPackets.IS_REVOKED,
KeychainContract.UserPackets.NAME,
KeychainContract.UserPackets.EMAIL,
KeychainContract.UserPackets.COMMENT,
};
private static final int INDEX_MASTER_KEY_ID = 1;
private static final int INDEX_USER_ID = 2;
@@ -67,6 +70,9 @@ public class MultiUserIdsFragment extends Fragment implements LoaderManager.Load
private static final int INDEX_IS_PRIMARY = 3;
@SuppressWarnings("unused")
private static final int INDEX_IS_REVOKED = 4;
private static final int INDEX_NAME = 5;
private static final int INDEX_EMAIL = 6;
private static final int INDEX_COMMENT = 7;
@Nullable
@Override
@@ -169,14 +175,14 @@ public class MultiUserIdsFragment extends Fragment implements LoaderManager.Load
while (!data.isAfterLast()) {
long masterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
String userId = data.getString(INDEX_USER_ID);
OpenPgpUtils.UserId pieces = KeyRing.splitUserId(userId);
String name = data.getString(INDEX_NAME);
// Two cases:
boolean grouped = masterKeyId == lastMasterKeyId;
boolean subGrouped = data.isFirst() || grouped && lastName.equals(pieces.name);
boolean subGrouped = data.isFirst() || grouped && lastName.equals(name);
// Remember for next loop
lastName = pieces.name;
lastName = name;
Log.d(Constants.TAG, Long.toString(masterKeyId, 16) + (grouped ? "grouped" : "not grouped"));

View File

@@ -822,7 +822,10 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
KeychainContract.KeyRings.VERIFIED,
KeychainContract.KeyRings.HAS_ANY_SECRET,
KeychainContract.KeyRings.FINGERPRINT,
KeychainContract.KeyRings.HAS_ENCRYPT
KeychainContract.KeyRings.HAS_ENCRYPT,
KeyRings.NAME,
KeyRings.EMAIL,
KeyRings.COMMENT
};
static final int INDEX_MASTER_KEY_ID = 1;
@@ -833,6 +836,9 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
static final int INDEX_HAS_ANY_SECRET = 6;
static final int INDEX_FINGERPRINT = 7;
static final int INDEX_HAS_ENCRYPT = 8;
static final int INDEX_NAME = 9;
static final int INDEX_EMAIL = 10;
static final int INDEX_COMMENT = 11;
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
@@ -885,12 +891,10 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
if (data.moveToFirst()) {
// get name, email, and comment from USER_ID
OpenPgpUtils.UserId mainUserId = KeyRing.splitUserId(data.getString(INDEX_USER_ID));
if (mainUserId.name != null) {
mCollapsingToolbarLayout.setTitle(mainUserId.name);
} else {
mCollapsingToolbarLayout.setTitle(getString(R.string.user_id_no_name));
}
String name = data.getString(INDEX_NAME);
mCollapsingToolbarLayout.setTitle(name != null ? name : getString(R.string.user_id_no_name));
mMasterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
mFingerprint = data.getBlob(INDEX_FINGERPRINT);

View File

@@ -179,6 +179,9 @@ public class ViewKeyAdvActivity extends BaseActivity implements
KeychainContract.KeyRings.VERIFIED,
KeychainContract.KeyRings.HAS_ANY_SECRET,
KeychainContract.KeyRings.FINGERPRINT,
KeychainContract.KeyRings.NAME,
KeychainContract.KeyRings.EMAIL,
KeychainContract.KeyRings.COMMENT,
};
static final int INDEX_MASTER_KEY_ID = 1;
@@ -188,6 +191,9 @@ public class ViewKeyAdvActivity extends BaseActivity implements
static final int INDEX_VERIFIED = 5;
static final int INDEX_HAS_ANY_SECRET = 6;
static final int INDEX_FINGERPRINT = 7;
static final int INDEX_NAME = 8;
static final int INDEX_EMAIL = 9;
static final int INDEX_COMMENT = 10;
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
@@ -214,9 +220,10 @@ public class ViewKeyAdvActivity extends BaseActivity implements
case LOADER_ID_UNIFIED: {
if (data.moveToFirst()) {
// get name, email, and comment from USER_ID
OpenPgpUtils.UserId mainUserId = KeyRing.splitUserId(data.getString(INDEX_USER_ID));
if (mainUserId.name != null) {
setTitle(mainUserId.name);
String name = data.getString(INDEX_NAME);
if (name != null) {
setTitle(name);
} else {
setTitle(R.string.user_id_no_name);
}

View File

@@ -233,8 +233,19 @@ public class CertSectionedListAdapter extends SectionCursorAdapter<CertSectioned
return getString(index);
}
public OpenPgpUtils.UserId getUserId() {
return KeyRing.splitUserId(getRawUserId());
public String getName() {
int index = getColumnIndexOrThrow(KeychainContract.Certs.NAME);
return getString(index);
}
public String getEmail() {
int index = getColumnIndexOrThrow(KeychainContract.Certs.EMAIL);
return getString(index);
}
public String getComment() {
int index = getColumnIndexOrThrow(KeychainContract.Certs.COMMENT);
return getString(index);
}
public OpenPgpUtils.UserId getSignerUserId() {

View File

@@ -66,7 +66,10 @@ public class KeyAdapter extends CursorAdapter {
KeyRings.HAS_DUPLICATE_USER_ID,
KeyRings.FINGERPRINT,
KeyRings.CREATION,
KeyRings.HAS_ENCRYPT
KeyRings.HAS_ENCRYPT,
KeyRings.NAME,
KeyRings.EMAIL,
KeyRings.COMMENT
};
public static final int INDEX_MASTER_KEY_ID = 1;
@@ -79,6 +82,9 @@ public class KeyAdapter extends CursorAdapter {
public static final int INDEX_FINGERPRINT = 8;
public static final int INDEX_CREATION = 9;
public static final int INDEX_HAS_ENCRYPT = 10;
public static final int INDEX_NAME = 11;
public static final int INDEX_EMAIL = 12;
public static final int INDEX_COMMENT = 13;
public KeyAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
@@ -266,6 +272,9 @@ public class KeyAdapter extends CursorAdapter {
public final String mUserIdFull;
public final OpenPgpUtils.UserId mUserId;
public final String mName;
public final String mEmail;
public final String mComment;
public final long mKeyId;
public final boolean mHasDuplicate;
public final boolean mHasEncrypt;
@@ -276,6 +285,9 @@ public class KeyAdapter extends CursorAdapter {
private KeyItem(Cursor cursor) {
String userId = cursor.getString(INDEX_USER_ID);
mUserId = KeyRing.splitUserId(userId);
mName = cursor.getString(INDEX_NAME);
mEmail = cursor.getString(INDEX_EMAIL);
mComment = cursor.getString(INDEX_COMMENT);
mUserIdFull = userId;
mKeyId = cursor.getLong(INDEX_MASTER_KEY_ID);
mHasDuplicate = cursor.getLong(INDEX_HAS_DUPLICATE_USER_ID) > 0;
@@ -293,6 +305,9 @@ public class KeyAdapter extends CursorAdapter {
CanonicalizedPublicKey key = ring.getPublicKey();
String userId = key.getPrimaryUserIdWithFallback();
mUserId = KeyRing.splitUserId(userId);
mName = mUserId.name;
mEmail = mUserId.email;
mComment = mUserId.comment;
mUserIdFull = userId;
mKeyId = ring.getMasterKeyId();
mHasDuplicate = false;
@@ -309,10 +324,10 @@ public class KeyAdapter extends CursorAdapter {
}
public String getReadableName() {
if (mUserId.name != null) {
return mUserId.name;
if (mName != null) {
return mName;
} else {
return mUserId.email;
return mEmail;
}
}
}

View File

@@ -380,14 +380,15 @@ public class KeySectionedListAdapter extends SectionCursorAdapter<KeySectionedLi
Context context = itemView.getContext();
{ // set name and stuff, common to both key types
OpenPgpUtils.UserId userIdSplit = keyItem.getUserId();
if (userIdSplit.name != null) {
mMainUserId.setText(highlighter.highlight(userIdSplit.name));
String name = keyItem.getName();
String email = keyItem.getEmail();
if (name != null) {
mMainUserId.setText(highlighter.highlight(name));
} else {
mMainUserId.setText(R.string.user_id_no_name);
}
if (userIdSplit.email != null) {
mMainUserIdRest.setText(highlighter.highlight(userIdSplit.email));
if (email != null) {
mMainUserIdRest.setText(highlighter.highlight(email));
mMainUserIdRest.setVisibility(View.VISIBLE);
} else {
mMainUserIdRest.setVisibility(View.GONE);

View File

@@ -33,7 +33,10 @@ public abstract class UserAttributesAdapter extends CursorAdapter {
UserPackets.RANK,
UserPackets.VERIFIED,
UserPackets.IS_PRIMARY,
UserPackets.IS_REVOKED
UserPackets.IS_REVOKED,
UserPackets.NAME,
UserPackets.EMAIL,
UserPackets.COMMENT,
};
public static final int INDEX_ID = 0;
public static final int INDEX_TYPE = 1;
@@ -43,6 +46,9 @@ public abstract class UserAttributesAdapter extends CursorAdapter {
public static final int INDEX_VERIFIED = 5;
public static final int INDEX_IS_PRIMARY = 6;
public static final int INDEX_IS_REVOKED = 7;
public static final int INDEX_NAME = 8;
public static final int INDEX_EMAIL = 9;
public static final int INDEX_COMMENT = 10;
public UserAttributesAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);

View File

@@ -71,20 +71,22 @@ public class UserIdsAdapter extends UserAttributesAdapter {
vDeleteButton.setVisibility(View.GONE); // not used
String userId = cursor.getString(INDEX_USER_ID);
OpenPgpUtils.UserId splitUserId = KeyRing.splitUserId(userId);
if (splitUserId.name != null) {
vName.setText(splitUserId.name);
String name = cursor.getString(INDEX_NAME);
String email = cursor.getString(INDEX_EMAIL);
String comment = cursor.getString(INDEX_COMMENT);
if (name != null) {
vName.setText(name);
} else {
vName.setText(R.string.user_id_no_name);
}
if (splitUserId.email != null) {
vAddress.setText(splitUserId.email);
if (email != null) {
vAddress.setText(email);
vAddress.setVisibility(View.VISIBLE);
} else {
vAddress.setVisibility(View.GONE);
}
if (splitUserId.comment != null) {
vComment.setText(splitUserId.comment);
if (comment != null) {
vComment.setText(comment);
vComment.setVisibility(View.VISIBLE);
} else {
vComment.setVisibility(View.GONE);

View File

@@ -390,7 +390,10 @@ public abstract class CursorAdapter<C extends CursorAdapter.AbstractCursor, VH e
KeychainContract.KeyRings.IS_REVOKED,
KeychainContract.KeyRings.IS_EXPIRED,
KeychainContract.KeyRings.HAS_DUPLICATE_USER_ID,
KeychainContract.KeyRings.CREATION
KeychainContract.KeyRings.CREATION,
KeychainContract.KeyRings.NAME,
KeychainContract.KeyRings.EMAIL,
KeychainContract.KeyRings.COMMENT
));
PROJECTION = arr.toArray(new String[arr.size()]);
@@ -423,6 +426,22 @@ public abstract class CursorAdapter<C extends CursorAdapter.AbstractCursor, VH e
return getString(index);
}
public String getName() {
int index = getColumnIndexOrThrow(KeychainContract.KeyRings.NAME);
return getString(index);
}
public String getEmail() {
int index = getColumnIndexOrThrow(KeychainContract.KeyRings.EMAIL);
return getString(index);
}
public String getComment() {
int index = getColumnIndexOrThrow(KeychainContract.KeyRings.COMMENT);
return getString(index);
}
@Deprecated
public OpenPgpUtils.UserId getUserId() {
return KeyRing.splitUserId(getRawUserId());
}