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