From 7fd05889276f848f81164b74cc0169588a8edfe3 Mon Sep 17 00:00:00 2001 From: mac Date: Sun, 14 Oct 2018 07:09:48 +0530 Subject: [PATCH 01/16] Add Floating Action Button --- .../rocket/android/chatrooms/ui/ChatRoomsFragment.kt | 9 +++++++++ app/src/main/res/drawable/ic_add_white_24dp.xml | 9 +++++++++ app/src/main/res/layout/fragment_chat_rooms.xml | 11 +++++++++++ 3 files changed, 29 insertions(+) create mode 100644 app/src/main/res/drawable/ic_add_white_24dp.xml diff --git a/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt b/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt index 2c453eb80e..cef17a9e7c 100644 --- a/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt +++ b/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt @@ -109,6 +109,7 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { subscribeUi() setupToolbar() + setupFab() analyticsManager.logScreenView(ScreenViewEvent.ChatRooms) } @@ -179,11 +180,13 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { // Simply setting sortView to visible won't work, so we invalidate the options // to recreate the entire menu... activity?.invalidateOptionsMenu() + create_new_channel_fab.isVisible = true return true } override fun onMenuItemActionExpand(item: MenuItem): Boolean { sortView?.isVisible = false + create_new_channel_fab.isVisible = false return true } } @@ -351,4 +354,10 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { } return true } + + private fun setupFab() { + create_new_channel_fab.setOnClickListener { + showToast("fab click") + } + } } diff --git a/app/src/main/res/drawable/ic_add_white_24dp.xml b/app/src/main/res/drawable/ic_add_white_24dp.xml new file mode 100644 index 0000000000..b9b8eca8b9 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_chat_rooms.xml b/app/src/main/res/layout/fragment_chat_rooms.xml index 1a82b796a5..8045f97aa9 100644 --- a/app/src/main/res/layout/fragment_chat_rooms.xml +++ b/app/src/main/res/layout/fragment_chat_rooms.xml @@ -56,4 +56,15 @@ android:textSize="20sp" android:visibility="gone" tools:visibility="visible" /> + + From c1011d1475ca3d4a1226eb6db791a3776b7d97fd Mon Sep 17 00:00:00 2001 From: kb0304 Date: Tue, 23 Oct 2018 14:00:32 +0530 Subject: [PATCH 02/16] Add the fragment transaction to contacts' list when FAB clicked --- .../chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt b/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt index c76d30bf80..b739d7bf06 100644 --- a/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt +++ b/app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt @@ -30,9 +30,11 @@ import chat.rocket.android.chatrooms.viewmodel.ChatRoomsViewModel import chat.rocket.android.chatrooms.viewmodel.ChatRoomsViewModelFactory import chat.rocket.android.chatrooms.viewmodel.LoadingState import chat.rocket.android.chatrooms.viewmodel.Query +import chat.rocket.android.contacts.ContactListFragment import chat.rocket.android.helper.ChatRoomsSortOrder import chat.rocket.android.helper.Constants import chat.rocket.android.helper.SharedPreferenceHelper +import chat.rocket.android.main.ui.MainActivity import chat.rocket.android.util.extension.onQueryTextListener import chat.rocket.android.util.extensions.fadeIn import chat.rocket.android.util.extensions.fadeOut @@ -359,8 +361,10 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { } private fun setupFab() { - create_new_channel_fab.setOnClickListener { - showToast("fab click") + create_new_channel_fab.setOnClickListener { view -> + var mainActivity: MainActivity = activity as MainActivity + var contactsListFragment: ContactListFragment = ContactListFragment() + activity?.getSupportFragmentManager()?.beginTransaction()?.replace(this.id, contactsListFragment, "contactListFragment")?.addToBackStack(null)?.commit(); } } } From a5ea82ee519fabb93fdbd897da05514a49f81e9b Mon Sep 17 00:00:00 2001 From: kb0304 Date: Tue, 23 Oct 2018 14:01:02 +0530 Subject: [PATCH 03/16] Fix incorrect renames caused by autorefactoring tool --- app/src/main/res/layout/item_chat.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/layout/item_chat.xml b/app/src/main/res/layout/item_chat.xml index c8e8eae862..e07d655725 100644 --- a/app/src/main/res/layout/item_chat.xml +++ b/app/src/main/res/layout/item_chat.xml @@ -24,13 +24,13 @@ android:layout_width="12dp" android:layout_height="0dp" android:layout_marginStart="16dp" - app:layout_constraintBottom_toBottomOf="@+id/contact_name" + app:layout_constraintBottom_toBottomOf="@+id/text_chat_name" app:layout_constraintStart_toEndOf="@+id/image_avatar" - app:layout_constraintTop_toTopOf="@+id/contact_name" + app:layout_constraintTop_toTopOf="@+id/text_chat_name" tools:src="@drawable/ic_hashtag_unread_12dp" /> + app:layout_constraintTop_toTopOf="@+id/text_chat_name" /> \ No newline at end of file From e8cc1973cf6b552eb9d9197ea25df3643278afab Mon Sep 17 00:00:00 2001 From: kb0304 Date: Tue, 23 Oct 2018 16:52:47 +0530 Subject: [PATCH 04/16] Add create channel and invite contact buttons --- .../android/contacts/ContactListFragment.kt | 2 + .../contacts/ContactRecyclerViewAdapter.kt | 24 +++++---- app/src/main/res/layout/fragment_contacts.xml | 54 ++++++++++++++----- app/src/main/res/layout/item_contact.xml | 9 ++++ 4 files changed, 66 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/contacts/ContactListFragment.kt b/app/src/main/java/chat/rocket/android/contacts/ContactListFragment.kt index 24db7d7efd..e303a70f3b 100644 --- a/app/src/main/java/chat/rocket/android/contacts/ContactListFragment.kt +++ b/app/src/main/java/chat/rocket/android/contacts/ContactListFragment.kt @@ -65,6 +65,8 @@ class ContactListFragment : Fragment() { contactHashMap[phoneNo] = "INDETERMINATE" } pCur.close() + contactArrayList.sortWith(Comparator { o1, o2 -> o1.getName()!!.compareTo(o2.getName()!!) + }) } } } diff --git a/app/src/main/java/chat/rocket/android/contacts/ContactRecyclerViewAdapter.kt b/app/src/main/java/chat/rocket/android/contacts/ContactRecyclerViewAdapter.kt index b07a6fe1a3..2afe8c70a9 100644 --- a/app/src/main/java/chat/rocket/android/contacts/ContactRecyclerViewAdapter.kt +++ b/app/src/main/java/chat/rocket/android/contacts/ContactRecyclerViewAdapter.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.provider.ContactsContract import android.view.ViewGroup +import android.widget.Button import android.widget.TextView import android.widget.Toast import androidx.recyclerview.widget.RecyclerView @@ -44,27 +45,28 @@ class ContactRecyclerViewAdapter( } - inner class ViewHolder(val view: View) : RecyclerView.ViewHolder(view), View.OnClickListener { + inner class ViewHolder(val view: View) : RecyclerView.ViewHolder(view) { var contact: Contact? = null var status: String? = null var contactName: TextView var phoneNumber: TextView + var inviteButton: Button init { - this.view.setOnClickListener(this) this.contactName = view.findViewById(R.id.contact_name) as TextView this.phoneNumber = view.findViewById(R.id.phone_number) as TextView - } - - override fun onClick(view: View) { - Toast.makeText( - context, - "Contact was clicked: ${this.contact!!.getName()!!}", - Toast.LENGTH_LONG - ).show() -// Handle the click on the contact + this.inviteButton = view.findViewById(R.id.invite_contact) as Button + this.inviteButton.setOnClickListener { view -> + run { + Toast.makeText( + context, + "Contact invite button was clicked: ${this.contact!!.getName()!!}", + Toast.LENGTH_LONG + ).show() + } + } } } } diff --git a/app/src/main/res/layout/fragment_contacts.xml b/app/src/main/res/layout/fragment_contacts.xml index 07e16e5487..5d9f0f227b 100644 --- a/app/src/main/res/layout/fragment_contacts.xml +++ b/app/src/main/res/layout/fragment_contacts.xml @@ -6,19 +6,49 @@ android:layout_height="match_parent" tools:context=".contacts.ContactListFragment"> - + android:layout_height="wrap_content" + android:layout_marginBottom="50dp"> + + + + + + - + android:layout_below="@id/create_section"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_contact.xml b/app/src/main/res/layout/item_contact.xml index b26393b860..9bd16b7ec6 100644 --- a/app/src/main/res/layout/item_contact.xml +++ b/app/src/main/res/layout/item_contact.xml @@ -52,4 +52,13 @@ app:layout_constraintTop_toTopOf="parent" tools:text="Name goes here" /> +