// Path: app/src/main/java/ca/rmen/android/scrumchatter/provider/MemberCursorWrapper.java
// public class MemberCursorWrapper extends CursorWrapper {
//     private final HashMap<String, Integer> mColumnIndexes = new HashMap<>();
// 
//     public MemberCursorWrapper(Cursor cursor) {
//         super(cursor);
//     }
// 
//     public Long getId() {
//         Integer index = getColumnIndex(MemberColumns._ID);
//         if (isNull(index)) return null;
//         return getLong(index);
//     }
// 
//     public String getName() {
//         Integer index = getIndex(MemberColumns.NAME);
//         return getString(index);
//     }
// 
//     public Integer getAverageDuration() {
//         Integer index = getIndex(MemberStatsColumns.AVG_DURATION);
//         return getInt(index);
//     }
// 
//     public Integer getSumDuration() {
//         Integer index = getIndex(MemberStatsColumns.SUM_DURATION);
//         return getInt(index);
//     }
// 
//     private Integer getIndex(String columnName) {
//         Integer index = mColumnIndexes.get(columnName);
//         if (index == null) {
//             index = getColumnIndexOrThrow(columnName);
//             mColumnIndexes.put(columnName, index);
//         }
//         return index;
//     }
// }
// 
// Path: app/src/main/java/ca/rmen/android/scrumchatter/util/TextUtils.java
// public class TextUtils {
//     public static String formatDateTime(Context context, long dateMillis) {
//         return DateUtils.formatDateTime(context, dateMillis, DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME);
//     }
// 
//     public static String formatDate(Context context, long dateMillis) {
//         return DateUtils.formatDateTime(context, dateMillis, DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL |DateUtils.FORMAT_NUMERIC_DATE);
//     }
// 
// }


import ca.rmen.android.scrumchatter.provider.MemberCursorWrapper;
import ca.rmen.android.scrumchatter.util.TextUtils;
import lecho.lib.hellocharts.gesture.ZoomType;
import lecho.lib.hellocharts.model.PieChartData;
import lecho.lib.hellocharts.model.SliceValue;
import lecho.lib.hellocharts.view.PieChartView;
import android.content.Context;
import android.database.Cursor;
import android.support.annotation.NonNull;
import android.text.format.DateUtils;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import ca.rmen.android.scrumchatter.databinding.PieChartContentBinding;
        MemberCursorWrapper cursorWrapper = new MemberCursorWrapper(cursor);
        while (cursorWrapper.moveToNext()) {
            String memberName = cursorWrapper.getName();

            sliceValuesAvgSpeakingTime.add(createPieChartSlice(
                    context,
                    cursorWrapper.getAverageDuration(),
                    cursorWrapper.getId(),
                    memberName));

            sliceValuesTotalSpeakingTime.add(createPieChartSlice(
                    context,
                    cursorWrapper.getSumDuration(),
                    cursorWrapper.getId(),
                    memberName));
        }
        cursor.moveToPosition(-1);

        setupChart(context, pieChartAvgBinding, sliceValuesAvgSpeakingTime);
        setupChart(context, pieChartTotalBinding, sliceValuesTotalSpeakingTime);

    }

    static void updateMeetingDateRanges(Context context,
                                        TextView tvPieChartAvgSubtitle,
                                        TextView tvPieChartTotalSubtitle,
                                        Cursor cursor) {
        if (cursor.moveToFirst()) {
            long minDate = cursor.getLong(0);
            long maxDate = cursor.getLong(1);
// Path: app/src/main/java/ca/rmen/android/scrumchatter/provider/MemberCursorWrapper.java
// public class MemberCursorWrapper extends CursorWrapper {
//     private final HashMap<String, Integer> mColumnIndexes = new HashMap<>();
// 
//     public MemberCursorWrapper(Cursor cursor) {
//         super(cursor);
//     }
// 
//     public Long getId() {
//         Integer index = getColumnIndex(MemberColumns._ID);
//         if (isNull(index)) return null;
//         return getLong(index);
//     }
// 
//     public String getName() {
//         Integer index = getIndex(MemberColumns.NAME);
//         return getString(index);
//     }
// 
//     public Integer getAverageDuration() {
//         Integer index = getIndex(MemberStatsColumns.AVG_DURATION);
//         return getInt(index);
//     }
// 
//     public Integer getSumDuration() {
//         Integer index = getIndex(MemberStatsColumns.SUM_DURATION);
//         return getInt(index);
//     }
// 
//     private Integer getIndex(String columnName) {
//         Integer index = mColumnIndexes.get(columnName);
//         if (index == null) {
//             index = getColumnIndexOrThrow(columnName);
//             mColumnIndexes.put(columnName, index);
//         }
//         return index;
//     }
// }
// 
// Path: app/src/main/java/ca/rmen/android/scrumchatter/util/TextUtils.java
// public class TextUtils {
//     public static String formatDateTime(Context context, long dateMillis) {
//         return DateUtils.formatDateTime(context, dateMillis, DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME);
//     }
// 
//     public static String formatDate(Context context, long dateMillis) {
//         return DateUtils.formatDateTime(context, dateMillis, DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL |DateUtils.FORMAT_NUMERIC_DATE);
//     }
// 
// }


// Path: app/src/main/java/ca/rmen/android/scrumchatter/chart/MemberSpeakingTimePieChart.java
import ca.rmen.android.scrumchatter.provider.MemberCursorWrapper;
import ca.rmen.android.scrumchatter.util.TextUtils;
import lecho.lib.hellocharts.gesture.ZoomType;
import lecho.lib.hellocharts.model.PieChartData;
import lecho.lib.hellocharts.model.SliceValue;
import lecho.lib.hellocharts.view.PieChartView;
import android.content.Context;
import android.database.Cursor;
import android.support.annotation.NonNull;
import android.text.format.DateUtils;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import ca.rmen.android.scrumchatter.databinding.PieChartContentBinding;

        MemberCursorWrapper cursorWrapper = new MemberCursorWrapper(cursor);
        while (cursorWrapper.moveToNext()) {
            String memberName = cursorWrapper.getName();

            sliceValuesAvgSpeakingTime.add(createPieChartSlice(
                    context,
                    cursorWrapper.getAverageDuration(),
                    cursorWrapper.getId(),
                    memberName));

            sliceValuesTotalSpeakingTime.add(createPieChartSlice(
                    context,
                    cursorWrapper.getSumDuration(),
                    cursorWrapper.getId(),
                    memberName));
        }
        cursor.moveToPosition(-1);

        setupChart(context, pieChartAvgBinding, sliceValuesAvgSpeakingTime);
        setupChart(context, pieChartTotalBinding, sliceValuesTotalSpeakingTime);

    }

    static void updateMeetingDateRanges(Context context,
                                        TextView tvPieChartAvgSubtitle,
                                        TextView tvPieChartTotalSubtitle,
                                        Cursor cursor) {
        if (cursor.moveToFirst()) {
            long minDate = cursor.getLong(0);
            long maxDate = cursor.getLong(1);
            String minDateStr = TextUtils.formatDate(context, minDate);