mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-22 05:38:55 +00:00
show challenge tasks
This commit is contained in:
parent
7958a08efc
commit
6ca2b0e6e4
12 changed files with 440 additions and 12 deletions
|
|
@ -4,6 +4,7 @@
|
|||
style="@style/CardView.Default"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="true"
|
||||
android:layout_margin="5dp">
|
||||
|
||||
<LinearLayout
|
||||
|
|
|
|||
|
|
@ -43,8 +43,10 @@ import com.habitrpg.android.habitica.ui.fragments.setup.IntroFragment;
|
|||
import com.habitrpg.android.habitica.ui.fragments.setup.TaskSetupFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.skills.SkillTasksRecyclerViewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.skills.SkillsFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.ChallengeListFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.ChallengesOverviewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengeListFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengeTaskRecyclerViewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengeTasksFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengesOverviewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.ChatListFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.GroupInformationFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.GuildFragment;
|
||||
|
|
@ -190,4 +192,8 @@ public interface AppComponent {
|
|||
void inject(ChallengesOverviewFragment challengesOverviewFragment);
|
||||
|
||||
void inject(ChallengeListFragment challengeListFragment);
|
||||
|
||||
void inject(ChallengeTasksFragment challengeTasksFragment);
|
||||
|
||||
void inject(ChallengeTaskRecyclerViewFragment challengeTaskRecyclerViewFragment);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
package com.habitrpg.android.habitica.events.commands;
|
||||
|
||||
public class ShowChallengeTasksCommand {
|
||||
public String challengeId;
|
||||
|
||||
public ShowChallengeTasksCommand(String challengeId){
|
||||
this.challengeId = challengeId;
|
||||
}
|
||||
}
|
||||
|
|
@ -8,9 +8,12 @@ import android.widget.LinearLayout;
|
|||
import android.widget.TextView;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.events.commands.ShowChallengeTasksCommand;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Challenge;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -48,7 +51,7 @@ public class ChallengesListViewAdapter extends RecyclerView.Adapter<ChallengesLi
|
|||
return challenges.size();
|
||||
}
|
||||
|
||||
public class ChallengeViewHolder extends RecyclerView.ViewHolder {
|
||||
public class ChallengeViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
@BindView(R.id.challenge_name)
|
||||
TextView challengeName;
|
||||
|
||||
|
|
@ -64,13 +67,19 @@ public class ChallengesListViewAdapter extends RecyclerView.Adapter<ChallengesLi
|
|||
@BindView(R.id.gemPrizeTextView)
|
||||
TextView gemPrizeTextView;
|
||||
|
||||
private Challenge challenge;
|
||||
|
||||
public ChallengeViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
||||
ButterKnife.bind(this, itemView);
|
||||
|
||||
itemView.setOnClickListener(this);
|
||||
}
|
||||
|
||||
public void bind(Challenge challenge) {
|
||||
this.challenge = challenge;
|
||||
|
||||
challengeName.setText(challenge.name);
|
||||
|
||||
leaderName.setText(getContext().getString(R.string.by) + " " + getLeaderName(challenge.leader));
|
||||
|
|
@ -92,5 +101,12 @@ public class ChallengesListViewAdapter extends RecyclerView.Adapter<ChallengesLi
|
|||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (challenge != null) {
|
||||
EventBus.getDefault().post(new ShowChallengeTasksCommand(challenge.id));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -52,8 +52,10 @@ public abstract class BaseTasksRecyclerViewAdapter<VH extends BaseTaskViewHolder
|
|||
this.userID = userID;
|
||||
this.filteredContent = new ArrayList<>();
|
||||
|
||||
this.loadContent(true);
|
||||
|
||||
if(loadFromDatabase()) {
|
||||
this.loadContent(true);
|
||||
}
|
||||
|
||||
this.layoutResource = layoutResource;
|
||||
}
|
||||
|
||||
|
|
@ -162,7 +164,7 @@ public abstract class BaseTasksRecyclerViewAdapter<VH extends BaseTaskViewHolder
|
|||
}
|
||||
|
||||
private void filter() {
|
||||
if (this.tagsHelper.howMany() == 0) {
|
||||
if (this.tagsHelper == null || this.tagsHelper.howMany() == 0) {
|
||||
filteredContent = content;
|
||||
} else {
|
||||
filteredContent = new ObservableArrayList<>();
|
||||
|
|
@ -210,4 +212,7 @@ public abstract class BaseTasksRecyclerViewAdapter<VH extends BaseTaskViewHolder
|
|||
filter();
|
||||
}
|
||||
|
||||
public boolean loadFromDatabase(){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.habitrpg.android.habitica.ui.fragments.social;
|
||||
package com.habitrpg.android.habitica.ui.fragments.social.challenges;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
|
|
@ -0,0 +1,237 @@
|
|||
package com.habitrpg.android.habitica.ui.fragments.social.challenges;
|
||||
|
||||
import android.content.Context;
|
||||
import android.databinding.ObservableList;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.habitrpg.android.habitica.APIHelper;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.helpers.TagsHelper;
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.BaseTasksRecyclerViewAdapter;
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.SortableTasksRecyclerViewAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseFragment;
|
||||
import com.habitrpg.android.habitica.ui.menu.DividerItemDecoration;
|
||||
import com.habitrpg.android.habitica.ui.viewHolders.tasks.DailyViewHolder;
|
||||
import com.habitrpg.android.habitica.ui.viewHolders.tasks.HabitViewHolder;
|
||||
import com.habitrpg.android.habitica.ui.viewHolders.tasks.RewardViewHolder;
|
||||
import com.habitrpg.android.habitica.ui.viewHolders.tasks.TodoViewHolder;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
public class ChallengeTaskRecyclerViewFragment extends BaseFragment {
|
||||
public RecyclerView recyclerView;
|
||||
public BaseTasksRecyclerViewAdapter recyclerAdapter;
|
||||
@Inject
|
||||
@Named("UserID")
|
||||
String userID;
|
||||
@Inject
|
||||
APIHelper apiHelper;
|
||||
|
||||
LinearLayoutManager layoutManager = null;
|
||||
private String classType;
|
||||
private HabitRPGUser user;
|
||||
private View view;
|
||||
|
||||
public static ChallengeTaskRecyclerViewFragment newInstance(HabitRPGUser user, String classType, ObservableList<Task> tasks) {
|
||||
ChallengeTaskRecyclerViewFragment fragment = new ChallengeTaskRecyclerViewFragment();
|
||||
fragment.setRetainInstance(true);
|
||||
fragment.user = user;
|
||||
fragment.classType = classType;
|
||||
|
||||
if(tasks.size() != 0){
|
||||
fragment.recyclerAdapter.setTasks(tasks);
|
||||
}
|
||||
|
||||
tasks.addOnListChangedCallback(new ObservableList.OnListChangedCallback<ObservableList<Task>>() {
|
||||
@Override
|
||||
public void onChanged(ObservableList<Task> tasks) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<Task> tasks, int i, int i1) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<Task> tasks, int i, int i1) {
|
||||
fragment.recyclerAdapter.setTasks(tasks);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<Task> tasks, int i, int i1, int i2) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<Task> tasks, int i, int i1) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public void setInnerAdapter() {
|
||||
int layoutOfType;
|
||||
if (this.classType != null) {
|
||||
switch (this.classType) {
|
||||
case Task.TYPE_HABIT:
|
||||
layoutOfType = R.layout.habit_item_card;
|
||||
this.recyclerAdapter = new ChallengeHabitsRecyclerViewAdapter(Task.TYPE_HABIT, null, layoutOfType, getContext(), userID, null);
|
||||
break;
|
||||
case Task.TYPE_DAILY:
|
||||
layoutOfType = R.layout.daily_item_card;
|
||||
int dailyResetOffset = 0;
|
||||
if (user != null) {
|
||||
dailyResetOffset = user.getPreferences().getDayStart();
|
||||
}
|
||||
this.recyclerAdapter = new ChallengeDailiesRecyclerViewHolder(Task.TYPE_DAILY, null, layoutOfType, getContext(), userID, dailyResetOffset, null);
|
||||
break;
|
||||
case Task.TYPE_TODO:
|
||||
layoutOfType = R.layout.todo_item_card;
|
||||
this.recyclerAdapter = new ChallengeTodosRecyclerViewAdapter(Task.TYPE_TODO, null, layoutOfType, getContext(), userID, null);
|
||||
return;
|
||||
case Task.TYPE_REWARD:
|
||||
layoutOfType = R.layout.reward_item_card;
|
||||
this.recyclerAdapter = new ChallengeRewardsRecyclerViewAdapter(Task.TYPE_REWARD, null, layoutOfType, getContext(), user);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
if (view == null) {
|
||||
view = inflater.inflate(R.layout.fragment_recyclerview, container, false);
|
||||
|
||||
recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
|
||||
|
||||
android.support.v4.app.FragmentActivity context = getActivity();
|
||||
|
||||
layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
||||
|
||||
if (layoutManager == null) {
|
||||
layoutManager = new LinearLayoutManager(context);
|
||||
|
||||
recyclerView.setLayoutManager(layoutManager);
|
||||
}
|
||||
if (recyclerView.getAdapter() == null) {
|
||||
this.setInnerAdapter();
|
||||
}
|
||||
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectFragment(AppComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
recyclerView.setAdapter(recyclerAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayedClassName() {
|
||||
return this.classType + super.getDisplayedClassName();
|
||||
}
|
||||
|
||||
String getClassName() {
|
||||
return classType;
|
||||
}
|
||||
|
||||
// region Challenge specific RecyclerViewAdapters
|
||||
|
||||
private class ChallengeHabitsRecyclerViewAdapter extends SortableTasksRecyclerViewAdapter<HabitViewHolder> {
|
||||
|
||||
|
||||
public ChallengeHabitsRecyclerViewAdapter(String taskType, TagsHelper tagsHelper, int layoutResource, Context newContext, String userID, SortTasksCallback sortCallback) {
|
||||
super(taskType, tagsHelper, layoutResource, newContext, userID, sortCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean loadFromDatabase() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HabitViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
return new HabitViewHolder(getContentView(parent));
|
||||
}
|
||||
}
|
||||
|
||||
public class ChallengeDailiesRecyclerViewHolder extends SortableTasksRecyclerViewAdapter<DailyViewHolder> {
|
||||
|
||||
public int dailyResetOffset;
|
||||
|
||||
public ChallengeDailiesRecyclerViewHolder(String taskType, TagsHelper tagsHelper, int layoutResource,
|
||||
Context newContext, String userID, int dailyResetOffset,
|
||||
SortTasksCallback sortTasksCallback) {
|
||||
super(taskType, tagsHelper, layoutResource, newContext, userID, sortTasksCallback);
|
||||
this.dailyResetOffset = dailyResetOffset;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean loadFromDatabase() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DailyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
return new DailyViewHolder(getContentView(parent), dailyResetOffset);
|
||||
}
|
||||
}
|
||||
|
||||
public class ChallengeTodosRecyclerViewAdapter extends SortableTasksRecyclerViewAdapter<TodoViewHolder> {
|
||||
|
||||
public ChallengeTodosRecyclerViewAdapter(String taskType, TagsHelper tagsHelper, int layoutResource,
|
||||
Context newContext, String userID, SortTasksCallback sortCallback) {
|
||||
super(taskType, tagsHelper, layoutResource, newContext, userID, sortCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean loadFromDatabase() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TodoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
return new TodoViewHolder(getContentView(parent));
|
||||
}
|
||||
}
|
||||
|
||||
public class ChallengeRewardsRecyclerViewAdapter extends BaseTasksRecyclerViewAdapter<RewardViewHolder> {
|
||||
|
||||
public ChallengeRewardsRecyclerViewAdapter(String taskType, TagsHelper tagsHelper, int layoutResource, Context newContext, HabitRPGUser user) {
|
||||
super(taskType, tagsHelper, layoutResource, newContext, user.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean loadFromDatabase() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RewardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
return new RewardViewHolder(getContentView(parent));
|
||||
}
|
||||
}
|
||||
|
||||
// endregion
|
||||
}
|
||||
|
|
@ -0,0 +1,140 @@
|
|||
package com.habitrpg.android.habitica.ui.fragments.social.challenges;
|
||||
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.databinding.ObservableList;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
|
||||
public class ChallengeTasksFragment extends BaseMainFragment {
|
||||
|
||||
public ViewPager viewPager;
|
||||
private String challengeId;
|
||||
|
||||
public void setChallengeId(String challengeId) {
|
||||
this.challengeId = challengeId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectFragment(AppComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
|
||||
ObservableList<Task> observableTodoList = new ObservableArrayList<>();
|
||||
ObservableList<Task> observableDailyList = new ObservableArrayList<>();
|
||||
ObservableList<Task> observableHabitList = new ObservableArrayList<>();
|
||||
ObservableList<Task> observableRewardList = new ObservableArrayList<>();
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
this.usesTabLayout = true;
|
||||
super.onCreateView(inflater, container, savedInstanceState);
|
||||
View v = inflater.inflate(R.layout.fragment_viewpager, container, false);
|
||||
|
||||
|
||||
viewPager = (ViewPager) v.findViewById(R.id.view_pager);
|
||||
|
||||
loadTaskLists();
|
||||
return v;
|
||||
}
|
||||
|
||||
public void loadTaskLists() {
|
||||
android.support.v4.app.FragmentManager fragmentManager = getChildFragmentManager();
|
||||
|
||||
viewPager.setAdapter(new FragmentPagerAdapter(fragmentManager) {
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
ChallengeTaskRecyclerViewFragment fragment;
|
||||
|
||||
switch (position) {
|
||||
case 0:
|
||||
fragment = ChallengeTaskRecyclerViewFragment.newInstance(user, Task.TYPE_HABIT, observableHabitList);
|
||||
break;
|
||||
case 1:
|
||||
fragment = ChallengeTaskRecyclerViewFragment.newInstance(user, Task.TYPE_DAILY, observableDailyList);
|
||||
break;
|
||||
case 3:
|
||||
fragment = ChallengeTaskRecyclerViewFragment.newInstance(user, Task.TYPE_REWARD, observableRewardList);
|
||||
break;
|
||||
default:
|
||||
fragment = ChallengeTaskRecyclerViewFragment.newInstance(user, Task.TYPE_TODO, observableTodoList);
|
||||
}
|
||||
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getPageTitle(int position) {
|
||||
switch (position) {
|
||||
case 0:
|
||||
return activity.getString(R.string.habits);
|
||||
case 1:
|
||||
return activity.getString(R.string.dailies);
|
||||
case 2:
|
||||
return activity.getString(R.string.todos);
|
||||
case 3:
|
||||
return activity.getString(R.string.rewards);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
});
|
||||
|
||||
if (tabLayout != null) {
|
||||
tabLayout.setupWithViewPager(viewPager);
|
||||
}
|
||||
|
||||
apiHelper.apiService.getChallengeTasks(challengeId)
|
||||
.compose(this.apiHelper.configureApiCallObserver())
|
||||
.subscribe(taskList -> {
|
||||
ArrayList<Task> todos = new ArrayList<>();
|
||||
ArrayList<Task> habits = new ArrayList<>();
|
||||
ArrayList<Task> dailies = new ArrayList<>();
|
||||
ArrayList<Task> rewards = new ArrayList<>();
|
||||
|
||||
for (Map.Entry<String, Task> entry : taskList.tasks.entrySet()) {
|
||||
switch (entry.getValue().type) {
|
||||
case Task.TYPE_TODO:
|
||||
todos.add(entry.getValue());
|
||||
break;
|
||||
case Task.TYPE_HABIT:
|
||||
|
||||
habits.add(entry.getValue());
|
||||
break;
|
||||
case Task.TYPE_DAILY:
|
||||
|
||||
dailies.add(entry.getValue());
|
||||
break;
|
||||
case Task.TYPE_REWARD:
|
||||
|
||||
rewards.add(entry.getValue());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
observableTodoList.addAll(todos);
|
||||
observableDailyList.addAll(dailies);
|
||||
observableHabitList.addAll(habits);
|
||||
observableRewardList.addAll(rewards);
|
||||
}, throwable -> {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +1,20 @@
|
|||
package com.habitrpg.android.habitica.ui.fragments.social;
|
||||
package com.habitrpg.android.habitica.ui.fragments.social.challenges;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.events.commands.ShowChallengeTasksCommand;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
|
||||
public class ChallengesOverviewFragment extends BaseMainFragment {
|
||||
|
||||
public ViewPager viewPager;
|
||||
|
|
@ -25,7 +27,6 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
|
|||
View v = inflater.inflate(R.layout.fragment_viewpager, container, false);
|
||||
|
||||
viewPager = (ViewPager) v.findViewById(R.id.view_pager);
|
||||
|
||||
viewPager.setCurrentItem(1);
|
||||
|
||||
setViewPagerAdapter();
|
||||
|
|
@ -84,4 +85,12 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
|
|||
tabLayout.setupWithViewPager(viewPager);
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onEvent(ShowChallengeTasksCommand cmd){
|
||||
ChallengeTasksFragment fragment = new ChallengeTasksFragment();
|
||||
fragment.setChallengeId(cmd.challengeId);
|
||||
|
||||
activity.displayFragment(fragment);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@ import com.habitrpg.android.habitica.ui.activities.GemPurchaseActivity;
|
|||
import com.habitrpg.android.habitica.ui.activities.MainActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.PrefsActivity;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.GemsPurchaseFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.NewsFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.faq.FAQOverviewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.inventory.customization.AvatarOverviewFragment;
|
||||
|
|
@ -15,7 +14,7 @@ import com.habitrpg.android.habitica.ui.fragments.inventory.items.ItemsFragment;
|
|||
import com.habitrpg.android.habitica.ui.fragments.inventory.shops.ShopsFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.inventory.stable.StableFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.skills.SkillsFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.ChallengesOverviewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengesOverviewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.GuildsOverviewFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.InboxFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.TavernFragment;
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ public class BaseTaskViewHolder extends RecyclerView.ViewHolder implements View.
|
|||
|
||||
itemView.setOnClickListener(this);
|
||||
itemView.setClickable(true);
|
||||
itemView.setEnabled(false);
|
||||
|
||||
ButterKnife.bind(this, itemView);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.magicmicky.habitrpgwrapper.lib.api;
|
||||
|
||||
import android.databinding.ObservableList;
|
||||
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.ChatMessage;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.ContentResult;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Group;
|
||||
|
|
@ -262,6 +264,9 @@ public interface ApiService {
|
|||
@GET("challenges/user")
|
||||
Observable<ArrayList<Challenge>> getUserChallenges();
|
||||
|
||||
@GET("tasks/challenge/{challengeId}")
|
||||
Observable<TaskList> getChallengeTasks(@Path("challengeId") String challengeId);
|
||||
|
||||
//DEBUG: These calls only work on a local development server
|
||||
|
||||
@POST("debug/add-ten-gems")
|
||||
|
|
|
|||
Loading…
Reference in a new issue