Skip to content
Open

HW6 #17

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ android {
buildToolsVersion "23.0.2"

defaultConfig {
applicationId "com.csc.lesson6"
applicationId "ru.ppzh.todolist"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
Expand Down
10 changes: 6 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.csc.lesson6">
package="ru.ppzh.todolist">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Expand All @@ -18,11 +18,13 @@
</intent-filter>
</activity>

<activity android:name=".TaskEditActivity"/>

<provider
android:name=".ReaderContentProvider"
android:authorities="com.csc.lesson6"
android:name=".ToDoListContentProvider"
android:authorities="ru.ppzh.todolist.provider"
android:enabled="true"
android:exported="true"></provider>
android:exported="false"/>
</application>

</manifest>
11 changes: 0 additions & 11 deletions app/src/main/java/com/csc/lesson6/FeedsTable.java

This file was deleted.

58 changes: 0 additions & 58 deletions app/src/main/java/com/csc/lesson6/MainActivity.java

This file was deleted.

44 changes: 0 additions & 44 deletions app/src/main/java/com/csc/lesson6/ReaderOpenHelper.java

This file was deleted.

94 changes: 94 additions & 0 deletions app/src/main/java/ru/ppzh/todolist/MainActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package ru.ppzh.todolist;

import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class MainActivity extends AppCompatActivity
implements LoaderManager.LoaderCallbacks<Cursor> {
public static final String TASK_ID_EXTRA =
"ru.ppzh.dotolist.task_id";
public static final String DATE_FORMAT = "EEE, d MMM yyyy HH:mm";
public static final String SORT_ORDER = TasksTable.COLUMN_COMPLETED + ", "
+ TasksTable.COLUMN_FAVORITE + " DESC, "
+ TasksTable.COLUMN_DATE + " DESC";

public static final Uri TASKS_URI = Uri.withAppendedPath(ToDoListContentProvider.CONTENT_URI, "tasks");

TaskCursorAdapter adapter;

ListView list;
EditText taskInput;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

adapter = new TaskCursorAdapter(this, null);

list = (ListView) findViewById(R.id.listView);
list.setAdapter(adapter);

taskInput = (EditText) findViewById(R.id.task_text_input);

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(getApplicationContext(), TaskEditActivity.class);
i.putExtra(TASK_ID_EXTRA, id);
startActivity(i);
}
});

getSupportLoaderManager().initLoader(0, null, this);
}

public void addData(View view) {
ContentValues values = new ContentValues();
SimpleDateFormat format =
new SimpleDateFormat(DATE_FORMAT, Locale.getDefault());
values.put(
TasksTable.COLUMN_TEXT,
taskInput.getText().toString()
);
values.put(TasksTable.COLUMN_DATE,
format.format(new Date()));
values.put(TasksTable.COLUMN_COMPLETED,
"False");
values.put(TasksTable.COLUMN_FAVORITE,
"False");
getContentResolver().insert(
TASKS_URI,
values);
}

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(this, TASKS_URI, null, null, null, SORT_ORDER);
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
adapter.swapCursor(new TaskCursor(data));
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
adapter.swapCursor(null);
}
}
87 changes: 87 additions & 0 deletions app/src/main/java/ru/ppzh/todolist/Task.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package ru.ppzh.todolist;


import android.support.annotation.NonNull;

import java.util.Date;


public class Task implements Comparable<Task> {
private long id;
private boolean completed;
private boolean favorite;
private String text;
private String date;

Task() {
id = -1;
completed = false;
favorite = false;
this.text = "";
date = new Date().toString();
}

Task(String text) {
this();
this.text = text;
}

@Override
public int compareTo(@NonNull Task o) {
if (!completed == o.completed) {
return 1;
}
if (completed == !o.completed) {
return -1;
}
if (completed == o.completed) {
if (favorite == !o.favorite) {
return 1;
}
if (!favorite == o.favorite) {
return -1;
}
}
return date.compareTo(o.date);
}

public boolean isCompleted() {
return completed;
}

public void setCompleted(boolean completed) {
this.completed = completed;
}

public String getDate() {
return date;
}

public void setDate(String date) {
this.date = date;
}

public boolean isFavorite() {
return favorite;
}

public void setFavorite(boolean favorite) {
this.favorite = favorite;
}

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}
}
27 changes: 27 additions & 0 deletions app/src/main/java/ru/ppzh/todolist/TaskCursor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package ru.ppzh.todolist;

import android.database.Cursor;
import android.database.CursorWrapper;

public class TaskCursor extends CursorWrapper {
public TaskCursor(Cursor cursor) {
super(cursor);
}

public Task getTask() {
if (isBeforeFirst() || isAfterLast()) {
return null;
}
Task task = new Task();
task.setId(getLong(getColumnIndex(TasksTable._ID)));
task.setText(getString(getColumnIndex(TasksTable.COLUMN_TEXT)));
task.setDate(getString(getColumnIndex(TasksTable.COLUMN_DATE)));
task.setCompleted(Boolean.parseBoolean(
getString(getColumnIndex(TasksTable.COLUMN_COMPLETED))
));
task.setFavorite(Boolean.parseBoolean(
getString(getColumnIndex(TasksTable.COLUMN_FAVORITE))
));
return task;
}
}
Loading