mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-30 04:22:18 -05:00
show key expiry status similar to revocation
This commit is contained in:
parent
c3bb2b9d34
commit
b4e7d69b35
@ -179,7 +179,6 @@ public class KeychainDatabase extends SQLiteOpenHelper {
|
|||||||
// Enable foreign key constraints
|
// Enable foreign key constraints
|
||||||
db.execSQL("PRAGMA foreign_keys=ON;");
|
db.execSQL("PRAGMA foreign_keys=ON;");
|
||||||
// TODO remove, once we remove the "always migrate" debug stuff
|
// TODO remove, once we remove the "always migrate" debug stuff
|
||||||
// db.execSQL("DROP TABLE certs;");
|
|
||||||
// db.execSQL("DROP TABLE user_ids;");
|
// db.execSQL("DROP TABLE user_ids;");
|
||||||
db.execSQL(CREATE_USER_IDS);
|
db.execSQL(CREATE_USER_IDS);
|
||||||
db.execSQL(CREATE_CERTS);
|
db.execSQL(CREATE_CERTS);
|
||||||
|
@ -207,17 +207,12 @@ public class ProviderHelper {
|
|||||||
Log.e(Constants.TAG, "Key could not be deleted! Maybe we are creating a new one!", e);
|
Log.e(Constants.TAG, "Key could not be deleted! Maybe we are creating a new one!", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// insert new version of this keyRing
|
||||||
ContentValues values = new ContentValues();
|
ContentValues values = new ContentValues();
|
||||||
// use exactly the same _ID again to replace key in-place.
|
|
||||||
// NOTE: If we would not use the same _ID again,
|
|
||||||
// getting back to the ViewKeyActivity would result in Nullpointer,
|
|
||||||
// because the currently loaded key would be gone from the database
|
|
||||||
values.put(KeyRingData.MASTER_KEY_ID, masterKeyId);
|
values.put(KeyRingData.MASTER_KEY_ID, masterKeyId);
|
||||||
values.put(KeyRingData.KEY_RING_DATA, keyRing.getEncoded());
|
values.put(KeyRingData.KEY_RING_DATA, keyRing.getEncoded());
|
||||||
|
|
||||||
// insert new version of this keyRing
|
|
||||||
Uri uri = KeyRingData.buildPublicKeyRingUri(Long.toString(masterKeyId));
|
Uri uri = KeyRingData.buildPublicKeyRingUri(Long.toString(masterKeyId));
|
||||||
Uri insertedUri = context.getContentResolver().insert(uri, values);
|
context.getContentResolver().insert(uri, values);
|
||||||
|
|
||||||
// save all keys and userIds included in keyRing object in database
|
// save all keys and userIds included in keyRing object in database
|
||||||
ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
|
ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
|
||||||
|
@ -68,6 +68,7 @@ import se.emilsjolander.stickylistheaders.ApiLevelTooLowException;
|
|||||||
import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter;
|
import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter;
|
||||||
import se.emilsjolander.stickylistheaders.StickyListHeadersListView;
|
import se.emilsjolander.stickylistheaders.StickyListHeadersListView;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -252,6 +253,7 @@ public class KeyListFragment extends Fragment
|
|||||||
KeyRings.MASTER_KEY_ID,
|
KeyRings.MASTER_KEY_ID,
|
||||||
KeyRings.USER_ID,
|
KeyRings.USER_ID,
|
||||||
KeyRings.IS_REVOKED,
|
KeyRings.IS_REVOKED,
|
||||||
|
KeyRings.EXPIRY,
|
||||||
KeyRings.VERIFIED,
|
KeyRings.VERIFIED,
|
||||||
KeyRings.HAS_SECRET
|
KeyRings.HAS_SECRET
|
||||||
};
|
};
|
||||||
@ -259,8 +261,9 @@ public class KeyListFragment extends Fragment
|
|||||||
static final int INDEX_MASTER_KEY_ID = 1;
|
static final int INDEX_MASTER_KEY_ID = 1;
|
||||||
static final int INDEX_USER_ID = 2;
|
static final int INDEX_USER_ID = 2;
|
||||||
static final int INDEX_IS_REVOKED = 3;
|
static final int INDEX_IS_REVOKED = 3;
|
||||||
static final int INDEX_VERIFIED = 4;
|
static final int INDEX_EXPIRY = 4;
|
||||||
static final int INDEX_HAS_SECRET = 5;
|
static final int INDEX_VERIFIED = 5;
|
||||||
|
static final int INDEX_HAS_SECRET = 6;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
|
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
|
||||||
@ -519,10 +522,13 @@ public class KeyListFragment extends Fragment
|
|||||||
button.setVisibility(View.GONE);
|
button.setVisibility(View.GONE);
|
||||||
|
|
||||||
boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0;
|
boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0;
|
||||||
if(isRevoked) {
|
boolean isExpired = !cursor.isNull(INDEX_EXPIRY)
|
||||||
statusLayout.setVisibility(isRevoked ? View.VISIBLE : View.GONE);
|
&& new Date(cursor.getLong(INDEX_EXPIRY)*1000).before(new Date());
|
||||||
revoked.setVisibility(isRevoked ? View.VISIBLE : View.GONE);
|
if(isRevoked || isExpired) {
|
||||||
|
statusLayout.setVisibility(View.VISIBLE);
|
||||||
|
revoked.setVisibility(View.VISIBLE);
|
||||||
verified.setVisibility(View.GONE);
|
verified.setVisibility(View.GONE);
|
||||||
|
revoked.setText(isRevoked ? R.string.revoked : R.string.expired);
|
||||||
} else {
|
} else {
|
||||||
boolean isVerified = cursor.getInt(INDEX_VERIFIED) > 0;
|
boolean isVerified = cursor.getInt(INDEX_VERIFIED) > 0;
|
||||||
statusLayout.setVisibility(isVerified ? View.VISIBLE : View.GONE);
|
statusLayout.setVisibility(isVerified ? View.VISIBLE : View.GONE);
|
||||||
|
Loading…
Reference in New Issue
Block a user