Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.71 KB | None | 0 0
  1. package at.vorarlberg.card360.adapter;
  2.  
  3. import android.support.v4.app.Fragment;
  4. import android.support.v7.widget.RecyclerView;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.Button;
  9. import android.widget.ImageButton;
  10. import android.widget.ImageView;
  11. import android.widget.TextView;
  12. import android.widget.Toast;
  13.  
  14. import java.util.ArrayList;
  15.  
  16. import at.vorarlberg.card360.R;
  17. import at.vorarlberg.card360.fragments.MyQuestsFragment;
  18. import at.vorarlberg.card360.fragments.MyRewardsFragment;
  19. import at.vorarlberg.card360.models.Quest;
  20. import at.vorarlberg.card360.models.QuestLabelDate;
  21. import at.vorarlberg.card360.models.QuestMyQuest;
  22. import at.vorarlberg.card360.models.QuestMyQuestLabel;
  23. import at.vorarlberg.card360.models.Reward;
  24. import at.vorarlberg.card360.models.RewardReceived;
  25. import at.vorarlberg.card360.models.RewardResolvedLabel;
  26. import at.vorarlberg.card360.util.CustomTextViewBloggerSansBold;
  27. import at.vorarlberg.card360.util.CustomTextViewRegular;
  28.  
  29. /**
  30. * Created by kamil.poznakowski on 2017-08-11.
  31. */
  32.  
  33. public class MyRewardsAndMyQuestsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  34.  
  35. private static final int TYPE_REWARD_RECEIVED = 0;
  36. private static final int TYPE_REWARD_LABEL = 1;
  37. private static final int TYPE_REWARD_RESOLVED = 2;
  38.  
  39. private static final int TYPE_QUEST_LABEL_DATE = 6;
  40. private static final int TYPE_QUEST = 3;
  41. private static final int TYPE_QUEST_LABEL = 4;
  42. private static final int TYPE_QUEST_LIST_ITEM = 5;
  43.  
  44. private static final int REWARD_TYPE_APPLY = 1;
  45.  
  46. private ArrayList<Reward> rewardsList = new ArrayList<>();
  47. private ArrayList<Quest> questsList = new ArrayList<>();
  48. private Fragment fragment;
  49.  
  50. private DateChangeCallback dateCallback;
  51.  
  52. public interface DateChangeCallback {
  53. void changeMonthDown();
  54.  
  55. void changeMonthUp();
  56. }
  57.  
  58. public static class ViewHolderRewardReceived extends RecyclerView.ViewHolder {
  59. TextView tvReceivedLabel;
  60. TextView tvReceivedTitle;
  61. TextView tvReceivedRewardMessage;
  62. TextView tvReceivedRewardExpiryDate;
  63. TextView tvReceivedRewardExpiryHour;
  64. Button btnWatch;
  65.  
  66. public ViewHolderRewardReceived(View itemView) {
  67. super(itemView);
  68. tvReceivedLabel = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_received_label);
  69. tvReceivedTitle = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_received_title);
  70. tvReceivedRewardMessage = (CustomTextViewRegular) itemView.findViewById(R.id.tv_received_reward_message);
  71. tvReceivedRewardExpiryDate = (CustomTextViewRegular) itemView.findViewById(R.id.tv_received_reward_expiry_date);
  72. tvReceivedRewardExpiryHour = (CustomTextViewRegular) itemView.findViewById(R.id.tv_received_reward_expiry_hour);
  73. btnWatch = (Button) itemView.findViewById(R.id.btn_watch);
  74. }
  75. }
  76.  
  77. public static class ViewHolderTyprRewardsLabel extends RecyclerView.ViewHolder {
  78. TextView tvResolvedrewardsLabel;
  79.  
  80. public ViewHolderTyprRewardsLabel(View itemView) {
  81. super(itemView);
  82. tvResolvedrewardsLabel = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_resolved_rewards_label);
  83. }
  84. }
  85.  
  86. public static class ViewHolderRewardsResolved extends RecyclerView.ViewHolder {
  87. ImageView ivBadgeGreyRewards;
  88. TextView tvPointsOnBagde;
  89. TextView tvReceivedItemTitle;
  90. TextView tvReceivedResolvedRewardMessage;
  91.  
  92. public ViewHolderRewardsResolved(View itemView) {
  93. super(itemView);
  94. ivBadgeGreyRewards = (ImageView) itemView.findViewById(R.id.iv_badge_resolved_reward);
  95. tvPointsOnBagde = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_points_on_bagde);
  96. tvReceivedItemTitle = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_received_item_title);
  97. tvReceivedResolvedRewardMessage = (CustomTextViewRegular) itemView.findViewById(R.id.tv_received_resolved_reward_message);
  98. }
  99. }
  100.  
  101. public static class ViewHolder6QuestLabelDate extends RecyclerView.ViewHolder {
  102. ImageButton ibArrowLeft;
  103. ImageButton ibArrowRight;
  104. TextView tvDateLabel;
  105. Fragment fragment;
  106. DateChangeCallback dateCallback;
  107.  
  108. public ViewHolder6QuestLabelDate(View itemView, final Fragment fragment, final DateChangeCallback dateCallback) {
  109. super(itemView);
  110. this.fragment = fragment;
  111. this.dateCallback = dateCallback;
  112. ibArrowLeft = (ImageButton) itemView.findViewById(R.id.ib_arrow_left);
  113. ibArrowRight = (ImageButton) itemView.findViewById(R.id.ib_arrow_right);
  114. tvDateLabel = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_date_label);
  115.  
  116. ibArrowLeft.setOnClickListener(new View.OnClickListener() {
  117. @Override
  118. public void onClick(View view) {
  119. Toast.makeText(fragment.getContext(), "Left", Toast.LENGTH_SHORT).show();
  120. dateCallback.changeMonthDown();
  121. }
  122. });
  123.  
  124. ibArrowRight.setOnClickListener(new View.OnClickListener() {
  125. @Override
  126. public void onClick(View view) {
  127. Toast.makeText(fragment.getContext(), "Right", Toast.LENGTH_SHORT).show();
  128. dateCallback.changeMonthUp();
  129. }
  130. });
  131. }
  132. }
  133.  
  134. public static class ViewHolderQuest extends RecyclerView.ViewHolder {
  135. TextView tvMyQuestItemLabel;
  136. TextView tvMyQuestItemTitle;
  137. TextView tvMyQuestMessageDate;
  138. TextView tvMyQuestItemDescription;
  139.  
  140. public ViewHolderQuest(View itemView) {
  141. super(itemView);
  142. tvMyQuestItemLabel = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_my_quest_item_label);
  143. tvMyQuestItemTitle = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_my_quest_item_title);
  144. tvMyQuestMessageDate = (CustomTextViewRegular) itemView.findViewById(R.id.tv_my_quest_message_date);
  145. tvMyQuestItemDescription = (CustomTextViewRegular) itemView.findViewById(R.id.tv_my_quest_item_description);
  146. }
  147. }
  148.  
  149. public static class ViewHolderQuestLabel extends RecyclerView.ViewHolder {
  150. TextView tvResolvedQuestsLabel;
  151.  
  152. public ViewHolderQuestLabel(View itemView) {
  153. super(itemView);
  154. tvResolvedQuestsLabel = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_resolved_rewards_label);
  155. }
  156. }
  157.  
  158. public static class ViewHolderQuestListItem extends RecyclerView.ViewHolder {
  159. ImageView ivBadgeGreyQuests;
  160. TextView tvMyQuestReceivedTitle;
  161. TextView tvMyQuestRewardMessage;
  162. TextView tvPointsMyQuestItem;
  163.  
  164. public ViewHolderQuestListItem(View itemView) {
  165. super(itemView);
  166. ivBadgeGreyQuests = (ImageView) itemView.findViewById(R.id.iv_badge_grey_quests);
  167. tvPointsMyQuestItem = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_points_my_quest_item);
  168. tvMyQuestReceivedTitle = (CustomTextViewBloggerSansBold) itemView.findViewById(R.id.tv_my_quest_received_title);
  169. tvMyQuestRewardMessage = (CustomTextViewRegular) itemView.findViewById(R.id.tv_my_quest_reward_message);
  170. }
  171. }
  172.  
  173. public MyRewardsAndMyQuestsAdapter(MyRewardsFragment fragment, ArrayList<Reward> rewardsList) {
  174. this.fragment = fragment;
  175. this.rewardsList = rewardsList;
  176. }
  177.  
  178. public MyRewardsAndMyQuestsAdapter(MyQuestsFragment fragment, ArrayList<Quest> questsList) {
  179. this.fragment = fragment;
  180. this.questsList = questsList;
  181. }
  182.  
  183. @Override
  184. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  185. View view;
  186.  
  187. switch (viewType) {
  188. case TYPE_REWARD_RECEIVED:
  189. view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_received_reward, parent, false);
  190. return new ViewHolderRewardReceived(view);
  191. case TYPE_REWARD_LABEL:
  192. view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_rewards_resolved_label, parent, false);
  193. return new ViewHolderTyprRewardsLabel(view);
  194. case TYPE_REWARD_RESOLVED:
  195. view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_resolved_reward, parent, false);
  196. return new ViewHolderRewardsResolved(view);
  197. case TYPE_QUEST_LABEL_DATE:
  198. view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_my_quest_date_label, parent, false);
  199. return new ViewHolder6QuestLabelDate(view, fragment, dateCallback);
  200. case TYPE_QUEST:
  201. view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_my_quest, parent, false);
  202. return new ViewHolderQuest(view);
  203. case TYPE_QUEST_LABEL:
  204. view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_my_quests_label, parent, false);
  205. return new ViewHolderQuestLabel(view);
  206. default:
  207. view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_my_quest_reward, parent, false);
  208. return new ViewHolderQuestListItem(view);
  209. }
  210. }
  211.  
  212. @Override
  213. public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
  214. int type = getItemViewType(position);
  215.  
  216. switch (type) {
  217. case TYPE_REWARD_RECEIVED:
  218. bindViewViewHolderRewardReceived(holder, position);
  219.  
  220. case TYPE_REWARD_LABEL:
  221. bindViewHolderTyprRewardsLabel(holder, position);
  222.  
  223. case TYPE_REWARD_RESOLVED:
  224. bindViewHolderRewardsResolved(holder, position);
  225.  
  226. case TYPE_QUEST_LABEL_DATE:
  227. bindViewHolder6QuestLabelDate(holder, position);
  228.  
  229. case TYPE_QUEST:
  230. bindViewHolderQuest(holder, position);
  231.  
  232. case TYPE_QUEST_LABEL:
  233. bindViewHolderQuestLabel(holder, position);
  234.  
  235. case TYPE_QUEST_LIST_ITEM:
  236. bindViewHolderQuestListItem(holder, position);
  237. }
  238.  
  239. /*
  240. if (type == TYPE_REWARD_RECEIVED) {
  241. bindViewViewHolderRewardReceived(holder, position);
  242.  
  243. } else if (type == TYPE_REWARD_LABEL) {
  244. bindViewHolderTyprRewardsLabel(holder, position);
  245.  
  246. } else if (type == TYPE_REWARD_RESOLVED) {
  247. bindViewHolderRewardsResolved(holder, position);
  248.  
  249. } else if (type == TYPE_QUEST_LABEL_DATE) {
  250. bindViewHolder6QuestLabelDate(holder, position);
  251.  
  252. } else if (type == TYPE_QUEST) {
  253. bindViewHolderQuest(holder, position);
  254.  
  255. } else if (type == TYPE_QUEST_LABEL) {
  256. bindViewHolderQuestLabel(holder, position);
  257.  
  258. } else if (type == TYPE_QUEST_LIST_ITEM) {
  259. bindViewHolderQuestListItem(holder, position);
  260. }*/
  261. }
  262.  
  263. @Override
  264. public int getItemCount() {
  265. if (fragment instanceof MyQuestsFragment) {
  266. return questsList.size();
  267. } else {
  268. return rewardsList.size();
  269. }
  270. }
  271.  
  272. @Override
  273. public int getItemViewType(int position) {
  274. int type = TYPE_REWARD_RECEIVED;
  275. if (fragment instanceof MyRewardsFragment) {
  276. if (rewardsList.get(position) instanceof RewardReceived) {
  277. type = TYPE_REWARD_RECEIVED;
  278. } else if ((rewardsList.get(position) instanceof RewardResolvedLabel)) {
  279. type = TYPE_REWARD_LABEL;
  280. } else {
  281. type = TYPE_REWARD_RESOLVED;
  282. }
  283. } else if (fragment instanceof MyQuestsFragment) {
  284. if (questsList.get(position) instanceof QuestLabelDate) {
  285. type = TYPE_QUEST_LABEL_DATE;
  286. } else if (questsList.get(position) instanceof QuestMyQuest) {
  287. type = TYPE_QUEST;
  288. } else if (questsList.get(position) instanceof QuestMyQuestLabel) {
  289. type = TYPE_QUEST_LABEL;
  290. } else {
  291. type = TYPE_QUEST_LIST_ITEM;
  292. }
  293. }
  294. return type;
  295. }
  296.  
  297. public void setDateCallback(DateChangeCallback dateCallback) {
  298. this.dateCallback = dateCallback;
  299. }
  300.  
  301. private void bindViewViewHolderRewardReceived(final RecyclerView.ViewHolder holder, int position) {
  302. RewardReceived reward = (RewardReceived) rewardsList.get(position);
  303. ViewHolderRewardReceived viewHolderRewardReceived = (ViewHolderRewardReceived) holder;
  304. viewHolderRewardReceived.tvReceivedLabel.setText(reward.getTitle());
  305. viewHolderRewardReceived.tvReceivedTitle.setText(reward.getDescription());
  306. viewHolderRewardReceived.tvReceivedRewardMessage.setText(reward.getDescription());
  307. viewHolderRewardReceived.tvReceivedRewardExpiryDate.setText(reward.getExpirationDate());
  308. viewHolderRewardReceived.tvReceivedRewardExpiryHour.setText(reward.getExpirationDate());
  309.  
  310. if (reward.getType() == REWARD_TYPE_APPLY) {
  311. viewHolderRewardReceived.tvReceivedLabel.setTextColor(fragment.getResources().getColor(R.color.blue_for_buttons_and_text));
  312. viewHolderRewardReceived.btnWatch.setBackgroundResource(R.color.blue_for_buttons_and_text);
  313. }
  314. }
  315.  
  316. private void bindViewHolderTyprRewardsLabel(final RecyclerView.ViewHolder holder, int position) {
  317. ViewHolderTyprRewardsLabel viewHolderTyprRewardsLabel = (ViewHolderTyprRewardsLabel) holder;
  318. }
  319.  
  320. private void bindViewHolderRewardsResolved(final RecyclerView.ViewHolder holder, int position) {
  321. Reward reward = rewardsList.get(position);
  322. ViewHolderRewardsResolved viewHolderRewardsResolved = (ViewHolderRewardsResolved) holder;
  323. viewHolderRewardsResolved.tvPointsOnBagde.setText(String.valueOf(reward.getPointsReq()));
  324. viewHolderRewardsResolved.tvReceivedItemTitle.setText(reward.getTitle());
  325. viewHolderRewardsResolved.tvReceivedResolvedRewardMessage.setText(reward.getDescription());
  326. }
  327.  
  328. private void bindViewHolder6QuestLabelDate(final RecyclerView.ViewHolder holder, int position) {
  329. ViewHolder6QuestLabelDate viewHolderDate = (ViewHolder6QuestLabelDate) holder;
  330. }
  331.  
  332. private void bindViewHolderQuest(final RecyclerView.ViewHolder holder, int position) {
  333. ViewHolderQuest viewHolderQuest = (ViewHolderQuest) holder;
  334. Quest quest = questsList.get(position);
  335. viewHolderQuest.tvMyQuestItemDescription.setText(quest.getEndDate());
  336. viewHolderQuest.tvMyQuestItemLabel.setText(String.valueOf(quest.getNrPoints()));
  337. viewHolderQuest.tvMyQuestItemTitle.setText(quest.getTitle());
  338. viewHolderQuest.tvMyQuestMessageDate.setText(quest.getPlace());
  339. }
  340.  
  341. private void bindViewHolderQuestLabel(final RecyclerView.ViewHolder holder, int position) {
  342. ViewHolderQuestLabel viewHolderQuestLabel = (ViewHolderQuestLabel) holder;
  343. }
  344.  
  345. private void bindViewHolderQuestListItem(final RecyclerView.ViewHolder holder, int position) {
  346. ViewHolderQuestListItem viewHolderQuestListItem = (ViewHolderQuestListItem) holder;
  347. Quest quest = questsList.get(position);
  348. viewHolderQuestListItem.tvPointsMyQuestItem.setText(String.valueOf(quest.getNrPoints()));
  349. viewHolderQuestListItem.tvMyQuestReceivedTitle.setText(quest.getTitle());
  350. viewHolderQuestListItem.tvMyQuestRewardMessage.setText(quest.getEndDate());
  351. }
  352. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement