diff --git a/MessengerProj/jni/mrwrapper.c b/MessengerProj/jni/mrwrapper.c index abe5669ca..5201a4a50 100644 --- a/MessengerProj/jni/mrwrapper.c +++ b/MessengerProj/jni/mrwrapper.c @@ -369,6 +369,15 @@ JNIEXPORT jint Java_com_b44t_messenger_MrMailbox_removeContactFromChat(JNIEnv *e } +JNIEXPORT jint Java_com_b44t_messenger_MrMailbox_setChatName(JNIEnv *env, jclass cls, jint chat_id, jstring name) +{ + CHAR_REF(name); + jint ret = (jint)mrmailbox_set_chat_name(get_mrmailbox_t(env, cls), chat_id, namePtr); + CHAR_UNREF(name); + return ret; +} + + JNIEXPORT void Java_com_b44t_messenger_MrMailbox_deleteChat(JNIEnv *env, jclass cls, jint chat_id) { mrmailbox_delete_chat(get_mrmailbox_t(env, cls), chat_id); diff --git a/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java b/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java index 41976aa3e..0e2195c6d 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java @@ -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); diff --git a/MessengerProj/src/main/java/com/b44t/ui/ContactAddActivity.java b/MessengerProj/src/main/java/com/b44t/ui/ContactAddActivity.java index 4913cc758..5fe4bd0cd 100644 --- a/MessengerProj/src/main/java/com/b44t/ui/ContactAddActivity.java +++ b/MessengerProj/src/main/java/com/b44t/ui/ContactAddActivity.java @@ -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, diff --git a/MessengerProj/src/main/java/com/b44t/ui/ProfileActivity.java b/MessengerProj/src/main/java/com/b44t/ui/ProfileActivity.java index f48877f60..641b61ecb 100644 --- a/MessengerProj/src/main/java/com/b44t/ui/ProfileActivity.java +++ b/MessengerProj/src/main/java/com/b44t/ui/ProfileActivity.java @@ -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) {