Merge branch 'promo-video' into 'master'

Instrumentation test for tutorial video and sign-in

Closes #1967

See merge request briar/briar!1423
This commit is contained in:
akwizgran
2021-04-12 10:46:03 +00:00
33 changed files with 767 additions and 54 deletions

View File

@@ -19,4 +19,6 @@ public interface BriarApplication extends BrambleApplication {
SharedPreferences getDefaultSharedPreferences();
boolean isRunningInBackground();
boolean isInstrumentationTest();
}

View File

@@ -151,4 +151,9 @@ public class BriarApplicationImpl extends Application
ActivityManager.getMyMemoryState(info);
return (info.importance != IMPORTANCE_FOREGROUND);
}
@Override
public boolean isInstrumentationTest() {
return false;
}
}

View File

@@ -301,7 +301,9 @@ public class BriarService extends Service {
LOG.info("Interrupted while waiting for shutdown");
}
LOG.info("Exiting");
System.exit(0);
if (!app.isInstrumentationTest()) {
System.exit(0);
}
}, "BackgroundShutdown");
}, "BackgroundShutdown");
}

View File

@@ -193,6 +193,9 @@ public abstract class BaseActivity extends AppCompatActivity
}
private boolean showScreenFilterWarning() {
if (((BriarApplication) getApplication()).isInstrumentationTest()) {
return false;
}
// If the dialog is already visible, filter the tap
ScreenFilterDialogFragment f = findDialogFragment();
if (f != null && f.isVisible()) return false;

View File

@@ -10,6 +10,7 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.bramble.api.system.AndroidWakeLockManager;
import org.briarproject.bramble.api.system.Wakeful;
import org.briarproject.briar.R;
import org.briarproject.briar.android.BriarApplication;
import org.briarproject.briar.android.account.UnlockActivity;
import org.briarproject.briar.android.controller.BriarController;
import org.briarproject.briar.android.controller.DbController;
@@ -236,7 +237,8 @@ public abstract class BriarActivity extends BaseActivity {
if (SDK_INT >= 21) finishAndRemoveTask();
else supportFinishAfterTransition();
LOG.info("Exiting");
System.exit(0);
BriarApplication app = (BriarApplication) getApplication();
if (!app.isInstrumentationTest()) System.exit(0);
}
@Deprecated

View File

@@ -12,6 +12,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.settings.Settings;
import org.briarproject.bramble.api.settings.SettingsManager;
import org.briarproject.bramble.api.system.AndroidWakeLockManager;
import org.briarproject.briar.android.BriarApplication;
import org.briarproject.briar.android.BriarService;
import org.briarproject.briar.android.BriarService.BriarServiceConnection;
import org.briarproject.briar.android.controller.handler.ResultHandler;
@@ -104,7 +105,8 @@ public class BriarControllerImpl implements BriarController {
@Override
public void hasDozed(ResultHandler<Boolean> handler) {
if (!dozeWatchdog.getAndResetDozeFlag()
BriarApplication app = (BriarApplication) activity.getApplication();
if (app.isInstrumentationTest() || !dozeWatchdog.getAndResetDozeFlag()
|| !needsDozeWhitelisting(activity)) {
handler.onResult(false);
return;

View File

@@ -27,6 +27,7 @@ import org.briarproject.bramble.api.plugin.Plugin.State;
import org.briarproject.bramble.api.plugin.TorConstants;
import org.briarproject.bramble.api.plugin.TransportId;
import org.briarproject.briar.R;
import org.briarproject.briar.android.BriarApplication;
import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.activity.BriarActivity;
import org.briarproject.briar.android.blog.FeedFragment;
@@ -134,7 +135,8 @@ public class NavDrawerActivity extends BriarActivity implements
navDrawerViewModel = provider.get(NavDrawerViewModel.class);
pluginViewModel = provider.get(PluginViewModel.class);
if (IS_DEBUG_BUILD) {
BriarApplication app = (BriarApplication) getApplication();
if (IS_DEBUG_BUILD && !app.isInstrumentationTest()) {
navDrawerViewModel.showExpiryWarning()
.observe(this, this::showExpiryWarning);
}

View File

@@ -10,6 +10,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.settings.Settings;
import org.briarproject.bramble.api.settings.SettingsManager;
import org.briarproject.bramble.api.system.AndroidExecutor;
import org.briarproject.briar.android.BriarApplication;
import org.briarproject.briar.android.viewmodel.DbViewModel;
import java.util.concurrent.Executor;
@@ -120,7 +121,9 @@ public class NavDrawerViewModel extends DbViewModel {
@UiThread
void checkDozeWhitelisting() {
// check this first, to hit the DbThread only when really necessary
if (!needsDozeWhitelisting(getApplication())) {
BriarApplication app = (BriarApplication) getApplication();
if (app.isInstrumentationTest() ||
!needsDozeWhitelisting(getApplication())) {
shouldAskForDozeWhitelisting.setValue(false);
return;
}

View File

@@ -61,6 +61,8 @@ public class SplashScreenActivity extends BaseActivity {
startNextActivity(ENTRY_ACTIVITY);
finish();
} else {
int duration =
getResources().getInteger(R.integer.splashScreenDuration);
new Handler().postDelayed(() -> {
if (currentTimeMillis() >= EXPIRY_DATE) {
LOG.info("Expired");
@@ -69,7 +71,7 @@ public class SplashScreenActivity extends BaseActivity {
startNextActivity(ENTRY_ACTIVITY);
}
supportFinishAfterTransition();
}, 500);
}, duration);
}
}