diff --git a/Habitica/res/layout/row_quest_reward_imageview.xml b/Habitica/res/layout/row_quest_reward_imageview.xml
new file mode 100644
index 000000000..9453a8aca
--- /dev/null
+++ b/Habitica/res/layout/row_quest_reward_imageview.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.kt
index d15ece46f..dd919d70b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.kt
@@ -4,7 +4,6 @@ import android.content.Context
import android.graphics.Bitmap
import android.graphics.Shader
import android.graphics.drawable.BitmapDrawable
-import android.net.Uri
import android.support.v7.widget.RecyclerView
import android.text.Html
import android.text.method.LinkMovementMethod
@@ -13,15 +12,7 @@ import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
-import butterknife.ButterKnife
-import com.facebook.common.executors.CallerThreadExecutor
-import com.facebook.common.references.CloseableReference
-import com.facebook.datasource.DataSource
-import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.drawee.view.SimpleDraweeView
-import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber
-import com.facebook.imagepipeline.image.CloseableImage
-import com.facebook.imagepipeline.request.ImageRequestBuilder
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.events.commands.OpenGemPurchaseFragmentCommand
import com.habitrpg.android.habitica.extensions.backgroundCompat
@@ -36,7 +27,6 @@ import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
import com.habitrpg.android.habitica.ui.viewHolders.SectionViewHolder
import com.habitrpg.android.habitica.ui.viewHolders.ShopItemViewHolder
-import kotlinx.android.synthetic.main.shop_header.*
import org.greenrobot.eventbus.EventBus
import rx.Observable
import rx.android.schedulers.AndroidSchedulers
@@ -238,14 +228,12 @@ class ShopRecyclerAdapter : RecyclerView.Adapter() {
internal class ShopHeaderViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- private val context: Context
private val descriptionView: TextView by bindView(itemView, R.id.descriptionView)
private val sceneView: SimpleDraweeView by bindView(itemView, R.id.sceneView)
private val backgroundView: ImageView by bindView(itemView, R.id.backgroundView)
private val namePlate: TextView by bindView(itemView, R.id.namePlate)
init {
- context = itemView.context
descriptionView.movementMethod = LinkMovementMethod.getInstance()
}
@@ -256,9 +244,9 @@ class ShopRecyclerAdapter : RecyclerView.Adapter() {
DataBindingUtils.loadImage(shop.identifier + "_background" + shopSpriteSuffix, {
val aspectRatio = it.width / it.height.toFloat()
- val height = context.resources.getDimension(R.dimen.shop_height).toInt()
+ val height = itemView.context.resources.getDimension(R.dimen.shop_height).toInt()
val width = Math.round(height * aspectRatio)
- val drawable = BitmapDrawable(context.resources, Bitmap.createScaledBitmap(it, width, height, false))
+ val drawable = BitmapDrawable(itemView.context.resources, Bitmap.createScaledBitmap(it, width, height, false))
drawable.tileModeX = Shader.TileMode.REPEAT
Observable.just(drawable)
.observeOn(AndroidSchedulers.mainThread())
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
index b2cce7523..6bfaae3eb 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
@@ -100,8 +100,7 @@ public class HabiticaIconsHelper {
int size = scaleSize(40);
imageOfExperienceReward = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(imageOfExperienceReward);
- canvas.scale(displayDensity, displayDensity);
- HabiticaIcons.drawExperience(canvas);
+ HabiticaIcons.drawExperience(canvas, new RectF(0f, 0f, size, size), HabiticaIcons.ResizingBehavior.AspectFit);
return imageOfExperienceReward;
}
@@ -114,8 +113,7 @@ public class HabiticaIconsHelper {
int size = scaleSize(40);
imageOfGoldReward = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(imageOfGoldReward);
- canvas.scale(displayDensity, displayDensity);
- HabiticaIcons.drawGold(canvas);
+ HabiticaIcons.drawGold(canvas, new RectF(0f, 0f, size, size), HabiticaIcons.ResizingBehavior.AspectFit);
return imageOfGoldReward;
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt
index 768545a78..826f7c5b1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt
@@ -6,6 +6,7 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.ImageView
import android.widget.RatingBar
import android.widget.TextView
import com.facebook.drawee.view.SimpleDraweeView
@@ -61,11 +62,9 @@ class PurchaseDialogQuestContent : PurchaseDialogContent {
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
if (questContent.drop != null && questContent.drop.items != null) {
- for (item in questContent.drop.items) {
- if (!item.isOnlyOwner) {
- addRewardsRow(inflater, item, rewardsList)
- }
- }
+ questContent.drop.items
+ .filterNot { it.isOnlyOwner }
+ .forEach { addRewardsRow(inflater, it, rewardsList) }
var hasOwnerRewards = false
for (item in questContent.drop.items) {
@@ -80,8 +79,9 @@ class PurchaseDialogQuestContent : PurchaseDialogContent {
}
if (questContent.drop.exp > 0) {
- val view = inflater.inflate(R.layout.row_quest_reward, rewardsList, false) as ViewGroup
- val imageView = view.findViewById(R.id.imageView)
+ val view = inflater.inflate(R.layout.row_quest_reward_imageview, rewardsList, false) as ViewGroup
+ val imageView = view.findViewById(R.id.imageView)
+ imageView.scaleType = ImageView.ScaleType.CENTER
imageView.setImageBitmap(HabiticaIconsHelper.imageOfGoldReward())
val titleTextView = view.findViewById(R.id.titleTextView)
titleTextView.text = context.getString(R.string.experience_reward, questContent.drop.exp)
@@ -89,8 +89,9 @@ class PurchaseDialogQuestContent : PurchaseDialogContent {
}
if (questContent.drop.gp > 0) {
- val view = inflater.inflate(R.layout.row_quest_reward, rewardsList, false) as ViewGroup
- val imageView = view.findViewById(R.id.imageView)
+ val view = inflater.inflate(R.layout.row_quest_reward_imageview, rewardsList, false) as ViewGroup
+ val imageView = view.findViewById(R.id.imageView)
+ imageView.scaleType = ImageView.ScaleType.CENTER
imageView.setImageBitmap(HabiticaIconsHelper.imageOfExperienceReward())
val titleTextView = view.findViewById(R.id.titleTextView)
titleTextView.text = context.getString(R.string.gold_reward, questContent.drop.gp)