get notification URIs from DatabaseNotificationManager
This commit is contained in:
@@ -5,10 +5,13 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import org.sufficientlysecure.keychain.Constants;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
||||||
|
|
||||||
|
|
||||||
public class DatabaseNotifyManager {
|
public class DatabaseNotifyManager {
|
||||||
|
private static final Uri BASE_URI = Uri.parse("content://" + Constants.PROVIDER_AUTHORITY);
|
||||||
|
|
||||||
private ContentResolver contentResolver;
|
private ContentResolver contentResolver;
|
||||||
|
|
||||||
public static DatabaseNotifyManager create(Context context) {
|
public static DatabaseNotifyManager create(Context context) {
|
||||||
@@ -21,22 +24,26 @@ public class DatabaseNotifyManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void notifyKeyChange(long masterKeyId) {
|
public void notifyKeyChange(long masterKeyId) {
|
||||||
Uri uri = KeyRings.buildGenericKeyRingUri(masterKeyId);
|
Uri uri = getNotifyUriMasterKeyId(masterKeyId);
|
||||||
contentResolver.notifyChange(uri, null);
|
contentResolver.notifyChange(uri, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyAutocryptDelete(String autocryptId, Long masterKeyId) {
|
public void notifyAutocryptDelete(String autocryptId, Long masterKeyId) {
|
||||||
Uri uri = KeyRings.buildGenericKeyRingUri(masterKeyId);
|
Uri uri = getNotifyUriMasterKeyId(masterKeyId);
|
||||||
contentResolver.notifyChange(uri, null);
|
contentResolver.notifyChange(uri, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyAutocryptUpdate(String autocryptId, long masterKeyId) {
|
public void notifyAutocryptUpdate(String autocryptId, long masterKeyId) {
|
||||||
Uri uri = KeyRings.buildGenericKeyRingUri(masterKeyId);
|
Uri uri = getNotifyUriMasterKeyId(masterKeyId);
|
||||||
contentResolver.notifyChange(uri, null);
|
contentResolver.notifyChange(uri, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyKeyMetadataChange(long masterKeyId) {
|
public void notifyKeyMetadataChange(long masterKeyId) {
|
||||||
Uri uri = KeyRings.buildGenericKeyRingUri(masterKeyId);
|
Uri uri = getNotifyUriMasterKeyId(masterKeyId);
|
||||||
contentResolver.notifyChange(uri, null);
|
contentResolver.notifyChange(uri, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Uri getNotifyUriMasterKeyId(long masterKeyId) {
|
||||||
|
return BASE_URI.buildUpon().appendPath(Long.toString(masterKeyId)).build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,10 +125,6 @@ public class KeychainContract {
|
|||||||
public static Uri buildUnifiedKeyRingsUri() {
|
public static Uri buildUnifiedKeyRingsUri() {
|
||||||
return CONTENT_URI.buildUpon().appendPath(PATH_UNIFIED).build();
|
return CONTENT_URI.buildUpon().appendPath(PATH_UNIFIED).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Uri buildGenericKeyRingUri(long masterKeyId) {
|
|
||||||
return CONTENT_URI.buildUpon().appendPath(Long.toString(masterKeyId)).build();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class KeyRingData implements KeyRingsColumns, BaseColumns {
|
public static class KeyRingData implements KeyRingsColumns, BaseColumns {
|
||||||
|
|||||||
@@ -413,7 +413,7 @@ public class KeychainProvider extends ContentProvider implements SimpleContentRe
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (keyId != null) {
|
if (keyId != null) {
|
||||||
uri = KeyRings.buildGenericKeyRingUri(keyId);
|
uri = DatabaseNotifyManager.getNotifyUriMasterKeyId(keyId);
|
||||||
rowUri = uri;
|
rowUri = uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ package org.sufficientlysecure.keychain.ui.keyview;
|
|||||||
import android.arch.lifecycle.LiveData;
|
import android.arch.lifecycle.LiveData;
|
||||||
import android.arch.lifecycle.ViewModel;
|
import android.arch.lifecycle.ViewModel;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
import org.sufficientlysecure.keychain.livedata.GenericLiveData;
|
import org.sufficientlysecure.keychain.livedata.GenericLiveData;
|
||||||
import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo;
|
import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo;
|
||||||
|
import org.sufficientlysecure.keychain.provider.DatabaseNotifyManager;
|
||||||
import org.sufficientlysecure.keychain.provider.KeyRepository;
|
import org.sufficientlysecure.keychain.provider.KeyRepository;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
||||||
|
|
||||||
@@ -32,7 +34,8 @@ public class UnifiedKeyInfoViewModel extends ViewModel {
|
|||||||
}
|
}
|
||||||
if (unifiedKeyInfoLiveData == null) {
|
if (unifiedKeyInfoLiveData == null) {
|
||||||
KeyRepository keyRepository = KeyRepository.create(context);
|
KeyRepository keyRepository = KeyRepository.create(context);
|
||||||
unifiedKeyInfoLiveData = new GenericLiveData<>(context, KeyRings.buildGenericKeyRingUri(masterKeyId),
|
Uri notifyUri = DatabaseNotifyManager.getNotifyUriMasterKeyId(masterKeyId);
|
||||||
|
unifiedKeyInfoLiveData = new GenericLiveData<>(context, notifyUri,
|
||||||
() -> keyRepository.getUnifiedKeyInfo(masterKeyId));
|
() -> keyRepository.getUnifiedKeyInfo(masterKeyId));
|
||||||
}
|
}
|
||||||
return unifiedKeyInfoLiveData;
|
return unifiedKeyInfoLiveData;
|
||||||
|
|||||||
Reference in New Issue
Block a user