diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser
index d681ca4..bd5087a 100644
Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/AddItems/AddShiftActivity.java b/app/src/main/java/com/appttude/h_mal/days_left/AddItems/AddShiftActivity.java
index cf17c57..8628a72 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/AddItems/AddShiftActivity.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/AddItems/AddShiftActivity.java
@@ -152,7 +152,6 @@ public class AddShiftActivity extends AppCompatActivity {
if (ShiftID != null){
DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(auth.getUid()).child(SHIFT_FIREBASE).child(ShiftID);
-
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/CustomValueEventListener.java b/app/src/main/java/com/appttude/h_mal/days_left/CustomValueEventListener.java
new file mode 100644
index 0000000..d533dbe
--- /dev/null
+++ b/app/src/main/java/com/appttude/h_mal/days_left/CustomValueEventListener.java
@@ -0,0 +1,58 @@
+package com.appttude.h_mal.days_left;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.view.View;
+import android.widget.ProgressBar;
+import android.widget.Toast;
+
+import com.appttude.h_mal.days_left.Objects.ShiftObject;
+import com.google.firebase.database.DataSnapshot;
+import com.google.firebase.database.DatabaseError;
+import com.google.firebase.database.ValueEventListener;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.appttude.h_mal.days_left.MainActivity.shiftObjectArrayList;
+import static com.appttude.h_mal.days_left.MainActivity.shiftsMap;
+
+public class CustomValueEventListener implements ValueEventListener {
+
+ private Context context;
+ private FragmentManager fragmentManager;
+ private ProgressBar progressBar;
+
+ public CustomValueEventListener(Context context, FragmentManager fragmentManager, ProgressBar progressBar) {
+ this.context = context;
+ this.fragmentManager = fragmentManager;
+ this.progressBar = progressBar;
+
+ progressBar.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
+
+ for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
+ shiftObjectArrayList.add(postSnapshot.getValue(ShiftObject.class));
+ shiftsMap.put(postSnapshot.getKey(),postSnapshot.getValue(ShiftObject.class));
+ }
+
+ if (shiftObjectArrayList.size() > 0){
+ FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ fragmentTransaction.replace(R.id.container,new FragmentHome()).commit();
+ }else {
+ Toast.makeText(context, "List Empty", Toast.LENGTH_SHORT).show();
+ }
+
+ progressBar.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onCancelled(@NonNull DatabaseError databaseError) {
+ progressBar.setVisibility(View.GONE);
+ }
+}
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/FireAdapter.java b/app/src/main/java/com/appttude/h_mal/days_left/FireAdapter.java
index 763eb32..c52271f 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/FireAdapter.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/FireAdapter.java
@@ -3,6 +3,7 @@ package com.appttude.h_mal.days_left;
import android.app.Activity;
import android.util.Log;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -11,6 +12,7 @@ import com.appttude.h_mal.days_left.Objects.ShiftObject;
import com.appttude.h_mal.days_left.Objects.TaskObject;
import com.appttude.h_mal.days_left.Objects.TimeObject;
import com.firebase.ui.database.FirebaseListAdapter;
+import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.Query;
@@ -22,7 +24,7 @@ class FireAdapter extends FirebaseListAdapter {
String TAG = "FireAdapter";
- Query ref;
+ List shiftObjects;
/**
* @param activity The activity containing the ListView
@@ -36,8 +38,7 @@ class FireAdapter extends FirebaseListAdapter {
*/
public FireAdapter(Activity activity, Class modelClass, int modelLayout, Query ref) {
super(activity, modelClass, modelLayout, ref);
- this.ref = ref;
-
+ shiftObjects = new ArrayList<>();
}
@Override
@@ -97,6 +98,14 @@ class FireAdapter extends FirebaseListAdapter {
return getRef(i).getKey();
}
+ @Override
+ protected ShiftObject parseSnapshot(DataSnapshot snapshot) {
+ shiftObjects.add(snapshot.getValue(ShiftObject.class));
+ return super.parseSnapshot(snapshot);
+ }
+
+
+
private String getBreakTimeString(int breakMins){
float hoursFloat = breakMins/60;
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/FragmentHome.java b/app/src/main/java/com/appttude/h_mal/days_left/FragmentHome.java
index 81ee1fe..af4fd92 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/FragmentHome.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/FragmentHome.java
@@ -13,10 +13,13 @@ import com.appttude.h_mal.days_left.Objects.ShiftObject;
import com.appttude.h_mal.days_left.R;
import com.google.firebase.database.DatabaseReference;
+import java.util.ArrayList;
+
import static com.appttude.h_mal.days_left.Global.FirebaseClass.SHIFT_FIREBASE;
import static com.appttude.h_mal.days_left.Global.FirebaseClass.USER_FIREBASE;
import static com.appttude.h_mal.days_left.Global.FirebaseClass.auth;
import static com.appttude.h_mal.days_left.Global.FirebaseClass.mDatabase;
+import static com.appttude.h_mal.days_left.MainActivity.shiftsMap;
public class FragmentHome extends Fragment {
@@ -37,13 +40,16 @@ public class FragmentHome extends Fragment {
RecyclerView recyclerView = view.findViewById(R.id.recycler);
// recyclerView.setAdapter(new RecyclerViewAdapter(getContext()));
- DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(auth.getUid()).child(SHIFT_FIREBASE);
- reference.keepSynced(true);
+// DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(auth.getUid()).child(SHIFT_FIREBASE);
+// reference.keepSynced(true);
- recyclerView.setAdapter(new FireRecyclerAdapter(ShiftObject.class,R.layout.item_one,RecyclerView.ViewHolder.class,reference,getContext()));
+// recyclerView.setAdapter(new FireRecyclerAdapter(ShiftObject.class,R.layout.item_one,RecyclerView.ViewHolder.class,reference,getContext()));
+
+ RecyclerViewAdapter adapter = new RecyclerViewAdapter(getContext(),new ArrayList<>(shiftsMap.values()));
+ recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
-// recyclerView.setHasFixedSize(true);
+ recyclerView.setHasFixedSize(true);
return view;
}
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/FragmentList.java b/app/src/main/java/com/appttude/h_mal/days_left/FragmentList.java
index 85e1637..5d46972 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/FragmentList.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/FragmentList.java
@@ -110,6 +110,8 @@ public class FragmentList extends Fragment {
final String[] grpname = {"Name","Date Added","Date of shift"};
int checkedItem = -1;
+
+
AlertDialog.Builder alt_bld = new AlertDialog.Builder(getContext());
alt_bld.setTitle("Sort by:");
alt_bld.setSingleChoiceItems(grpname, checkedItem, new DialogInterface
@@ -117,13 +119,19 @@ public class FragmentList extends Fragment {
public void onClick(DialogInterface dialog, final int item) {
switch (item){
case 0:
- adapter = new FireAdapter(getActivity(), ShiftObject.class, R.layout.list_item, reference.orderByChild("abnObject/companyName"));
+ Query q1 = reference.orderByChild("abnObject/companyName")
+ .equalTo("GREEN CLOUD NURSERY");
+
+ q1.orderByChild("shiftDate")
+ .equalTo("2019-04-12");
+
+ adapter = new FireAdapter(getActivity(), ShiftObject.class, R.layout.list_item, q1);
break;
case 1:
- adapter = new FireAdapter(getActivity(), ShiftObject.class, R.layout.list_item, reference.orderByChild("shiftDate"));
+ adapter = new FireAdapter(getActivity(), ShiftObject.class, R.layout.list_item, reference.orderByChild("dateTimeAdded"));
break;
case 2:
- adapter = new FireAdapter(getActivity(), ShiftObject.class, R.layout.list_item, reference.orderByChild("dateTimeAdded"));
+ adapter = new FireAdapter(getActivity(), ShiftObject.class, R.layout.list_item, reference.orderByChild("shiftDate"));
break;
default:
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/FragmentTools.java b/app/src/main/java/com/appttude/h_mal/days_left/FragmentTools.java
index d4b5e57..929d0de 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/FragmentTools.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/FragmentTools.java
@@ -90,8 +90,6 @@ public class FragmentTools extends Fragment {
shiftObjectArrayList = new ArrayList<>();
mFunctions = FirebaseFunctions.getInstance();
-
-
}
@Override
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/Global/DateDialog.java b/app/src/main/java/com/appttude/h_mal/days_left/Global/DateDialog.java
index cc1286b..03212ba 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/Global/DateDialog.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/Global/DateDialog.java
@@ -114,10 +114,9 @@ public class DateDialog extends DatePickerDialog {
mMonth = month + 1;
mDay = dayOfMonth;
- editText.setText(String.format("%02d", mDay) + "/" +
- String.format("%02d", (mMonth)) +"/" +
- mYear
- );
+ String date = mYear + "-" + String.format("%02d", mMonth) + "-" + String.format("%02d", mDay);
+
+ editText.setText(date);
}
};
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/MainActivity.java b/app/src/main/java/com/appttude/h_mal/days_left/MainActivity.java
index 68b0786..df37632 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/MainActivity.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/MainActivity.java
@@ -51,7 +51,9 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -71,26 +73,28 @@ public class MainActivity extends AppCompatActivity {
private DatabaseReference reference;
public static List shiftObjectArrayList;
+ public static Map shiftsMap = new HashMap<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawer_main);
+ shiftObjectArrayList = new ArrayList<>();
+
toolbar = (Toolbar) findViewById(R.id.toolbar);
+ progressBar = (ProgressBar) findViewById(R.id.progressBar2);
+ FloatingActionButton fab = findViewById(R.id.fab);
+
setSupportActionBar(toolbar);
- FirebaseDatabase.getInstance().setPersistenceEnabled(true);
-
-// reference.addListenerForSingleValueEvent(valueEventListener);
-
fragmentManager = getSupportFragmentManager();
+ fragmentManager.addOnBackStackChangedListener(backStackChangedListener);
+ FirebaseDatabase.getInstance().setPersistenceEnabled(true);
+ reference = mDatabase.child(USER_FIREBASE).child(auth.getUid()).child(SHIFT_FIREBASE);
+ reference.addListenerForSingleValueEvent(new CustomValueEventListener(this,fragmentManager,progressBar));
- progressBar = (ProgressBar) findViewById(R.id.progressBar2);
- progressBar.setVisibility(View.GONE);
-
- FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -99,8 +103,6 @@ public class MainActivity extends AppCompatActivity {
}
});
- fragmentManager.addOnBackStackChangedListener(backStackChangedListener);
-
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
@@ -127,9 +129,6 @@ public class MainActivity extends AppCompatActivity {
}
});
- FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
- fragmentTransaction.replace(R.id.container,new FragmentHome()).commit();
-
setupDrawer();
parseXmlLayout();
@@ -138,28 +137,6 @@ public class MainActivity extends AppCompatActivity {
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
- ValueEventListener valueEventListener = new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull final DataSnapshot dataSnapshot) {
- for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
- shiftObjectArrayList.add(postSnapshot.getValue(ShiftObject.class));
- }
-
- if (shiftObjectArrayList.size() > 0){
-// FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
-// fragmentTransaction.replace(R.id.container,new FragmentHome()).commit();
- }else {
- Toast.makeText(MainActivity.this, "List Empty", Toast.LENGTH_SHORT).show();
- }
-
- }
-
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Toast.makeText(MainActivity.this, "Cancelled", Toast.LENGTH_SHORT).show();
- }
- };
-
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/MapListViewAdapter.java b/app/src/main/java/com/appttude/h_mal/days_left/MapListViewAdapter.java
new file mode 100644
index 0000000..0ff7c22
--- /dev/null
+++ b/app/src/main/java/com/appttude/h_mal/days_left/MapListViewAdapter.java
@@ -0,0 +1,36 @@
+package com.appttude.h_mal.days_left;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.Filter;
+import android.widget.Filterable;
+
+public class MapListViewAdapter extends BaseAdapter implements Filterable {
+
+
+ @Override
+ public int getCount() {
+ return 0;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return null;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return 0;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ return null;
+ }
+
+ @Override
+ public Filter getFilter() {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/Objects/ShiftObject.java b/app/src/main/java/com/appttude/h_mal/days_left/Objects/ShiftObject.java
index 626c09f..4369ea8 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/Objects/ShiftObject.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/Objects/ShiftObject.java
@@ -9,6 +9,7 @@ import com.appttude.h_mal.days_left.Login.LoginFragment;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.Comparator;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -76,4 +77,5 @@ public class ShiftObject {
this.dateTimeAdded = dt1.format(date);
}
+
}
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/RecyclerViewAdapter.java b/app/src/main/java/com/appttude/h_mal/days_left/RecyclerViewAdapter.java
index ff95592..1242af0 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/RecyclerViewAdapter.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/RecyclerViewAdapter.java
@@ -13,210 +13,308 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.appttude.h_mal.days_left.Objects.ShiftObject;
import com.appttude.h_mal.days_left.arc.ArcAnimation;
import com.appttude.h_mal.days_left.bar.BarAnimation;
import com.appttude.h_mal.days_left.arc.CircleView;
import com.appttude.h_mal.days_left.bar.BarView;
+import java.util.HashSet;
+import java.util.List;
+
public class RecyclerViewAdapter extends RecyclerView.Adapter {
-//
-// String TAG = "something";
-//
+
+ String TAG = "something";
+
private Context context;
-// private int dx;
-//
- public RecyclerViewAdapter(Context context) {
+ private List shiftObjectList;
+ private int uniqueEntries;
+ private int[] typeCount;
+
+ public RecyclerViewAdapter(Context context, List shiftObjectList) {
this.context = context;
+ this.shiftObjectList = shiftObjectList;
+ uniqueEntries = countDistinct();
+ typeCount = countShiftType();
}
-//
-// class ItemOne extends RecyclerView.ViewHolder {
-//
-// CircleView arc;
-// TextView days;
-//
-// public ItemOne(View itemView){
-// super(itemView);
-// arc = itemView.findViewById(R.id.arc_view);
-// days = itemView.findViewById(R.id.days_completed);
-// }
-// }
-//
-// class ItemTwo extends RecyclerView.ViewHolder {
-//
-// BarView barView;
-// LinearLayout linearLayout;
-//// LinearLayout textholder;
-//// LinearLayout bottomTextholder;
-//
-// public ItemTwo(View itemView){
-// super(itemView);
-//
-// barView = itemView.findViewById(R.id.bar);
-// linearLayout = itemView.findViewById(R.id.lin);
-//// textholder = itemView.findViewById(R.id.text_holder);
-//// bottomTextholder = itemView.findViewById(R.id.bottom_text_holder);
-//
-// }
-// }
-//
-// class ItemThree extends RecyclerView.ViewHolder {
-//
-// private TextView cardTitle;
-// private ImageView cardIcon;
-// private TextView units;
-// private TextView totalEarned;
-// private LinearLayout textholderTop;
-// private LinearLayout textholderBottom;
-//
-// public ItemThree(View itemView){
-// super(itemView);
-//
-// cardTitle = itemView.findViewById(R.id.card_title);
-// cardIcon = itemView.findViewById(R.id.card_icon);
-// units = itemView.findViewById(R.id.units);
-// totalEarned = itemView.findViewById(R.id.total_earned);
-// textholderTop = itemView.findViewById(R.id.text_holder);
-// textholderBottom = itemView.findViewById(R.id.text_holder_two);
-//
-// }
-// }
-//
+
+ class ItemOne extends RecyclerView.ViewHolder {
+
+ CircleView arc;
+ TextView days;
+
+ public ItemOne(View itemView){
+ super(itemView);
+ arc = itemView.findViewById(R.id.arc_view);
+ days = itemView.findViewById(R.id.days_completed);
+ }
+ }
+
+ class ItemTwo extends RecyclerView.ViewHolder {
+
+ BarView barView;
+ LinearLayout linearLayout;
+ TextView pcText;
+ TextView hrText;
+// LinearLayout textholder;
+// LinearLayout bottomTextholder;
+
+ public ItemTwo(View itemView){
+ super(itemView);
+
+ barView = itemView.findViewById(R.id.bar);
+ linearLayout = itemView.findViewById(R.id.lin);
+ pcText = itemView.findViewById(R.id.pc_amount_text);
+ hrText = itemView.findViewById(R.id.hr_amount_text);
+// textholder = itemView.findViewById(R.id.text_holder);
+// bottomTextholder = itemView.findViewById(R.id.bottom_text_holder);
+
+ }
+ }
+
+ class ItemThree extends RecyclerView.ViewHolder {
+
+ private TextView cardTitle;
+ private ImageView cardIcon;
+ private TextView units;
+ private TextView totalEarned;
+ private LinearLayout textholderTop;
+ private LinearLayout textholderBottom;
+
+ public ItemThree(View itemView){
+ super(itemView);
+
+ cardTitle = itemView.findViewById(R.id.card_title);
+ cardIcon = itemView.findViewById(R.id.card_icon);
+ units = itemView.findViewById(R.id.units);
+ totalEarned = itemView.findViewById(R.id.total_earned);
+ textholderTop = itemView.findViewById(R.id.text_holder);
+ textholderBottom = itemView.findViewById(R.id.text_holder_two);
+
+ }
+ }
+
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
-// switch (i) {
-// case 1:
-// final View itemOne = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_one, viewGroup, false);
-// return new ItemOne(itemOne);
-// case 2:
-// final View itemTwo = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_two, viewGroup, false);
-// return new ItemTwo(itemTwo);
-// case 3:
-// final View itemThree = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_three, viewGroup, false);
-// return new ItemThree(itemThree);
-// }
-//
+ switch (i) {
+ case 1:
+ final View itemOne = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_one, viewGroup, false);
+ return new ItemOne(itemOne);
+ case 2:
+ final View itemTwo = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_two, viewGroup, false);
+ return new ItemTwo(itemTwo);
+ case 3:
+ final View itemThree = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_three, viewGroup, false);
+ return new ItemThree(itemThree);
+ }
+
return null;
}
-//
+
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int i) {
-//
-// switch (holder.getItemViewType()) {
-// case 1:
-// final ItemOne viewHolderCurrent = (ItemOne) holder;
-//
-// CircleView arcView = viewHolderCurrent.arc;
-// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-// arcView.setPaintColor(context.getColor(R.color.two));
-// }
-//
-// int days = 76;
-//
-// int complete = (360 * days)/88;
-//
-// viewHolderCurrent.days.setText(String.valueOf(days));
-//
-// ArcAnimation animation = new ArcAnimation(arcView, complete);
-// animation.setDuration(600);
-// arcView.startAnimation(animation);
-//
-// break;
-// case 2:
-// final ItemTwo viewTwo = (ItemTwo) holder;
-//
-// final BarView barView = viewTwo.barView;
-// final LinearLayout linearLayout = viewTwo.linearLayout;
-//
-// barView.setCover(0.56f);
-//
-// barView.setColourOne(context.getResources().getColor(R.color.four));
-// barView.setColourTwo(context.getResources().getColor(R.color.three));
-//
-//// viewTwo.textholder.setPadding(60,0,60,0);
-//// viewTwo.bottomTextholder.setPadding(60,0,60,0);
-//
-// linearLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
-// @Override
-// public void onGlobalLayout() {
-// Log.i(TAG, "onGlobalLayout: " + linearLayout.getWidth());
-//
-// BarAnimation barAnimation = new BarAnimation(barView, linearLayout.getWidth(), 0);
-// barAnimation.setDuration(600);
-// barView.setAnimation(barAnimation);
-// linearLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
-// }
-// });
-//
-// break;
-//
-// case 3:
-// final ItemThree viewCounting = (ItemThree) holder;
-//
-// TextView cardTitle = viewCounting.cardTitle;
-// ImageView cardIcon = viewCounting.cardIcon;
-// TextView units = viewCounting.units;
-// TextView totalEarned = viewCounting.totalEarned;
-// LinearLayout top = viewCounting.textholderTop;
-// LinearLayout bottom = viewCounting.textholderBottom;
-//
-//// top.setPadding(60,0,60,0);
-//// bottom.setPadding(60,0,60,0);
-//// cardIcon.setPadding(0,0,10,0);
-//
-// if (i == 2){
-// cardTitle.setText("Hourly");
-// cardIcon.setImageResource(R.drawable.clock_icon);
-// units.setText("296" + "Hours");
-// totalEarned.setText("$" + "907.53");
-// }
-// if (i == 3){
-// cardTitle.setText("Piece");
-// cardTitle.setTextColor(context.getResources().getColor(R.color.three));
-// cardIcon.setImageResource(R.drawable.piece);
-// cardIcon.setRotation(270);
-// units.setText("180" + "Pcs");
-// totalEarned.setText("$" + "67.53");
-// }
-// if (i == 4){
-// cardTitle.setVisibility(View.GONE);
-// cardIcon.setVisibility(View.GONE);
-//
-// totalEarned.setText("$" + "974.53");
-//
-// viewCounting.textholderTop.setVisibility(View.GONE);
-// }
-// }
+
+ switch (holder.getItemViewType()) {
+ case 1:
+ final ItemOne viewHolderCurrent = (ItemOne) holder;
+
+ CircleView arcView = viewHolderCurrent.arc;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ arcView.setPaintColor(context.getColor(R.color.two));
+ }
+
+ int days = uniqueEntries;
+
+ int complete = (360 * days)/88;
+
+ viewHolderCurrent.days.setText(String.valueOf(days));
+
+ ArcAnimation animation = new ArcAnimation(arcView, complete);
+ animation.setDuration(600);
+ arcView.startAnimation(animation);
+
+ break;
+ case 2:
+ final ItemTwo viewTwo = (ItemTwo) holder;
+
+ final BarView barView = viewTwo.barView;
+ final LinearLayout linearLayout = viewTwo.linearLayout;
+
+ float cover = (float) typeCount[1]/shiftObjectList.size();
+
+ barView.setCover(cover);
+
+ barView.setColourOne(context.getResources().getColor(R.color.four));
+ barView.setColourTwo(context.getResources().getColor(R.color.three));
+
+ viewTwo.pcText.setText(String.valueOf(typeCount[1]));
+ viewTwo.hrText.setText(String.valueOf(typeCount[0]));
+
+// viewTwo.textholder.setPadding(60,0,60,0);
+// viewTwo.bottomTextholder.setPadding(60,0,60,0);
+
+ linearLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ Log.i(TAG, "onGlobalLayout: " + linearLayout.getWidth());
+
+ BarAnimation barAnimation = new BarAnimation(barView, linearLayout.getWidth(), 0);
+ barAnimation.setDuration(600);
+ barView.setAnimation(barAnimation);
+ linearLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+ }
+ });
+
+ break;
+
+ case 3:
+ final ItemThree viewCounting = (ItemThree) holder;
+
+ TextView cardTitle = viewCounting.cardTitle;
+ ImageView cardIcon = viewCounting.cardIcon;
+ TextView units = viewCounting.units;
+ TextView totalEarned = viewCounting.totalEarned;
+ LinearLayout top = viewCounting.textholderTop;
+ LinearLayout bottom = viewCounting.textholderBottom;
+
+// top.setPadding(60,0,60,0);
+// bottom.setPadding(60,0,60,0);
+// cardIcon.setPadding(0,0,10,0);
+
+ if (i == 2){
+ cardTitle.setText("Hourly");
+ cardIcon.setImageResource(R.drawable.clock_icon);
+ String hours = String.format("%.2f", calculateHours());
+ units.setText(hours + " Hours");
+
+ String total = String.format("%.2f", calculateAccumulatedPay(0));
+ totalEarned.setText("$" + total);
+ }
+ if (i == 3){
+ cardTitle.setText("Piece");
+ cardTitle.setTextColor(context.getResources().getColor(R.color.three));
+ cardIcon.setImageResource(R.drawable.piece);
+ cardIcon.setRotation(270);
+ String pieces = String.format("%.2f", calculateUnits());
+ units.setText(pieces + " Units");
+ String total = String.format("%.2f", calculateAccumulatedPay(1));
+ totalEarned.setText("$" + total);
+ }
+ if (i == 4){
+ cardTitle.setVisibility(View.GONE);
+ cardIcon.setVisibility(View.GONE);
+
+ String total = String.format("%.2f", calculateAccumulatedPay(3));
+ totalEarned.setText("$" + total);
+
+ viewCounting.textholderTop.setVisibility(View.GONE);
+ }
+ }
}
-//
+
@Override
public int getItemCount() {
return 5;
}
-//
-// @Override
-// public int getItemViewType(int position) {
-// int type = 0;
-//
-// switch (position){
-// case 0:
-// type = 1;
-// break;
-// case 1:
-// type = 2;
-// break;
-// case 2:
-// type = 3;
-// break;
-// case 3:
-// type = 3;
-// break;
-// case 4:
-// type = 3;
-// break;
-// }
-//
-// return type;
-// }
+
+ @Override
+ public int getItemViewType(int position) {
+ int type = 0;
+
+ switch (position){
+ case 0:
+ type = 1;
+ break;
+ case 1:
+ type = 2;
+ break;
+ case 2:
+ type = 3;
+ break;
+ case 3:
+ type = 3;
+ break;
+ case 4:
+ type = 3;
+ break;
+ }
+
+ return type;
+ }
+
+ private int countDistinct() {
+ HashSet hs = new HashSet<>();
+
+ for(int i = 0; i < shiftObjectList.size(); i++) {
+
+ hs.add(shiftObjectList.get(i).getShiftDate());
+ }
+
+ return hs.size();
+ }
+
+ private int[] countShiftType(){
+ int i = 0;
+ int j = 0;
+
+ for (ShiftObject shiftObject : shiftObjectList){
+ if (shiftObject.getTaskObject().getWorkType().equals("Hourly")){
+ i++;
+ }else {
+ j++;
+ }
+ }
+
+ return new int[]{i,j};
+ }
+
+ private float calculateHours(){
+ float hours = 0;
+ for (ShiftObject shiftObject : shiftObjectList){
+ if (shiftObject.getTaskObject().getWorkType().equals("Hourly")){
+ hours = hours + shiftObject.getTimeObject().getHours() - shiftObject.getTimeObject().getBreakEpoch();
+ }
+ }
+
+ return hours;
+ }
+
+ private float calculateUnits(){
+ float units = 0;
+ for (ShiftObject shiftObject : shiftObjectList){
+ if (shiftObject.getTaskObject().getWorkType().equals("Piece Rate")){
+ units = units + shiftObject.getUnitsCount();
+ }
+ }
+
+ return units;
+ }
+
+ private float calculateAccumulatedPay(int type){
+ float pay = 0;
+
+ for (ShiftObject shiftObject : shiftObjectList){
+ if (type == 0){
+ if (shiftObject.getTaskObject().getWorkType().equals("Hourly")){
+ pay = pay + (shiftObject.getTaskObject().getRate() *
+ (shiftObject.getTimeObject().getHours() - shiftObject.getTimeObject().getBreakEpoch()));
+ }
+ }else if (type == 1){
+ if (shiftObject.getTaskObject().getWorkType().equals("Piece Rate")){
+ pay = pay + (shiftObject.getTaskObject().getRate() * shiftObject.getUnitsCount());
+ }
+ }else {
+ if (shiftObject.getTaskObject().getWorkType().equals("Hourly")){
+ pay = pay + (shiftObject.getTaskObject().getRate() *
+ (shiftObject.getTimeObject().getHours() - shiftObject.getTimeObject().getBreakEpoch()));
+ }else {
+ pay = pay + (shiftObject.getTaskObject().getRate() * shiftObject.getUnitsCount());
+ }
+ }
+ }
+
+ return pay;
+ }
}
diff --git a/app/src/main/java/com/appttude/h_mal/days_left/ShiftListViewAdapter.java b/app/src/main/java/com/appttude/h_mal/days_left/ShiftListViewAdapter.java
index 0cc4be8..887b615 100644
--- a/app/src/main/java/com/appttude/h_mal/days_left/ShiftListViewAdapter.java
+++ b/app/src/main/java/com/appttude/h_mal/days_left/ShiftListViewAdapter.java
@@ -7,9 +7,11 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
+import android.widget.Filter;
import android.widget.LinearLayout;
import android.widget.TextView;
+import java.util.ArrayList;
import java.util.List;
import com.appttude.h_mal.days_left.Objects.ShiftObject;
@@ -108,4 +110,37 @@ public class ShiftListViewAdapter extends ArrayAdapter {
return s;
}
+
+ private class ValueFilter extends Filter {
+
+ @Override
+ protected FilterResults performFiltering(CharSequence constraint) {
+ FilterResults results = new FilterResults();
+
+// if (constraint != null && constraint.length() > 0) {
+// ArrayList filterList = new ArrayList<>();
+// for (int i = 0; i < mStringFilterList.size(); i++) {
+// if ((mStringFilterList.get(i).getBabyname().toUpperCase())
+// .contains(constraint.toString().toUpperCase())) {
+// BabyDetailsData babydata = new BabyDetailsData(mStringFilterList.get(i)
+// .getBabyname(), mStringFilterList.get(i)
+// .getBabypicture());
+// filterList.add(babydata);
+// }
+// }
+// results.count = filterList.size();
+// results.values = filterList;
+// } else {
+// results.count = mStringFilterList.size();
+// results.values = mStringFilterList;
+// }
+ return results;
+ }
+ @Override
+ protected void publishResults(CharSequence constraint,
+ FilterResults results) {
+// babylist = (ArrayList) results.values;
+ notifyDataSetChanged();
+ }
+ }
}
diff --git a/app/src/main/res/layout/item_two.xml b/app/src/main/res/layout/item_two.xml
index 83ebbf7..42a6425 100644
--- a/app/src/main/res/layout/item_two.xml
+++ b/app/src/main/res/layout/item_two.xml
@@ -87,6 +87,7 @@
android:text="Piece Rate" />