add in legacy quest progress view for party quests

This will be unified later once we finalized the designs
This commit is contained in:
Phillip Thelen 2018-02-09 17:48:27 +01:00
parent fa26918a90
commit cd234b9980
4 changed files with 116 additions and 2 deletions

View file

@ -132,7 +132,7 @@
android:layout_height="@dimen/quest_image_height"
android:scaleType="fitCenter"/>
</LinearLayout>
<com.habitrpg.android.habitica.ui.views.social.QuestProgressView
<com.habitrpg.android.habitica.ui.views.social.OldQuestProgressView
android:id="@+id/quest_progress_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/boss_name_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Quest Boss"
android:textStyle="bold"
android:layout_marginBottom="@dimen/spacing_small"/>
<com.habitrpg.android.habitica.ui.views.ValueBar
android:id="@+id/boss_health_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:barForegroundColor="@color/red_100"
app:lightBackground="true" />
<LinearLayout
android:id="@+id/collection_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
</LinearLayout>

View file

@ -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;

View file

@ -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);
}
}
}
}
}
}