mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 05:09:53 +01:00
merge and update
This commit is contained in:
@@ -13,6 +13,9 @@ import org.briarproject.android.forum.ShareForumActivity;
|
|||||||
import org.briarproject.android.forum.WriteForumPostActivity;
|
import org.briarproject.android.forum.WriteForumPostActivity;
|
||||||
import org.briarproject.android.fragment.BaseFragment;
|
import org.briarproject.android.fragment.BaseFragment;
|
||||||
import org.briarproject.android.identity.CreateIdentityActivity;
|
import org.briarproject.android.identity.CreateIdentityActivity;
|
||||||
|
import org.briarproject.android.introduction.ContactChooserFragment;
|
||||||
|
import org.briarproject.android.introduction.IntroductionActivity;
|
||||||
|
import org.briarproject.android.introduction.IntroductionMessageFragment;
|
||||||
import org.briarproject.android.invitation.AddContactActivity;
|
import org.briarproject.android.invitation.AddContactActivity;
|
||||||
import org.briarproject.android.keyagreement.ChooseIdentityFragment;
|
import org.briarproject.android.keyagreement.ChooseIdentityFragment;
|
||||||
import org.briarproject.android.keyagreement.KeyAgreementActivity;
|
import org.briarproject.android.keyagreement.KeyAgreementActivity;
|
||||||
@@ -74,6 +77,12 @@ public interface ActivityComponent {
|
|||||||
|
|
||||||
void inject(ShowQrCodeFragment fragment);
|
void inject(ShowQrCodeFragment fragment);
|
||||||
|
|
||||||
|
void inject(IntroductionActivity activity);
|
||||||
|
|
||||||
|
void inject(ContactChooserFragment fragment);
|
||||||
|
|
||||||
|
void inject(IntroductionMessageFragment fragment);
|
||||||
|
|
||||||
@Named("ContactListFragment")
|
@Named("ContactListFragment")
|
||||||
BaseFragment newContactListFragment();
|
BaseFragment newContactListFragment();
|
||||||
|
|
||||||
@@ -85,4 +94,10 @@ public interface ActivityComponent {
|
|||||||
|
|
||||||
@Named("ShowQrCodeFragment")
|
@Named("ShowQrCodeFragment")
|
||||||
BaseFragment newShowQrCodeFragment();
|
BaseFragment newShowQrCodeFragment();
|
||||||
|
|
||||||
|
@Named("ContactChooserFragment")
|
||||||
|
BaseFragment newContactChooserFragment();
|
||||||
|
|
||||||
|
@Named("IntroductionMessageFragment")
|
||||||
|
IntroductionMessageFragment newIntroductionMessageFragment();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import org.briarproject.android.controller.SetupController;
|
|||||||
import org.briarproject.android.controller.SetupControllerImp;
|
import org.briarproject.android.controller.SetupControllerImp;
|
||||||
import org.briarproject.android.controller.ConfigController;
|
import org.briarproject.android.controller.ConfigController;
|
||||||
import org.briarproject.android.controller.ConfigControllerImp;
|
import org.briarproject.android.controller.ConfigControllerImp;
|
||||||
|
import org.briarproject.android.introduction.ContactChooserFragment;
|
||||||
|
import org.briarproject.android.introduction.IntroductionMessageFragment;
|
||||||
import org.briarproject.android.keyagreement.ChooseIdentityFragment;
|
import org.briarproject.android.keyagreement.ChooseIdentityFragment;
|
||||||
import org.briarproject.android.keyagreement.ShowQrCodeFragment;
|
import org.briarproject.android.keyagreement.ShowQrCodeFragment;
|
||||||
|
|
||||||
@@ -135,5 +137,20 @@ public class ActivityModule {
|
|||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Named("ContactChooserFragment")
|
||||||
|
BaseFragment provideContactChooserFragment() {
|
||||||
|
ContactChooserFragment fragment = new ContactChooserFragment();
|
||||||
|
fragment.setArguments(new Bundle());
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Named("IntroductionMessageFragment")
|
||||||
|
IntroductionMessageFragment provideIntroductionMessageFragment() {
|
||||||
|
IntroductionMessageFragment fragment = new IntroductionMessageFragment();
|
||||||
|
fragment.setArguments(new Bundle());
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.briarproject.api.forum.ForumPostFactory;
|
|||||||
import org.briarproject.api.forum.ForumSharingManager;
|
import org.briarproject.api.forum.ForumSharingManager;
|
||||||
import org.briarproject.api.identity.AuthorFactory;
|
import org.briarproject.api.identity.AuthorFactory;
|
||||||
import org.briarproject.api.identity.IdentityManager;
|
import org.briarproject.api.identity.IdentityManager;
|
||||||
|
import org.briarproject.api.introduction.IntroductionManager;
|
||||||
import org.briarproject.api.invitation.InvitationTaskFactory;
|
import org.briarproject.api.invitation.InvitationTaskFactory;
|
||||||
import org.briarproject.api.keyagreement.KeyAgreementTaskFactory;
|
import org.briarproject.api.keyagreement.KeyAgreementTaskFactory;
|
||||||
import org.briarproject.api.keyagreement.PayloadEncoder;
|
import org.briarproject.api.keyagreement.PayloadEncoder;
|
||||||
@@ -33,7 +34,6 @@ import org.briarproject.system.AndroidSystemModule;
|
|||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
import javax.inject.Named;
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import dagger.Component;
|
import dagger.Component;
|
||||||
@@ -95,6 +95,8 @@ public interface AndroidComponent extends CoreEagerSingletons {
|
|||||||
|
|
||||||
PayloadParser payloadParser();
|
PayloadParser payloadParser();
|
||||||
|
|
||||||
|
IntroductionManager introductionManager();
|
||||||
|
|
||||||
void inject(BriarService activity);
|
void inject(BriarService activity);
|
||||||
|
|
||||||
void inject(ContactChooserFragment fragment);
|
void inject(ContactChooserFragment fragment);
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ package org.briarproject.android;
|
|||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.PersistableBundle;
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
|
||||||
@@ -44,6 +42,10 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
injectActivity(activityComponent);
|
injectActivity(activityComponent);
|
||||||
|
|
||||||
|
for (ActivityLifecycleController alc : lifecycleControllers) {
|
||||||
|
alc.onActivityCreate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -51,9 +53,9 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
super.onPostCreate(savedInstanceState);
|
super.onPostCreate(savedInstanceState);
|
||||||
// Post call used for controllers to ensure that the onCreate method
|
// Post call used for controllers to ensure that the onCreate method
|
||||||
// override in inherited Activities has finished
|
// override in inherited Activities has finished
|
||||||
for (ActivityLifecycleController alc : lifecycleControllers) {
|
// for (ActivityLifecycleController alc : lifecycleControllers) {
|
||||||
alc.onActivityCreate();
|
// alc.onActivityCreate();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -4,18 +4,11 @@ import android.annotation.SuppressLint;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
|
||||||
|
|
||||||
import org.briarproject.android.BriarService.BriarBinder;
|
|
||||||
import org.briarproject.android.BriarService.BriarServiceConnection;
|
|
||||||
import org.briarproject.android.controller.BriarController;
|
import org.briarproject.android.controller.BriarController;
|
||||||
import org.briarproject.android.controller.ResultHandler;
|
import org.briarproject.android.controller.handler.UiResultHandler;
|
||||||
import org.briarproject.android.panic.ExitActivity;
|
import org.briarproject.android.panic.ExitActivity;
|
||||||
import org.briarproject.api.db.DatabaseConfig;
|
|
||||||
import org.briarproject.api.db.DatabaseExecutor;
|
|
||||||
import org.briarproject.api.lifecycle.LifecycleManager;
|
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -68,24 +61,14 @@ public abstract class BriarActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDestroy() {
|
|
||||||
super.onDestroy();
|
|
||||||
briarController.unbindService();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void signOut(final boolean removeFromRecentApps) {
|
protected void signOut(final boolean removeFromRecentApps) {
|
||||||
briarController.signOut(new ResultHandler<Void, RuntimeException>() {
|
briarController.signOut(new UiResultHandler<Void>(this) {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResult(Void result) {
|
public void onResultUi(Void result) {
|
||||||
if (removeFromRecentApps) startExitActivity();
|
if (removeFromRecentApps) startExitActivity();
|
||||||
else finishAndExit();
|
else finishAndExit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onException(RuntimeException exception) {
|
|
||||||
// TODO ?
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,10 +94,12 @@ public abstract class BriarActivity extends BaseActivity {
|
|||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public void runOnDbThread(final Runnable task) {
|
public void runOnDbThread(final Runnable task) {
|
||||||
briarController.runOnDbThread(task);
|
briarController.runOnDbThread(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
protected void finishOnUiThread() {
|
protected void finishOnUiThread() {
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import android.support.v4.view.GravityCompat;
|
|||||||
import android.support.v4.widget.DrawerLayout;
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.support.v7.app.ActionBarDrawerToggle;
|
import android.support.v7.app.ActionBarDrawerToggle;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -21,8 +20,8 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import org.briarproject.R;
|
import org.briarproject.R;
|
||||||
import org.briarproject.android.controller.NavDrawerController;
|
import org.briarproject.android.controller.NavDrawerController;
|
||||||
import org.briarproject.android.controller.ResultHandler;
|
|
||||||
import org.briarproject.android.controller.TransportStateListener;
|
import org.briarproject.android.controller.TransportStateListener;
|
||||||
|
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||||
import org.briarproject.android.fragment.BaseFragment;
|
import org.briarproject.android.fragment.BaseFragment;
|
||||||
import org.briarproject.android.util.CustomAnimations;
|
import org.briarproject.android.util.CustomAnimations;
|
||||||
import org.briarproject.api.TransportId;
|
import org.briarproject.api.TransportId;
|
||||||
@@ -160,14 +159,14 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
|
|||||||
|
|
||||||
private void storeLocalAuthor(final LocalAuthor a) {
|
private void storeLocalAuthor(final LocalAuthor a) {
|
||||||
controller.storeLocalAuthor(a,
|
controller.storeLocalAuthor(a,
|
||||||
new ResultHandler<Void, DbException>() {
|
new UiResultExceptionHandler<Void, DbException>(this) {
|
||||||
@Override
|
@Override
|
||||||
public void onResult(Void result) {
|
public void onResultUi(Void result) {
|
||||||
hideLoadingScreen();
|
hideLoadingScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onException(DbException exception) {
|
public void onExceptionUi(DbException exception) {
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.briarproject.android;
|
|||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.design.widget.TextInputLayout;
|
import android.support.design.widget.TextInputLayout;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
@@ -16,9 +17,8 @@ import android.widget.TextView;
|
|||||||
import android.widget.TextView.OnEditorActionListener;
|
import android.widget.TextView.OnEditorActionListener;
|
||||||
|
|
||||||
import org.briarproject.R;
|
import org.briarproject.R;
|
||||||
import org.briarproject.android.controller.EncryptedKeyNullException;
|
|
||||||
import org.briarproject.android.controller.PasswordController;
|
import org.briarproject.android.controller.PasswordController;
|
||||||
import org.briarproject.android.controller.ResultHandler;
|
import org.briarproject.android.controller.handler.UiResultHandler;
|
||||||
import org.briarproject.android.util.AndroidUtils;
|
import org.briarproject.android.util.AndroidUtils;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -36,13 +36,13 @@ public class PasswordActivity extends BaseActivity {
|
|||||||
private EditText password;
|
private EditText password;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PasswordController passwordHelper;
|
PasswordController passwordController;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle state) {
|
public void onCreate(Bundle state) {
|
||||||
super.onCreate(state);
|
super.onCreate(state);
|
||||||
|
|
||||||
if (!passwordHelper.initialized()) {
|
if (!passwordController.initialized()) {
|
||||||
clearSharedPrefsAndDeleteEverything();
|
clearSharedPrefsAndDeleteEverything();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -92,7 +92,7 @@ public class PasswordActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void clearSharedPrefsAndDeleteEverything() {
|
private void clearSharedPrefsAndDeleteEverything() {
|
||||||
passwordHelper.clearPrefs();
|
passwordController.clearPrefs();
|
||||||
AndroidUtils.deleteAppData(this);
|
AndroidUtils.deleteAppData(this);
|
||||||
setResult(RESULT_CANCELED);
|
setResult(RESULT_CANCELED);
|
||||||
startActivity(new Intent(this, SetupActivity.class));
|
startActivity(new Intent(this, SetupActivity.class));
|
||||||
@@ -125,22 +125,17 @@ public class PasswordActivity extends BaseActivity {
|
|||||||
hideSoftKeyboard(password);
|
hideSoftKeyboard(password);
|
||||||
signInButton.setVisibility(INVISIBLE);
|
signInButton.setVisibility(INVISIBLE);
|
||||||
progress.setVisibility(VISIBLE);
|
progress.setVisibility(VISIBLE);
|
||||||
passwordHelper.validatePassword(password.getText().toString(),
|
passwordController.validatePassword(password.getText().toString(),
|
||||||
new ResultHandler<Boolean, EncryptedKeyNullException>() {
|
new UiResultHandler<Boolean>(this) {
|
||||||
@Override
|
@Override
|
||||||
public void onResult(Boolean result) {
|
public void onResultUi(@NonNull Boolean result) {
|
||||||
if (result != null && result) {
|
if (result) {
|
||||||
setResult(RESULT_OK);
|
setResult(RESULT_OK);
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
tryAgain();
|
tryAgain();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onException(EncryptedKeyNullException e) {
|
|
||||||
// TODO ?
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.briarproject.android;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.design.widget.TextInputLayout;
|
import android.support.design.widget.TextInputLayout;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
@@ -15,11 +16,10 @@ import android.widget.TextView;
|
|||||||
import android.widget.TextView.OnEditorActionListener;
|
import android.widget.TextView.OnEditorActionListener;
|
||||||
|
|
||||||
import org.briarproject.R;
|
import org.briarproject.R;
|
||||||
import org.briarproject.android.controller.ResultHandler;
|
|
||||||
import org.briarproject.android.controller.SetupController;
|
import org.briarproject.android.controller.SetupController;
|
||||||
|
import org.briarproject.android.controller.handler.UiResultHandler;
|
||||||
import org.briarproject.android.util.AndroidUtils;
|
import org.briarproject.android.util.AndroidUtils;
|
||||||
import org.briarproject.android.util.StrengthMeter;
|
import org.briarproject.android.util.StrengthMeter;
|
||||||
|
|
||||||
import org.briarproject.util.StringUtils;
|
import org.briarproject.util.StringUtils;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -135,16 +135,10 @@ public class SetupActivity extends BaseActivity implements OnClickListener,
|
|||||||
final String nickname = nicknameEntry.getText().toString();
|
final String nickname = nicknameEntry.getText().toString();
|
||||||
final String password = passwordEntry.getText().toString();
|
final String password = passwordEntry.getText().toString();
|
||||||
setupController.createIdentity(nickname, password,
|
setupController.createIdentity(nickname, password,
|
||||||
new ResultHandler<Long, RuntimeException>() {
|
new UiResultHandler<Long>(this) {
|
||||||
@Override
|
@Override
|
||||||
public void onResult(Long result) {
|
public void onResultUi(@NonNull Long result) {
|
||||||
if (result != null)
|
showMain(result);
|
||||||
showMain(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onException(RuntimeException exception) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package org.briarproject.android.controller;
|
package org.briarproject.android.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import org.briarproject.android.controller.handler.ResultHandler;
|
||||||
|
|
||||||
public interface BriarController extends ActivityLifecycleController {
|
public interface BriarController extends ActivityLifecycleController {
|
||||||
void runOnDbThread(final Runnable task);
|
void runOnDbThread(final Runnable task);
|
||||||
|
|
||||||
@@ -10,5 +12,5 @@ public interface BriarController extends ActivityLifecycleController {
|
|||||||
|
|
||||||
boolean encryptionKey();
|
boolean encryptionKey();
|
||||||
|
|
||||||
void signOut(ResultHandler<Void, RuntimeException> eventHandler);
|
void signOut(ResultHandler<Void> eventHandler);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import android.support.annotation.CallSuper;
|
|||||||
|
|
||||||
import org.briarproject.android.BriarService;
|
import org.briarproject.android.BriarService;
|
||||||
import org.briarproject.android.BriarService.BriarServiceConnection;
|
import org.briarproject.android.BriarService.BriarServiceConnection;
|
||||||
|
import org.briarproject.android.controller.handler.ResultHandler;
|
||||||
import org.briarproject.api.db.DatabaseConfig;
|
import org.briarproject.api.db.DatabaseConfig;
|
||||||
import org.briarproject.api.db.DatabaseExecutor;
|
import org.briarproject.api.db.DatabaseExecutor;
|
||||||
import org.briarproject.api.lifecycle.LifecycleManager;
|
import org.briarproject.api.lifecycle.LifecycleManager;
|
||||||
@@ -75,7 +76,7 @@ public class BriarControllerImp implements BriarController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void signOut(final ResultHandler<Void, RuntimeException> eventHandler) {
|
public void signOut(final ResultHandler<Void> eventHandler) {
|
||||||
new Thread() {
|
new Thread() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@@ -90,14 +91,8 @@ public class BriarControllerImp implements BriarController {
|
|||||||
service.waitForShutdown();
|
service.waitForShutdown();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
LOG.warning("Interrupted while waiting for service");
|
LOG.warning("Interrupted while waiting for service");
|
||||||
Thread.currentThread().interrupt();
|
|
||||||
}
|
}
|
||||||
activity.runOnUiThread(new Runnable() {
|
eventHandler.onResult(null);
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
eventHandler.onResult(null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
package org.briarproject.android.controller;
|
|
||||||
|
|
||||||
public class EncryptedKeyNullException extends NullPointerException {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Encrypted key can't be null";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.briarproject.android.controller;
|
package org.briarproject.android.controller;
|
||||||
|
|
||||||
|
import org.briarproject.android.controller.handler.ResultExceptionHandler;
|
||||||
import org.briarproject.api.TransportId;
|
import org.briarproject.api.TransportId;
|
||||||
import org.briarproject.api.db.DbException;
|
import org.briarproject.api.db.DbException;
|
||||||
import org.briarproject.api.identity.LocalAuthor;
|
import org.briarproject.api.identity.LocalAuthor;
|
||||||
@@ -10,7 +11,7 @@ public interface NavDrawerController extends BriarController {
|
|||||||
boolean transportRunning(TransportId transportId);
|
boolean transportRunning(TransportId transportId);
|
||||||
|
|
||||||
void storeLocalAuthor(LocalAuthor author,
|
void storeLocalAuthor(LocalAuthor author,
|
||||||
ResultHandler<Void, DbException> resultHandler);
|
ResultExceptionHandler<Void, DbException> resultHandler);
|
||||||
|
|
||||||
LocalAuthor removeAuthorHandle(long handle);
|
LocalAuthor removeAuthorHandle(long handle);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.briarproject.android.controller;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
|
||||||
import org.briarproject.android.api.ReferenceManager;
|
import org.briarproject.android.api.ReferenceManager;
|
||||||
|
import org.briarproject.android.controller.handler.ResultExceptionHandler;
|
||||||
import org.briarproject.api.TransportId;
|
import org.briarproject.api.TransportId;
|
||||||
import org.briarproject.api.db.DbException;
|
import org.briarproject.api.db.DbException;
|
||||||
import org.briarproject.api.event.Event;
|
import org.briarproject.api.event.Event;
|
||||||
@@ -84,7 +85,8 @@ public class NavDrawerControllerImp extends BriarControllerImp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void transportStateUpdate(final TransportId id, final boolean enabled) {
|
private void transportStateUpdate(final TransportId id,
|
||||||
|
final boolean enabled) {
|
||||||
activity.runOnUiThread(new Runnable() {
|
activity.runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@@ -108,7 +110,8 @@ public class NavDrawerControllerImp extends BriarControllerImp
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void storeLocalAuthor(final LocalAuthor author,
|
public void storeLocalAuthor(final LocalAuthor author,
|
||||||
final ResultHandler<Void, DbException> resultHandler) {
|
final ResultExceptionHandler<Void, DbException> resultHandler) {
|
||||||
|
|
||||||
runOnDbThread(new Runnable() {
|
runOnDbThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
@@ -117,22 +120,11 @@ public class NavDrawerControllerImp extends BriarControllerImp
|
|||||||
long duration = System.currentTimeMillis() - now;
|
long duration = System.currentTimeMillis() - now;
|
||||||
if (LOG.isLoggable(INFO))
|
if (LOG.isLoggable(INFO))
|
||||||
LOG.info("Storing author took " + duration + " ms");
|
LOG.info("Storing author took " + duration + " ms");
|
||||||
activity.runOnUiThread(new Runnable() {
|
resultHandler.onResult(null);
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
resultHandler.onResult(null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (final DbException e) {
|
} catch (final DbException e) {
|
||||||
if (LOG.isLoggable(WARNING))
|
if (LOG.isLoggable(WARNING))
|
||||||
LOG.log(WARNING, e.toString(), e);
|
LOG.log(WARNING, e.toString(), e);
|
||||||
|
resultHandler.onException(e);
|
||||||
activity.runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
resultHandler.onException(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package org.briarproject.android.controller;
|
package org.briarproject.android.controller;
|
||||||
|
|
||||||
|
import org.briarproject.android.controller.handler.ResultHandler;
|
||||||
|
|
||||||
public interface PasswordController extends ConfigController {
|
public interface PasswordController extends ConfigController {
|
||||||
void validatePassword(String password,
|
void validatePassword(String password,
|
||||||
ResultHandler<Boolean, EncryptedKeyNullException> resultHandler);
|
ResultHandler<Boolean> resultHandler);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.briarproject.android.controller;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
|
||||||
|
import org.briarproject.android.controller.handler.ResultHandler;
|
||||||
import org.briarproject.api.crypto.CryptoComponent;
|
import org.briarproject.api.crypto.CryptoComponent;
|
||||||
import org.briarproject.api.crypto.CryptoExecutor;
|
import org.briarproject.api.crypto.CryptoExecutor;
|
||||||
import org.briarproject.api.crypto.SecretKey;
|
import org.briarproject.api.crypto.SecretKey;
|
||||||
@@ -29,35 +30,21 @@ public class PasswordControllerImp extends ConfigControllerImp
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void validatePassword(final String password,
|
public void validatePassword(final String password,
|
||||||
final ResultHandler<Boolean, EncryptedKeyNullException> resultHandler) {
|
final ResultHandler<Boolean> resultHandler) {
|
||||||
final byte[] encrypted = getEncryptedKey();
|
final byte[] encrypted = getEncryptedKey();
|
||||||
if (encrypted == null) {
|
|
||||||
resultHandler.onException(new EncryptedKeyNullException());
|
|
||||||
}
|
|
||||||
cryptoExecutor.execute(new Runnable() {
|
cryptoExecutor.execute(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
byte[] key = crypto.decryptWithPassword(encrypted, password);
|
byte[] key = crypto.decryptWithPassword(encrypted, password);
|
||||||
if (key == null) {
|
if (key == null) {
|
||||||
onPasswordValidated(false, resultHandler);
|
resultHandler.onResult(false);
|
||||||
} else {
|
} else {
|
||||||
databaseConfig.setEncryptionKey(new SecretKey(key));
|
databaseConfig.setEncryptionKey(new SecretKey(key));
|
||||||
onPasswordValidated(true, resultHandler);
|
resultHandler.onResult(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onPasswordValidated(final boolean validated,
|
|
||||||
final ResultHandler<Boolean, EncryptedKeyNullException> resultHandler) {
|
|
||||||
activity.runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
resultHandler.onResult(validated);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private byte[] getEncryptedKey() {
|
private byte[] getEncryptedKey() {
|
||||||
String hex = getEncryptedDatabaseKey();
|
String hex = getEncryptedDatabaseKey();
|
||||||
return hex == null ? null : StringUtils.fromHexString(hex);
|
return hex == null ? null : StringUtils.fromHexString(hex);
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
package org.briarproject.android.controller;
|
|
||||||
|
|
||||||
public interface ResultHandler<R, E> {
|
|
||||||
void onResult(R result);
|
|
||||||
void onException(E exception);
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
package org.briarproject.android.controller;
|
package org.briarproject.android.controller;
|
||||||
|
|
||||||
|
import org.briarproject.android.controller.handler.ResultHandler;
|
||||||
|
|
||||||
public interface SetupController {
|
public interface SetupController {
|
||||||
float estimatePasswordStrength(String password);
|
float estimatePasswordStrength(String password);
|
||||||
|
|
||||||
void createIdentity(String nickname, String password,
|
void createIdentity(String nickname, String password,
|
||||||
ResultHandler<Long, RuntimeException> resultHandler);
|
ResultHandler<Long> resultHandler);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package org.briarproject.android.controller;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
import org.briarproject.android.BaseActivity;
|
|
||||||
import org.briarproject.android.api.ReferenceManager;
|
import org.briarproject.android.api.ReferenceManager;
|
||||||
|
import org.briarproject.android.controller.handler.ResultHandler;
|
||||||
import org.briarproject.api.crypto.CryptoComponent;
|
import org.briarproject.api.crypto.CryptoComponent;
|
||||||
import org.briarproject.api.crypto.CryptoExecutor;
|
import org.briarproject.api.crypto.CryptoExecutor;
|
||||||
import org.briarproject.api.crypto.KeyPair;
|
import org.briarproject.api.crypto.KeyPair;
|
||||||
@@ -83,7 +83,7 @@ public class SetupControllerImp implements SetupController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createIdentity(final String nickname, final String password,
|
public void createIdentity(final String nickname, final String password,
|
||||||
final ResultHandler<Long, RuntimeException> resultHandler) {
|
final ResultHandler<Long> resultHandler) {
|
||||||
cryptoExecutor.execute(new Runnable() {
|
cryptoExecutor.execute(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
SecretKey key = crypto.generateSecretKey();
|
SecretKey key = crypto.generateSecretKey();
|
||||||
@@ -93,17 +93,6 @@ public class SetupControllerImp implements SetupController {
|
|||||||
final LocalAuthor localAuthor = createLocalAuthor(nickname);
|
final LocalAuthor localAuthor = createLocalAuthor(nickname);
|
||||||
long handle = referenceManager.putReference(localAuthor,
|
long handle = referenceManager.putReference(localAuthor,
|
||||||
LocalAuthor.class);
|
LocalAuthor.class);
|
||||||
onIdentityCreated(handle, resultHandler);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onIdentityCreated(final long handle,
|
|
||||||
final ResultHandler<Long, RuntimeException> resultHandler) {
|
|
||||||
activity.runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
resultHandler.onResult(handle);
|
resultHandler.onResult(handle);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package org.briarproject.android.controller.handler;
|
||||||
|
|
||||||
|
public interface ResultExceptionHandler<R, E extends Exception> {
|
||||||
|
void onResult(R result);
|
||||||
|
void onException(E exception);
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package org.briarproject.android.controller.handler;
|
||||||
|
|
||||||
|
public interface ResultHandler<R> {
|
||||||
|
void onResult(R result);
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package org.briarproject.android.controller.handler;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
|
||||||
|
public abstract class UiResultExceptionHandler<R, E extends Exception>
|
||||||
|
implements ResultExceptionHandler<R, E> {
|
||||||
|
|
||||||
|
private final Activity activity;
|
||||||
|
|
||||||
|
public UiResultExceptionHandler(Activity activity) {
|
||||||
|
this.activity = activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onResult(final R result) {
|
||||||
|
activity.runOnUiThread(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
onResultUi(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onException(final E exception) {
|
||||||
|
activity.runOnUiThread(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
onExceptionUi(exception);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void onResultUi(R result);
|
||||||
|
|
||||||
|
public abstract void onExceptionUi(E exception);
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package org.briarproject.android.controller.handler;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
|
||||||
|
public abstract class UiResultHandler<R> implements ResultHandler<R> {
|
||||||
|
|
||||||
|
private final Activity activity;
|
||||||
|
|
||||||
|
public UiResultHandler(Activity activity) {
|
||||||
|
this.activity = activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onResult(final R result) {
|
||||||
|
activity.runOnUiThread(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
onResultUi(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void onResultUi(R result);
|
||||||
|
}
|
||||||
@@ -12,7 +12,6 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import org.briarproject.R;
|
import org.briarproject.R;
|
||||||
import org.briarproject.android.AndroidComponent;
|
|
||||||
import org.briarproject.android.contact.ContactListAdapter;
|
import org.briarproject.android.contact.ContactListAdapter;
|
||||||
import org.briarproject.android.contact.ContactListItem;
|
import org.briarproject.android.contact.ContactListItem;
|
||||||
import org.briarproject.android.contact.ConversationItem;
|
import org.briarproject.android.contact.ConversationItem;
|
||||||
@@ -66,6 +65,11 @@ public class ContactChooserFragment extends BaseFragment {
|
|||||||
@Inject
|
@Inject
|
||||||
protected volatile ConnectionRegistry connectionRegistry;
|
protected volatile ConnectionRegistry connectionRegistry;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ContactChooserFragment() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
@@ -77,11 +81,6 @@ public class ContactChooserFragment extends BaseFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void injectActivity(AndroidComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.briarproject.android.introduction;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.transition.ChangeBounds;
|
import android.transition.ChangeBounds;
|
||||||
import android.transition.Fade;
|
import android.transition.Fade;
|
||||||
@@ -10,7 +11,7 @@ import android.view.MenuItem;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import org.briarproject.R;
|
import org.briarproject.R;
|
||||||
import org.briarproject.android.AndroidComponent;
|
import org.briarproject.android.ActivityComponent;
|
||||||
import org.briarproject.android.BriarActivity;
|
import org.briarproject.android.BriarActivity;
|
||||||
import org.briarproject.android.fragment.BaseFragment;
|
import org.briarproject.android.fragment.BaseFragment;
|
||||||
import org.briarproject.api.contact.Contact;
|
import org.briarproject.api.contact.Contact;
|
||||||
@@ -33,15 +34,15 @@ public class IntroductionActivity extends BriarActivity implements
|
|||||||
setContentView(R.layout.activity_introduction);
|
setContentView(R.layout.activity_introduction);
|
||||||
|
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
ContactChooserFragment chooserFragment =
|
|
||||||
new ContactChooserFragment();
|
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
.add(R.id.introductionContainer, chooserFragment).commit();
|
.add(R.id.introductionContainer,
|
||||||
|
activityComponent.newContactChooserFragment())
|
||||||
|
.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void injectActivity(AndroidComponent component) {
|
public void injectActivity(ActivityComponent component) {
|
||||||
component.inject(this);
|
component.inject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,13 +86,14 @@ public class IntroductionActivity extends BriarActivity implements
|
|||||||
final Contact c2) {
|
final Contact c2) {
|
||||||
|
|
||||||
IntroductionMessageFragment messageFragment =
|
IntroductionMessageFragment messageFragment =
|
||||||
IntroductionMessageFragment
|
activityComponent.newIntroductionMessageFragment();
|
||||||
.newInstance(c1.getId().getInt(), c2.getId().getInt());
|
messageFragment.initBundle(c1.getId().getInt(), c2.getId().getInt());
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
messageFragment.setSharedElementEnterTransition(new ChangeBounds());
|
messageFragment.setSharedElementEnterTransition(new ChangeBounds());
|
||||||
messageFragment.setEnterTransition(new Fade());
|
messageFragment.setEnterTransition(new Fade());
|
||||||
messageFragment.setSharedElementReturnTransition(new ChangeBounds());
|
messageFragment
|
||||||
|
.setSharedElementReturnTransition(new ChangeBounds());
|
||||||
}
|
}
|
||||||
|
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import android.widget.TextView;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import org.briarproject.R;
|
import org.briarproject.R;
|
||||||
import org.briarproject.android.AndroidComponent;
|
|
||||||
import org.briarproject.android.fragment.BaseFragment;
|
import org.briarproject.android.fragment.BaseFragment;
|
||||||
import org.briarproject.api.FormatException;
|
import org.briarproject.api.FormatException;
|
||||||
import org.briarproject.api.contact.Contact;
|
import org.briarproject.api.contact.Contact;
|
||||||
@@ -49,18 +48,19 @@ public class IntroductionMessageFragment extends BaseFragment {
|
|||||||
@Inject
|
@Inject
|
||||||
protected volatile IntroductionManager introductionManager;
|
protected volatile IntroductionManager introductionManager;
|
||||||
|
|
||||||
public static IntroductionMessageFragment newInstance(int contactId1,
|
public void initBundle(int contactId1, int contactId2) {
|
||||||
int contactId2) {
|
|
||||||
IntroductionMessageFragment f = new IntroductionMessageFragment();
|
|
||||||
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putInt(CONTACT_ID_1, contactId1);
|
args.putInt(CONTACT_ID_1, contactId1);
|
||||||
args.putInt(CONTACT_ID_2, contactId2);
|
args.putInt(CONTACT_ID_2, contactId2);
|
||||||
f.setArguments(args);
|
this.setArguments(args);
|
||||||
|
|
||||||
return f;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public IntroductionMessageFragment() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
@@ -72,11 +72,6 @@ public class IntroductionMessageFragment extends BaseFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void injectActivity(AndroidComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@@ -183,7 +178,8 @@ public class IntroductionMessageFragment extends BaseFragment {
|
|||||||
// actually make the introduction
|
// actually make the introduction
|
||||||
try {
|
try {
|
||||||
long timestamp = System.currentTimeMillis();
|
long timestamp = System.currentTimeMillis();
|
||||||
introductionManager.makeIntroduction(c1, c2, msg, timestamp);
|
introductionManager
|
||||||
|
.makeIntroduction(c1, c2, msg, timestamp);
|
||||||
} catch (DbException e) {
|
} catch (DbException e) {
|
||||||
if (LOG.isLoggable(WARNING))
|
if (LOG.isLoggable(WARNING))
|
||||||
LOG.log(WARNING, e.toString(), e);
|
LOG.log(WARNING, e.toString(), e);
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import org.briarproject.R;
|
import org.briarproject.R;
|
||||||
import org.briarproject.android.ActivityComponent;
|
import org.briarproject.android.ActivityComponent;
|
||||||
import org.briarproject.android.AndroidComponent;
|
|
||||||
import org.briarproject.android.BriarActivity;
|
import org.briarproject.android.BriarActivity;
|
||||||
import org.briarproject.android.api.ReferenceManager;
|
import org.briarproject.android.api.ReferenceManager;
|
||||||
import org.briarproject.api.crypto.CryptoComponent;
|
import org.briarproject.api.crypto.CryptoComponent;
|
||||||
@@ -287,7 +286,7 @@ implements InvitationListener {
|
|||||||
localInvitationCode, code);
|
localInvitationCode, code);
|
||||||
taskHandle = referenceManager.putReference(task, InvitationTask.class);
|
taskHandle = referenceManager.putReference(task, InvitationTask.class);
|
||||||
task.addListener(AddContactActivity.this);
|
task.addListener(AddContactActivity.this);
|
||||||
// Add a second listener so we can remove the first in onActivityDestroy(),
|
// Add a second listener so we can remove the first in onDestroy(),
|
||||||
// allowing the activity to be garbage collected if it's destroyed
|
// allowing the activity to be garbage collected if it's destroyed
|
||||||
task.addListener(new ReferenceCleaner(referenceManager, taskHandle));
|
task.addListener(new ReferenceCleaner(referenceManager, taskHandle));
|
||||||
task.connect();
|
task.connect();
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class IntroductionModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
MessageValidator getValidator(MessageQueueManager messageQueueManager,
|
MessageValidator provideValidator(MessageQueueManager messageQueueManager,
|
||||||
IntroductionManager introductionManager,
|
IntroductionManager introductionManager,
|
||||||
MetadataEncoder metadataEncoder, ClientHelper clientHelper,
|
MetadataEncoder metadataEncoder, ClientHelper clientHelper,
|
||||||
Clock clock) {
|
Clock clock) {
|
||||||
@@ -43,7 +43,7 @@ public class IntroductionModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
IntroductionManager getIntroductionManager(
|
IntroductionManager provideIntroductionManager(
|
||||||
LifecycleManager lifecycleManager,
|
LifecycleManager lifecycleManager,
|
||||||
ContactManager contactManager,
|
ContactManager contactManager,
|
||||||
MessageQueueManager messageQueueManager,
|
MessageQueueManager messageQueueManager,
|
||||||
|
|||||||
Reference in New Issue
Block a user