improved light font option

This commit is contained in:
Mariotaku Lee 2017-01-28 15:32:28 +08:00
parent 02def20f43
commit 3fc86d9036
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
7 changed files with 59 additions and 44 deletions

View File

@ -8,6 +8,6 @@ val TextView.empty: Boolean
fun TextView.applyFontFamily(lightFont: Boolean) {
if (lightFont) {
typeface = Typeface.create("sans-serif-light", typeface.style)
typeface = Typeface.create("sans-serif-light", typeface?.style ?: 0)
}
}

View File

@ -58,9 +58,11 @@ class ParcelableActivitiesAdapter(
context: Context
) : LoadMoreSupportAdapter<RecyclerView.ViewHolder>(context), IActivitiesAdapter<List<ParcelableActivity>> {
private val inflater: LayoutInflater
override val mediaLoadingHandler: MediaLoadingHandler
private val statusAdapterDelegate: DummyItemAdapter
override val mediaLoadingHandler = MediaLoadingHandler(R.id.media_preview_progress)
private val inflater = LayoutInflater.from(context)
private val statusAdapterDelegate = DummyItemAdapter(context,
TwidereLinkify(OnLinkClickHandler(context, null, preferences)), this)
private val eventListener: EventListener
private var data: List<ParcelableActivity>? = null
private var activityAdapterListener: ActivityAdapterListener? = null
@ -79,10 +81,6 @@ class ParcelableActivitiesAdapter(
}
init {
statusAdapterDelegate = DummyItemAdapter(context,
TwidereLinkify(OnLinkClickHandler(context, null, preferences)), this)
inflater = LayoutInflater.from(context)
mediaLoadingHandler = MediaLoadingHandler(R.id.media_preview_progress)
eventListener = EventListener(this)
statusAdapterDelegate.updateOptions()
}
@ -321,6 +319,9 @@ class ParcelableActivitiesAdapter(
override val mediaPreviewEnabled: Boolean
get() = statusAdapterDelegate.mediaPreviewEnabled
override val lightFont: Boolean
get() = statusAdapterDelegate.lightFont
override var showAccountsColor: Boolean
get() = statusAdapterDelegate.showAccountsColor
set(value) {

View File

@ -42,6 +42,8 @@ interface IActivitiesAdapter<in Data> : IContentAdapter, IGapSupportedAdapter {
val showAccountsColor: Boolean
val lightFont: Boolean
fun getActivity(position: Int): ParcelableActivity?
fun setData(data: Data?)

View File

@ -1171,9 +1171,14 @@ class StatusFragment : BaseFragment(), LoaderCallbacks<SingleResponse<Parcelable
val resources = activity.resources
itemView.countsUsers.addItemDecoration(SpacingItemDecoration(resources.getDimensionPixelOffset(R.dimen.element_spacing_normal)))
// Apply font families
itemView.name.applyFontFamily(adapter.lightFont)
itemView.text.applyFontFamily(adapter.lightFont)
itemView.quotedName.applyFontFamily(adapter.lightFont)
itemView.quotedText.applyFontFamily(adapter.lightFont)
itemView.locationView.applyFontFamily(adapter.lightFont)
itemView.translateLabel.applyFontFamily(adapter.lightFont)
itemView.translateResult.applyFontFamily(adapter.lightFont)
}

View File

@ -82,10 +82,7 @@ import org.apache.commons.lang3.ObjectUtils
import org.mariotaku.chameleon.Chameleon
import org.mariotaku.chameleon.ChameleonUtils
import org.mariotaku.kpreferences.get
import org.mariotaku.ktextension.Bundle
import org.mariotaku.ktextension.empty
import org.mariotaku.ktextension.set
import org.mariotaku.ktextension.toTypedArray
import org.mariotaku.ktextension.*
import org.mariotaku.microblog.library.MicroBlogException
import org.mariotaku.microblog.library.twitter.model.FriendshipUpdate
import org.mariotaku.microblog.library.twitter.model.Paging
@ -101,6 +98,7 @@ import org.mariotaku.twidere.annotation.AccountType
import org.mariotaku.twidere.annotation.Referral
import org.mariotaku.twidere.constant.KeyboardShortcutConstants.*
import org.mariotaku.twidere.constant.displaySensitiveContentsKey
import org.mariotaku.twidere.constant.lightFontKey
import org.mariotaku.twidere.constant.newDocumentApiKey
import org.mariotaku.twidere.constant.profileImageStyleKey
import org.mariotaku.twidere.fragment.AbsStatusesFragment.StatusesFragmentDelegate
@ -1341,6 +1339,16 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
private fun setupViewStyle() {
profileImage.style = preferences[profileImageStyleKey]
val lightFont = preferences[lightFontKey]
profileNameContainer.name.applyFontFamily(lightFont)
profileNameContainer.screenName.applyFontFamily(lightFont)
profileNameContainer.followingYouIndicator.applyFontFamily(lightFont)
descriptionContainer.description.applyFontFamily(lightFont)
urlContainer.url.applyFontFamily(lightFont)
locationContainer.location.applyFontFamily(lightFont)
createdAtContainer.createdAt.applyFontFamily(lightFont)
}
private fun setupUserPages() {

View File

@ -25,6 +25,7 @@ import android.support.v7.widget.RecyclerView.ViewHolder
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import org.mariotaku.ktextension.applyFontFamily
import org.mariotaku.twidere.R
import org.mariotaku.twidere.adapter.ParcelableActivitiesAdapter
import org.mariotaku.twidere.adapter.iface.IActivitiesAdapter
@ -46,43 +47,34 @@ class ActivityTitleSummaryViewHolder(
private val adapter: ParcelableActivitiesAdapter
) : ViewHolder(itemView), View.OnClickListener {
private val itemContent: IColorLabelView
private val activityTypeView: IconActionView
private val titleView: TextView
private val summaryView: TextView
private val timeView: ShortTimeView
private val profileImagesContainer: ViewGroup
private val profileImageMoreNumber: BadgeView
private val profileImageViews: Array<ProfileImageView>
private val profileImageSpace: View
private val itemContent = itemView.findViewById(R.id.itemContent) as IColorLabelView
private val activityTypeView = itemView.findViewById(R.id.activity_type) as IconActionView
private val titleView = itemView.findViewById(R.id.title) as TextView
private val summaryView = itemView.findViewById(R.id.summary) as TextView
private val timeView = itemView.findViewById(R.id.time) as ShortTimeView
private val profileImagesContainer = itemView.findViewById(R.id.profile_images_container) as ViewGroup
private val profileImageMoreNumber = itemView.findViewById(R.id.activity_profile_image_more_number) as BadgeView
private val profileImageViews = arrayOf(
itemView.findViewById(R.id.activity_profile_image_0) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_1) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_2) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_3) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_4) as ProfileImageView
)
private val profileImageSpace: View = itemView.findViewById(R.id.profile_image_space)
private var mActivityEventListener: IActivitiesAdapter.ActivityEventListener? = null
private var activityEventListener: IActivitiesAdapter.ActivityEventListener? = null
init {
itemContent = itemView.findViewById(R.id.itemContent) as IColorLabelView
activityTypeView = itemView.findViewById(R.id.activity_type) as IconActionView
titleView = itemView.findViewById(R.id.title) as TextView
summaryView = itemView.findViewById(R.id.summary) as TextView
timeView = itemView.findViewById(R.id.time) as ShortTimeView
profileImageSpace = itemView.findViewById(R.id.profile_image_space)
profileImagesContainer = itemView.findViewById(R.id.profile_images_container) as ViewGroup
profileImageViews = arrayOf(
itemView.findViewById(R.id.activity_profile_image_0) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_1) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_2) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_3) as ProfileImageView,
itemView.findViewById(R.id.activity_profile_image_4) as ProfileImageView
)
profileImageMoreNumber = itemView.findViewById(R.id.activity_profile_image_more_number) as BadgeView
val resources = adapter.context.resources
val lp = titleView.layoutParams as ViewGroup.MarginLayoutParams
val spacing = resources.getDimensionPixelSize(R.dimen.element_spacing_small)
lp.leftMargin = spacing
MarginLayoutParamsCompat.setMarginStart(lp, spacing)
timeView.showAbsoluteTime = adapter.showAbsoluteTime
titleView.applyFontFamily(adapter.lightFont)
summaryView.applyFontFamily(adapter.lightFont)
timeView.applyFontFamily(adapter.lightFont)
}
fun displayActivity(activity: ParcelableActivity) {
@ -163,18 +155,18 @@ class ActivityTitleSummaryViewHolder(
}
fun setActivityEventListener(listener: IActivitiesAdapter.ActivityEventListener) {
mActivityEventListener = listener
activityEventListener = listener
(itemContent as View).setOnClickListener(this)
// ((View) itemContent).setOnLongClickListener(this);
}
override fun onClick(v: View) {
if (mActivityEventListener == null) return
if (activityEventListener == null) return
val position = layoutPosition
when (v.id) {
R.id.itemContent -> {
mActivityEventListener!!.onActivityClick(this, position)
activityEventListener!!.onActivityClick(this, position)
}
}
}

View File

@ -84,8 +84,15 @@ class StatusViewHolder(private val adapter: IStatusesAdapter<*>, itemView: View)
View.inflate(quotedMediaPreview.context, R.layout.layout_card_media_preview,
itemView.quotedMediaPreview)
}
nameView.applyFontFamily(adapter.lightFont)
timeView.applyFontFamily(adapter.lightFont)
textView.applyFontFamily(adapter.lightFont)
mediaLabelTextView.applyFontFamily(adapter.lightFont)
quotedNameView.applyFontFamily(adapter.lightFont)
quotedTextView.applyFontFamily(adapter.lightFont)
quotedMediaLabelTextView.applyFontFamily(adapter.lightFont)
}