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 375a9a4a495ae91a6469f364e9a4774f450e8140..fad48f249df13cae41dc012aa74f0099bdc98090 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
@@ -23,8 +23,20 @@ public class TestDataActivity extends BriarActivity {
 	@Inject
 	TestDataCreator testDataCreator;
 
-	private TextView[] textViews = new TextView[5];
-	private SeekBar[] seekBars = new SeekBar[5];
+	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;
 
 	@Override
 	public void onCreate(Bundle bundle) {
@@ -37,45 +49,111 @@ public class TestDataActivity extends BriarActivity {
 		}
 
 		setContentView(R.layout.activity_test_data);
-		textViews[0] = findViewById(R.id.textViewContactsSb);
-		textViews[1] = findViewById(R.id.textViewMessagesSb);
-		textViews[2] = findViewById(R.id.TextViewBlogPostsSb);
-		textViews[3] = findViewById(R.id.TextViewForumsSb);
-		textViews[4] = findViewById(R.id.TextViewForumMessagesSb);
-		seekBars[0] = findViewById(R.id.seekBarContacts);
-		seekBars[1] = findViewById(R.id.seekBarMessages);
-		seekBars[2] = findViewById(R.id.seekBarBlogPosts);
-		seekBars[3] = findViewById(R.id.seekBarForums);
-		seekBars[4] = findViewById(R.id.seekBarForumMessages);
-
-		for (int i = 0; i < 5; i++) {
-			final TextView textView = textViews[i];
-			seekBars[i].setOnSeekBarChangeListener(
-					new OnSeekBarChangeListener() {
-						@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) {
-						}
-					});
-		}
+		contactsTextView = findViewById(R.id.textViewContactsSb);
+		messagesTextView = findViewById(R.id.textViewMessagesSb);
+		blogPostsTextView = findViewById(R.id.TextViewBlogPostsSb);
+		forumsTextView = findViewById(R.id.TextViewForumsSb);
+		forumPostsTextView = findViewById(R.id.TextViewForumMessagesSb);
+		contactsSeekBar = findViewById(R.id.seekBarContacts);
+		messagesSeekBar = findViewById(R.id.seekBarMessages);
+		blogPostsSeekBar = findViewById(R.id.seekBarBlogPosts);
+		forumsSeekBar = findViewById(R.id.seekBarForums);
+		forumPostsSeekBar = findViewById(R.id.seekBarForumMessages);
+
+		contactsSeekBar
+				.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
+					@Override
+					public void onProgressChanged(SeekBar seekBar,
+							int progress, boolean fromUser) {
+						contactsTextView.setText(String.valueOf(progress + 1));
+					}
+
+					@Override
+					public void onStartTrackingTouch(SeekBar seekBar) {
+					}
+
+					@Override
+					public void onStopTrackingTouch(SeekBar seekBar) {
+					}
+				});
+
+		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) {
+					}
+				});
+
+		forumsSeekBar
+				.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
+					@Override
+					public void onProgressChanged(SeekBar seekBar,
+							int progress, boolean fromUser) {
+						forumsTextView.setText(String.valueOf(progress));
+						forumPostsSeekBar.setEnabled(progress > 0);
+					}
+
+					@Override
+					public void onStartTrackingTouch(SeekBar seekBar) {
+					}
+
+					@Override
+					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) {
+					}
+				});
 
 		findViewById(R.id.buttonCreateTestData).setOnClickListener(
 				v -> createTestData());
 	}
 
 	private void createTestData() {
-		testDataCreator.createTestData(seekBars[0].getProgress(),
-				seekBars[1].getProgress(), seekBars[2].getProgress(),
-				seekBars[3].getProgress(), seekBars[4].getProgress());
+		testDataCreator.createTestData(contactsSeekBar.getProgress() + 1,
+				messagesSeekBar.getProgress(), blogPostsSeekBar.getProgress(),
+				forumsSeekBar.getProgress(), forumPostsSeekBar.getProgress());
 		Intent intent = new Intent(this, NavDrawerActivity.class);
 		intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP);
 		startActivity(intent);
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 c0d6c68334499744fd3270823fb61995c331c6b3..18ce6ac856c32ea84b2de5c7faad380ee886890e 100644
--- a/briar-android/src/main/res/layout/activity_test_data.xml
+++ b/briar-android/src/main/res/layout/activity_test_data.xml
@@ -28,7 +28,7 @@
 				android:id="@+id/seekBarContacts"
 				android:layout_width="0dp"
 				android:layout_height="wrap_content"
-				android:max="50"
+				android:max="49"
 				android:progress="20"
 				app:layout_constraintEnd_toStartOf="@+id/textViewContactsSb"
 				app:layout_constraintStart_toStartOf="parent"
diff --git a/briar-api/src/main/java/org/briarproject/briar/api/test/TestDataCreator.java b/briar-api/src/main/java/org/briarproject/briar/api/test/TestDataCreator.java
index 41ccb64341268564cbb30d0a20ff586554414541..fc210e5833baf22f27ba3330476c64fa4c8deca2 100644
--- a/briar-api/src/main/java/org/briarproject/briar/api/test/TestDataCreator.java
+++ b/briar-api/src/main/java/org/briarproject/briar/api/test/TestDataCreator.java
@@ -8,7 +8,7 @@ public interface TestDataCreator {
 	/**
 	 * Create fake test data on the DatabaseExecutor
 	 *
-	 * @param numContacts Number of contacts to create.
+	 * @param numContacts Number of contacts to create. Must be >= 1
 	 * @param numPrivateMsgs Number of private messages to create for each
 	 * contact.
 	 * @param numBlogPosts Number of blog posts to create.
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 a4f6ceb332c17a81980740206884598d55230a33..c89d05e1750d6636117259a17b50db55db1d0b21 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
@@ -115,6 +115,9 @@ public class TestDataCreatorImpl implements TestDataCreator {
 
 	public void createTestData(int numContacts, int numPrivateMsgs,
 			int numBlogPosts, int numForums, int numForumPosts) {
+		if (numContacts == 0)
+			throw new IllegalArgumentException(
+					"Number of contacts must be >= 1");
 		ioExecutor.execute(() -> {
 			try {
 				createTestDataOnIoExecutor(numContacts, numPrivateMsgs,