Automatically construct CloudSearchPrefs using auto-value
This commit is contained in:
@@ -42,16 +42,16 @@ public class CloudSearch {
|
|||||||
// it's a Vector for sync, multiple threads might report problems
|
// it's a Vector for sync, multiple threads might report problems
|
||||||
final Vector<KeyserverClient.CloudSearchFailureException> problems = new Vector<>();
|
final Vector<KeyserverClient.CloudSearchFailureException> problems = new Vector<>();
|
||||||
|
|
||||||
if (cloudPrefs.searchKeyserver) {
|
if (cloudPrefs.isKeyserverEnabled()) {
|
||||||
servers.add(HkpKeyserverClient.fromHkpKeyserverAddress(cloudPrefs.keyserver));
|
servers.add(HkpKeyserverClient.fromHkpKeyserverAddress(cloudPrefs.getKeyserver()));
|
||||||
}
|
}
|
||||||
if (cloudPrefs.searchKeybase) {
|
if (cloudPrefs.isKeybaseEnabled()) {
|
||||||
servers.add(KeybaseKeyserverClient.getInstance());
|
servers.add(KeybaseKeyserverClient.getInstance());
|
||||||
}
|
}
|
||||||
if (cloudPrefs.searchFacebook) {
|
if (cloudPrefs.isFacebookEnabled()) {
|
||||||
servers.add(FacebookKeyserverClient.getInstance());
|
servers.add(FacebookKeyserverClient.getInstance());
|
||||||
}
|
}
|
||||||
if (cloudPrefs.searchWebKeyDirectory) {
|
if (cloudPrefs.isWebKeyDirectoryEnabled()) {
|
||||||
servers.add(WebKeyDirectoryClient.getInstance());
|
servers.add(WebKeyDirectoryClient.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -207,14 +207,14 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
|
|||||||
String fbUsername = FacebookKeyserverClient.getUsernameFromUri(dataUri);
|
String fbUsername = FacebookKeyserverClient.getUsernameFromUri(dataUri);
|
||||||
|
|
||||||
Preferences.CloudSearchPrefs cloudSearchPrefs =
|
Preferences.CloudSearchPrefs cloudSearchPrefs =
|
||||||
new Preferences.CloudSearchPrefs(false, true, true, false, null);
|
Preferences.CloudSearchPrefs.createSocialOnly();
|
||||||
// search immediately
|
// search immediately
|
||||||
startListFragment(null, null, fbUsername, cloudSearchPrefs);
|
startListFragment(null, null, fbUsername, cloudSearchPrefs);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ACTION_IMPORT_KEY_FROM_WEB_KEY_DIRECTORY: {
|
case ACTION_IMPORT_KEY_FROM_WEB_KEY_DIRECTORY: {
|
||||||
Preferences.CloudSearchPrefs cloudSearchPrefs =
|
Preferences.CloudSearchPrefs cloudSearchPrefs =
|
||||||
new Preferences.CloudSearchPrefs(false, false, false, true, null);
|
Preferences.CloudSearchPrefs.createWebKeyDirectoryOnly();
|
||||||
// search immediately
|
// search immediately
|
||||||
startListFragment(null, null, dataUri.toString(), cloudSearchPrefs);
|
startListFragment(null, null, dataUri.toString(), cloudSearchPrefs);
|
||||||
break;
|
break;
|
||||||
@@ -223,8 +223,7 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
|
|||||||
// get keyserver from URL
|
// get keyserver from URL
|
||||||
HkpKeyserverAddress keyserver = HkpKeyserverAddress.createFromUri(
|
HkpKeyserverAddress keyserver = HkpKeyserverAddress.createFromUri(
|
||||||
dataUri.getScheme() + "://" + dataUri.getAuthority());
|
dataUri.getScheme() + "://" + dataUri.getAuthority());
|
||||||
Preferences.CloudSearchPrefs cloudSearchPrefs = new Preferences.CloudSearchPrefs(
|
Preferences.CloudSearchPrefs cloudSearchPrefs = Preferences.CloudSearchPrefs.createKeyserverOnly(keyserver);
|
||||||
true, false, false, false, keyserver);
|
|
||||||
Timber.d("Using keyserver: " + keyserver);
|
Timber.d("Using keyserver: " + keyserver);
|
||||||
|
|
||||||
// process URL to get operation and query
|
// process URL to get operation and query
|
||||||
|
|||||||
@@ -18,28 +18,27 @@
|
|||||||
package org.sufficientlysecure.keychain.util;
|
package org.sufficientlysecure.keychain.util;
|
||||||
|
|
||||||
|
|
||||||
import java.net.Proxy;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.ListIterator;
|
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.SharedPreferences.Editor;
|
import android.content.SharedPreferences.Editor;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
import com.google.auto.value.AutoValue;
|
||||||
import org.sufficientlysecure.keychain.Constants;
|
import org.sufficientlysecure.keychain.Constants;
|
||||||
import org.sufficientlysecure.keychain.Constants.Pref;
|
import org.sufficientlysecure.keychain.Constants.Pref;
|
||||||
import org.sufficientlysecure.keychain.KeychainApplication;
|
import org.sufficientlysecure.keychain.KeychainApplication;
|
||||||
import org.sufficientlysecure.keychain.keyimport.HkpKeyserverAddress;
|
import org.sufficientlysecure.keychain.keyimport.HkpKeyserverAddress;
|
||||||
import org.sufficientlysecure.keychain.service.KeyserverSyncAdapterService;
|
import org.sufficientlysecure.keychain.service.KeyserverSyncAdapterService;
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
|
import java.net.Proxy;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.ListIterator;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Singleton Implementation of a Preference Helper
|
* Singleton Implementation of a Preference Helper
|
||||||
@@ -345,7 +344,7 @@ public class Preferences {
|
|||||||
// cloud prefs
|
// cloud prefs
|
||||||
|
|
||||||
public CloudSearchPrefs getCloudSearchPrefs() {
|
public CloudSearchPrefs getCloudSearchPrefs() {
|
||||||
return new CloudSearchPrefs(mSharedPreferences.getBoolean(Pref.SEARCH_KEYSERVER, true),
|
return CloudSearchPrefs.create(mSharedPreferences.getBoolean(Pref.SEARCH_KEYSERVER, true),
|
||||||
mSharedPreferences.getBoolean(Pref.SEARCH_KEYBASE, true),
|
mSharedPreferences.getBoolean(Pref.SEARCH_KEYBASE, true),
|
||||||
false,
|
false,
|
||||||
true,
|
true,
|
||||||
@@ -362,62 +361,44 @@ public class Preferences {
|
|||||||
editor.commit();
|
editor.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class CloudSearchPrefs implements Parcelable {
|
@AutoValue
|
||||||
public final boolean searchKeyserver;
|
public static abstract class CloudSearchPrefs implements Parcelable {
|
||||||
public final boolean searchKeybase;
|
public abstract boolean isKeyserverEnabled();
|
||||||
public final boolean searchFacebook;
|
public abstract boolean isKeybaseEnabled();
|
||||||
public final boolean searchWebKeyDirectory;
|
public abstract boolean isFacebookEnabled();
|
||||||
public final HkpKeyserverAddress keyserver;
|
public abstract boolean isWebKeyDirectoryEnabled();
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public abstract HkpKeyserverAddress getKeyserver();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param searchKeyserver should passed keyserver be searched
|
* @param searchKeyserver should passed keyserver be searched
|
||||||
* @param searchKeybase should keybase.io be searched
|
* @param searchKeybase should keybase.io be searched
|
||||||
* @param keyserver the keyserver url authority to search on
|
* @param searchFacebook should Facebook be searched
|
||||||
|
* @param searchWebKeyDirectory should WKD be searched
|
||||||
|
* @param keyserver the keyserver url authority to search on
|
||||||
*/
|
*/
|
||||||
public CloudSearchPrefs(boolean searchKeyserver, boolean searchKeybase,
|
public static CloudSearchPrefs create(boolean searchKeyserver, boolean searchKeybase,
|
||||||
boolean searchFacebook, boolean searchWebKeyDirectory,
|
boolean searchFacebook, boolean searchWebKeyDirectory,
|
||||||
HkpKeyserverAddress keyserver) {
|
@Nullable HkpKeyserverAddress keyserver) {
|
||||||
this.searchKeyserver = searchKeyserver;
|
return new AutoValue_Preferences_CloudSearchPrefs(searchKeyserver,
|
||||||
this.searchKeybase = searchKeybase;
|
searchKeybase,
|
||||||
this.searchFacebook = searchFacebook;
|
searchFacebook,
|
||||||
this.searchWebKeyDirectory = searchWebKeyDirectory;
|
searchWebKeyDirectory,
|
||||||
this.keyserver = keyserver;
|
keyserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CloudSearchPrefs(Parcel in) {
|
public static CloudSearchPrefs createWebKeyDirectoryOnly() {
|
||||||
searchKeyserver = in.readByte() != 0x00;
|
return create(false, false, false, true, null);
|
||||||
searchKeybase = in.readByte() != 0x00;
|
|
||||||
searchFacebook = in.readByte() != 0x00;
|
|
||||||
searchWebKeyDirectory = in.readByte() != 0x00;
|
|
||||||
keyserver = in.readParcelable(HkpKeyserverAddress.class.getClassLoader());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public static CloudSearchPrefs createKeyserverOnly(HkpKeyserverAddress keyserver) {
|
||||||
public int describeContents() {
|
return create(true, false, false, false, keyserver);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public static CloudSearchPrefs createSocialOnly() {
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
return create(false, true, true, false, null);
|
||||||
dest.writeByte((byte) (searchKeyserver ? 0x01 : 0x00));
|
|
||||||
dest.writeByte((byte) (searchKeybase ? 0x01 : 0x00));
|
|
||||||
dest.writeByte((byte) (searchFacebook ? 0x01 : 0x00));
|
|
||||||
dest.writeByte((byte) (searchWebKeyDirectory ? 0x01 : 0x00));
|
|
||||||
dest.writeParcelable(keyserver, flags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Parcelable.Creator<CloudSearchPrefs> CREATOR
|
|
||||||
= new Parcelable.Creator<CloudSearchPrefs>() {
|
|
||||||
@Override
|
|
||||||
public CloudSearchPrefs createFromParcel(Parcel in) {
|
|
||||||
return new CloudSearchPrefs(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CloudSearchPrefs[] newArray(int size) {
|
|
||||||
return new CloudSearchPrefs[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// sync preferences
|
// sync preferences
|
||||||
|
|||||||
Reference in New Issue
Block a user