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 { | ||||
|     implementation 'com.simplemobiletools:commons:5.27.10' | ||||
|     implementation 'com.simplemobiletools:commons:5.27.12' | ||||
|     implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' | ||||
| } | ||||
|   | ||||
| @@ -143,7 +143,9 @@ class MainActivity : SimpleActivity() { | ||||
|         } | ||||
|  | ||||
|         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.models.SimpleContact | ||||
| import com.simplemobiletools.dialer.activities.SimpleActivity | ||||
| import com.simplemobiletools.dialer.adapters.ContactsAdapter | ||||
| import com.simplemobiletools.dialer.extensions.config | ||||
| import com.simplemobiletools.dialer.helpers.Config | ||||
| import kotlinx.android.synthetic.main.fragment_letters_layout.view.* | ||||
| @@ -30,4 +31,12 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) | ||||
|     fun 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