Fixes after comments, also removed the CryptoComoponent from the IdentIcons

This commit is contained in:
Ernir Erlingsson
2016-03-03 23:00:57 +01:00
parent 95d89553d5
commit 5aba1d79f1
16 changed files with 21 additions and 209 deletions

View File

@@ -14,7 +14,7 @@ android {
defaultConfig {
minSdkVersion 10
targetSdkVersion 23
targetSdkVersion 22
versionCode 1
versionName "1.0"
}

View File

@@ -62,7 +62,6 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
private final AuthorId aliceId = new AuthorId(TestUtils.getRandomId());
private final AuthorId bobId = new AuthorId(TestUtils.getRandomId());
// private Injector alice, bob;
private SimplexMessagingComponent alice, bob;
@Before
@@ -212,131 +211,6 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
lifecycleManager.waitForShutdown();
}
/*
private byte[] write() throws Exception {
// Instantiate Alice's services
LifecycleManager lifecycleManager = alice.getLifeCycleManager();
DatabaseComponent db = alice.getDatabaseComponent();
IdentityManager identityManager = alice.getIdentityManager();
ContactManager contactManager = alice.getContactManager();
MessagingManager messagingManager = alice.getMessagingManager();
KeyManager keyManager = alice.getKeyManager();
PrivateMessageFactory privateMessageFactory = alice.getPrivateMessageFactory();
PacketWriterFactory packetWriterFactory = alice.getPacketWriterFactory();
EventBus eventBus = alice.getEventBus();
StreamWriterFactory streamWriterFactory = alice.getStreamWriterFactory();
// Start the lifecycle manager
lifecycleManager.startServices();
lifecycleManager.waitForStartup();
// Add a transport
db.addTransport(transportId, MAX_LATENCY);
// Add an identity for Alice
LocalAuthor aliceAuthor = new LocalAuthor(aliceId, "Alice",
new byte[MAX_PUBLIC_KEY_LENGTH], new byte[123], timestamp,
StorageStatus.ADDING);
identityManager.addLocalAuthor(aliceAuthor);
// Add Bob as a contact
Author bobAuthor = new Author(bobId, "Bob",
new byte[MAX_PUBLIC_KEY_LENGTH]);
ContactId contactId = contactManager.addContact(bobAuthor, aliceId);
// Derive and store the transport keys
keyManager.addContact(contactId, master, timestamp, true);
// Send Bob a message
GroupId groupId = messagingManager.getConversationId(contactId);
byte[] body = "Hi Bob!".getBytes("UTF-8");
PrivateMessage message = privateMessageFactory.createPrivateMessage(
groupId, timestamp, null, "text/plain", body);
messagingManager.addLocalMessage(message);
// Get a stream context
StreamContext ctx = keyManager.getStreamContext(contactId, transportId);
assertNotNull(ctx);
// Create a stream writer
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStream streamWriter = streamWriterFactory.createStreamWriter(
out, ctx);
// Create an outgoing sync session
PacketWriter packetWriter = packetWriterFactory.createPacketWriter(
streamWriter);
SyncSession session = new SimplexOutgoingSession(db,
new ImmediateExecutor(), eventBus, contactId, transportId,
MAX_LATENCY, packetWriter);
// Write whatever needs to be written
session.run();
streamWriter.close();
// Clean up
lifecycleManager.stopServices();
lifecycleManager.waitForShutdown();
// Return the contents of the stream
return out.toByteArray();
}
private void read(byte[] stream) throws Exception {
// Instantiate Bob's services
LifecycleManager lifecycleManager = bob.getLifeCycleManager();
DatabaseComponent db = bob.getDatabaseComponent();
IdentityManager identityManager = bob.getIdentityManager();
ContactManager contactManager = bob.getContactManager();
KeyManager keyManager = bob.getKeyManager();
StreamReaderFactory streamReaderFactory = bob.getStreamReaderFactory();
PacketReaderFactory packetReaderFactory = bob.getPacketReaderFactory();
EventBus eventBus = bob.getEventBus();
// Bob needs a MessagingManager even though we're not using it directly
bob.getMessagingManager();
// Start the lifecyle manager
lifecycleManager.startServices();
lifecycleManager.waitForStartup();
// Add a transport
db.addTransport(transportId, MAX_LATENCY);
// Add an identity for Bob
LocalAuthor bobAuthor = new LocalAuthor(bobId, "Bob",
new byte[MAX_PUBLIC_KEY_LENGTH], new byte[123], timestamp,
StorageStatus.ADDING);
identityManager.addLocalAuthor(bobAuthor);
// Add Alice as a contact
Author aliceAuthor = new Author(aliceId, "Alice",
new byte[MAX_PUBLIC_KEY_LENGTH]);
ContactId contactId = contactManager.addContact(aliceAuthor, bobId);
// Derive and store the transport keys
keyManager.addContact(contactId, master, timestamp, false);
// Set up an event listener
MessageListener listener = new MessageListener();
bob.getEventBus().addListener(listener);
// Read and recognise the tag
ByteArrayInputStream in = new ByteArrayInputStream(stream);
byte[] tag = new byte[TAG_LENGTH];
int read = in.read(tag);
assertEquals(tag.length, read);
StreamContext ctx = keyManager.getStreamContext(transportId, tag);
assertNotNull(ctx);
// Create a stream reader
InputStream streamReader = streamReaderFactory.createStreamReader(
in, ctx);
// Create an incoming sync session
PacketReader packetReader = packetReaderFactory.createPacketReader(
streamReader);
SyncSession session = new IncomingSession(db, new ImmediateExecutor(),
eventBus, contactId, transportId, packetReader);
// No messages should have been added yet
assertFalse(listener.messageAdded);
// Read whatever needs to be read
session.run();
streamReader.close();
// The private message from Alice should have been added
assertTrue(listener.messageAdded);
// Clean up
lifecycleManager.stopServices();
lifecycleManager.waitForShutdown();
}
*/
@After
public void tearDown() {
TestUtils.deleteTestDirectory(testDir);

View File

@@ -25,7 +25,6 @@ import javax.inject.Inject;
public class AsymmetricIdenticon extends IdenticonView {
@Inject protected CryptoComponent mCrypto;
private IdenticonBase mDelegate;
public AsymmetricIdenticon(Context context) {
@@ -50,10 +49,6 @@ public class AsymmetricIdenticon extends IdenticonView {
private void initDelegate() {
mDelegate = new IdenticonBase() {
@Override
protected CryptoComponent getCrypto() {
return mCrypto;
}
@Override
protected int getRowCount() {

View File

@@ -10,7 +10,6 @@ import org.briarproject.api.crypto.CryptoComponent;
* Created by saiimons on 05/10/14.
*/
public abstract class IdenticonBase {
private final CryptoComponent mCrypto;
private final int mRowCount;
private final int mColumnCount;
private final Paint mPaint;
@@ -21,7 +20,6 @@ public abstract class IdenticonBase {
private volatile boolean mReady;
public IdenticonBase() {
mCrypto = getCrypto();
mRowCount = getRowCount();
mColumnCount = getColumnCount();
mPaint = new Paint();
@@ -32,20 +30,7 @@ public abstract class IdenticonBase {
}
public byte[] getHash(byte[] input) {
byte[] mHash;
// if the input was null
if (input == null) {
// we can't create a hash value and have nothing to show (draw to the view)
mHash = null;
} else {
// generate a hash from the input to get unique but deterministic byte values
try {
mHash = mCrypto.hash(input);
} catch (Exception e) {
mHash = null;
}
}
return mHash;
return input;
}
protected void setupColors() {
@@ -65,11 +50,8 @@ public abstract class IdenticonBase {
}
public void show(byte[] input) {
if(input != null) {
mHash = getHash(input);
} else {
mHash = null;
}
mHash = input;
// set up the cell colors according to the input that was provided via show(...)
setupColors();
@@ -85,8 +67,6 @@ public abstract class IdenticonBase {
}
}
abstract protected CryptoComponent getCrypto();
abstract protected int getRowCount();
abstract protected int getColumnCount();

View File

@@ -6,8 +6,6 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.Log;
import org.briarproject.api.crypto.CryptoComponent;
/**
* Created by saiimons on 05/10/14.
*/
@@ -16,13 +14,9 @@ public class IdenticonDrawable extends Drawable {
private static final int CENTER_COLUMN_INDEX = 5;
public IdenticonDrawable(final CryptoComponent crypto, byte[] toShow) {
public IdenticonDrawable(byte[] toShow) {
super();
mDelegate = new IdenticonBase() {
@Override
protected CryptoComponent getCrypto() {
return crypto;
}
@Override
protected int getRowCount() {

View File

@@ -26,8 +26,7 @@ import javax.inject.Inject;
public class SymmetricIdenticon extends IdenticonView {
private static final int CENTER_COLUMN_INDEX = 5;
@Inject protected CryptoComponent mCrypto;
private IdenticonBase mDelegate;
public SymmetricIdenticon(Context context) {
@@ -47,10 +46,6 @@ public class SymmetricIdenticon extends IdenticonView {
private void initDelegate() {
mDelegate = new IdenticonBase() {
@Override
protected CryptoComponent getCrypto() {
return mCrypto;
}
@Override
protected int getRowCount() {

View File

@@ -87,11 +87,9 @@ public class ContactListAdapter
}
});
private Context ctx;
private CryptoComponent crypto;
public ContactListAdapter(Context context, CryptoComponent cryptoComponent) {
public ContactListAdapter(Context context) {
ctx = context;
crypto = cryptoComponent;
}
@Override
@@ -121,7 +119,7 @@ public class ContactListAdapter
Author author = item.getContact().getAuthor();
ui.avatar.setImageDrawable(
new IdenticonDrawable(crypto, author.getId().getBytes()));
new IdenticonDrawable(author.getId().getBytes()));
String contactName = author.getName();
if (unread > 0) {
ui.name.setText(contactName + " (" + unread + ")");

View File

@@ -65,8 +65,6 @@ public class ContactListFragment extends BaseEventFragment {
return TAG;
}
@Inject
protected CryptoComponent crypto;
@Inject
protected ConnectionRegistry connectionRegistry;
private ContactListAdapter adapter = null;
@@ -80,11 +78,6 @@ public class ContactListFragment extends BaseEventFragment {
@Inject
protected volatile EventBus eventBus;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void injectActivity(AndroidComponent component) {
component.inject(this);
@@ -98,7 +91,7 @@ public class ContactListFragment extends BaseEventFragment {
inflater.inflate(R.layout.activity_contact_list, container,
false);
adapter = new ContactListAdapter(getContext(), crypto);
adapter = new ContactListAdapter(getContext());
list = (BriarRecyclerView) contentView.findViewById(R.id.contactList);
list.setLayoutManager(new LinearLayoutManager(getContext()));
list.setAdapter(adapter);

View File

@@ -72,7 +72,6 @@ public class ConversationActivity extends BriarActivity
private static final Logger LOG =
Logger.getLogger(ConversationActivity.class.getName());
@Inject protected CryptoComponent crypto;
@Inject protected AndroidNotificationManager notificationManager;
@Inject protected ConnectionRegistry connectionRegistry;
@Inject @CryptoExecutor protected Executor cryptoExecutor;
@@ -104,7 +103,7 @@ public class ConversationActivity extends BriarActivity
setContentView(R.layout.activity_conversation);
adapter = new ConversationAdapter(this, crypto);
adapter = new ConversationAdapter(this);
list = (BriarRecyclerView) findViewById(R.id.conversationView);
list.setLayoutManager(new LinearLayoutManager(this));
list.setAdapter(adapter);

View File

@@ -73,12 +73,10 @@ class ConversationAdapter extends
}
});
private Context ctx;
private CryptoComponent crypto;
private byte[] identiconKey;
public ConversationAdapter(Context context, CryptoComponent cryptoComponent) {
public ConversationAdapter(Context context) {
ctx = context;
crypto = cryptoComponent;
}
public void setIdenticonKey(byte[] key) {
@@ -133,7 +131,7 @@ class ConversationAdapter extends
} else {
if (identiconKey != null)
ui.avatar.setImageDrawable(
new IdenticonDrawable(crypto, identiconKey));
new IdenticonDrawable(identiconKey));
if (!header.isRead()) {
int left = ui.layout.getPaddingLeft();
int top = ui.layout.getPaddingTop();

View File

@@ -124,7 +124,7 @@ implements OnItemSelectedListener, OnClickListener {
left.addRule(CENTER_VERTICAL);
header.addView(from, left);
adapter = new LocalAuthorSpinnerAdapter(this, crypto, true);
adapter = new LocalAuthorSpinnerAdapter(this, true);
spinner = new Spinner(this);
spinner.setId(2);
spinner.setAdapter(adapter);

View File

@@ -23,17 +23,14 @@ import static org.briarproject.android.identity.LocalAuthorItem.ANONYMOUS;
import static org.briarproject.android.identity.LocalAuthorItem.NEW;
public class LocalAuthorSpinnerAdapter extends BaseAdapter
implements SpinnerAdapter {
implements SpinnerAdapter {
private final Context ctx;
private final CryptoComponent crypto;
private final boolean includeAnonymous;
private final List<LocalAuthorItem> list = new ArrayList<LocalAuthorItem>();
public LocalAuthorSpinnerAdapter(Context ctx,
CryptoComponent crypto, boolean includeAnonymous) {
public LocalAuthorSpinnerAdapter(Context ctx, boolean includeAnonymous) {
this.ctx = ctx;
this.crypto = crypto;
this.includeAnonymous = includeAnonymous;
}
@@ -78,7 +75,7 @@ implements SpinnerAdapter {
} else {
name.setText(item.getLocalAuthor().getName());
avatar.setVisibility(View.VISIBLE);
avatar.setImageDrawable(new IdenticonDrawable(crypto,
avatar.setImageDrawable(new IdenticonDrawable(
item.getLocalAuthor().getId().getBytes()));
}
return view;

View File

@@ -56,7 +56,7 @@ implements OnItemSelectedListener, OnClickListener {
TextView step = (TextView) view.findViewById(R.id.stepView);
step.setText(String.format(ctx.getString(R.string.step), 1, 3));
adapter = new LocalAuthorSpinnerAdapter(ctx, crypto, false);
adapter = new LocalAuthorSpinnerAdapter(ctx, false);
spinner = (Spinner) view.findViewById(R.id.spinner);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);

View File

@@ -19,7 +19,6 @@ import im.delight.android.identicons.IdenticonDrawable;
public class AuthorView extends FrameLayout {
@Inject protected CryptoComponent crypto;
private ImageView avatarView;
private TextView nameView;
private ImageView statusView;
@@ -61,7 +60,7 @@ public class AuthorView extends FrameLayout {
} else {
nameView.setText(name);
avatarView.setImageDrawable(
new IdenticonDrawable(crypto, id.getBytes()));
new IdenticonDrawable(id.getBytes()));
}
switch(status) {

View File

@@ -5,20 +5,12 @@ import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import javax.inject.Qualifier;
//import com.google.inject.BindingAnnotation;
/** Annotation for injecting the executor for long-running crypto tasks. */
//@BindingAnnotation
//@Target({ FIELD, METHOD, PARAMETER })
//@Retention(RUNTIME)
//public @interface CryptoExecutor {}
@Qualifier
@Target({FIELD, METHOD, PARAMETER})
@Retention(RUNTIME)

View File

@@ -5,21 +5,19 @@ import org.briarproject.api.reliability.ReliabilityLayerFactory;
import java.util.concurrent.Executor;
import javax.inject.Named;
import dagger.Module;
import dagger.Provides;
@Module
public class ReliabilityModule {
/*
@Provides
ReliabilityLayerFactory provideReliabilityFactory(@IoExecutor
ReliabilityLayerFactory provideReliabilityFactoryByExector(@IoExecutor
Executor ioExecutor) {
return new ReliabilityLayerFactoryImpl(ioExecutor);
}
*/
@Provides
ReliabilityLayerFactory provideReliabilityFactory(