diff --git a/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/SetupDataTest.java b/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/SetupDataTest.java index 140e54231..f40c70aef 100644 --- a/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/SetupDataTest.java +++ b/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/SetupDataTest.java @@ -116,7 +116,7 @@ public class SetupDataTest extends ScreenshotTest { throws DbException { Context ctx = getApplicationContext(); String bobName = ctx.getString(R.string.screenshot_bob); - Contact bob = testDataCreator.addContact(bobName); + Contact bob = testDataCreator.addContact(bobName, true); // TODO add messages diff --git a/briar-android/src/main/java/org/briarproject/briar/android/test/TestDataActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/test/TestDataActivity.java index f9f98185b..10ce1daf1 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/test/TestDataActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/test/TestDataActivity.java @@ -24,20 +24,9 @@ public class TestDataActivity extends BriarActivity { @Inject TestDataCreator testDataCreator; - private TextView contactsTextView; - private SeekBar contactsSeekBar; - - private TextView messagesTextView; - private SeekBar messagesSeekBar; - - private TextView blogPostsTextView; - private SeekBar blogPostsSeekBar; - - private TextView forumsTextView; - private SeekBar forumsSeekBar; - - private TextView forumPostsTextView; - private SeekBar forumPostsSeekBar; + private TextView contactsTextView, forumsTextView; + private SeekBar contactsSeekBar, messagesSeekBar, avatarsSeekBar, + blogPostsSeekBar, forumsSeekBar, forumPostsSeekBar; @Override public void onCreate(Bundle bundle) { @@ -51,12 +40,15 @@ public class TestDataActivity extends BriarActivity { setContentView(R.layout.activity_test_data); contactsTextView = findViewById(R.id.textViewContactsSb); - messagesTextView = findViewById(R.id.textViewMessagesSb); - blogPostsTextView = findViewById(R.id.TextViewBlogPostsSb); + TextView messagesTextView = findViewById(R.id.textViewMessagesSb); + TextView avatarsTextView = findViewById(R.id.textViewAvatarsSb); + TextView blogPostsTextView = findViewById(R.id.TextViewBlogPostsSb); forumsTextView = findViewById(R.id.TextViewForumsSb); - forumPostsTextView = findViewById(R.id.TextViewForumMessagesSb); + TextView forumPostsTextView = + findViewById(R.id.TextViewForumMessagesSb); contactsSeekBar = findViewById(R.id.seekBarContacts); messagesSeekBar = findViewById(R.id.seekBarMessages); + avatarsSeekBar = findViewById(R.id.seekBarAvatars); blogPostsSeekBar = findViewById(R.id.seekBarBlogPosts); forumsSeekBar = findViewById(R.id.seekBarForums); forumPostsSeekBar = findViewById(R.id.seekBarForumMessages); @@ -78,40 +70,12 @@ public class TestDataActivity extends BriarActivity { } }); - messagesSeekBar - .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { - @Override - public void onProgressChanged(SeekBar seekBar, - int progress, boolean fromUser) { - messagesTextView.setText(String.valueOf(progress)); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - } - }); - - blogPostsSeekBar - .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { - @Override - public void onProgressChanged(SeekBar seekBar, - int progress, boolean fromUser) { - blogPostsTextView.setText(String.valueOf(progress)); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - } - }); - + messagesSeekBar.setOnSeekBarChangeListener( + new OnSeekBarChangeUpdateProgress(messagesTextView)); + avatarsSeekBar.setOnSeekBarChangeListener( + new OnSeekBarChangeUpdateProgress(avatarsTextView)); + blogPostsSeekBar.setOnSeekBarChangeListener( + new OnSeekBarChangeUpdateProgress(blogPostsTextView)); forumsSeekBar .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override @@ -129,23 +93,8 @@ public class TestDataActivity extends BriarActivity { public void onStopTrackingTouch(SeekBar seekBar) { } }); - - forumPostsSeekBar - .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { - @Override - public void onProgressChanged(SeekBar seekBar, - int progress, boolean fromUser) { - forumPostsTextView.setText(String.valueOf(progress)); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - } - }); + forumPostsSeekBar.setOnSeekBarChangeListener( + new OnSeekBarChangeUpdateProgress(forumPostsTextView)); findViewById(R.id.buttonCreateTestData).setOnClickListener( v -> createTestData()); @@ -153,8 +102,9 @@ public class TestDataActivity extends BriarActivity { private void createTestData() { testDataCreator.createTestData(contactsSeekBar.getProgress() + 1, - messagesSeekBar.getProgress(), blogPostsSeekBar.getProgress(), - forumsSeekBar.getProgress(), forumPostsSeekBar.getProgress()); + messagesSeekBar.getProgress(), avatarsSeekBar.getProgress(), + blogPostsSeekBar.getProgress(), forumsSeekBar.getProgress(), + forumPostsSeekBar.getProgress()); Intent intent = new Intent(this, ENTRY_ACTIVITY); intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); @@ -174,4 +124,28 @@ public class TestDataActivity extends BriarActivity { } return false; } + + private static class OnSeekBarChangeUpdateProgress + implements OnSeekBarChangeListener { + private final TextView textView; + + private OnSeekBarChangeUpdateProgress(TextView textView) { + this.textView = textView; + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, + boolean fromUser) { + textView.setText(String.valueOf(progress)); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + } + } diff --git a/briar-android/src/main/res/layout/activity_test_data.xml b/briar-android/src/main/res/layout/activity_test_data.xml index bd0c13dc6..0c8733c65 100644 --- a/briar-android/src/main/res/layout/activity_test_data.xml +++ b/briar-android/src/main/res/layout/activity_test_data.xml @@ -71,6 +71,36 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/textViewMessages" /> + + + + + + + app:layout_constraintTop_toBottomOf="@+id/seekBarAvatars" /> = 1 * @param numPrivateMsgs Number of private messages to create for each * contact. + * @param avatarPercent Percentage of contacts + * that will use a random profile image. Between 0 and 100. * @param numBlogPosts Number of blog posts to create. * @param numForums Number of forums to create. * @param numForumPosts Number of forum posts to create per forum. */ - void createTestData(int numContacts, int numPrivateMsgs, int numBlogPosts, - int numForums, int numForumPosts); + void createTestData(int numContacts, int numPrivateMsgs, int avatarPercent, + int numBlogPosts, int numForums, int numForumPosts); @IoExecutor - Contact addContact(String name) throws DbException; + Contact addContact(String name, boolean avatar) throws DbException; } diff --git a/briar-core/src/main/java/org/briarproject/briar/test/TestDataCreatorImpl.java b/briar-core/src/main/java/org/briarproject/briar/test/TestDataCreatorImpl.java index 14d4a9390..8bd280b34 100644 --- a/briar-core/src/main/java/org/briarproject/briar/test/TestDataCreatorImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/test/TestDataCreatorImpl.java @@ -124,12 +124,15 @@ public class TestDataCreatorImpl implements TestDataCreator { @Override public void createTestData(int numContacts, int numPrivateMsgs, - int numBlogPosts, int numForums, int numForumPosts) { + int avatarPercent, int numBlogPosts, int numForums, + int numForumPosts) { if (numContacts == 0) throw new IllegalArgumentException(); + if (avatarPercent < 0 || avatarPercent > 100) + throw new IllegalArgumentException(); ioExecutor.execute(() -> { try { createTestDataOnIoExecutor(numContacts, numPrivateMsgs, - numBlogPosts, numForums, numForumPosts); + avatarPercent, numBlogPosts, numForums, numForumPosts); } catch (DbException e) { logException(LOG, WARNING, e); } @@ -138,9 +141,9 @@ public class TestDataCreatorImpl implements TestDataCreator { @IoExecutor private void createTestDataOnIoExecutor(int numContacts, int numPrivateMsgs, - int numBlogPosts, int numForums, int numForumPosts) - throws DbException { - List contacts = createContacts(numContacts); + int avatarPercent, int numBlogPosts, int numForums, + int numForumPosts) throws DbException { + List contacts = createContacts(numContacts, avatarPercent); createPrivateMessages(contacts, numPrivateMsgs); createBlogPosts(contacts, numBlogPosts); List forums = createForums(contacts, numForums); @@ -149,19 +152,21 @@ public class TestDataCreatorImpl implements TestDataCreator { } } - private List createContacts(int numContacts) throws DbException { + private List createContacts(int numContacts, int avatarPercent) + throws DbException { List contacts = new ArrayList<>(numContacts); LocalAuthor localAuthor = identityManager.getLocalAuthor(); for (int i = 0; i < numContacts; i++) { LocalAuthor remote = getRandomAuthor(); - Contact contact = addContact(localAuthor.getId(), remote); + Contact contact = + addContact(localAuthor.getId(), remote, avatarPercent); contacts.add(contact); } return contacts; } - private Contact addContact(AuthorId localAuthorId, LocalAuthor remote) - throws DbException { + private Contact addContact(AuthorId localAuthorId, LocalAuthor remote, + int avatarPercent) throws DbException { // prepare to add contact SecretKey secretKey = getSecretKey(); long timestamp = clock.currentTimeMillis(); @@ -181,7 +186,7 @@ public class TestDataCreatorImpl implements TestDataCreator { transportPropertyManager.addRemoteProperties(txn, contactId, props); return db.getContact(txn, contactId); }); - if (random.nextInt(3) < 2) addAvatar(contact); + if (random.nextInt(100) + 1 < avatarPercent) addAvatar(contact); if (LOG.isLoggable(INFO)) { LOG.info("Added contact " + remote.getName() + @@ -192,10 +197,11 @@ public class TestDataCreatorImpl implements TestDataCreator { } @Override - public Contact addContact(String name) throws DbException { + public Contact addContact(String name, boolean avatar) throws DbException { LocalAuthor localAuthor = identityManager.getLocalAuthor(); LocalAuthor remote = authorFactory.createLocalAuthor(name); - return addContact(localAuthor.getId(), remote); + int avatarPercent = avatar ? 100 : 0; + return addContact(localAuthor.getId(), remote, avatarPercent); } private String getRandomAuthorName() { diff --git a/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt b/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt index bea7b950c..2515eba10 100644 --- a/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt +++ b/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt @@ -25,7 +25,7 @@ class ContactControllerIntegrationTest: IntegrationTest() { // add one test contact val testContactName= "testContactName" - testDataCreator.addContact(testContactName) + testDataCreator.addContact(testContactName, false) // retrieve list with one test contact response = get("$url/contacts")