Skip to content

Commit

Permalink
2020-02-15 Version 0.1.2: Closed #1
Browse files Browse the repository at this point in the history
  • Loading branch information
fartem committed Feb 15, 2020
1 parent 7382fa0 commit e9a2d3f
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 49 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,12 @@ __Parameters:__
* `message_text` - set message text;
* `message_text_size` - set message size;
* `message_text_color` - set message text color.
* `message_text_at_center` - set message TextView gravity at `Gravity.CENTER`.

__If you want to use default image or text, you can override dimension from the library:__

* `adaptive_message_view_text_margin_top` - distance between image and message, in dp;
* `adaptive_message_view_text_padding` - message padding, in dp;
* `adaptive_message_view_image_size` - image size, in dp;
* `adaptive_message_view_text_size` - message text size, in sp.

Expand Down
2 changes: 1 addition & 1 deletion adaptiverecyclerview/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ android {
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "0.1.1"
versionName "0.1.2"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.smlnskgmail.jaman.adaptiverecyclerview

import android.content.Context
import android.content.res.TypedArray
import android.graphics.drawable.Drawable
import android.util.AttributeSet
import android.util.TypedValue
import android.view.Gravity
import android.view.LayoutInflater
import android.widget.ImageView
import android.widget.LinearLayout
Expand Down Expand Up @@ -38,59 +40,73 @@ class AdaptiveMessageView : LinearLayout {
0
).apply {
try {
val image = getDrawable(
R.styleable.MessageViewAttrs_message_image
) ?: ContextCompat.getDrawable(
context, R.drawable.ic_adaptive_message_view_image
)
messageImage.setImageDrawable(image)

val defaultImageTint = ContextCompat.getColor(
context,
R.color.adaptive_message_view_image_color
)
val imageTint = getColor(
R.styleable.MessageViewAttrs_message_image_tint,
defaultImageTint
)
DrawableCompat.setTint(
messageImage.drawable,
imageTint
)

val message = getString(
R.styleable.MessageViewAttrs_message_text
) ?: context.getString(R.string.adaptive_message_view_text)
messageText.text = message

val defaultMessageColor = ContextCompat.getColor(
context,
R.color.adaptive_message_view_text_color
)
val messageColor = getColor(
R.styleable.MessageViewAttrs_message_text_color,
defaultMessageColor
)
messageText.setTextColor(messageColor)

val defaultMessageSize = context.resources.getDimensionPixelSize(
R.dimen.adaptive_message_view_text_size
)
val messageSize = getDimensionPixelSize(
R.styleable.MessageViewAttrs_message_text_size,
defaultMessageSize
)
messageText.setTextSize(
TypedValue.COMPLEX_UNIT_PX,
messageSize.toFloat()
)
setImage(this)
setMessage(this)
} finally {
recycle()
}
}
}
}

private fun setImage(typedArray: TypedArray) {
val image = typedArray.getDrawable(
R.styleable.MessageViewAttrs_message_image
) ?: ContextCompat.getDrawable(
context, R.drawable.ic_adaptive_message_view_image
)
messageImage.setImageDrawable(image)
val defaultImageTint = ContextCompat.getColor(
context,
R.color.adaptive_message_view_image_color
)
val imageTint = typedArray.getColor(
R.styleable.MessageViewAttrs_message_image_tint,
defaultImageTint
)
DrawableCompat.setTint(
messageImage.drawable,
imageTint
)
}

private fun setMessage(typedArray: TypedArray) {
val message = typedArray.getString(
R.styleable.MessageViewAttrs_message_text
) ?: context.getString(R.string.adaptive_message_view_text)
messageText.text = message

val defaultMessageColor = ContextCompat.getColor(
context,
R.color.adaptive_message_view_text_color
)
val messageColor = typedArray.getColor(
R.styleable.MessageViewAttrs_message_text_color,
defaultMessageColor
)
messageText.setTextColor(messageColor)

val defaultMessageSize = context.resources.getDimensionPixelSize(
R.dimen.adaptive_message_view_text_size
)
val messageSize = typedArray.getDimensionPixelSize(
R.styleable.MessageViewAttrs_message_text_size,
defaultMessageSize
)
messageText.setTextSize(
TypedValue.COMPLEX_UNIT_PX,
messageSize.toFloat()
)

val messageAtCenter = typedArray.getBoolean(
R.styleable.MessageViewAttrs_message_text_at_center,
false
)
if (messageAtCenter) {
messageText.gravity = Gravity.CENTER
}
}

constructor(
context: Context?,
attrs: AttributeSet?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/adaptive_message_view_text_margin_top"
android:padding="@dimen/adaptive_message_view_text_padding"
android:layout_gravity="center"
android:textColor="@color/adaptive_message_view_text_color"
android:textSize="@dimen/adaptive_message_view_text_size"
Expand Down
1 change: 1 addition & 0 deletions adaptiverecyclerview/src/main/res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
<attr name="message_text" format="string" />
<attr name="message_text_size" format="dimension" />
<attr name="message_text_color" format="color" />
<attr name="message_text_at_center" format="boolean" />
</declare-styleable>
</resources>
3 changes: 2 additions & 1 deletion adaptiverecyclerview/src/main/res/values/dimen.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="adaptive_message_view_text_margin_top">16dp</dimen>
<dimen name="adaptive_message_view_text_margin_top">8dp</dimen>
<dimen name="adaptive_message_view_text_padding">8dp</dimen>

<dimen name="adaptive_message_view_image_size">48dp</dimen>
<dimen name="adaptive_message_view_text_size">16sp</dimen>
Expand Down
3 changes: 2 additions & 1 deletion demo/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
arv:message_image="@drawable/ic_error"
arv:message_image_tint="@color/colorPrimary"
arv:message_text="@string/text_message_list"
arv:message_text_color="@color/colorPrimary" />
arv:message_text_color="@color/colorPrimary"
arv:message_text_at_center="true" />

<Button
android:id="@+id/demo_list_refresh"
Expand Down
2 changes: 2 additions & 0 deletions demo/src/main/res/layout/list_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
android:layout_height="wrap_content"
android:padding="@dimen/padding_default"
android:foreground="?selectableItemBackground"
android:clickable="true"
android:focusable="true"
tools:ignore="UnusedAttribute">

<TextView
Expand Down

0 comments on commit e9a2d3f

Please sign in to comment.