@@ -8,6 +8,7 @@ import android.content.res.Configuration
88import android.graphics.Bitmap
99import android.graphics.drawable.Drawable
1010import android.os.Bundle
11+ import android.support.annotation.DrawableRes
1112import android.support.annotation.LayoutRes
1213import android.support.design.widget.BottomSheetBehavior
1314import android.support.v4.app.Fragment
@@ -175,12 +176,12 @@ fun ImageView.loadFromCard(card: Card, transform: ((Bitmap) -> Bitmap)? = null,
175176 if (name.isEmpty() || shortName.isEmpty()) {
176177 this @loadFromCard.setImageResource(R .drawable.card_back)
177178 } else {
178- this @loadFromCard.loadFromCard(set.toString(), attr.name, shortName, transform, onNotFound)
179+ this @loadFromCard.loadFromCard(set.toString(), attr.name, shortName, null , transform, onNotFound)
179180 }
180181 }
181182}
182183
183- fun ImageView.loadFromCard (cardSet : String , cardAttr : String , cardShortName : String ,
184+ fun ImageView.loadFromCard (cardSet : String , cardAttr : String , cardShortName : String , @DrawableRes placeholder : Int? = null,
184185 transform : ((Bitmap ) -> Bitmap )? = null, onNotFound : (() -> Unit )? = null) {
185186 if (cardShortName.isEmpty()) {
186187 setImageResource(R .drawable.card_back)
@@ -190,16 +191,18 @@ fun ImageView.loadFromCard(cardSet: String, cardAttr: String, cardShortName: Str
190191 val attrName = cardAttr.toLowerCase().capitalize()
191192 val imagePath = " ${Card .CARD_PATH } /$setName /$attrName /$cardShortName .webp"
192193 Timber .d(imagePath)
193- loadLocalCardImage(imagePath, transform)
194+ loadLocalCardImage(imagePath, placeholder, transform)
194195 val remotePath = imagePath.takeIf { cardShortName.contains(" _" ) } ? : " v${context.getCurrentVersion()} /$imagePath "
195196 Timber .d(" Local: $imagePath - Remote: $remotePath " )
196- loadRemoteCardImage(remotePath, transform, imagePath, onNotFound)
197+ loadRemoteCardImage(remotePath, placeholder, transform, imagePath, onNotFound)
197198}
198199
199- private fun ImageView.loadLocalCardImage (imagePath : String , transform : ((Bitmap ) -> Bitmap )? ) {
200- Glide .with (context)
201- .load(" file:///android_asset/$imagePath " )
202- .crossFade()
200+ private fun ImageView.loadLocalCardImage (imagePath : String , @DrawableRes placeholder : Int? = null, transform : ((Bitmap ) -> Bitmap )? ) {
201+ val request = Glide .with (context).load(" file:///android_asset/$imagePath " )
202+ placeholder?.let {
203+ request.placeholder(it)
204+ }
205+ request.crossFade()
203206 .bitmapTransform(object : Transformation <Bitmap > {
204207 override fun transform (resource : Resource <Bitmap >, outWidth : Int , outHeight : Int ): Resource <Bitmap > {
205208 return transform?.let {
@@ -214,12 +217,15 @@ private fun ImageView.loadLocalCardImage(imagePath: String, transform: ((Bitmap)
214217 .into(this )
215218}
216219
217- private fun ImageView.loadRemoteCardImage (remotePath : String , transform : ((Bitmap ) -> Bitmap )? , imagePath : String , onNotFound : (() -> Unit )? ) {
218- FirebaseStorage .getInstance().reference.child(remotePath).metadata.addOnSuccessListener { metadata ->
220+ private fun ImageView.loadRemoteCardImage (remotePath : String , @DrawableRes placeholder : Int? = null,
221+ transform : ((Bitmap ) -> Bitmap )? , imagePath : String , onNotFound : (() -> Unit )? ) {
222+ FirebaseStorage .getInstance().reference.child(remotePath).downloadUrl.addOnSuccessListener { url ->
219223 try {
220- Glide .with (context)
221- .load(metadata.downloadUrl)
222- .crossFade()
224+ val request = Glide .with (context).load(url)
225+ placeholder?.let {
226+ request.placeholder(it)
227+ }
228+ request.crossFade()
223229 .bitmapTransform(object : Transformation <Bitmap > {
224230 override fun transform (resource : Resource <Bitmap >, outWidth : Int , outHeight : Int ): Resource <Bitmap > {
225231 return transform?.let {
@@ -242,9 +248,9 @@ private fun ImageView.loadRemoteCardImage(remotePath: String, transform: ((Bitma
242248
243249fun ImageView.loadFromPatch (patch : PatchChange , patchUuid : String , newImage : Boolean ) {
244250 with (patch) {
245- loadFromCard(set.capitalize(), attr.capitalize(), shortName + " _" + patchUuid) {
251+ loadFromCard(set.capitalize(), attr.capitalize(), shortName + " _" + patchUuid, R .drawable.card_back ) {
246252 if (newImage) {
247- loadFromCard(set.capitalize(), attr.capitalize(), shortName)
253+ loadFromCard(set.capitalize(), attr.capitalize(), shortName, R .drawable.card_back )
248254 }
249255 }
250256 }
0 commit comments