Android Open Source - EverToDo Task Io






From Project

Back to project page EverToDo.

License

The source code is released under:

GNU General Public License

If you think the Android project EverToDo 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

/**
 *//  www.j  ava2  s .  c  o  m
 * Todo.txt Touch/src/com/todotxt/todotxttouch/task/TaskIo.java
 *
 * Copyright (c) 2011 Tim Barlotta
 *
 * LICENSE:
 *
 * This file is part of Todo.txt Touch, an Android app for managing your todo.txt file (http://todotxt.com).
 *
 * Todo.txt Touch is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
 * later version.
 *
 * Todo.txt Touch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with Todo.txt Touch.  If not, see
 * <http://www.gnu.org/licenses/>.
 *
 * @author Tim Barlotta <tim[at]barlotta[dot]net>
 * @license http://www.gnu.org/licenses/gpl.html
 * @copyright 2011 Tim Barlotta
 */

package com.todotxt.todotxttouch.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import android.util.Log;

import com.todotxt.todotxttouch.task.Task;

/**
 * A utility class for performing Task level I/O
 * 
 * @author Tim Barlotta
 */
public class TaskIo {
  private final static String TAG = TaskIo.class.getSimpleName();

  public static ArrayList<Task> loadTasksFromStream(InputStream is)
      throws IOException {
    ArrayList<Task> items = new ArrayList<Task>();
    BufferedReader in = null;
    try {
      in = new BufferedReader(new InputStreamReader(is));
      String line;
      long counter = 0L;
      while ((line = in.readLine()) != null) {
        line = line.trim();
        if (line.length() > 0) {
          items.add(new Task(counter, line));
        }
        counter++;
      }
    } finally {
      Util.closeStream(in);
      Util.closeStream(is);
    }
    return items;
  }

  public static ArrayList<Task> loadTasksFromFile(File file)
      throws IOException {
    ArrayList<Task> items = new ArrayList<Task>();
    BufferedReader in = null;
    if (!file.exists()) {
      Log.w(TAG, file.getAbsolutePath() + " does not exist!");
    } else {
      InputStream is = new FileInputStream(file);
      try {
        in = new BufferedReader(new InputStreamReader(is));
        String line;
        long counter = 0L;
        while ((line = in.readLine()) != null) {
          line = line.trim();
          if (line.length() > 0) {
            items.add(new Task(counter, line));
          }
          counter++;
        }
      } finally {
        Util.closeStream(in);
        Util.closeStream(is);
      }
    }
    return items;
  }

  public static void writeToFile(List<Task> tasks, File file,
      boolean useWindowsBreaks) {
    try {
      if (!Util.isDeviceWritable()) {
        throw new IOException("Device is not writable!");
      }
      Util.createParentDirectory(file);
      FileWriter fw = new FileWriter(file);
      for (int i = 0; i < tasks.size(); ++i) {
        String fileFormat = tasks.get(i).inFileFormat();
        fw.write(fileFormat);
        if (useWindowsBreaks) {
          // Log.v(TAG, "Using Windows line breaks");
          fw.write("\r\n");
        } else {
          // Log.v(TAG, "NOT using Windows line breaks");
          fw.write("\n");
        }
      }
      fw.close();
    } catch (Exception e) {
      Log.e(TAG, e.getMessage());
    }
  }
}




Java Source Code List

com.todotxt.todotxttouch.AddTask.java
com.todotxt.todotxttouch.Constants.java
com.todotxt.todotxttouch.Filter.java
com.todotxt.todotxttouch.HelpActivity.java
com.todotxt.todotxttouch.LoginScreen.java
com.todotxt.todotxttouch.Preferences.java
com.todotxt.todotxttouch.TodoApplication.java
com.todotxt.todotxttouch.TodoException.java
com.todotxt.todotxttouch.TodoTxtTouch.java
com.todotxt.todotxttouch.remote.Client.java
com.todotxt.todotxttouch.remote.DropboxFileRemoteException.java
com.todotxt.todotxttouch.remote.DropboxLoginAsyncTask.java
com.todotxt.todotxttouch.remote.DropboxRemoteClient.java
com.todotxt.todotxttouch.remote.LocalClient.java
com.todotxt.todotxttouch.remote.RemoteClientManager.java
com.todotxt.todotxttouch.remote.RemoteClient.java
com.todotxt.todotxttouch.remote.RemoteException.java
com.todotxt.todotxttouch.remote.RemoteLoginTask.java
com.todotxt.todotxttouch.task.AndFilter.java
com.todotxt.todotxttouch.task.ByContextFilter.java
com.todotxt.todotxttouch.task.ByPriorityFilter.java
com.todotxt.todotxttouch.task.ByProjectFilter.java
com.todotxt.todotxttouch.task.ByTextFilter.java
com.todotxt.todotxttouch.task.ContextParser.java
com.todotxt.todotxttouch.task.FilterFactory.java
com.todotxt.todotxttouch.task.Filter.java
com.todotxt.todotxttouch.task.LocalFileTaskRepository.java
com.todotxt.todotxttouch.task.LocalTaskRepository.java
com.todotxt.todotxttouch.task.OrFilter.java
com.todotxt.todotxttouch.task.PriorityTextSplitter.java
com.todotxt.todotxttouch.task.Priority.java
com.todotxt.todotxttouch.task.ProjectParser.java
com.todotxt.todotxttouch.task.Sort.java
com.todotxt.todotxttouch.task.TaskBagFactory.java
com.todotxt.todotxttouch.task.TaskBagImpl.java
com.todotxt.todotxttouch.task.TaskBag.java
com.todotxt.todotxttouch.task.TaskPersistException.java
com.todotxt.todotxttouch.task.Task.java
com.todotxt.todotxttouch.task.TextSplitter.java
com.todotxt.todotxttouch.util.CursorPositionCalculator.java
com.todotxt.todotxttouch.util.RelativeDate.java
com.todotxt.todotxttouch.util.Strings.java
com.todotxt.todotxttouch.util.TaskIo.java
com.todotxt.todotxttouch.util.Util.java