diff --git a/twidere/src/main/kotlin/org/mariotaku/ktextension/TextViewExtensions.kt b/twidere/src/main/kotlin/org/mariotaku/ktextension/TextViewExtensions.kt index b5eff078e..fc1709c58 100644 --- a/twidere/src/main/kotlin/org/mariotaku/ktextension/TextViewExtensions.kt +++ b/twidere/src/main/kotlin/org/mariotaku/ktextension/TextViewExtensions.kt @@ -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) } } \ No newline at end of file diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt index bcf309577..660542d36 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt @@ -58,9 +58,11 @@ class ParcelableActivitiesAdapter( context: Context ) : LoadMoreSupportAdapter(context), IActivitiesAdapter> { - 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? = 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) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/iface/IActivitiesAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/iface/IActivitiesAdapter.kt index 01d84d5d5..4e58a1e75 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/iface/IActivitiesAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/iface/IActivitiesAdapter.kt @@ -42,6 +42,8 @@ interface IActivitiesAdapter : IContentAdapter, IGapSupportedAdapter { val showAccountsColor: Boolean + val lightFont: Boolean + fun getActivity(position: Int): ParcelableActivity? fun setData(data: Data?) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/StatusFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/StatusFragment.kt index e462d136c..3a3ceedc3 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/StatusFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/StatusFragment.kt @@ -1171,9 +1171,14 @@ class StatusFragment : BaseFragment(), LoaderCallbacks - 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) } } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/view/holder/StatusViewHolder.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/view/holder/StatusViewHolder.kt index 537ff02dc..c33d361c3 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/view/holder/StatusViewHolder.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/view/holder/StatusViewHolder.kt @@ -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) }