diff --git a/Habitica/res/drawable/Thumbs.db b/Habitica/res/drawable/Thumbs.db deleted file mode 100644 index f6bea7aef..000000000 Binary files a/Habitica/res/drawable/Thumbs.db and /dev/null differ diff --git a/Habitica/src/com/habitrpg/android/habitica/CardFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/CardFragment.java similarity index 97% rename from Habitica/src/com/habitrpg/android/habitica/CardFragment.java rename to Habitica/src/com/habitrpg/android/habitica/ui/fragments/CardFragment.java index 21630556e..cb3ebddbe 100644 --- a/Habitica/src/com/habitrpg/android/habitica/CardFragment.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/CardFragment.java @@ -1,10 +1,16 @@ -package com.habitrpg.android.habitica; +package com.habitrpg.android.habitica.ui.fragments; import java.util.ArrayList; import java.util.List; +import com.habitrpg.android.habitica.APIHelper; +import com.habitrpg.android.habitica.AddTaskDialog; +import com.habitrpg.android.habitica.HostConfig; +import com.habitrpg.android.habitica.MainActivity; +import com.habitrpg.android.habitica.OnTasksChanged; +import com.habitrpg.android.habitica.R; import com.habitrpg.android.habitica.callbacks.TaskDeletionCallback; import com.habitrpg.android.habitica.callbacks.TaskScoringCallback; import com.habitrpg.android.habitica.prefs.PrefsActivity; diff --git a/Habitica/src/com/habitrpg/android/habitica/DailyFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/DailyFragment.java similarity index 98% rename from Habitica/src/com/habitrpg/android/habitica/DailyFragment.java rename to Habitica/src/com/habitrpg/android/habitica/ui/fragments/DailyFragment.java index 8ce177a33..b3b488984 100644 --- a/Habitica/src/com/habitrpg/android/habitica/DailyFragment.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/DailyFragment.java @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica; +package com.habitrpg.android.habitica.ui.fragments; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -17,6 +17,7 @@ import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; +import com.habitrpg.android.habitica.R; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Daily; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitItem; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType; diff --git a/Habitica/src/com/habitrpg/android/habitica/DatePickerFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/DatePickerFragment.java similarity index 96% rename from Habitica/src/com/habitrpg/android/habitica/DatePickerFragment.java rename to Habitica/src/com/habitrpg/android/habitica/ui/fragments/DatePickerFragment.java index 2e19cf4eb..60c4d9af2 100644 --- a/Habitica/src/com/habitrpg/android/habitica/DatePickerFragment.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/DatePickerFragment.java @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica; +package com.habitrpg.android.habitica.ui.fragments; import java.util.Calendar; diff --git a/Habitica/src/com/habitrpg/android/habitica/HabitFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/HabitFragment.java similarity index 97% rename from Habitica/src/com/habitrpg/android/habitica/HabitFragment.java rename to Habitica/src/com/habitrpg/android/habitica/ui/fragments/HabitFragment.java index f47e19056..62a560776 100644 --- a/Habitica/src/com/habitrpg/android/habitica/HabitFragment.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/HabitFragment.java @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica; +package com.habitrpg.android.habitica.ui.fragments; import java.util.ArrayList; import java.util.List; @@ -13,6 +13,7 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; +import com.habitrpg.android.habitica.R; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Habit; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitItem; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType; @@ -71,7 +72,7 @@ public class HabitFragment extends CardFragment{ habitPlus.setOnClickListener(getOnClickListener()); Button habitMinus = (Button) convertView.findViewById(R.id.minus); habitMinus.setOnClickListener(getOnClickListener()); - TextView habit = (TextView) convertView.findViewById(R.id.TV_habit); + TextView habit = (TextView) convertView.findViewById(R.id.TV_title); //View color_indic = convertView.findViewById(R.id.V_color_indic); //color_indic.setBackgroundColor(getResources().getColor(getColorRes(currentItem.getValue()))); ImageView color_indic = (ImageView) convertView.findViewById(R.id.IV_task_color); diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/RecyclerViewFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/RecyclerViewFragment.java new file mode 100644 index 000000000..a116ee91a --- /dev/null +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/RecyclerViewFragment.java @@ -0,0 +1,93 @@ +package com.habitrpg.android.habitica.ui.fragments; + +import android.graphics.Color; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.Fragment; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.github.florent37.materialviewpager.MaterialViewPagerHelper; +import com.github.florent37.materialviewpager.adapter.RecyclerViewMaterialAdapter; +import com.habitrpg.android.habitica.R; +import com.mikepenz.iconics.IconicsDrawable; +import com.mikepenz.iconics.typeface.FontAwesome; + +/** +RecyclerViewFragment + - Creates the View only once + - Adds FAB Icon + - Handles the ScrollPosition - if anyone has a better solution please share it + + + */ +public class RecyclerViewFragment extends Fragment { + public RecyclerView mRecyclerView; + private RecyclerView.Adapter mAdapter; + + public void SetInnerAdapter(RecyclerView.Adapter adapter, String tag) { + mAdapter = new RecyclerViewMaterialAdapter(adapter); + } + + private View view; + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + if (view == null) + view = inflater.inflate(R.layout.fragment_recyclerview, container, false); + + return view; + } + + private boolean alreadyCreated; + + + LinearLayoutManager layoutManager = null; + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + if (alreadyCreated) + return; + + mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); + + android.support.v4.app.FragmentActivity context = getActivity(); + + FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab); + + IconicsDrawable icon = new IconicsDrawable(context, FontAwesome.Icon.faw_plus).color(Color.WHITE).sizeDp(24); + + fab.setImageDrawable(icon); + + layoutManager = (LinearLayoutManager) mRecyclerView.getLayoutManager(); + + if (layoutManager == null) { + layoutManager = new LinearLayoutManager(context); + + mRecyclerView.setLayoutManager(layoutManager); + } + + layoutManager.setSmoothScrollbarEnabled(true); + + mRecyclerView.setAdapter(mAdapter); + + MaterialViewPagerHelper.registerRecyclerView(getActivity(), mRecyclerView, null); + + alreadyCreated = true; + } + + public static RecyclerViewFragment newInstance(RecyclerView.Adapter adapter, String tag) { + RecyclerViewFragment fragment = new RecyclerViewFragment(); + + fragment.SetInnerAdapter(adapter, tag); + + Log.d("RecyclerViewFragment", "newInstance"); + + return fragment; + } +} diff --git a/Habitica/src/com/habitrpg/android/habitica/RewardFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/RewardFragment.java similarity index 98% rename from Habitica/src/com/habitrpg/android/habitica/RewardFragment.java rename to Habitica/src/com/habitrpg/android/habitica/ui/fragments/RewardFragment.java index ff84ad33e..f12517a86 100644 --- a/Habitica/src/com/habitrpg/android/habitica/RewardFragment.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/RewardFragment.java @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica; +package com.habitrpg.android.habitica.ui.fragments; import java.util.ArrayList; import java.util.List; @@ -16,6 +16,7 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; +import com.habitrpg.android.habitica.R; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitItem; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Reward; @@ -95,7 +96,7 @@ public class RewardFragment extends CardFragment { } Button price = (Button) convertView.findViewById(R.id.plus); price.setCompoundDrawablesWithIntrinsicBounds(null, null,null,null);//(it.getType(), it.getLevel())), null); - TextView reward = (TextView) convertView.findViewById(R.id.TV_reward); + TextView reward = (TextView) convertView.findViewById(R.id.TV_title); convertView.setId(position); if(this.getItem(position) instanceof Reward.SpecialReward) { Reward.SpecialReward it = (Reward.SpecialReward) this.getItem(position); diff --git a/Habitica/src/com/habitrpg/android/habitica/TagAdapter.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/TagAdapter.java similarity index 95% rename from Habitica/src/com/habitrpg/android/habitica/TagAdapter.java rename to Habitica/src/com/habitrpg/android/habitica/ui/fragments/TagAdapter.java index 1c5410f4e..00f509342 100644 --- a/Habitica/src/com/habitrpg/android/habitica/TagAdapter.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/TagAdapter.java @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica; +package com.habitrpg.android.habitica.ui.fragments; import android.content.Context; import android.view.LayoutInflater; @@ -7,6 +7,7 @@ import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; +import com.habitrpg.android.habitica.R; import com.magicmicky.habitrpgwrapper.lib.models.Tag; import java.util.HashMap; diff --git a/Habitica/src/com/habitrpg/android/habitica/ToDoFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ToDoFragment.java similarity index 96% rename from Habitica/src/com/habitrpg/android/habitica/ToDoFragment.java rename to Habitica/src/com/habitrpg/android/habitica/ui/fragments/ToDoFragment.java index 3110e60db..04abf62ed 100644 --- a/Habitica/src/com/habitrpg/android/habitica/ToDoFragment.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ToDoFragment.java @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica; +package com.habitrpg.android.habitica.ui.fragments; import java.util.ArrayList; import java.util.List; @@ -12,6 +12,7 @@ import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; +import com.habitrpg.android.habitica.R; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitItem; import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType; import com.magicmicky.habitrpgwrapper.lib.models.tasks.ToDo;