From cd234b99807cf9f993bef3e4f3dacf93d82085a3 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Fri, 9 Feb 2018 17:48:27 +0100 Subject: [PATCH] add in legacy quest progress view for party quests This will be unified later once we finalized the designs --- Habitica/res/layout/fragment_party_detail.xml | 2 +- Habitica/res/layout/quest_progress_old.xml | 26 ++++++ .../social/party/PartyDetailFragment.java | 3 +- .../ui/views/social/OldQuestProgressView.java | 87 +++++++++++++++++++ 4 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 Habitica/res/layout/quest_progress_old.xml create mode 100644 Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.java diff --git a/Habitica/res/layout/fragment_party_detail.xml b/Habitica/res/layout/fragment_party_detail.xml index e89d019dc..cc4424808 100644 --- a/Habitica/res/layout/fragment_party_detail.xml +++ b/Habitica/res/layout/fragment_party_detail.xml @@ -132,7 +132,7 @@ android:layout_height="@dimen/quest_image_height" android:scaleType="fitCenter"/> - diff --git a/Habitica/res/layout/quest_progress_old.xml b/Habitica/res/layout/quest_progress_old.xml new file mode 100644 index 000000000..e04c49a5c --- /dev/null +++ b/Habitica/res/layout/quest_progress_old.xml @@ -0,0 +1,26 @@ + + + + + + \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java index 60f5aac32..6a36d4160 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java @@ -30,6 +30,7 @@ import com.habitrpg.android.habitica.ui.fragments.inventory.items.ItemRecyclerFr import com.habitrpg.android.habitica.ui.fragments.social.QuestDetailFragment; import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils; import com.habitrpg.android.habitica.ui.helpers.MarkdownParser; +import com.habitrpg.android.habitica.ui.views.social.OldQuestProgressView; import com.habitrpg.android.habitica.ui.views.social.QuestProgressView; import javax.inject.Inject; @@ -83,7 +84,7 @@ public class PartyDetailFragment extends BaseFragment { @BindView(R.id.quest_reject_button) Button questRejectButton; @BindView(R.id.quest_progress_view) - QuestProgressView questProgressView; + OldQuestProgressView questProgressView; @BindView(R.id.quest_participant_list) LinearLayout questParticipantList; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.java new file mode 100644 index 000000000..d39314a88 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.java @@ -0,0 +1,87 @@ +package com.habitrpg.android.habitica.ui.views.social; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.facebook.drawee.view.SimpleDraweeView; +import com.habitrpg.android.habitica.R; +import com.habitrpg.android.habitica.models.inventory.QuestCollect; +import com.habitrpg.android.habitica.models.inventory.QuestContent; +import com.habitrpg.android.habitica.models.inventory.QuestProgress; +import com.habitrpg.android.habitica.models.inventory.QuestProgressCollect; +import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils; +import com.habitrpg.android.habitica.ui.views.ValueBar; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class OldQuestProgressView extends LinearLayout { + + @BindView(R.id.boss_name_view) + TextView bossNameView; + @BindView(R.id.boss_health_view) + ValueBar bossHealthView; + @BindView(R.id.collection_container) + ViewGroup collectionContainer; + + public OldQuestProgressView(@NonNull Context context) { + super(context); + setupView(context); + } + + public OldQuestProgressView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + setupView(context); + } + + private void setupView(Context context) { + LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + inflater.inflate(R.layout.quest_progress_old, this); + + ButterKnife.bind(this, this); + } + + public void setData(QuestContent quest, QuestProgress progress) { + collectionContainer.removeAllViews(); + if (quest.isBossQuest()) { + bossNameView.setText(quest.getBoss().getName()); + if (progress != null) { + bossHealthView.set(progress.getHp(), quest.getBoss().getHp()); + } + bossNameView.setVisibility(View.VISIBLE); + bossHealthView.setVisibility(View.VISIBLE); + } else { + bossNameView.setVisibility(View.GONE); + bossHealthView.setVisibility(View.GONE); + + if (progress != null) { + LayoutInflater inflater = LayoutInflater.from(getContext()); + if (progress.getCollect() != null) { + for (QuestProgressCollect collect : progress.getCollect()) { + QuestCollect contentCollect = quest.getCollectWithKey(collect.key); + if (contentCollect == null) { + continue; + } + View view = inflater.inflate(R.layout.quest_collect, collectionContainer, false); + SimpleDraweeView iconView = (SimpleDraweeView) view.findViewById(R.id.icon_view); + TextView nameView = (TextView) view.findViewById(R.id.name_view); + ValueBar valueView = (ValueBar) view.findViewById(R.id.value_view); + DataBindingUtils.INSTANCE.loadImage(iconView, "quest_" + quest.getKey() + "_" + collect.key); + nameView.setText(contentCollect.text); + valueView.set(collect.count, contentCollect.count); + + collectionContainer.addView(view); + } + } + } + } + } + +}