Skip to content

Commit 2fc2b4c

Browse files
authored
Merge pull request #45 from Omega-R/develop
Develop
2 parents 449ca5d + 0f33f15 commit 2fc2b4c

File tree

29 files changed

+511
-142
lines changed

29 files changed

+511
-142
lines changed

.idea/gradle.xml

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 18 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations.xml

Lines changed: 0 additions & 12 deletions
This file was deleted.

app/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
apply plugin: 'com.android.application'
22
apply plugin: 'kotlin-android'
3-
apply plugin: 'kotlin-android-extensions'
43

54
android {
65
compileSdkVersion rootProject.ext.compileSdkVersion

app/src/main/assets/test.png

46.9 KB
Loading

app/src/main/assets/test.webp

20.3 KB
Loading

app/src/main/java/omega_r/com/omegatypesexample/MainActivity.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import android.widget.TextView
1212
import androidx.core.content.res.ResourcesCompat
1313
import androidx.core.text.HtmlCompat
1414
import com.omega_r.libs.omegatypes.*
15+
import com.omega_r.libs.omegatypes.Size.Unit.SP
1516
import com.omega_r.libs.omegatypes.file.File
1617
import com.omega_r.libs.omegatypes.file.from
1718
import com.omega_r.libs.omegatypes.image.*
@@ -51,8 +52,8 @@ class MainActivity : BaseActivity() {
5152
.append(addText)
5253
.append(Text.empty())
5354
.append(Text.from(R.string.text_format_test, "1-9"))
54-
55-
.append(Text.from("test "))
55+
.append(Text.from(" test Image -> "))
56+
// .append(AssetImage("test.webp"))
5657
.append(Text.from(Image.from(R.drawable.ic_test)))
5758
.append(
5859
Text.from(
@@ -71,6 +72,8 @@ class MainActivity : BaseActivity() {
7172

7273
text.applyTo(exampleTextView) // or exampleTextView.setText(text)
7374

75+
exampleTextView.setTextSize(16.sp)
76+
7477
val list = listOf(
7578
Text.from("1", TextStyle.color(Color.fromAttribute(R.attr.colorAccent))),
7679
Text.from("2", TextStyle.color(Color.fromAttribute(R.attr.colorAccent))),
@@ -79,8 +82,8 @@ class MainActivity : BaseActivity() {
7982

8083
title = list.join(",", postfix = ".").getCharSequence(this)
8184

82-
val image =
83-
Image.from("https://dejagerart.com/wp-content/uploads/2018/09/Test-Logo-Circle-black-transparent.png")
85+
val image = AssetImage("test.webp")
86+
//Image.from("https://dejagerart.com/wp-content/uploads/2018/09/Test-Logo-Circle-black-transparent.png")
8487

8588
// val image = intent.getSerializableExtra("test") as? Image ?: run {
8689
//

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4-
ext.kotlin_version = '1.3.41'
4+
ext.kotlin_version = '1.5.31'
55
ext.kotlinCorutines_version = '1.2.1'
66
ext.supportVersion = '28.0.0'
77
ext.compileSdkVersion = 28
88
ext.targetSdkVersion = 28
99

1010
repositories {
1111
google()
12-
jcenter()
12+
mavenCentral()
1313
}
1414
dependencies {
1515
classpath 'com.android.tools.build:gradle:3.6.3'
16-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
16+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
1717
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
1818
// NOTE: Do not place your application dependencies here; they belong
1919
// in the individual module build.gradle files
@@ -23,7 +23,7 @@ buildscript {
2323
allprojects {
2424
repositories {
2525
google()
26-
jcenter()
26+
mavenCentral()
2727
maven { url 'https://jitpack.io' }
2828
}
2929
}

glide/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ dependencies {
3232

3333
implementation fileTree(dir: 'libs', include: ['*.jar'])
3434

35-
api ("com.github.bumptech.glide:glide:4.9.0") {
35+
api ("com.github.bumptech.glide:glide:4.14.2") {
3636
exclude group: "com.android.support"
3737
}
3838

glide/src/main/java/com/omega_r/libs/omegatypes/image/GlideImagesProcessor.kt

Lines changed: 64 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,20 @@ import kotlin.reflect.KClass
2424
* Created by Anton Knyazev on 2019-10-03.
2525
*/
2626
open class GlideImagesProcessor(
27-
protected val oldImagesProcessor: ImageProcessors,
28-
vararg excludeImageClasses: KClass<out Image>
27+
protected val oldImagesProcessor: ImageProcessors,
28+
vararg excludeImageClasses: KClass<out Image>,
29+
private val customBuilder: CustomRequestBuilder? = null,
2930
) : ImageProcessors() {
3031

3132
companion object {
3233

33-
fun setAsCurrentImagesProcessor() {
34-
current = GlideImagesProcessor(current)
34+
fun setAsCurrentImagesProcessor(customRequestBuilder: CustomRequestBuilder? = null) {
35+
current = GlideImagesProcessor(current, customBuilder = customRequestBuilder)
3536
}
3637

3738
fun setGlideBitmapPool(context: Context) {
3839
BitmapDecoders.current = SimpleBitmapDecoders(GlideBitmapPool(Glide.get(context).bitmapPool))
3940
}
40-
4141
}
4242

4343
private val excludeImageClasses = listOf(*excludeImageClasses)
@@ -54,66 +54,66 @@ open class GlideImagesProcessor(
5454
is BitmapImage -> load(image.bitmap)
5555
is DrawableImage -> load(image.drawable)
5656
is ByteArrayImage -> load(image.byteArray)
57-
else -> null
57+
is AssetImage -> load("file:///android_asset/" + image.fileName)
58+
else -> if (customBuilder?.handles(image) == true) customBuilder.createRequestBuilder(this, image) else null
5859
}
5960
}
6061

6162
override fun Image.applyImage(imageView: ImageView, placeholderResId: Int, onImageApplied: (() -> Unit)?) {
6263
Glide.with(imageView)
63-
.asDrawable()
64-
.createRequestBuilder(this)
65-
?.applyPlaceholder(placeholderResId)
66-
?.listener(GlideImageRequestListener(onImageApplied))
67-
?.into(imageView)
68-
?: applyOld { applyImage(imageView, placeholderResId) }
64+
.asDrawable()
65+
.createRequestBuilder(this)
66+
?.applyPlaceholder(placeholderResId)
67+
?.listener(GlideImageRequestListener(onImageApplied))
68+
?.into(imageView)
69+
?: applyOld { applyImage(imageView, placeholderResId) }
6970
}
7071

7172
override fun Image.applyBackground(view: View, placeholderResId: Int) {
7273
Image.Processor.applyEmptyBackground(view, placeholderResId)
7374
Glide.with(view)
74-
.asDrawable()
75-
.createRequestBuilder(this)
76-
?.applyPlaceholder(placeholderResId)
77-
?.into(object : CustomViewTarget<View, Drawable>(view) {
78-
79-
override fun onLoadFailed(errorDrawable: Drawable?) {
80-
Image.Processor.applyBackground(view, errorDrawable)
81-
}
82-
83-
override fun onResourceCleared(placeholder: Drawable?) {
84-
Image.Processor.applyBackground(view, placeholder)
85-
}
86-
87-
override fun onResourceReady(resource: Drawable, transition: Transition<in Drawable>?) {
88-
Image.Processor.applyBackground(view, resource)
89-
}
90-
91-
})
92-
?: applyOld { applyBackground(view, placeholderResId) }
75+
.asDrawable()
76+
.createRequestBuilder(this)
77+
?.applyPlaceholder(placeholderResId)
78+
?.into(object : CustomViewTarget<View, Drawable>(view) {
79+
80+
override fun onLoadFailed(errorDrawable: Drawable?) {
81+
Image.Processor.applyBackground(view, errorDrawable)
82+
}
83+
84+
override fun onResourceCleared(placeholder: Drawable?) {
85+
Image.Processor.applyBackground(view, placeholder)
86+
}
87+
88+
override fun onResourceReady(resource: Drawable, transition: Transition<in Drawable>?) {
89+
Image.Processor.applyBackground(view, resource)
90+
}
91+
})
92+
?: applyOld { applyBackground(view, placeholderResId) }
9393
}
9494

9595
override suspend fun Image.getStream(context: Context, compressFormat: Bitmap.CompressFormat, quality: Int): InputStream {
9696
return Glide.with(context)
97-
.asBitmap()
98-
.createRequestBuilder(this)
99-
?.run {
100-
val futureTarget = submit()
101-
try {
102-
val bitmap = futureTarget.get()
103-
bitmap.toInputStream(compressFormat, quality)
104-
} finally {
105-
Glide.with(context)
106-
.clear(futureTarget)
107-
}
108-
} ?: applyOld { getStream(context, compressFormat, quality) }
97+
.asBitmap()
98+
.createRequestBuilder(this)
99+
?.run {
100+
val futureTarget = submit()
101+
try {
102+
val bitmap = futureTarget.get()
103+
bitmap.toInputStream(compressFormat, quality)
104+
} finally {
105+
Glide.with(context)
106+
.clear(futureTarget)
107+
}
108+
} ?: applyOld { getStream(context, compressFormat, quality) }
109109
}
110110

111111
override fun Image.preload(context: Context) {
112112
Glide.with(context)
113-
.asDrawable()
114-
.createRequestBuilder(this)
115-
?.preload()
116-
?: applyOld { preload(context) }
113+
.asDrawable()
114+
.createRequestBuilder(this)
115+
?.preload()
116+
?: applyOld { preload(context) }
117117
}
118118

119119
protected fun <T> RequestBuilder<T>.applyPlaceholder(placeholderResId: Int): RequestBuilder<T> {
@@ -123,19 +123,27 @@ open class GlideImagesProcessor(
123123
protected inline fun <R> applyOld(block: ImageProcessors.() -> R): R {
124124
return block(oldImagesProcessor)
125125
}
126+
127+
interface CustomRequestBuilder {
128+
129+
fun handles(image: Image): Boolean
130+
131+
fun <T> createRequestBuilder(builder: RequestBuilder<T>, image: Image): RequestBuilder<T>?
132+
}
126133
}
127134

128135
class GlideImageRequestListener(private val onImageLoaded: (() -> Unit)?) : RequestListener<Drawable> {
129136

130137
companion object {
138+
131139
private val TAG = GlideImageRequestListener::class.java.name
132140
}
133141

134142
override fun onLoadFailed(
135-
e: GlideException?,
136-
model: Any?,
137-
target: Target<Drawable>?,
138-
isFirstResource: Boolean
143+
e: GlideException?,
144+
model: Any?,
145+
target: Target<Drawable>?,
146+
isFirstResource: Boolean,
139147
): Boolean {
140148
Log.e(TAG, "Image load failed: ", e)
141149
if (isFirstResource) {
@@ -145,11 +153,11 @@ class GlideImageRequestListener(private val onImageLoaded: (() -> Unit)?) : Requ
145153
}
146154

147155
override fun onResourceReady(
148-
resource: Drawable,
149-
model: Any?,
150-
target: Target<Drawable>,
151-
dataSource: DataSource,
152-
isFirstResource: Boolean
156+
resource: Drawable,
157+
model: Any?,
158+
target: Target<Drawable>,
159+
dataSource: DataSource,
160+
isFirstResource: Boolean,
153161
): Boolean {
154162
target.onResourceReady(resource, null)
155163
if (isFirstResource) {

0 commit comments

Comments
 (0)