add snackbar for request presence subscription

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java | 15 +
src/main/res/layout/fragment_conversation.xml                     |  3 
src/main/res/values/strings.xml                                   |  2 
3 files changed, 19 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java 🔗

@@ -818,6 +818,19 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
 		}
 	};
 
+	private OnClickListener mAllowPresenceSubscription = new OnClickListener() {
+		@Override
+		public void onClick(View v) {
+			final Contact contact = conversation == null ? null : conversation.getContact();
+			if (contact != null) {
+				activity.xmppConnectionService.sendPresencePacket(contact.getAccount(),
+						activity.xmppConnectionService.getPresenceGenerator()
+								.sendPresenceUpdatesTo(contact));
+				hideSnackbar();
+			}
+		}
+	};
+
 	private OnClickListener mAnswerSmpClickListener = new OnClickListener() {
 		@Override
 		public void onClick(View view) {
@@ -840,6 +853,8 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
 			showSnackbar(R.string.contact_blocked, R.string.unblock, this.mUnblockClickListener);
 		} else if (!contact.showInRoster() && contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
 			showSnackbar(R.string.contact_added_you, R.string.add_back, this.mAddBackClickListener);
+		} else if (contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
+			showSnackbar(R.string.contact_asks_for_presence_subscription, R.string.allow, this.mAllowPresenceSubscription);
 		} else if (mode == Conversation.MODE_MULTI
 				&& !conversation.getMucOptions().online()
 				&& account.getStatus() == Account.State.ONLINE) {

src/main/res/layout/fragment_conversation.xml 🔗

@@ -2,7 +2,8 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="?attr/color_background_secondary">
 
     <ListView
         android:id="@+id/messages_view"

src/main/res/values/strings.xml 🔗

@@ -677,4 +677,6 @@
 	<string name="payment_required">Payment required</string>
 	<string name="missing_internet_permission">Missing internet permission</string>
 	<string name="me">Me</string>
+	<string name="contact_asks_for_presence_subscription">Contact asks for presence subscription</string>
+	<string name="allow">Allow</string>
 </resources>