Skip to content

Commit dbcb61b

Browse files
committed
Fix view tree observer usage; update dependencies; update target SDK; add ImageView fetch method with Uri parameter
1 parent df345b3 commit dbcb61b

File tree

6 files changed

+21
-31
lines changed

6 files changed

+21
-31
lines changed

app/build.gradle

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ plugins {
44
}
55

66
android {
7-
compileSdk 33
7+
compileSdk 34
88

99
defaultConfig {
1010
applicationId "com.tomclaw.imageloader.demo"
1111
minSdk 21
12-
targetSdk 33
12+
targetSdk 34
1313
versionCode 1
1414
versionName "1.0"
1515
}
@@ -32,8 +32,8 @@ android {
3232

3333
dependencies {
3434
implementation project(path: ':imageloader')
35-
implementation 'androidx.core:core-ktx:1.9.0'
35+
implementation 'androidx.core:core-ktx:1.12.0'
3636
implementation 'androidx.appcompat:appcompat:1.6.1'
37-
implementation "androidx.recyclerview:recyclerview:1.2.1"
38-
implementation 'com.google.android.material:material:1.8.0'
39-
}
37+
implementation "androidx.recyclerview:recyclerview:1.3.2"
38+
implementation 'com.google.android.material:material:1.11.0'
39+
}

app/src/main/java/com/tomclaw/imageloader/demo/CustomAdapter.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class CustomAdapter(private val list: List<ItemsViewModel>) :
3838
return list.size
3939
}
4040

41-
class ViewHolder(ItemView: View) : RecyclerView.ViewHolder(ItemView) {
41+
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
4242
val imageView: ImageView = itemView.findViewById(R.id.image_view)
4343
val titleView: TextView = itemView.findViewById(R.id.title_view)
4444
val subtitleView: TextView = itemView.findViewById(R.id.subtitle_view)

build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ buildscript {
55
mavenCentral()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:8.2.0'
9-
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21'
8+
classpath 'com.android.tools.build:gradle:8.2.1'
9+
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20'
1010

1111
// NOTE: Do not place your application dependencies here; they belong
1212
// in the individual module build.gradle files
@@ -15,4 +15,4 @@ buildscript {
1515

1616
task clean(type: Delete) {
1717
delete rootProject.buildDir
18-
}
18+
}

imageloader/build.gradle

+3-17
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ plugins {
55
}
66

77
android {
8-
compileSdk 33
8+
compileSdk 34
99

1010
defaultConfig {
1111
minSdk 14
12-
targetSdk 33
12+
targetSdk 34
1313

1414
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1515
consumerProguardFiles "consumer-rules.pro"
@@ -33,22 +33,8 @@ android {
3333

3434
dependencies {
3535
implementation 'com.github.solkin:disk-lru-cache:1.5'
36-
implementation 'androidx.exifinterface:exifinterface:1.3.6'
36+
implementation 'androidx.exifinterface:exifinterface:1.3.7'
3737
testImplementation 'junit:junit:4.13.2'
3838
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
3939
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
4040
}
41-
42-
afterEvaluate {
43-
publishing {
44-
publications {
45-
release(MavenPublication) {
46-
from components.release
47-
48-
groupId = 'com.tomclaw.imageloader'
49-
artifactId = 'imageloader'
50-
version = '0.9.0'
51-
}
52-
}
53-
}
54-
}

imageloader/src/main/java/com/tomclaw/imageloader/util/ImageViewHolder.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@ class ImageViewHolder(private val imageView: ImageView) : ViewHolder<ImageView>
1616
var viewSize = ViewSize(0, 0)
1717
val latch = CountDownLatch(1)
1818

19-
val viewTreeObserver = imageView.viewTreeObserver
2019
val preDrawListener = object : ViewTreeObserver.OnPreDrawListener {
2120
private var isResumed = false
2221

2322
override fun onPreDraw(): Boolean {
2423
val size = optSize()
2524
if (size != null) {
2625
viewSize = size
27-
viewTreeObserver.removeOnPreDrawListener(this)
26+
imageView.viewTreeObserver.removeOnPreDrawListener(this)
2827

2928
if (!isResumed) {
3029
isResumed = true
@@ -34,7 +33,7 @@ class ImageViewHolder(private val imageView: ImageView) : ViewHolder<ImageView>
3433
return true
3534
}
3635
}
37-
viewTreeObserver.addOnPreDrawListener(preDrawListener)
36+
imageView.viewTreeObserver.addOnPreDrawListener(preDrawListener)
3837

3938
latch.await()
4039
return viewSize

imageloader/src/main/java/com/tomclaw/imageloader/util/ImageViews.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package com.tomclaw.imageloader.util
22

3+
import android.net.Uri
34
import android.widget.ImageView
45
import com.tomclaw.imageloader.SimpleImageLoader.imageLoader
56
import com.tomclaw.imageloader.core.Handlers
67

8+
fun ImageView.fetch(uri: Uri, params: Handlers<ImageView>.() -> Unit = {}) {
9+
fetch(uri.toString(), params)
10+
}
11+
712
fun ImageView.fetch(url: String, params: Handlers<ImageView>.() -> Unit = {}) {
813
val handlers = Handlers<ImageView>()
914
.apply {
@@ -14,4 +19,4 @@ fun ImageView.fetch(url: String, params: Handlers<ImageView>.() -> Unit = {}) {
1419
.apply(params)
1520
val viewHolder = ImageViewHolder(this)
1621
context.imageLoader().load(viewHolder, url, handlers)
17-
}
22+
}

0 commit comments

Comments
 (0)