Muc Options even more awesome
This commit is contained in:
parent
69af009c88
commit
8e4be5256e
|
@ -48,7 +48,8 @@
|
||||||
<activity
|
<activity
|
||||||
android:name="eu.siacs.conversations.ui.MucOptionsActivity"
|
android:name="eu.siacs.conversations.ui.MucOptionsActivity"
|
||||||
android:label="Conference Details"
|
android:label="Conference Details"
|
||||||
android:parentActivityName="eu.siacs.conversations.ui.ConversationActivity" >
|
android:parentActivityName="eu.siacs.conversations.ui.ConversationActivity"
|
||||||
|
android:windowSoftInputMode="stateHidden">
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="eu.siacs.conversations.ui.NewConversationActivity"
|
android:name="eu.siacs.conversations.ui.NewConversationActivity"
|
||||||
|
|
|
@ -36,42 +36,43 @@ public final class R {
|
||||||
public static final int ic_action_cancel_launchersize=0x7f020007;
|
public static final int ic_action_cancel_launchersize=0x7f020007;
|
||||||
public static final int ic_action_cancel_launchersize_light=0x7f020008;
|
public static final int ic_action_cancel_launchersize_light=0x7f020008;
|
||||||
public static final int ic_action_delete=0x7f020009;
|
public static final int ic_action_delete=0x7f020009;
|
||||||
public static final int ic_action_group=0x7f02000a;
|
public static final int ic_action_edit=0x7f02000a;
|
||||||
public static final int ic_action_person=0x7f02000b;
|
public static final int ic_action_group=0x7f02000b;
|
||||||
public static final int ic_action_refresh=0x7f02000c;
|
public static final int ic_action_person=0x7f02000c;
|
||||||
public static final int ic_action_secure=0x7f02000d;
|
public static final int ic_action_refresh=0x7f02000d;
|
||||||
public static final int ic_action_send=0x7f02000e;
|
public static final int ic_action_secure=0x7f02000e;
|
||||||
public static final int ic_action_send_now=0x7f02000f;
|
public static final int ic_action_send=0x7f02000f;
|
||||||
public static final int ic_action_unsecure=0x7f020010;
|
public static final int ic_action_send_now=0x7f020010;
|
||||||
public static final int ic_launcher=0x7f020011;
|
public static final int ic_action_unsecure=0x7f020011;
|
||||||
public static final int ic_profile=0x7f020012;
|
public static final int ic_launcher=0x7f020012;
|
||||||
public static final int message_border=0x7f020013;
|
public static final int ic_profile=0x7f020013;
|
||||||
public static final int notification=0x7f020014;
|
public static final int message_border=0x7f020014;
|
||||||
public static final int red=0x7f020015;
|
public static final int notification=0x7f020015;
|
||||||
public static final int redbackground=0x7f020016;
|
public static final int red=0x7f020016;
|
||||||
public static final int section_header=0x7f020017;
|
public static final int redbackground=0x7f020017;
|
||||||
|
public static final int section_header=0x7f020018;
|
||||||
}
|
}
|
||||||
public static final class id {
|
public static final class id {
|
||||||
public static final int account_confirm_password_desc=0x7f0a001c;
|
public static final int account_confirm_password_desc=0x7f0a001c;
|
||||||
public static final int account_delete=0x7f0a0041;
|
public static final int account_delete=0x7f0a0042;
|
||||||
public static final int account_disable=0x7f0a0042;
|
public static final int account_disable=0x7f0a0043;
|
||||||
public static final int account_enable=0x7f0a0043;
|
public static final int account_enable=0x7f0a0044;
|
||||||
public static final int account_jid=0x7f0a0000;
|
public static final int account_jid=0x7f0a0000;
|
||||||
public static final int account_list=0x7f0a002b;
|
public static final int account_list=0x7f0a002b;
|
||||||
public static final int account_password=0x7f0a0019;
|
public static final int account_password=0x7f0a0019;
|
||||||
public static final int account_password_confirm2=0x7f0a001d;
|
public static final int account_password_confirm2=0x7f0a001d;
|
||||||
public static final int account_status=0x7f0a0002;
|
public static final int account_status=0x7f0a0002;
|
||||||
public static final int account_usetls=0x7f0a001a;
|
public static final int account_usetls=0x7f0a001a;
|
||||||
public static final int action_accounts=0x7f0a003b;
|
public static final int action_accounts=0x7f0a003c;
|
||||||
public static final int action_add=0x7f0a0036;
|
public static final int action_add=0x7f0a0037;
|
||||||
public static final int action_add_account=0x7f0a0040;
|
public static final int action_add_account=0x7f0a0041;
|
||||||
public static final int action_archive=0x7f0a003a;
|
public static final int action_archive=0x7f0a003b;
|
||||||
public static final int action_contact_details=0x7f0a0038;
|
public static final int action_contact_details=0x7f0a0039;
|
||||||
public static final int action_muc_details=0x7f0a0039;
|
public static final int action_muc_details=0x7f0a003a;
|
||||||
public static final int action_refresh_contacts=0x7f0a0045;
|
public static final int action_refresh_contacts=0x7f0a0046;
|
||||||
public static final int action_security=0x7f0a0037;
|
public static final int action_security=0x7f0a0038;
|
||||||
public static final int action_settings=0x7f0a003c;
|
public static final int action_settings=0x7f0a003d;
|
||||||
public static final int announce_pgp=0x7f0a0044;
|
public static final int announce_pgp=0x7f0a0045;
|
||||||
public static final int contactList=0x7f0a0006;
|
public static final int contactList=0x7f0a0006;
|
||||||
public static final int contact_display_name=0x7f0a0008;
|
public static final int contact_display_name=0x7f0a0008;
|
||||||
public static final int contact_jid=0x7f0a0009;
|
public static final int contact_jid=0x7f0a0009;
|
||||||
|
@ -89,23 +90,24 @@ public final class R {
|
||||||
public static final int details_receive_presence=0x7f0a0014;
|
public static final int details_receive_presence=0x7f0a0014;
|
||||||
public static final int details_send_presence=0x7f0a0013;
|
public static final int details_send_presence=0x7f0a0013;
|
||||||
public static final int edit_account_register_new=0x7f0a001b;
|
public static final int edit_account_register_new=0x7f0a001b;
|
||||||
public static final int encryption_choice_none=0x7f0a003d;
|
public static final int encryption_choice_none=0x7f0a003e;
|
||||||
public static final int encryption_choice_otr=0x7f0a003e;
|
public static final int encryption_choice_otr=0x7f0a003f;
|
||||||
public static final int encryption_choice_pgp=0x7f0a003f;
|
public static final int encryption_choice_pgp=0x7f0a0040;
|
||||||
|
public static final int imageView1=0x7f0a0030;
|
||||||
public static final int info_box=0x7f0a0022;
|
public static final int info_box=0x7f0a0022;
|
||||||
public static final int list=0x7f0a0029;
|
public static final int list=0x7f0a0029;
|
||||||
public static final int message_body=0x7f0a002d;
|
public static final int message_body=0x7f0a002d;
|
||||||
public static final int message_photo=0x7f0a002c;
|
public static final int message_photo=0x7f0a002c;
|
||||||
public static final int message_time=0x7f0a002e;
|
public static final int message_time=0x7f0a002e;
|
||||||
public static final int messages_view=0x7f0a0021;
|
public static final int messages_view=0x7f0a0021;
|
||||||
|
public static final int muc_edit_nick=0x7f0a0031;
|
||||||
public static final int muc_error=0x7f0a0023;
|
public static final int muc_error=0x7f0a0023;
|
||||||
public static final int muc_error_msg=0x7f0a0024;
|
public static final int muc_error_msg=0x7f0a0024;
|
||||||
public static final int muc_moderators=0x7f0a0031;
|
public static final int muc_jabberid=0x7f0a0032;
|
||||||
public static final int muc_moderators_header=0x7f0a0030;
|
public static final int muc_members=0x7f0a0036;
|
||||||
public static final int muc_participants=0x7f0a0033;
|
public static final int muc_more_details=0x7f0a0033;
|
||||||
public static final int muc_participants_header=0x7f0a0032;
|
public static final int muc_participants_header=0x7f0a0035;
|
||||||
public static final int muc_visitors=0x7f0a0035;
|
public static final int muc_role=0x7f0a0034;
|
||||||
public static final int muc_visitors_header=0x7f0a0034;
|
|
||||||
public static final int muc_your_nick=0x7f0a002f;
|
public static final int muc_your_nick=0x7f0a002f;
|
||||||
public static final int new_conversation_search=0x7f0a0004;
|
public static final int new_conversation_search=0x7f0a0004;
|
||||||
public static final int new_fingerprint=0x7f0a0025;
|
public static final int new_fingerprint=0x7f0a0025;
|
||||||
|
@ -160,11 +162,14 @@ public final class R {
|
||||||
public static final int conference_details=0x7f050010;
|
public static final int conference_details=0x7f050010;
|
||||||
public static final int encrypted_message=0x7f05000f;
|
public static final int encrypted_message=0x7f05000f;
|
||||||
public static final int just_now=0x7f05000c;
|
public static final int just_now=0x7f05000c;
|
||||||
|
public static final int moderator=0x7f050012;
|
||||||
public static final int nick_in_use=0x7f050011;
|
public static final int nick_in_use=0x7f050011;
|
||||||
public static final int openpgp_install_openkeychain_via=0x7f050001;
|
public static final int openpgp_install_openkeychain_via=0x7f050001;
|
||||||
public static final int openpgp_list_preference_none=0x7f050000;
|
public static final int openpgp_list_preference_none=0x7f050000;
|
||||||
|
public static final int participant=0x7f050013;
|
||||||
public static final int sending=0x7f05000d;
|
public static final int sending=0x7f05000d;
|
||||||
public static final int title_activity_new_conversation=0x7f05000b;
|
public static final int title_activity_new_conversation=0x7f05000b;
|
||||||
|
public static final int visitor=0x7f050014;
|
||||||
}
|
}
|
||||||
public static final class style {
|
public static final class style {
|
||||||
/**
|
/**
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 884 B |
Binary file not shown.
After Width: | Height: | Size: 587 B |
Binary file not shown.
After Width: | Height: | Size: 587 B |
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
|
@ -1,76 +1,114 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:background="#e5e5e5">
|
||||||
android:padding="8dp">
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Your nickname"
|
android:orientation="vertical" >
|
||||||
android:textColor="#33B5E5"
|
|
||||||
android:textSize="20sp" />
|
<TextView
|
||||||
|
style="@style/sectionHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:text="Your nickname" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="#eee" >
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/muc_your_nick"
|
android:id="@+id/muc_your_nick"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="48dp"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_toLeftOf="@+id/imageView1"
|
||||||
|
android:background="#eee"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
|
android:hint="Search or enter Jabber ID"
|
||||||
android:inputType="textEmailAddress"
|
android:inputType="textEmailAddress"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:paddingTop="12dp" />
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/muc_edit_nick"
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:background="?android:selectableItemBackground"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
/>
|
android:src="@drawable/ic_action_edit" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:paddingTop="16dp"
|
style="@style/sectionHeader"
|
||||||
android:id="@+id/muc_moderators_header"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Moderators"
|
android:padding="8dp"
|
||||||
android:textColor="#33B5E5"
|
android:text="Jabber ID" />
|
||||||
android:textSize="20sp" />
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/muc_moderators"
|
android:id="@+id/muc_jabberid"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Romeo"
|
android:padding="8dp"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:textSize="16sp"
|
android:textColor="#5b5b5b"
|
||||||
android:paddingLeft="8dp"
|
android:textSize="18sp"/>
|
||||||
android:paddingBottom="8dp"/>
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/muc_more_details"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/sectionHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:text="Your role" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/muc_role"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:textColor="#5b5b5b"/>
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/muc_participants_header"
|
android:id="@+id/muc_participants_header"
|
||||||
android:paddingTop="8dp"
|
style="@style/sectionHeader"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Participants"
|
|
||||||
android:textColor="#33B5E5"
|
|
||||||
android:textSize="20sp" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/muc_participants"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Juilett"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:paddingLeft="8dp"
|
android:paddingLeft="8dp"
|
||||||
android:paddingBottom="8dp"/>
|
android:paddingRight="8dp"
|
||||||
<TextView
|
|
||||||
android:id="@+id/muc_visitors_header"
|
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:layout_width="wrap_content"
|
android:text="Other Members" />
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Visitors"
|
|
||||||
android:textColor="#33B5E5"
|
|
||||||
android:textSize="20sp" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/muc_visitors"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Benvolio"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingBottom="8dp"/>
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/muc_members"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:divider="?android:dividerHorizontal"
|
||||||
|
android:showDividers="middle"
|
||||||
|
>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
|
@ -17,4 +17,7 @@
|
||||||
<string name="encrypted_message">Decrypting message. please wait…</string>
|
<string name="encrypted_message">Decrypting message. please wait…</string>
|
||||||
<string name="conference_details">Conference Details</string>
|
<string name="conference_details">Conference Details</string>
|
||||||
<string name="nick_in_use">Nickname is already in use</string>
|
<string name="nick_in_use">Nickname is already in use</string>
|
||||||
|
<string name="moderator">Moderator</string>
|
||||||
|
<string name="participant">Participant</string>
|
||||||
|
<string name="visitor">Visitor</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -3,6 +3,7 @@ package eu.siacs.conversations.entities;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import eu.siacs.conversations.entities.MucOptions.User;
|
||||||
import eu.siacs.conversations.xml.Element;
|
import eu.siacs.conversations.xml.Element;
|
||||||
import eu.siacs.conversations.xmpp.PresencePacket;
|
import eu.siacs.conversations.xmpp.PresencePacket;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
@ -75,6 +76,7 @@ public class MucOptions {
|
||||||
private boolean isOnline = false;
|
private boolean isOnline = false;
|
||||||
private int error = 0;
|
private int error = 0;
|
||||||
private OnRenameListener renameListener = null;
|
private OnRenameListener renameListener = null;
|
||||||
|
private User self = new User();
|
||||||
|
|
||||||
|
|
||||||
public void deleteUser(String name) {
|
public void deleteUser(String name) {
|
||||||
|
@ -107,12 +109,14 @@ public class MucOptions {
|
||||||
user.setAffiliation(item.getAttribute("affiliation"));
|
user.setAffiliation(item.getAttribute("affiliation"));
|
||||||
user.setRole(item.getAttribute("role"));
|
user.setRole(item.getAttribute("role"));
|
||||||
user.setName(name);
|
user.setName(name);
|
||||||
addUser(user);
|
|
||||||
Log.d("xmppService","nick: "+getNick());
|
Log.d("xmppService","nick: "+getNick());
|
||||||
Log.d("xmppService","name: "+name);
|
Log.d("xmppService","name: "+name);
|
||||||
if (name.equals(getNick())) {
|
if (name.equals(getNick())) {
|
||||||
this.isOnline = true;
|
this.isOnline = true;
|
||||||
this.error = 0;
|
this.error = 0;
|
||||||
|
self = user;
|
||||||
|
} else {
|
||||||
|
addUser(user);
|
||||||
}
|
}
|
||||||
} else if (type.equals("unavailable")) {
|
} else if (type.equals("unavailable")) {
|
||||||
Log.d("xmppService","name: "+name);
|
Log.d("xmppService","name: "+name);
|
||||||
|
@ -179,4 +183,8 @@ public class MucOptions {
|
||||||
this.error = 0;
|
this.error = 0;
|
||||||
this.isOnline = false;
|
this.isOnline = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public User getSelf() {
|
||||||
|
return self;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -307,9 +307,10 @@ public class ConversationActivity extends XmppActivity {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case R.id.action_muc_details:
|
case R.id.action_muc_details:
|
||||||
DialogMucDetails mucDetails = new DialogMucDetails();
|
Intent intent = new Intent(this,MucOptionsActivity.class);
|
||||||
mucDetails.setConversation(getSelectedConversation());
|
intent.setAction(MucOptionsActivity.ACTION_VIEW_MUC);
|
||||||
mucDetails.show(getFragmentManager(), "details");
|
intent.putExtra("uuid", getSelectedConversation().getUuid());
|
||||||
|
startActivity(intent);
|
||||||
break;
|
break;
|
||||||
case R.id.action_security:
|
case R.id.action_security:
|
||||||
final Conversation selConv = getSelectedConversation();
|
final Conversation selConv = getSelectedConversation();
|
||||||
|
|
|
@ -24,6 +24,7 @@ import eu.siacs.conversations.utils.UIHelper;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
import android.content.Intent;
|
||||||
import android.content.IntentSender;
|
import android.content.IntentSender;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.IntentSender.SendIntentException;
|
import android.content.IntentSender.SendIntentException;
|
||||||
|
@ -36,8 +37,10 @@ import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
import android.view.View.OnTouchListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
@ -96,6 +99,7 @@ public class ConversationFragment extends Fragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private LinearLayout pgpInfo;
|
private LinearLayout pgpInfo;
|
||||||
private LinearLayout mucError;
|
private LinearLayout mucError;
|
||||||
private TextView mucErrorText;
|
private TextView mucErrorText;
|
||||||
|
@ -103,9 +107,10 @@ public class ConversationFragment extends Fragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
DialogMucDetails mucDetails = new DialogMucDetails();
|
Intent intent = new Intent(getActivity(),MucOptionsActivity.class);
|
||||||
mucDetails.setConversation(conversation);
|
intent.setAction(MucOptionsActivity.ACTION_VIEW_MUC);
|
||||||
mucDetails.show(getFragmentManager(), "details");
|
intent.putExtra("uuid", conversation.getUuid());
|
||||||
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,100 +0,0 @@
|
||||||
package eu.siacs.conversations.ui;
|
|
||||||
|
|
||||||
|
|
||||||
import eu.siacs.conversations.R;
|
|
||||||
import eu.siacs.conversations.entities.Conversation;
|
|
||||||
import eu.siacs.conversations.entities.MucOptions;
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.app.DialogFragment;
|
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.DialogInterface.OnClickListener;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
public class DialogMucDetails extends DialogFragment {
|
|
||||||
private XmppActivity activity;
|
|
||||||
private Conversation conversation;
|
|
||||||
private EditText mYourNick;
|
|
||||||
private OnClickListener changeNickListener = new OnClickListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
MucOptions options = conversation.getMucOptions();
|
|
||||||
String nick = mYourNick.getText().toString();
|
|
||||||
if (!options.getNick().equals(nick)) {
|
|
||||||
activity.xmppConnectionService.renameInMuc(conversation,nick,activity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
||||||
this.activity = (XmppActivity) getActivity();
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this.activity);
|
|
||||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
|
||||||
View view = inflater.inflate(R.layout.muc_options, null);
|
|
||||||
builder.setView(view);
|
|
||||||
builder.setTitle(getString(R.string.conference_details));
|
|
||||||
mYourNick = (EditText) view.findViewById(R.id.muc_your_nick);
|
|
||||||
TextView mTextModerators = (TextView) view.findViewById(R.id.muc_moderators);
|
|
||||||
TextView mTextParticipants = (TextView) view.findViewById(R.id.muc_participants);
|
|
||||||
TextView mTextVisiotors = (TextView) view.findViewById(R.id.muc_visitors);
|
|
||||||
TextView mTextModeratorsHead = (TextView) view.findViewById(R.id.muc_moderators_header);
|
|
||||||
TextView mTextParticipantsHead = (TextView) view.findViewById(R.id.muc_participants_header);
|
|
||||||
TextView mTextVisiotorsHead = (TextView) view.findViewById(R.id.muc_visitors_header);
|
|
||||||
StringBuilder mods = new StringBuilder();
|
|
||||||
StringBuilder participants = new StringBuilder();
|
|
||||||
StringBuilder visitors = new StringBuilder();
|
|
||||||
for(MucOptions.User user : conversation.getMucOptions().getUsers()) {
|
|
||||||
if (user.getRole() == MucOptions.User.ROLE_MODERATOR) {
|
|
||||||
if (mods.length()>=1) {
|
|
||||||
mods.append("\n, "+user.getName());
|
|
||||||
} else {
|
|
||||||
mods.append(user.getName());
|
|
||||||
}
|
|
||||||
} else if (user.getRole() == MucOptions.User.ROLE_PARTICIPANT) {
|
|
||||||
if (participants.length()>=1) {
|
|
||||||
participants.append("\n, "+user.getName());
|
|
||||||
} else {
|
|
||||||
participants.append(user.getName());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (visitors.length()>=1) {
|
|
||||||
visitors.append("\n, "+user.getName());
|
|
||||||
} else {
|
|
||||||
visitors.append(user.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (mods.length()>0) {
|
|
||||||
mTextModerators.setText(mods.toString());
|
|
||||||
} else {
|
|
||||||
mTextModerators.setVisibility(View.GONE);
|
|
||||||
mTextModeratorsHead.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
if (participants.length()>0) {
|
|
||||||
mTextParticipants.setText(participants.toString());
|
|
||||||
} else {
|
|
||||||
mTextParticipants.setVisibility(View.GONE);
|
|
||||||
mTextParticipantsHead.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
if (visitors.length()>0) {
|
|
||||||
mTextVisiotors.setText(visitors.toString());
|
|
||||||
} else {
|
|
||||||
mTextVisiotors.setVisibility(View.GONE);
|
|
||||||
mTextVisiotorsHead.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
mYourNick.setText(conversation.getMucOptions().getNick());
|
|
||||||
builder.setPositiveButton("Done", this.changeNickListener );
|
|
||||||
builder.setNegativeButton("Cancel", null);
|
|
||||||
return builder.create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConversation(Conversation conversation) {
|
|
||||||
this.conversation = conversation;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
package eu.siacs.conversations.ui;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import eu.siacs.conversations.R;
|
||||||
|
import eu.siacs.conversations.entities.Conversation;
|
||||||
|
import eu.siacs.conversations.entities.MucOptions;
|
||||||
|
import eu.siacs.conversations.entities.MucOptions.User;
|
||||||
|
import eu.siacs.conversations.utils.UIHelper;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.View.OnClickListener;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.ImageButton;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.ListView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
public class MucOptionsActivity extends XmppActivity {
|
||||||
|
public static final String ACTION_VIEW_MUC = "view_muc";
|
||||||
|
private XmppActivity activity = this;
|
||||||
|
private Conversation conversation;
|
||||||
|
private EditText mYourNick;
|
||||||
|
private TextView mRoleAffiliaton;
|
||||||
|
private TextView mFullJid;
|
||||||
|
private LinearLayout membersView;
|
||||||
|
private TextView mTextParticipantsHead;
|
||||||
|
private LinearLayout mMoreDetails;
|
||||||
|
private String uuid = null;
|
||||||
|
private ArrayAdapter<User> contactsAdapter;
|
||||||
|
private OnClickListener changeNickListener = new OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
Log.d("gultsch","on click change muc");
|
||||||
|
MucOptions options = conversation.getMucOptions();
|
||||||
|
String nick = mYourNick.getText().toString();
|
||||||
|
if (!options.getNick().equals(nick)) {
|
||||||
|
Log.d("gultsch","call to change muc");
|
||||||
|
xmppConnectionService.renameInMuc(conversation, nick, activity);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private List<User> users = new ArrayList<MucOptions.User>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
if (getIntent().getAction().equals(ACTION_VIEW_MUC)) {
|
||||||
|
this.uuid = getIntent().getExtras().getString("uuid");
|
||||||
|
}
|
||||||
|
setContentView(R.layout.muc_options);
|
||||||
|
mYourNick = (EditText) findViewById(R.id.muc_your_nick);
|
||||||
|
mTextParticipantsHead = (TextView) findViewById(R.id.muc_participants_header);
|
||||||
|
mFullJid = (TextView) findViewById(R.id.muc_jabberid);
|
||||||
|
ImageButton imageButton = (ImageButton) findViewById(R.id.muc_edit_nick);
|
||||||
|
imageButton.setOnClickListener(this.changeNickListener);
|
||||||
|
membersView = (LinearLayout) findViewById(R.id.muc_members);
|
||||||
|
mMoreDetails = (LinearLayout) findViewById(R.id.muc_more_details);
|
||||||
|
mMoreDetails.setVisibility(View.GONE);
|
||||||
|
contactsAdapter = new ArrayAdapter<MucOptions.User>(this,
|
||||||
|
R.layout.contact, users) {
|
||||||
|
@Override
|
||||||
|
public View getView(int position, View view, ViewGroup parent) {
|
||||||
|
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||||
|
User contact = getItem(position);
|
||||||
|
if (view == null) {
|
||||||
|
view = (View) inflater.inflate(R.layout.contact, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
((TextView) view.findViewById(R.id.contact_display_name))
|
||||||
|
.setText(getItem(position).getName());
|
||||||
|
TextView role = (TextView) view.findViewById(R.id.contact_jid);
|
||||||
|
role.setText(getReadableRole(contact.getRole()));
|
||||||
|
ImageView imageView = (ImageView) view
|
||||||
|
.findViewById(R.id.contact_photo);
|
||||||
|
imageView.setImageBitmap(UIHelper.getUnknownContactPicture(
|
||||||
|
getItem(position).getName(), 90));
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConversation(Conversation conversation) {
|
||||||
|
this.conversation = conversation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReadableRole(int role) {
|
||||||
|
switch (role) {
|
||||||
|
case User.ROLE_MODERATOR:
|
||||||
|
return getString(R.string.moderator);
|
||||||
|
case User.ROLE_PARTICIPANT:
|
||||||
|
return getString(R.string.participant);
|
||||||
|
case User.ROLE_VISITOR:
|
||||||
|
return getString(R.string.visitor);
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void onBackendConnected() {
|
||||||
|
if (uuid != null) {
|
||||||
|
for (Conversation mConv : xmppConnectionService.getConversations()) {
|
||||||
|
if (mConv.getUuid().equals(uuid)) {
|
||||||
|
this.conversation = mConv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.conversation != null) {
|
||||||
|
mFullJid.setText(conversation.getContactJid().split("/")[0]);
|
||||||
|
mYourNick.setText(conversation.getMucOptions().getNick());
|
||||||
|
mRoleAffiliaton = (TextView) findViewById(R.id.muc_role);
|
||||||
|
if (conversation.getMucOptions().online()) {
|
||||||
|
mMoreDetails.setVisibility(View.VISIBLE);
|
||||||
|
User self = conversation.getMucOptions().getSelf();
|
||||||
|
switch (self.getAffiliation()) {
|
||||||
|
case User.AFFILIATION_ADMIN:
|
||||||
|
mRoleAffiliaton.setText(getReadableRole(self.getRole())
|
||||||
|
+ " (Admin)");
|
||||||
|
break;
|
||||||
|
case User.AFFILIATION_OWNER:
|
||||||
|
mRoleAffiliaton.setText(getReadableRole(self.getRole())
|
||||||
|
+ " (Owner)");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mRoleAffiliaton
|
||||||
|
.setText(getReadableRole(self.getRole()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.users.clear();
|
||||||
|
this.users.addAll(conversation.getMucOptions().getUsers());
|
||||||
|
contactsAdapter.notifyDataSetChanged();
|
||||||
|
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||||
|
for(User contact : conversation.getMucOptions().getUsers()) {
|
||||||
|
View view = (View) inflater.inflate(R.layout.contact, null);
|
||||||
|
|
||||||
|
((TextView) view.findViewById(R.id.contact_display_name))
|
||||||
|
.setText(contact.getName());
|
||||||
|
TextView role = (TextView) view.findViewById(R.id.contact_jid);
|
||||||
|
role.setText(getReadableRole(contact.getRole()));
|
||||||
|
ImageView imageView = (ImageView) view
|
||||||
|
.findViewById(R.id.contact_photo);
|
||||||
|
imageView.setImageBitmap(UIHelper.getUnknownContactPicture(contact.getName(), 90));
|
||||||
|
membersView.addView(view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue