diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index 33a992a98..83636618b 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -19,6 +19,7 @@
Quit
New identity\u2026
Contacts
+ Share the Briar App
Connected
Last connected <br /> %1$s
Add a Contact
diff --git a/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java b/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
index e52d0d4bf..f6ee26f87 100644
--- a/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
+++ b/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
@@ -1,5 +1,7 @@
package net.sf.briar.android.contact;
+import static android.content.Intent.ACTION_SEND;
+import static android.content.Intent.EXTRA_STREAM;
import static android.view.Gravity.CENTER;
import static android.view.Gravity.CENTER_HORIZONTAL;
import static android.widget.LinearLayout.HORIZONTAL;
@@ -10,6 +12,7 @@ import static net.sf.briar.android.widgets.CommonLayoutParams.MATCH_MATCH;
import static net.sf.briar.android.widgets.CommonLayoutParams.MATCH_WRAP;
import static net.sf.briar.android.widgets.CommonLayoutParams.MATCH_WRAP_1;
+import java.io.File;
import java.util.Collection;
import java.util.Comparator;
import java.util.Map;
@@ -35,6 +38,7 @@ import net.sf.briar.api.db.event.DatabaseListener;
import net.sf.briar.api.transport.ConnectionListener;
import net.sf.briar.api.transport.ConnectionRegistry;
import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
@@ -56,6 +60,7 @@ implements OnClickListener, DatabaseListener, ConnectionListener {
@Inject private ConnectionRegistry connectionRegistry;
private ContactListAdapter adapter = null;
private ListView list = null;
+ private ImageButton addContactButton = null, shareButton = null;
// Fields that are accessed from background threads must be volatile
@Inject private volatile DatabaseComponent db;
@@ -85,12 +90,19 @@ implements OnClickListener, DatabaseListener, ConnectionListener {
footer.setGravity(CENTER);
footer.addView(new HorizontalSpace(this));
- ImageButton addContactButton = new ImageButton(this);
+ addContactButton = new ImageButton(this);
addContactButton.setBackgroundResource(0);
addContactButton.setImageResource(R.drawable.social_add_person);
addContactButton.setOnClickListener(this);
footer.addView(addContactButton);
footer.addView(new HorizontalSpace(this));
+
+ shareButton = new ImageButton(this);
+ shareButton.setBackgroundResource(0);
+ shareButton.setImageResource(R.drawable.social_share);
+ shareButton.setOnClickListener(this);
+ footer.addView(shareButton);
+ footer.addView(new HorizontalSpace(this));
layout.addView(footer);
setContentView(layout);
@@ -163,7 +175,16 @@ implements OnClickListener, DatabaseListener, ConnectionListener {
}
public void onClick(View view) {
- startActivity(new Intent(this, AddContactActivity.class));
+ if(view == addContactButton) {
+ startActivity(new Intent(this, AddContactActivity.class));
+ } else if(view == shareButton) {
+ String apkPath = getPackageCodePath();
+ Intent i = new Intent(ACTION_SEND);
+ i.setType("application/*");
+ i.putExtra(EXTRA_STREAM, Uri.fromFile(new File(apkPath)));
+ String shareApp = getResources().getString(R.string.share_app);
+ startActivity(Intent.createChooser(i, shareApp));
+ }
}
public void eventOccurred(DatabaseEvent e) {