Skip to content

Commit

Permalink
started to work on some administration features.
Browse files Browse the repository at this point in the history
* added kick/ban actions.
i should think how move will work.
  • Loading branch information
beqabeqa473 committed May 3, 2016
1 parent 4306b96 commit d5d8e00
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
15 changes: 15 additions & 0 deletions TeamTalkAndroid/res/menu/user_actions.xml
@@ -0,0 +1,15 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/action_kick"
android:title="@string/action_kick"/>

<item
android:id="@+id/action_ban"
android:title="@string/action_ban"/>

<item
android:id="@+id/action_move"
android:title="@string/action_move"/>

</menu>
3 changes: 3 additions & 0 deletions TeamTalkAndroid/res/values/strings.xml
Expand Up @@ -106,8 +106,11 @@
<string name="button_tx">TX</string>
<string name="button_remove">Remove</string>
<string name="button_edit">Edit</string>
<string name="action_ban">Ban</string>
<string name="action_edit">Edit Channel</string>
<string name="action_join">Join</string>
<string name="action_kick">Kick</string>
<string name="action_move">Move</string>
<string name="action_upload">Upload File</string>
<string name="button_msg">Msg</string>
<string name="button_send">Send</string>
Expand Down
24 changes: 24 additions & 0 deletions TeamTalkAndroid/src/dk/bearware/gui/MainActivity.java
Expand Up @@ -42,6 +42,7 @@
import dk.bearware.TextMsgType;
import dk.bearware.User;
import dk.bearware.UserAccount;
import dk.bearware.UserRight;
import dk.bearware.UserState;
import dk.bearware.events.ClientListener;
import dk.bearware.events.CommandListener;
Expand Down Expand Up @@ -1065,10 +1066,27 @@ else if(item instanceof Channel) {
}

Channel selectedChannel;
User selectedUser;

@Override
public boolean onItemLongClick(AdapterView< ? > l, View v, int position, long id) {
Object item = channelsAdapter.getItem(position);
if (item instanceof User) {
selectedUser = (User) item;
UserAccount myuseraccount = new UserAccount();
ttclient.getMyUserAccount(myuseraccount);
boolean kickRight = (myuseraccount.uUserRights & UserRight.USERRIGHT_KICK_USERS) !=0;
boolean banRight = (myuseraccount.uUserRights & UserRight.USERRIGHT_BAN_USERS) !=0;
boolean moveRight = (myuseraccount.uUserRights & UserRight.USERRIGHT_MOVE_USERS) !=0;
PopupMenu userActions = new PopupMenu(this, v);
userActions.setOnMenuItemClickListener(this);
userActions.inflate(R.menu.user_actions);
userActions.getMenu().findItem(R.id.action_kick).setEnabled(kickRight).setVisible(kickRight);
userActions.getMenu().findItem(R.id.action_ban).setEnabled(banRight).setVisible(banRight);
userActions.getMenu().findItem(R.id.action_move).setEnabled(moveRight).setVisible(moveRight);
userActions.show();
return true;
}
if (item instanceof Channel) {
selectedChannel = (Channel) item;
if ((curchannel != null) && (curchannel.nParentID != selectedChannel.nChannelID)) {
Expand All @@ -1087,9 +1105,15 @@ public boolean onItemLongClick(AdapterView< ? > l, View v, int position, long id
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_ban:
ttclient.doBanUser(selectedUser.nUserID, 0);
break;
case R.id.action_edit:
editChannelProperties(selectedChannel);
break;
case R.id.action_kick:
ttclient.doKickUser(selectedUser.nUserID, 0);
break;
case R.id.action_remove: {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setMessage(getString(R.string.channel_remove_confirmation, selectedChannel.szName));
Expand Down

0 comments on commit d5d8e00

Please sign in to comment.