mirror of
				https://github.com/SimpleMobileTools/Simple-Dialer.git
				synced 2025-06-05 21:49:23 +02:00 
			
		
		
		
	adding some contact displaying related things
This commit is contained in:
		| @@ -36,6 +36,6 @@ android { | |||||||
| } | } | ||||||
|  |  | ||||||
| dependencies { | dependencies { | ||||||
|     implementation 'com.simplemobiletools:commons:5.27.10' |     implementation 'com.simplemobiletools:commons:5.27.12' | ||||||
|     implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' |     implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' | ||||||
| } | } | ||||||
|   | |||||||
| @@ -143,7 +143,9 @@ class MainActivity : SimpleActivity() { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         ContactsHelper(this).getAvailableContacts { contacts -> |         ContactsHelper(this).getAvailableContacts { contacts -> | ||||||
|  |             runOnUiThread { | ||||||
|  |                 contacts_fragment.refreshContacts(contacts) | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -0,0 +1,69 @@ | |||||||
|  | package com.simplemobiletools.dialer.adapters | ||||||
|  |  | ||||||
|  | import android.view.Menu | ||||||
|  | import android.view.View | ||||||
|  | import android.view.ViewGroup | ||||||
|  | import android.widget.ImageView | ||||||
|  | import android.widget.TextView | ||||||
|  | import com.bumptech.glide.Glide | ||||||
|  | import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter | ||||||
|  | import com.simplemobiletools.commons.helpers.ContactsHelper | ||||||
|  | import com.simplemobiletools.commons.models.SimpleContact | ||||||
|  | import com.simplemobiletools.commons.views.FastScroller | ||||||
|  | import com.simplemobiletools.commons.views.MyRecyclerView | ||||||
|  | import com.simplemobiletools.dialer.R | ||||||
|  | import com.simplemobiletools.dialer.activities.SimpleActivity | ||||||
|  | import java.util.* | ||||||
|  |  | ||||||
|  | class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList<SimpleContact>, recyclerView: MyRecyclerView, fastScroller: FastScroller?, | ||||||
|  |                       itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { | ||||||
|  |  | ||||||
|  |     override fun getActionMenuId() = 0 | ||||||
|  |  | ||||||
|  |     override fun prepareActionMode(menu: Menu) {} | ||||||
|  |  | ||||||
|  |     override fun actionItemPressed(id: Int) {} | ||||||
|  |  | ||||||
|  |     override fun getSelectableItemCount() = contacts.size | ||||||
|  |  | ||||||
|  |     override fun getIsItemSelectable(position: Int) = true | ||||||
|  |  | ||||||
|  |     override fun getItemSelectionKey(position: Int) = contacts.getOrNull(position)?.id | ||||||
|  |  | ||||||
|  |     override fun getItemKeyPosition(key: Int) = contacts.indexOfFirst { it.id == key } | ||||||
|  |  | ||||||
|  |     override fun onActionModeCreated() {} | ||||||
|  |  | ||||||
|  |     override fun onActionModeDestroyed() {} | ||||||
|  |  | ||||||
|  |     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.item_contact_with_number, parent) | ||||||
|  |  | ||||||
|  |     override fun onBindViewHolder(holder: ViewHolder, position: Int) { | ||||||
|  |         val contact = contacts[position] | ||||||
|  |         holder.bindView(contact, true, false) { itemView, layoutPosition -> | ||||||
|  |             setupView(itemView, contact) | ||||||
|  |         } | ||||||
|  |         bindViewHolder(holder) | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     override fun getItemCount() = contacts.size | ||||||
|  |  | ||||||
|  |     override fun onViewRecycled(holder: ViewHolder) { | ||||||
|  |         super.onViewRecycled(holder) | ||||||
|  |         if (!activity.isDestroyed && !activity.isFinishing) { | ||||||
|  |             Glide.with(activity).clear(holder.itemView.findViewById<ImageView>(R.id.item_contact_tmb)) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private fun setupView(view: View, contact: SimpleContact) { | ||||||
|  |         view.apply { | ||||||
|  |             findViewById<TextView>(R.id.item_contact_name).text = contact.name | ||||||
|  |             findViewById<TextView>(R.id.item_contact_name).setTextColor(textColor) | ||||||
|  |  | ||||||
|  |             findViewById<TextView>(R.id.item_contact_number).text = contact.phoneNumber | ||||||
|  |             findViewById<TextView>(R.id.item_contact_number).setTextColor(textColor) | ||||||
|  |  | ||||||
|  |             ContactsHelper(context).loadContactImage(contact.photoUri, findViewById(R.id.item_contact_tmb), contact.name) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -7,6 +7,7 @@ import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter | |||||||
| import com.simplemobiletools.commons.extensions.underlineText | import com.simplemobiletools.commons.extensions.underlineText | ||||||
| import com.simplemobiletools.commons.models.SimpleContact | import com.simplemobiletools.commons.models.SimpleContact | ||||||
| import com.simplemobiletools.dialer.activities.SimpleActivity | import com.simplemobiletools.dialer.activities.SimpleActivity | ||||||
|  | import com.simplemobiletools.dialer.adapters.ContactsAdapter | ||||||
| import com.simplemobiletools.dialer.extensions.config | import com.simplemobiletools.dialer.extensions.config | ||||||
| import com.simplemobiletools.dialer.helpers.Config | import com.simplemobiletools.dialer.helpers.Config | ||||||
| import kotlinx.android.synthetic.main.fragment_letters_layout.view.* | import kotlinx.android.synthetic.main.fragment_letters_layout.view.* | ||||||
| @@ -30,4 +31,12 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) | |||||||
|     fun finishActMode() { |     fun finishActMode() { | ||||||
|         (fragment_list.adapter as? MyRecyclerViewAdapter)?.finishActMode() |         (fragment_list.adapter as? MyRecyclerViewAdapter)?.finishActMode() | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     fun refreshContacts(contacts: ArrayList<SimpleContact>) { | ||||||
|  |         ContactsAdapter(activity as SimpleActivity, contacts, fragment_list, null) { | ||||||
|  |  | ||||||
|  |         }.apply { | ||||||
|  |             fragment_list.adapter = this | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user