added share uri button to conference details

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java | 17 
src/main/res/drawable-hdpi/ic_action_share.png                         |  0 
src/main/res/drawable-hdpi/ic_share_white_24dp.png                     |  0 
src/main/res/drawable-mdpi/ic_action_share.png                         |  0 
src/main/res/drawable-mdpi/ic_share_white_24dp.png                     |  0 
src/main/res/drawable-xhdpi/ic_action_share.png                        |  0 
src/main/res/drawable-xhdpi/ic_share_white_24dp.png                    |  0 
src/main/res/drawable-xxhdpi/ic_action_share.png                       |  0 
src/main/res/drawable-xxhdpi/ic_share_white_24dp.png                   |  0 
src/main/res/drawable-xxxhdpi/ic_share_white_24dp.png                  |  0 
src/main/res/menu/muc_details.xml                                      | 35 
src/main/res/values-v21/themes.xml                                     |  1 
src/main/res/values/attrs.xml                                          |  1 
src/main/res/values/strings.xml                                        |  2 
src/main/res/values/themes.xml                                         |  1 
15 files changed, 43 insertions(+), 14 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java πŸ”—

@@ -3,8 +3,10 @@ package eu.siacs.conversations.ui;
 import android.annotation.TargetApi;
 import android.app.AlertDialog;
 import android.app.PendingIntent;
+import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.content.IntentSender.SendIntentException;
 import android.os.Build;
 import android.os.Bundle;
@@ -281,6 +283,9 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
 					quickEdit(mConversation.getName(),this.onSubjectEdited);
 				}
 				break;
+			case R.id.action_share:
+				share();
+				break;
 			case R.id.action_save_as_bookmark:
 				saveAsBookmark();
 				break;
@@ -308,6 +313,18 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
 		}
 	}
 
+	private void share() {
+		Intent shareIntent = new Intent();
+		shareIntent.setAction(Intent.ACTION_SEND);
+		shareIntent.putExtra(Intent.EXTRA_TEXT, getShareableUri());
+		shareIntent.setType("text/plain");
+		try {
+			startActivity(Intent.createChooser(shareIntent, getText(R.string.share_uri_with)));
+		} catch (ActivityNotFoundException e) {
+			Toast.makeText(this, R.string.no_application_to_share_uri, Toast.LENGTH_SHORT).show();
+		}
+	}
+
 	@Override
 	public boolean onPrepareOptionsMenu(Menu menu) {
 		MenuItem menuItemSaveBookmark = menu.findItem(R.id.action_save_as_bookmark);

src/main/res/menu/muc_details.xml πŸ”—

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
 
     <item
         android:id="@+id/action_edit_subject"
@@ -7,27 +7,34 @@
         android:orderInCategory="10"
         android:showAsAction="always"
         android:title="@string/action_edit_subject"/>
+    <item
+        android:id="@+id/action_share"
+        android:icon="?attr/icon_share"
+        android:showAsAction="always"
+        android:orderInCategory="15"
+        android:title="@string/share_uri_with"/>
+
     <item
         android:id="@+id/action_show_qr_code"
-        android:title="@string/show_qr_code"
-        android:showAsAction="never" />
+        android:showAsAction="never"
+        android:title="@string/show_qr_code"/>
     <item
         android:id="@+id/action_save_as_bookmark"
-        android:title="@string/save_as_bookmark"
         android:orderInCategory="80"
-        android:showAsAction="never" />
+        android:showAsAction="never"
+        android:title="@string/save_as_bookmark"/>
     <item
         android:id="@+id/action_delete_bookmark"
-        android:title="@string/delete_bookmark"
         android:orderInCategory="80"
-        android:showAsAction="never" />
-	<item
-		android:id="@+id/action_advanced_mode"
-		android:title="@string/advanced_mode"
-		android:checkable="true"
-		android:checked="false"
-		android:orderInCategory="85"
-		android:showAsAction="never" />
+        android:showAsAction="never"
+        android:title="@string/delete_bookmark"/>
+    <item
+        android:id="@+id/action_advanced_mode"
+        android:checkable="true"
+        android:checked="false"
+        android:orderInCategory="85"
+        android:showAsAction="never"
+        android:title="@string/advanced_mode"/>
     <item
         android:id="@+id/action_accounts"
         android:orderInCategory="90"

src/main/res/values-v21/themes.xml πŸ”—

@@ -32,6 +32,7 @@
         <item name="attr/icon_secure">@drawable/ic_lock_open_white_24dp</item>
         <item name="attr/icon_settings">@drawable/ic_settings_grey600_24dp</item>
         <item name="attr/icon_import_export">@drawable/ic_import_export_white_24dp</item>
+        <item name="attr/icon_share">@drawable/ic_share_white_24dp</item>
 
     </style>
 

src/main/res/values/attrs.xml πŸ”—

@@ -24,6 +24,7 @@
     <attr name="icon_search" format="reference"/>
     <attr name="icon_secure" format="reference"/>
     <attr name="icon_settings" format="reference"/>
+    <attr name="icon_share" format="reference"/>
     <attr name="icon_import_export" format="reference"/>
 
 </resources>

src/main/res/values/strings.xml πŸ”—

@@ -612,4 +612,6 @@
 	<string name="select_image_and_crop">Select image and crop</string>
 	<string name="this_account_is_disabled">You have disabled this account</string>
 	<string name="security_error_invalid_file_access">Security error: Invalid file access</string>
+	<string name="no_application_to_share_uri">No application found to share URI</string>
+	<string name="share_uri_with">Share URI with…</string>
 </resources>

src/main/res/values/themes.xml πŸ”—

@@ -30,6 +30,7 @@
         <item name="attr/icon_secure">@drawable/ic_action_secure</item>
         <item name="attr/icon_settings">@drawable/ic_action_settings</item>
         <item name="attr/icon_import_export">@drawable/ic_stat_communication_import_export</item>
+        <item name="attr/icon_share">@drawable/ic_action_share</item>
     </style>
 
     <style name="ConversationsTheme.LargerText" parent="ConversationsTheme">