Edit group names.

This commit is contained in:
B. Petersen
2017-01-11 00:46:42 +01:00
parent 848862ae84
commit 787efa3c5d
4 changed files with 57 additions and 39 deletions
@@ -146,9 +146,10 @@ public class MrMailbox {
return MrMailboxCreateChatByContactId(m_hMailbox, contact_id);
}
public native static int createGroupChat(String name);
public native static int addContactToChat(int chat_id, int contact_id);
public native static int removeContactFromChat(int chat_id, int contact_id);
public native static int createGroupChat (String name);
public native static int addContactToChat (int chat_id, int contact_id);
public native static int removeContactFromChat (int chat_id, int contact_id);
public native static int setChatName (int chat_id, String name);
public final static int MR_GCM_ADDDAYMARKER = 0x01;
public native static int[] getChatMsgs(int chat_id, int flags, int marker1before);
@@ -23,9 +23,7 @@
package com.b44t.ui;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
@@ -44,6 +42,7 @@ import android.widget.Toast;
import com.b44t.messenger.AndroidUtilities;
import com.b44t.messenger.ContactsController;
import com.b44t.messenger.LocaleController;
import com.b44t.messenger.MrChat;
import com.b44t.messenger.MrContact;
import com.b44t.messenger.MrMailbox;
import com.b44t.messenger.TLRPC;
@@ -73,6 +72,7 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
private AvatarDrawable avatarDrawable;
private AvatarUpdater avatarUpdater = new AvatarUpdater();
private String nameToSet = null;
private int chat_id; // only used for EDIT_NAME in chats
private int user_id;
private boolean create_chat_when_done;
@@ -92,6 +92,7 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
avatarUpdater.returnOnly = true;
do_what = getArguments().getInt("do_what", 0);
user_id = getArguments().getInt("user_id", 0);
chat_id = getArguments().getInt("chat_id", 0);
create_chat_when_done = getArguments().getBoolean("create_chat_when_done", false);
return super.onFragmentCreate();
}
@@ -118,8 +119,12 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
actionBar.setTitle(LocaleController.getString("NewContactTitle", R.string.NewContactTitle));
} else {
actionBar.setTitle(LocaleController.getString("EditName", R.string.EditName));
MrContact mrContact = MrMailbox.getContact(user_id);
nameToSet = mrContact.getDisplayName();
if( user_id!=0 ) {
nameToSet = MrMailbox.getContact(user_id).getDisplayName();
}
else {
nameToSet = MrMailbox.getChat(chat_id).getName();
}
}
actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() {
@@ -129,34 +134,39 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
finishFragment();
} else if (id == done_button) {
String name = nameTextView.getText().toString();
String addr = "";
if (do_what==CREATE_CONTACT) {
addr = emailTextView.getText().toString();
if( chat_id!=0 ) {
MrMailbox.setChatName(chat_id, name);
}
else {
MrContact mrContact = MrMailbox.getContact(user_id);
addr = mrContact.getAddr();
}
int new_user_id;
if( (new_user_id=MrMailbox.createContact(name, addr))==0 ) {
Toast.makeText(getParentActivity(), LocaleController.getString("BadEmailAddress", R.string.BadEmailAddress), Toast.LENGTH_LONG).show();
return;
}
else if (do_what==CREATE_CONTACT) {
if(create_chat_when_done) {
int belonging_chat_id = MrMailbox.createChatByContactId(new_user_id);
if( belonging_chat_id != 0 ) {
Bundle args = new Bundle();
args.putInt("chat_id", belonging_chat_id);
presentFragment(new ChatActivity(args), true);
NotificationCenter.getInstance().postNotificationName(NotificationCenter.chatDidCreated, belonging_chat_id); /*this will remove the contact list from stack */
NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, MessagesController.UPDATE_MASK_NAME);
return;
}
String addr = "";
if (do_what==CREATE_CONTACT) {
addr = emailTextView.getText().toString();
}
else {
Toast.makeText(getParentActivity(), LocaleController.getString("ContactCreated", R.string.ContactCreated), Toast.LENGTH_LONG).show();
MrContact mrContact = MrMailbox.getContact(user_id);
addr = mrContact.getAddr();
}
int new_user_id;
if( (new_user_id=MrMailbox.createContact(name, addr))==0 ) {
Toast.makeText(getParentActivity(), LocaleController.getString("BadEmailAddress", R.string.BadEmailAddress), Toast.LENGTH_LONG).show();
return;
}
else if (do_what==CREATE_CONTACT) {
if(create_chat_when_done) {
int belonging_chat_id = MrMailbox.createChatByContactId(new_user_id);
if( belonging_chat_id != 0 ) {
Bundle args = new Bundle();
args.putInt("chat_id", belonging_chat_id);
presentFragment(new ChatActivity(args), true);
NotificationCenter.getInstance().postNotificationName(NotificationCenter.chatDidCreated, belonging_chat_id); /*this will remove the contact list from stack */
NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, MessagesController.UPDATE_MASK_NAME);
return;
}
}
else {
Toast.makeText(getParentActivity(), LocaleController.getString("ContactCreated", R.string.ContactCreated), Toast.LENGTH_LONG).show();
}
}
}
@@ -327,8 +337,7 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
email = emailTextView.length() > 0? emailTextView.getText().toString() : null;
}
else if( user_id != 0 ) {
MrContact mrContact = MrMailbox.getContact(user_id);
email = mrContact.getAddr();
email = MrMailbox.getContact(user_id).getAddr();
}
ContactsController.setupAvatarByStrings(avatarImage, avatarImage.imageReceiver, avatarDrawable,
email,
@@ -26,8 +26,6 @@ package com.b44t.ui;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.StateListAnimator;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -39,7 +37,6 @@ import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Outline;
import android.graphics.Paint;
import android.os.Build;
import android.os.Bundle;
@@ -47,7 +44,6 @@ import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewOutlineProvider;
import android.view.ViewTreeObserver;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
@@ -63,7 +59,6 @@ import com.b44t.messenger.MrChat;
import com.b44t.messenger.MrContact;
import com.b44t.messenger.MrMailbox;
import com.b44t.messenger.SendMessagesHelper;
import com.b44t.messenger.UserObject;
import com.b44t.messenger.ApplicationLoader;
import com.b44t.messenger.support.widget.LinearLayoutManager;
import com.b44t.messenger.support.widget.RecyclerView;
@@ -410,7 +405,11 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
else if(position==changeNameRow) {
Bundle args = new Bundle();
args.putInt("do_what", ContactAddActivity.EDIT_NAME);
args.putInt("user_id", user_id);
if (chat_id != 0) {
args.putInt("chat_id", chat_id);
} else {
args.putInt("user_id", user_id);
}
presentFragment(new ContactAddActivity(args));
}
else if(position==startChatRow) {