Android Open Source - GPA Task List Adapter






From Project

Back to project page GPA.

License

The source code is released under:

Apache License

If you think the Android project GPA listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.bishal.android.taskmanager.adapters;
/* ww  w .  java2  s . c o m*/
import java.util.ArrayList;

import android.content.Context;
import android.location.Location;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.bishal.android.taskmanager.R;
import com.bishal.android.taskmanager.tasks.Task;
import com.bishal.android.taskmanager.views.TaskListItem;

public class TaskListAdapter extends BaseAdapter {
  
  private ArrayList<Task> filteredTasks;
  private ArrayList<Task> unfilteredTasks;
  private ArrayList<Task> tasks;
  private Context context;

  public TaskListAdapter(Context context, ArrayList<Task> tasks) {
    this.tasks = tasks;
    this.unfilteredTasks = tasks;
    this.context = context;
  }

  public int getCount() {
    return tasks.size();
  }

  public Task getItem(int position) {
    return (null == tasks) ? null : tasks.get(position);
  }

  public long getItemId(int position) {
    return position;
  }

  public View getView(int position, View convertView, ViewGroup parent) {
    TaskListItem tli;
    if (null == convertView) {
      tli = (TaskListItem)View.inflate(context, R.layout.task_list_item, null);
    } else {
      tli = (TaskListItem)convertView;
    }
    tli.setTask(tasks.get(position));
    return tli;
  }

  public void forceReload() {
    notifyDataSetChanged();
  }

  public void toggleTaskCompleteAtPosition(int position) {
    Task task = getItem(position);
    task.toggleComplete();
    notifyDataSetChanged();
  }

  public Long[] removeCompletedTasks() {
    ArrayList<Task> completedTasks = new ArrayList<Task>();
    ArrayList<Long> completedIds = new ArrayList<Long>();
    for (Task task : tasks) {
      if (task.isComplete()) {
        completedIds.add(task.getId());
        completedTasks.add(task);
      }
    }
    tasks.removeAll(completedTasks);
    notifyDataSetChanged();
    return completedIds.toArray(new Long[]{});
  }
  
  public void filterTasksByLocation(Location location, long distance) {
    filteredTasks = new ArrayList<Task>();
    for (Task task : tasks) {
      if (task.hasLocation() && taskIsWithinGeofence(task, location, distance)) {
        filteredTasks.add(task);
      }
    }
    tasks = filteredTasks;
    notifyDataSetChanged();
  }

  private boolean taskIsWithinGeofence(Task task, Location location, long distance) {
    float[] distanceArray = new float[1];
    Location.distanceBetween(
        task.getLatitude(),
        task.getLongitude(),
        location.getLatitude(),
        location.getLongitude(),
        distanceArray
      );
    return (distanceArray[0] < distance);
  }

  public void removeLocationFilter() {
    tasks = unfilteredTasks;
    notifyDataSetChanged();
  }

}




Java Source Code List

com.bishal.android.taskmanager.ACCOUNT_INFO.java
com.bishal.android.taskmanager.ADD_TASK.java
com.bishal.android.taskmanager.AddLocationMapActivity.java
com.bishal.android.taskmanager.AddTaskActivity.java
com.bishal.android.taskmanager.AlarmActivity.java
com.bishal.android.taskmanager.AlertDialogManager.java
com.bishal.android.taskmanager.AndroidAlarmService.java
com.bishal.android.taskmanager.CURRENT_LOCATION.java
com.bishal.android.taskmanager.DB_ADAPTER.java
com.bishal.android.taskmanager.DbHelper.java
com.bishal.android.taskmanager.GPA_HOME.java
com.bishal.android.taskmanager.GPS_FIELD.java
com.bishal.android.taskmanager.GPS_INFO.java
com.bishal.android.taskmanager.LOGIN.java
com.bishal.android.taskmanager.MyAlarmService.java
com.bishal.android.taskmanager.SCHEDULES.java
com.bishal.android.taskmanager.SEARCHING_PLACES.java
com.bishal.android.taskmanager.SIGNUP.java
com.bishal.android.taskmanager.Search_Education.java
com.bishal.android.taskmanager.Search_Hospital.java
com.bishal.android.taskmanager.SpecifyTime.java
com.bishal.android.taskmanager.TaskManagerActivity.java
com.bishal.android.taskmanager.TaskManagerApplication.java
com.bishal.android.taskmanager.ViewTasksActivity.java
com.bishal.android.taskmanager.YourAlarmService.java
com.bishal.android.taskmanager.adapters.TaskListAdapter.java
com.bishal.android.taskmanager.tasks.Task.java
com.bishal.android.taskmanager.tasks.TasksSQLiteOpenHelper.java
com.bishal.android.taskmanager.views.AddressOverlay.java
com.bishal.android.taskmanager.views.TaskListItem.java