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)