mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-12-25 00:18:51 -05:00
ui: remove primary subkey info
This commit is contained in:
parent
04f8b2716a
commit
0fe0823372
@ -50,18 +50,8 @@ public class ViewKeyKeysFragment extends Fragment implements
|
|||||||
public static final String ARG_DATA_URI = "uri";
|
public static final String ARG_DATA_URI = "uri";
|
||||||
|
|
||||||
private LinearLayout mContainer;
|
private LinearLayout mContainer;
|
||||||
private TextView mAlgorithm;
|
|
||||||
private TextView mKeyId;
|
|
||||||
private TextView mExpiry;
|
|
||||||
private TextView mCreation;
|
|
||||||
private TextView mFingerprint;
|
|
||||||
private TextView mSecretKey;
|
|
||||||
|
|
||||||
private ListView mKeys;
|
private ListView mKeys;
|
||||||
|
|
||||||
private static final int LOADER_ID_UNIFIED = 0;
|
|
||||||
private static final int LOADER_ID_KEYS = 1;
|
|
||||||
|
|
||||||
private ViewKeyKeysAdapter mKeysAdapter;
|
private ViewKeyKeysAdapter mKeysAdapter;
|
||||||
|
|
||||||
private Uri mDataUri;
|
private Uri mDataUri;
|
||||||
@ -71,12 +61,6 @@ public class ViewKeyKeysFragment extends Fragment implements
|
|||||||
View view = inflater.inflate(R.layout.view_key_keys_fragment, container, false);
|
View view = inflater.inflate(R.layout.view_key_keys_fragment, container, false);
|
||||||
|
|
||||||
mContainer = (LinearLayout) view.findViewById(R.id.container);
|
mContainer = (LinearLayout) view.findViewById(R.id.container);
|
||||||
mKeyId = (TextView) view.findViewById(R.id.key_id);
|
|
||||||
mAlgorithm = (TextView) view.findViewById(R.id.algorithm);
|
|
||||||
mCreation = (TextView) view.findViewById(R.id.creation);
|
|
||||||
mExpiry = (TextView) view.findViewById(R.id.expiry);
|
|
||||||
mFingerprint = (TextView) view.findViewById(R.id.view_key_fingerprint);
|
|
||||||
mSecretKey = (TextView) view.findViewById(R.id.secret_key);
|
|
||||||
mKeys = (ListView) view.findViewById(R.id.keys);
|
mKeys = (ListView) view.findViewById(R.id.keys);
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
@ -109,116 +93,30 @@ public class ViewKeyKeysFragment extends Fragment implements
|
|||||||
|
|
||||||
// Prepare the loaders. Either re-connect with an existing ones,
|
// Prepare the loaders. Either re-connect with an existing ones,
|
||||||
// or start new ones.
|
// or start new ones.
|
||||||
getLoaderManager().initLoader(LOADER_ID_UNIFIED, null, this);
|
getLoaderManager().initLoader(0, null, this);
|
||||||
getLoaderManager().initLoader(LOADER_ID_KEYS, null, this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static final String[] UNIFIED_PROJECTION = new String[] {
|
|
||||||
KeyRings._ID, KeyRings.MASTER_KEY_ID, KeyRings.HAS_ANY_SECRET,
|
|
||||||
KeyRings.USER_ID, KeyRings.FINGERPRINT,
|
|
||||||
KeyRings.ALGORITHM, KeyRings.KEY_SIZE, KeyRings.CREATION, KeyRings.EXPIRY,
|
|
||||||
|
|
||||||
};
|
|
||||||
static final int INDEX_UNIFIED_MKI = 1;
|
|
||||||
static final int INDEX_UNIFIED_HAS_ANY_SECRET = 2;
|
|
||||||
static final int INDEX_UNIFIED_UID = 3;
|
|
||||||
static final int INDEX_UNIFIED_FINGERPRINT = 4;
|
|
||||||
static final int INDEX_UNIFIED_ALGORITHM = 5;
|
|
||||||
static final int INDEX_UNIFIED_KEY_SIZE = 6;
|
|
||||||
static final int INDEX_UNIFIED_CREATION = 7;
|
|
||||||
static final int INDEX_UNIFIED_EXPIRY = 8;
|
|
||||||
|
|
||||||
static final String[] KEYS_PROJECTION = new String[] {
|
static final String[] KEYS_PROJECTION = new String[] {
|
||||||
Keys._ID,
|
Keys._ID,
|
||||||
Keys.KEY_ID, Keys.RANK, Keys.ALGORITHM, Keys.KEY_SIZE, Keys.HAS_SECRET,
|
Keys.KEY_ID, Keys.RANK, Keys.ALGORITHM, Keys.KEY_SIZE, Keys.HAS_SECRET,
|
||||||
Keys.CAN_CERTIFY, Keys.CAN_ENCRYPT, Keys.CAN_SIGN, Keys.IS_REVOKED,
|
Keys.CAN_CERTIFY, Keys.CAN_ENCRYPT, Keys.CAN_SIGN, Keys.IS_REVOKED,
|
||||||
Keys.CREATION, Keys.EXPIRY, Keys.FINGERPRINT
|
Keys.CREATION, Keys.EXPIRY, Keys.FINGERPRINT
|
||||||
};
|
};
|
||||||
static final int KEYS_INDEX_CAN_ENCRYPT = 7;
|
|
||||||
|
|
||||||
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
|
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
|
||||||
switch (id) {
|
Uri baseUri = Keys.buildKeysUri(mDataUri);
|
||||||
case LOADER_ID_UNIFIED: {
|
return new CursorLoader(getActivity(), baseUri, KEYS_PROJECTION, null, null, null);
|
||||||
Uri baseUri = KeyRings.buildUnifiedKeyRingUri(mDataUri);
|
|
||||||
return new CursorLoader(getActivity(), baseUri, UNIFIED_PROJECTION, null, null, null);
|
|
||||||
}
|
|
||||||
case LOADER_ID_KEYS: {
|
|
||||||
Uri baseUri = Keys.buildKeysUri(mDataUri);
|
|
||||||
return new CursorLoader(getActivity(), baseUri, KEYS_PROJECTION, null, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
|
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
|
||||||
/* TODO better error handling? May cause problems when a key is deleted,
|
// Avoid NullPointerExceptions, if we get an empty result set.
|
||||||
* because the notification triggers faster than the activity closes.
|
|
||||||
*/
|
|
||||||
// Avoid NullPointerExceptions...
|
|
||||||
if(data.getCount() == 0) {
|
if(data.getCount() == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Swap the new cursor in. (The framework will take care of closing the
|
// Swap the new cursor in. (The framework will take care of closing the
|
||||||
// old cursor once we return.)
|
// old cursor once we return.)
|
||||||
switch (loader.getId()) {
|
mKeysAdapter.swapCursor(data);
|
||||||
case LOADER_ID_UNIFIED: {
|
|
||||||
if (data.moveToFirst()) {
|
|
||||||
if (data.getInt(INDEX_UNIFIED_HAS_ANY_SECRET) != 0) {
|
|
||||||
mSecretKey.setTextColor(getResources().getColor(R.color.emphasis));
|
|
||||||
mSecretKey.setText(R.string.secret_key_yes);
|
|
||||||
} else {
|
|
||||||
mSecretKey.setTextColor(Color.BLACK);
|
|
||||||
mSecretKey.setText(getResources().getString(R.string.secret_key_no));
|
|
||||||
}
|
|
||||||
|
|
||||||
// get key id from MASTER_KEY_ID
|
|
||||||
long masterKeyId = data.getLong(INDEX_UNIFIED_MKI);
|
|
||||||
String keyIdStr = PgpKeyHelper.convertKeyIdToHex(masterKeyId);
|
|
||||||
mKeyId.setText(keyIdStr);
|
|
||||||
|
|
||||||
// get creation date from CREATION
|
|
||||||
if (data.isNull(INDEX_UNIFIED_CREATION)) {
|
|
||||||
mCreation.setText(R.string.none);
|
|
||||||
} else {
|
|
||||||
Date creationDate = new Date(data.getLong(INDEX_UNIFIED_CREATION) * 1000);
|
|
||||||
|
|
||||||
mCreation.setText(
|
|
||||||
DateFormat.getDateFormat(getActivity().getApplicationContext()).format(
|
|
||||||
creationDate));
|
|
||||||
}
|
|
||||||
|
|
||||||
// get expiry date from EXPIRY
|
|
||||||
if (data.isNull(INDEX_UNIFIED_EXPIRY)) {
|
|
||||||
mExpiry.setText(R.string.none);
|
|
||||||
} else {
|
|
||||||
Date expiryDate = new Date(data.getLong(INDEX_UNIFIED_EXPIRY) * 1000);
|
|
||||||
|
|
||||||
mExpiry.setText(
|
|
||||||
DateFormat.getDateFormat(getActivity().getApplicationContext()).format(
|
|
||||||
expiryDate));
|
|
||||||
}
|
|
||||||
|
|
||||||
String algorithmStr = PgpKeyHelper.getAlgorithmInfo(
|
|
||||||
getActivity(),
|
|
||||||
data.getInt(INDEX_UNIFIED_ALGORITHM),
|
|
||||||
data.getInt(INDEX_UNIFIED_KEY_SIZE)
|
|
||||||
);
|
|
||||||
mAlgorithm.setText(algorithmStr);
|
|
||||||
|
|
||||||
byte[] fingerprintBlob = data.getBlob(INDEX_UNIFIED_FINGERPRINT);
|
|
||||||
String fingerprint = PgpKeyHelper.convertFingerprintToHex(fingerprintBlob);
|
|
||||||
mFingerprint.setText(PgpKeyHelper.colorizeFingerprint(fingerprint));
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
case LOADER_ID_KEYS:
|
|
||||||
mKeysAdapter.swapCursor(data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
getActivity().setProgressBarIndeterminateVisibility(false);
|
getActivity().setProgressBarIndeterminateVisibility(false);
|
||||||
mContainer.setVisibility(View.VISIBLE);
|
mContainer.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
@ -228,11 +126,7 @@ public class ViewKeyKeysFragment extends Fragment implements
|
|||||||
* We need to make sure we are no longer using it.
|
* We need to make sure we are no longer using it.
|
||||||
*/
|
*/
|
||||||
public void onLoaderReset(Loader<Cursor> loader) {
|
public void onLoaderReset(Loader<Cursor> loader) {
|
||||||
switch (loader.getId()) {
|
mKeysAdapter.swapCursor(null);
|
||||||
case LOADER_ID_KEYS:
|
|
||||||
mKeysAdapter.swapCursor(null);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:bootstrapbutton="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
@ -15,122 +14,6 @@
|
|||||||
android:paddingRight="16dp"
|
android:paddingRight="16dp"
|
||||||
android:id="@+id/container">
|
android:id="@+id/container">
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="@style/SectionHeader"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="4dp"
|
|
||||||
android:layout_marginTop="14dp"
|
|
||||||
android:text="@string/section_master_key" />
|
|
||||||
|
|
||||||
<TableLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:shrinkColumns="1">
|
|
||||||
|
|
||||||
<TableRow>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:paddingRight="10dip"
|
|
||||||
android:text="@string/label_key_id" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/key_id"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingRight="5dip"
|
|
||||||
android:text=""
|
|
||||||
android:typeface="monospace" />
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/label_algorithm"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:paddingRight="10dip"
|
|
||||||
android:text="@string/label_algorithm" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/algorithm"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingRight="5dip"
|
|
||||||
android:text="" />
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="fill_parent"
|
|
||||||
android:id="@+id/tableRow">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:paddingRight="10dip"
|
|
||||||
android:text="@string/label_fingerprint" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/view_key_fingerprint"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:typeface="monospace" />
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:paddingRight="10dip"
|
|
||||||
android:text="@string/label_creation" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/creation"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:paddingRight="10dip"
|
|
||||||
android:text="@string/label_expiry" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/expiry"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:paddingRight="10dip"
|
|
||||||
android:text="@string/label_secret_key" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/secret_key"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
</TableRow>
|
|
||||||
</TableLayout>
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
style="@style/SectionHeader"
|
style="@style/SectionHeader"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
<!-- section -->
|
<!-- section -->
|
||||||
<string name="section_user_ids">Identities</string>
|
<string name="section_user_ids">Identities</string>
|
||||||
<string name="section_keys">Keys</string>
|
<string name="section_keys">Subkeys</string>
|
||||||
<string name="section_general">General</string>
|
<string name="section_general">General</string>
|
||||||
<string name="section_defaults">Defaults</string>
|
<string name="section_defaults">Defaults</string>
|
||||||
<string name="section_advanced">Advanced</string>
|
<string name="section_advanced">Advanced</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user