From 34c3776b06607f7cf79da0dd0be5f551052f3e68 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Tue, 16 Apr 2013 15:09:23 +0100
Subject: [PATCH] Added an expiry date to prevent unsafe builds from being used
 long-term.

---
 briar-android/res/values/strings.xml          |  1 +
 .../sf/briar/android/HomeScreenActivity.java  | 19 ++++++++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index e76728dc08..8219599e76 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -10,6 +10,7 @@
 	<string name="format_min_password">Password must be at least %1$d characters long.</string>
 	<string name="enter_password">Enter your password:</string>
 	<string name="try_again">Wrong password, try again</string>
+	<string name="expiry_warning">This software has expired.\nPlease install a newer version.</string>
 	<string name="contact_list_button">Contacts</string>
 	<string name="messages_button">Messages</string>
 	<string name="groups_button">Groups</string>
diff --git a/briar-android/src/net/sf/briar/android/HomeScreenActivity.java b/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
index d71d29f337..65f9161182 100644
--- a/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
+++ b/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
@@ -60,6 +60,9 @@ import com.google.inject.Inject;
 
 public class HomeScreenActivity extends BriarActivity {
 
+	// This build expires at the beginning of May 2013
+	private static final long EXPIRY_DATE = 1367366400000L;
+
 	private static final Logger LOG =
 			Logger.getLogger(HomeScreenActivity.class.getName());
 
@@ -99,7 +102,8 @@ public class HomeScreenActivity extends BriarActivity {
 					LocalAuthor.class));
 		} else if(databaseConfig.getEncryptionKey() == null) {
 			// The activity was launched from the splash screen
-			showPasswordPrompt();
+			if(System.currentTimeMillis() < EXPIRY_DATE) showPasswordPrompt();
+			else showExpiryWarning();
 		} else {
 			// The activity has been launched before
 			showButtons();
@@ -283,6 +287,19 @@ public class HomeScreenActivity extends BriarActivity {
 		});
 	}
 
+	private void showExpiryWarning() {
+		LinearLayout layout = new LinearLayout(this);
+		layout.setLayoutParams(MATCH_MATCH);
+		layout.setGravity(CENTER);
+		TextView warning = new TextView(this);
+		warning.setGravity(CENTER);
+		warning.setTextSize(18);
+		warning.setPadding(10, 10, 10, 10);
+		warning.setText(R.string.expiry_warning);
+		layout.addView(warning);
+		setContentView(layout);
+	}
+
 	private void showButtons() {
 		ListView.LayoutParams matchMatch =
 				new ListView.LayoutParams(MATCH_PARENT, MATCH_PARENT);
-- 
GitLab