Muc Options even more awesome
This commit is contained in:
parent
69af009c88
commit
8e4be5256e
|
@ -48,7 +48,8 @@
|
|||
<activity
|
||||
android:name="eu.siacs.conversations.ui.MucOptionsActivity"
|
||||
android:label="Conference Details"
|
||||
android:parentActivityName="eu.siacs.conversations.ui.ConversationActivity" >
|
||||
android:parentActivityName="eu.siacs.conversations.ui.ConversationActivity"
|
||||
android:windowSoftInputMode="stateHidden">
|
||||
</activity>
|
||||
<activity
|
||||
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_light=0x7f020008;
|
||||
public static final int ic_action_delete=0x7f020009;
|
||||
public static final int ic_action_group=0x7f02000a;
|
||||
public static final int ic_action_person=0x7f02000b;
|
||||
public static final int ic_action_refresh=0x7f02000c;
|
||||
public static final int ic_action_secure=0x7f02000d;
|
||||
public static final int ic_action_send=0x7f02000e;
|
||||
public static final int ic_action_send_now=0x7f02000f;
|
||||
public static final int ic_action_unsecure=0x7f020010;
|
||||
public static final int ic_launcher=0x7f020011;
|
||||
public static final int ic_profile=0x7f020012;
|
||||
public static final int message_border=0x7f020013;
|
||||
public static final int notification=0x7f020014;
|
||||
public static final int red=0x7f020015;
|
||||
public static final int redbackground=0x7f020016;
|
||||
public static final int section_header=0x7f020017;
|
||||
public static final int ic_action_edit=0x7f02000a;
|
||||
public static final int ic_action_group=0x7f02000b;
|
||||
public static final int ic_action_person=0x7f02000c;
|
||||
public static final int ic_action_refresh=0x7f02000d;
|
||||
public static final int ic_action_secure=0x7f02000e;
|
||||
public static final int ic_action_send=0x7f02000f;
|
||||
public static final int ic_action_send_now=0x7f020010;
|
||||
public static final int ic_action_unsecure=0x7f020011;
|
||||
public static final int ic_launcher=0x7f020012;
|
||||
public static final int ic_profile=0x7f020013;
|
||||
public static final int message_border=0x7f020014;
|
||||
public static final int notification=0x7f020015;
|
||||
public static final int red=0x7f020016;
|
||||
public static final int redbackground=0x7f020017;
|
||||
public static final int section_header=0x7f020018;
|
||||
}
|
||||
public static final class id {
|
||||
public static final int account_confirm_password_desc=0x7f0a001c;
|
||||
public static final int account_delete=0x7f0a0041;
|
||||
public static final int account_disable=0x7f0a0042;
|
||||
public static final int account_enable=0x7f0a0043;
|
||||
public static final int account_delete=0x7f0a0042;
|
||||
public static final int account_disable=0x7f0a0043;
|
||||
public static final int account_enable=0x7f0a0044;
|
||||
public static final int account_jid=0x7f0a0000;
|
||||
public static final int account_list=0x7f0a002b;
|
||||
public static final int account_password=0x7f0a0019;
|
||||
public static final int account_password_confirm2=0x7f0a001d;
|
||||
public static final int account_status=0x7f0a0002;
|
||||
public static final int account_usetls=0x7f0a001a;
|
||||
public static final int action_accounts=0x7f0a003b;
|
||||
public static final int action_add=0x7f0a0036;
|
||||
public static final int action_add_account=0x7f0a0040;
|
||||
public static final int action_archive=0x7f0a003a;
|
||||
public static final int action_contact_details=0x7f0a0038;
|
||||
public static final int action_muc_details=0x7f0a0039;
|
||||
public static final int action_refresh_contacts=0x7f0a0045;
|
||||
public static final int action_security=0x7f0a0037;
|
||||
public static final int action_settings=0x7f0a003c;
|
||||
public static final int announce_pgp=0x7f0a0044;
|
||||
public static final int action_accounts=0x7f0a003c;
|
||||
public static final int action_add=0x7f0a0037;
|
||||
public static final int action_add_account=0x7f0a0041;
|
||||
public static final int action_archive=0x7f0a003b;
|
||||
public static final int action_contact_details=0x7f0a0039;
|
||||
public static final int action_muc_details=0x7f0a003a;
|
||||
public static final int action_refresh_contacts=0x7f0a0046;
|
||||
public static final int action_security=0x7f0a0038;
|
||||
public static final int action_settings=0x7f0a003d;
|
||||
public static final int announce_pgp=0x7f0a0045;
|
||||
public static final int contactList=0x7f0a0006;
|
||||
public static final int contact_display_name=0x7f0a0008;
|
||||
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_send_presence=0x7f0a0013;
|
||||
public static final int edit_account_register_new=0x7f0a001b;
|
||||
public static final int encryption_choice_none=0x7f0a003d;
|
||||
public static final int encryption_choice_otr=0x7f0a003e;
|
||||
public static final int encryption_choice_pgp=0x7f0a003f;
|
||||
public static final int encryption_choice_none=0x7f0a003e;
|
||||
public static final int encryption_choice_otr=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 list=0x7f0a0029;
|
||||
public static final int message_body=0x7f0a002d;
|
||||
public static final int message_photo=0x7f0a002c;
|
||||
public static final int message_time=0x7f0a002e;
|
||||
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_msg=0x7f0a0024;
|
||||
public static final int muc_moderators=0x7f0a0031;
|
||||
public static final int muc_moderators_header=0x7f0a0030;
|
||||
public static final int muc_participants=0x7f0a0033;
|
||||
public static final int muc_participants_header=0x7f0a0032;
|
||||
public static final int muc_visitors=0x7f0a0035;
|
||||
public static final int muc_visitors_header=0x7f0a0034;
|
||||
public static final int muc_jabberid=0x7f0a0032;
|
||||
public static final int muc_members=0x7f0a0036;
|
||||
public static final int muc_more_details=0x7f0a0033;
|
||||
public static final int muc_participants_header=0x7f0a0035;
|
||||
public static final int muc_role=0x7f0a0034;
|
||||
public static final int muc_your_nick=0x7f0a002f;
|
||||
public static final int new_conversation_search=0x7f0a0004;
|
||||
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 encrypted_message=0x7f05000f;
|
||||
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 openpgp_install_openkeychain_via=0x7f050001;
|
||||
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 title_activity_new_conversation=0x7f05000b;
|
||||
public static final int visitor=0x7f050014;
|
||||
}
|
||||
public static final class style {
|
||||
/**
|
||||
|
|
BIN
res/drawable-hdpi/ic_action_edit.png
Normal file
BIN
res/drawable-hdpi/ic_action_edit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 884 B |
BIN
res/drawable-ldpi/ic_action_edit.png
Normal file
BIN
res/drawable-ldpi/ic_action_edit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 587 B |
BIN
res/drawable-mdpi/ic_action_edit.png
Normal file
BIN
res/drawable-mdpi/ic_action_edit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 587 B |
BIN
res/drawable-xhdpi/ic_action_edit.png
Normal file
BIN
res/drawable-xhdpi/ic_action_edit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
res/drawable-xxhdpi/ic_action_edit.png
Normal file
BIN
res/drawable-xxhdpi/ic_action_edit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
|
@ -3,7 +3,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#e5e5e5" >
|
||||
android:background="#e5e5e5">
|
||||
|
||||
<RelativeLayout
|
||||
android:background="#eee"
|
||||
|
@ -11,7 +11,7 @@
|
|||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentLeft="true" >
|
||||
android:layout_alignParentLeft="true">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/textinput"
|
||||
|
|
|
@ -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_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="8dp">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Your nickname"
|
||||
android:textColor="#33B5E5"
|
||||
android:textSize="20sp" />
|
||||
android:background="#e5e5e5">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/muc_your_nick"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ems="10"
|
||||
android:inputType="textEmailAddress"
|
||||
android:padding="8dp"
|
||||
/>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<TextView
|
||||
android:paddingTop="16dp"
|
||||
android:id="@+id/muc_moderators_header"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Moderators"
|
||||
android:textColor="#33B5E5"
|
||||
android:textSize="20sp" />
|
||||
<TextView
|
||||
android:id="@+id/muc_moderators"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Romeo"
|
||||
android:singleLine="true"
|
||||
android:textSize="16sp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingBottom="8dp"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/muc_participants_header"
|
||||
android:paddingTop="8dp"
|
||||
android:layout_width="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:paddingBottom="8dp"/>
|
||||
<TextView
|
||||
android:id="@+id/muc_visitors_header"
|
||||
android:paddingTop="8dp"
|
||||
android:layout_width="wrap_content"
|
||||
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"/>
|
||||
<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
|
||||
android:id="@+id/muc_your_nick"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="48dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_toLeftOf="@+id/imageView1"
|
||||
android:background="#eee"
|
||||
android:ems="10"
|
||||
android:hint="Search or enter Jabber ID"
|
||||
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:src="@drawable/ic_action_edit" />
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
style="@style/sectionHeader"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp"
|
||||
android:text="Jabber ID" />
|
||||
<TextView
|
||||
android:id="@+id/muc_jabberid"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp"
|
||||
android:singleLine="true"
|
||||
android:textColor="#5b5b5b"
|
||||
android:textSize="18sp"/>
|
||||
|
||||
<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
|
||||
android:id="@+id/muc_participants_header"
|
||||
style="@style/sectionHeader"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:paddingTop="8dp"
|
||||
android:text="Other Members" />
|
||||
|
||||
<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>
|
||||
</ScrollView>
|
|
@ -17,4 +17,7 @@
|
|||
<string name="encrypted_message">Decrypting message. please wait…</string>
|
||||
<string name="conference_details">Conference Details</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>
|
||||
|
|
|
@ -3,6 +3,7 @@ package eu.siacs.conversations.entities;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import eu.siacs.conversations.entities.MucOptions.User;
|
||||
import eu.siacs.conversations.xml.Element;
|
||||
import eu.siacs.conversations.xmpp.PresencePacket;
|
||||
import android.annotation.SuppressLint;
|
||||
|
@ -75,6 +76,7 @@ public class MucOptions {
|
|||
private boolean isOnline = false;
|
||||
private int error = 0;
|
||||
private OnRenameListener renameListener = null;
|
||||
private User self = new User();
|
||||
|
||||
|
||||
public void deleteUser(String name) {
|
||||
|
@ -107,12 +109,14 @@ public class MucOptions {
|
|||
user.setAffiliation(item.getAttribute("affiliation"));
|
||||
user.setRole(item.getAttribute("role"));
|
||||
user.setName(name);
|
||||
addUser(user);
|
||||
Log.d("xmppService","nick: "+getNick());
|
||||
Log.d("xmppService","name: "+name);
|
||||
if (name.equals(getNick())) {
|
||||
this.isOnline = true;
|
||||
this.error = 0;
|
||||
self = user;
|
||||
} else {
|
||||
addUser(user);
|
||||
}
|
||||
} else if (type.equals("unavailable")) {
|
||||
Log.d("xmppService","name: "+name);
|
||||
|
@ -179,4 +183,8 @@ public class MucOptions {
|
|||
this.error = 0;
|
||||
this.isOnline = false;
|
||||
}
|
||||
|
||||
public User getSelf() {
|
||||
return self;
|
||||
}
|
||||
}
|
|
@ -307,9 +307,10 @@ public class ConversationActivity extends XmppActivity {
|
|||
}
|
||||
break;
|
||||
case R.id.action_muc_details:
|
||||
DialogMucDetails mucDetails = new DialogMucDetails();
|
||||
mucDetails.setConversation(getSelectedConversation());
|
||||
mucDetails.show(getFragmentManager(), "details");
|
||||
Intent intent = new Intent(this,MucOptionsActivity.class);
|
||||
intent.setAction(MucOptionsActivity.ACTION_VIEW_MUC);
|
||||
intent.putExtra("uuid", getSelectedConversation().getUuid());
|
||||
startActivity(intent);
|
||||
break;
|
||||
case R.id.action_security:
|
||||
final Conversation selConv = getSelectedConversation();
|
||||
|
|
|
@ -24,6 +24,7 @@ import eu.siacs.conversations.utils.UIHelper;
|
|||
import android.app.AlertDialog;
|
||||
import android.app.Fragment;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentSender;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.IntentSender.SendIntentException;
|
||||
|
@ -36,8 +37,10 @@ import android.os.Bundle;
|
|||
import android.preference.PreferenceManager;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnTouchListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
|
@ -96,6 +99,7 @@ public class ConversationFragment extends Fragment {
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
private LinearLayout pgpInfo;
|
||||
private LinearLayout mucError;
|
||||
private TextView mucErrorText;
|
||||
|
@ -103,9 +107,10 @@ public class ConversationFragment extends Fragment {
|
|||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DialogMucDetails mucDetails = new DialogMucDetails();
|
||||
mucDetails.setConversation(conversation);
|
||||
mucDetails.show(getFragmentManager(), "details");
|
||||
Intent intent = new Intent(getActivity(),MucOptionsActivity.class);
|
||||
intent.setAction(MucOptionsActivity.ACTION_VIEW_MUC);
|
||||
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;
|
||||
}
|
||||
}
|
158
src/eu/siacs/conversations/ui/MucOptionsActivity.java
Normal file
158
src/eu/siacs/conversations/ui/MucOptionsActivity.java
Normal file
|
@ -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 a new issue