mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-22 15:49:53 +01:00
[android] StartupActivity: Address first round of review comments
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
package org.briarproject.briar.android;
|
package org.briarproject.briar.android;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
|
import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.logging.LogRecord;
|
import java.util.logging.LogRecord;
|
||||||
|
|
||||||
@@ -11,6 +14,8 @@ import java.util.logging.LogRecord;
|
|||||||
*/
|
*/
|
||||||
public interface BriarApplication {
|
public interface BriarApplication {
|
||||||
|
|
||||||
|
Class<? extends Activity> ENTRY_ACTIVITY = NavDrawerActivity.class;
|
||||||
|
|
||||||
Collection<LogRecord> getRecentLogRecords();
|
Collection<LogRecord> getRecentLogRecords();
|
||||||
|
|
||||||
AndroidComponent getApplicationComponent();
|
AndroidComponent getApplicationComponent();
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ import static java.util.logging.Level.INFO;
|
|||||||
import static java.util.logging.Level.WARNING;
|
import static java.util.logging.Level.WARNING;
|
||||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.ALREADY_RUNNING;
|
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.ALREADY_RUNNING;
|
||||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.SUCCESS;
|
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.SUCCESS;
|
||||||
import static org.briarproject.briar.android.activity.ActivityComponent.ENTRY_ACTIVITY;
|
import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY;
|
||||||
import static org.briarproject.briar.api.android.AndroidNotificationManager.FAILURE_CHANNEL_ID;
|
import static org.briarproject.briar.api.android.AndroidNotificationManager.FAILURE_CHANNEL_ID;
|
||||||
import static org.briarproject.briar.api.android.AndroidNotificationManager.FAILURE_NOTIFICATION_ID;
|
import static org.briarproject.briar.api.android.AndroidNotificationManager.FAILURE_NOTIFICATION_ID;
|
||||||
import static org.briarproject.briar.api.android.AndroidNotificationManager.ONGOING_CHANNEL_ID;
|
import static org.briarproject.briar.api.android.AndroidNotificationManager.ONGOING_CHANNEL_ID;
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class StartupFailureActivity extends BaseActivity implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void runOnDbThread(@NonNull Runnable runnable) {
|
public void runOnDbThread(@NonNull Runnable runnable) {
|
||||||
throw new AssertionError("Deprecated and should not be used");
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
|
|||||||
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
|
import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
|
||||||
import static org.briarproject.briar.android.activity.ActivityComponent.ENTRY_ACTIVITY;
|
import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY;
|
||||||
|
|
||||||
@MethodsNotNullByDefault
|
@MethodsNotNullByDefault
|
||||||
@ParametersNotNullByDefault
|
@ParametersNotNullByDefault
|
||||||
|
|||||||
@@ -91,8 +91,6 @@ import dagger.Component;
|
|||||||
dependencies = AndroidComponent.class)
|
dependencies = AndroidComponent.class)
|
||||||
public interface ActivityComponent {
|
public interface ActivityComponent {
|
||||||
|
|
||||||
Class<? extends Activity> ENTRY_ACTIVITY = NavDrawerActivity.class;
|
|
||||||
|
|
||||||
Activity activity();
|
Activity activity();
|
||||||
|
|
||||||
void inject(SplashScreenActivity activity);
|
void inject(SplashScreenActivity activity);
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import static org.briarproject.briar.android.login.StartupViewModel.State.MIGRAT
|
|||||||
@ParametersNotNullByDefault
|
@ParametersNotNullByDefault
|
||||||
public class OpenDatabaseFragment extends BaseFragment {
|
public class OpenDatabaseFragment extends BaseFragment {
|
||||||
|
|
||||||
final static String TAG = PasswordFragment.class.getName();
|
final static String TAG = OpenDatabaseFragment.class.getName();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ViewModelProvider.Factory viewModelFactory;
|
ViewModelProvider.Factory viewModelFactory;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import javax.inject.Inject;
|
|||||||
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||||
|
import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
|
||||||
import static org.briarproject.briar.android.login.StartupViewModel.State.SIGNED_IN;
|
import static org.briarproject.briar.android.login.StartupViewModel.State.SIGNED_IN;
|
||||||
import static org.briarproject.briar.android.login.StartupViewModel.State.SIGNED_OUT;
|
import static org.briarproject.briar.android.login.StartupViewModel.State.SIGNED_OUT;
|
||||||
import static org.briarproject.briar.android.login.StartupViewModel.State.STARTED;
|
import static org.briarproject.briar.android.login.StartupViewModel.State.STARTED;
|
||||||
@@ -59,10 +60,12 @@ public class StartupActivity extends BaseActivity implements
|
|||||||
// because if it exists, we assume the database also exists
|
// because if it exists, we assume the database also exists
|
||||||
// and when clearing app data, the folder does not get deleted.
|
// and when clearing app data, the folder does not get deleted.
|
||||||
viewModel.deleteAccount();
|
viewModel.deleteAccount();
|
||||||
onAccountDeleted(true);
|
onAccountDeleted();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
viewModel.getAccountDeleted().observe(this, this::onAccountDeleted);
|
viewModel.getAccountDeleted().observe(this, deleted -> {
|
||||||
|
if (deleted != null && deleted) onAccountDeleted();
|
||||||
|
});
|
||||||
viewModel.getState().observe(this, this::onStateChanged);
|
viewModel.getState().observe(this, this::onStateChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +89,10 @@ public class StartupActivity extends BaseActivity implements
|
|||||||
} else if (state == SIGNED_IN) {
|
} else if (state == SIGNED_IN) {
|
||||||
startService(new Intent(this, BriarService.class));
|
startService(new Intent(this, BriarService.class));
|
||||||
} else if (state == STARTING) {
|
} else if (state == STARTING) {
|
||||||
// only show OpenDatabaseFragment if not already visible
|
// Only show OpenDatabaseFragment if not already visible.
|
||||||
|
// This can happen because several LifecycleManager states are
|
||||||
|
// mapped to STARTING, so this can get called several times
|
||||||
|
// as the app's lifecycle advances.
|
||||||
FragmentManager fm = getSupportFragmentManager();
|
FragmentManager fm = getSupportFragmentManager();
|
||||||
Fragment f = fm.findFragmentByTag(OpenDatabaseFragment.TAG);
|
Fragment f = fm.findFragmentByTag(OpenDatabaseFragment.TAG);
|
||||||
if (f == null || !f.isVisible()) {
|
if (f == null || !f.isVisible()) {
|
||||||
@@ -100,21 +106,19 @@ public class StartupActivity extends BaseActivity implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onAccountDeleted(boolean accountDeleted) {
|
private void onAccountDeleted() {
|
||||||
if (accountDeleted) {
|
setResult(RESULT_CANCELED);
|
||||||
setResult(RESULT_CANCELED);
|
finish();
|
||||||
finish();
|
Intent i = new Intent(this, SetupActivity.class);
|
||||||
Intent i = new Intent(this, SetupActivity.class);
|
i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP |
|
||||||
i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP |
|
FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_TASK_ON_HOME);
|
||||||
FLAG_ACTIVITY_CLEAR_TASK);
|
startActivity(i);
|
||||||
startActivity(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void runOnDbThread(Runnable runnable) {
|
public void runOnDbThread(Runnable runnable) {
|
||||||
// we don't need this and shouldn't be forced to implement it
|
// we don't need this and shouldn't be forced to implement it
|
||||||
throw new AssertionError();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ import javax.inject.Inject;
|
|||||||
|
|
||||||
import static android.app.Activity.RESULT_OK;
|
import static android.app.Activity.RESULT_OK;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
|
||||||
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||||
import static android.media.RingtoneManager.ACTION_RINGTONE_PICKER;
|
import static android.media.RingtoneManager.ACTION_RINGTONE_PICKER;
|
||||||
import static android.media.RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI;
|
import static android.media.RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI;
|
||||||
@@ -79,7 +80,7 @@ import static org.briarproject.bramble.util.LogUtils.logDuration;
|
|||||||
import static org.briarproject.bramble.util.LogUtils.logException;
|
import static org.briarproject.bramble.util.LogUtils.logException;
|
||||||
import static org.briarproject.bramble.util.LogUtils.now;
|
import static org.briarproject.bramble.util.LogUtils.now;
|
||||||
import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD;
|
import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD;
|
||||||
import static org.briarproject.briar.android.activity.ActivityComponent.ENTRY_ACTIVITY;
|
import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY;
|
||||||
import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_RINGTONE;
|
import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_RINGTONE;
|
||||||
import static org.briarproject.briar.android.navdrawer.NavDrawerActivity.INTENT_SIGN_OUT;
|
import static org.briarproject.briar.android.navdrawer.NavDrawerActivity.INTENT_SIGN_OUT;
|
||||||
import static org.briarproject.briar.android.util.UiUtils.hasScreenLock;
|
import static org.briarproject.briar.android.util.UiUtils.hasScreenLock;
|
||||||
@@ -576,7 +577,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
|
|||||||
(dialogInterface, i) -> {
|
(dialogInterface, i) -> {
|
||||||
language.setValue(newValue);
|
language.setValue(newValue);
|
||||||
Intent intent = new Intent(getContext(), ENTRY_ACTIVITY);
|
Intent intent = new Intent(getContext(), ENTRY_ACTIVITY);
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
intent.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
intent.putExtra(INTENT_SIGN_OUT, true);
|
intent.putExtra(INTENT_SIGN_OUT, true);
|
||||||
requireActivity().startActivity(intent);
|
requireActivity().startActivity(intent);
|
||||||
requireActivity().finish();
|
requireActivity().finish();
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import static android.support.v7.preference.PreferenceManager.setDefaultValues;
|
|||||||
import static java.lang.System.currentTimeMillis;
|
import static java.lang.System.currentTimeMillis;
|
||||||
import static java.util.logging.Logger.getLogger;
|
import static java.util.logging.Logger.getLogger;
|
||||||
import static org.briarproject.briar.android.TestingConstants.EXPIRY_DATE;
|
import static org.briarproject.briar.android.TestingConstants.EXPIRY_DATE;
|
||||||
import static org.briarproject.briar.android.activity.ActivityComponent.ENTRY_ACTIVITY;
|
import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY;
|
||||||
|
|
||||||
@MethodsNotNullByDefault
|
@MethodsNotNullByDefault
|
||||||
@ParametersNotNullByDefault
|
@ParametersNotNullByDefault
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import org.briarproject.briar.api.test.TestDataCreator;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
||||||
import static org.briarproject.briar.android.activity.ActivityComponent.ENTRY_ACTIVITY;
|
import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY;
|
||||||
|
|
||||||
public class TestDataActivity extends BriarActivity {
|
public class TestDataActivity extends BriarActivity {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user