Программа «Task Manager»


Скачать 443.6 Kb.
Название Программа «Task Manager»
страница 5/6
Тип Программа
rykovodstvo.ru > Руководство эксплуатация > Программа
1   2   3   4   5   6

long id) {
try {
TextView textView = (TextView) itemClicked;
String strText = textView.getText().toString(); // получаем текст нажатого элемента

Intent intent = (new Intent(getActivity(), InfoActivity.class));

Task task = tasksMap.get(strText);

// Toast.makeText(getActivity(),"this json:"+ task.getJson(), Toast.LENGTH_SHORT).show();

intent.putExtra("name", task.getJson());

startActivity(intent);
} catch (JSONException e) {
e.printStackTrace();

}
}

});
} catch (JSONException e) {
Log.d("Except",e.toString());
}
return v;

}

public static void refreshTasks(){//обновляет список активных задач
try {
if (tasks!=null) {
tasks = TaskDao.getActiveTasks();
ArrayAdapter adapter = new ArrayAdapter(activity, android.R.layout.simple_list_item_1, tasks);
listView.setAdapter(adapter);
for (Task t : tasks) {
tasksMap.put(t.getTaskName(), t);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}

Листинг Б.4, лист 2

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.myproject.taskmanager.R;
import com.myproject.taskmanager.dao.TaskDao;
import com.myproject.taskmanager.pojo.Task;
import com.myproject.taskmanager.service.MyService;

import org.json.JSONException;

//активность, позволяющая отсрочить задачу или завершить
public class DelayActivity extends Activity {

Task task;

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

String value = getIntent().getStringExtra("name");
task = new Task(value);
TaskDao.delete(task);

TextView textView = (TextView) findViewById(R.id.textView3);
textView.setText(task.getTaskName());

TextView textView1= (TextView) findViewById(R.id.textView4);
textView1.setText(task.getDescription());

Button delay10 = (Button) findViewById(R.id.button4);
delay10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
Button delay30 = (Button) findViewById(R.id.button5);
delay30.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
task.setDate(task.getDate()+20*60*1000);
finish();
}
});
Button close = (Button) findViewById(R.id.button6);
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
task.setStatusFinished();
finish();
}
});

}catch (Exception e){
e.printStackTrace();
}

Листинг Б.5, лист 1


}

@Override
public void finish() {
try {
TaskDao.saveTask(task);
} catch (JSONException e) {
e.printStackTrace();
}
ActiveActivity.refreshTasks();
FinishActivity.refreshTasks();
super.finish();
startService(new Intent(this, MyService.class));
}


}

Листинг Б.5, лист 2

import org.json.JSONException;
import org.json.JSONObject;

//класс описывающий всю необходимую для программы информацию об объекте

public class Task {

private String taskName;
private String description;
private Long date;
private String status;

public Task() {
}

public Task(String taskName, String description, Long date) {
this.taskName = taskName;
this.description = description;
this.date = date;
status = "Active";
}

public Task(String json) throws JSONException {
JSONObject task = new JSONObject(json);
this.taskName = task.getString("taskName");
this.description = task.getString("description");
this.date = task.getLong("date");
this.status = task.getString("status");
}

public String getJson() throws JSONException {
JSONObject json = new JSONObject();
json.put("taskName", taskName);
json.put("description", description);
json.put("date", date);
json.put("status", status);
return json.toString();
}

@Override
public String toString() {
return taskName;
}

public String getTaskName() {
return taskName;
}

public void setTaskName(String taskName) {
this.taskName = taskName;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public Long getDate() {
return date;

Листинг Б.6, лист 1


}

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

public String getStatus() {
return status;
}

public void setStatusActive() {
this.status = "Active";
}

public void setStatusFinished() {
this.status = "Finished";
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

Task task = (Task) o;

if (!date.equals(task.date)) return false;
if (description != null ? !description.equals(task.description) : task.description != null)
return false;
if (status != null ? !status.equals(task.status) : task.status != null) return false;
if (!taskName.equals(task.taskName)) return false;

return true;
}

@Override
public int hashCode() {
int result = taskName.hashCode();
result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + date.hashCode();
result = 31 * result + (status != null ? status.hashCode() : 0);
return result;
}
}

Листинг Б.6, лист 2

import android.content.SharedPreferences;

import com.myproject.taskmanager.pojo.Task;

import org.json.JSONException;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

//класс для работы с данными в памяти телефона.
public class TaskDao {
static SharedPreferences sPref;

public static void init(SharedPreferences Pref){
sPref = Pref;
}

public static void saveTask(Task task) throws JSONException {
SharedPreferences.Editor ed = sPref.edit();
ed.putString(task.getJson(),task.getJson());
ed.commit();
}

public static void delete(Task task) throws JSONException {
SharedPreferences.Editor ed = sPref.edit();
ed.remove(task.getJson());
ed.commit();

}

public static List getActiveTasks() throws JSONException {
//возвращает список активных задач
List tasks = new ArrayList<>();
MapjsonMap = (Map) sPref.getAll();
for (final Map.Entry entry : jsonMap.entrySet()) {
Task t = new Task(entry.getValue());
if (t.getStatus().equals("Active"))
tasks.add(t);
}

return tasks;
}
public static List getFinishedTasks() throws JSONException {
List tasks = new ArrayList<>();
MapjsonMap = (Map) sPref.getAll();
for (final Map.Entry entry : jsonMap.entrySet()) {
Task t = new Task(entry.getValue());
if (t.getStatus().equals("Finished"))
tasks.add(t);
}

return tasks;
}
}

Листинг Б.7, лист 1

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.BitmapFactory;
import android.os.IBinder;

import com.myproject.taskmanager.R;
import com.myproject.taskmanager.activity.DelayActivity;
import com.myproject.taskmanager.dao.TaskDao;
import com.myproject.taskmanager.pojo.Task;

import java.util.Date;
import java.util.Random;

public class MyService extends Service {
//сервис мониторинга задач. через фиксированный период времени проверяет сроки задач.
//
запускает поток для работы приложения в фоновом режиме
SharedPreferences sPref;


public MyService() {
}

@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}

@Override
public void onCreate() {
super.onCreate();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
sPref = getSharedPreferences("SP", MODE_APPEND);
TaskDao.init(sPref);

new Thread(new Runnable() {
public void run() {
verify();
}
}).start();

return Service.START_STICKY;
}

private void verify() {
while (true) {
try {

for (Task task: TaskDao.getActiveTasks()){
Date d = new Date();
if (task.getDate()

TaskDao.delete(task);
task.setDate(d.getTime() + 10 * 60 * 1000);

Листинг Б.8, лист 1


TaskDao.saveTask(task);
Intent intent = new Intent(getApplicationContext(), DelayActivity.class);
intent.putExtra("name", task.getJson());
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification.Builder builder = new Notification.Builder(getApplicationContext());

builder
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getApplication().getResources(), R.drawable.ic_launcher))
.setTicker("Новое уведомление")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle("Уведомление")
.setContentText(task.getTaskName());

Notification notification = builder.build();
notification.defaults = Notification.DEFAULT_ALL;
try {
NotificationManager nm = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(new Random().nextInt(), notification);
}catch (Exception e){}
stopSelf();
return;
}
}
Thread.sleep(30000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

Листинг Б.8, лист 2

Файл разметки «activity_main»:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="16dp" tools:context=".MainActivity">

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1">

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="1">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Активные"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="addFragment1"
android:paddingLeft="50dp"
android:paddingRight="50dp" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Завершенные"
android:id="@+id/button2"
android:onClick="addFragment2"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:paddingLeft="35dp"
android:paddingRight="35dp" />

</<b>LinearLayout>

<FrameLayout
android:layout_width="match_parent"
android:layout_height="376dp"
android:id="@+id/fragment1"
android:layout_below="@+id/button"
android:layout_alignParentStart="true"
android:layout_weight="1.11">

</<b>FrameLayout>

</<b>LinearLayout>
</<b>FrameLayout>

Листинг Б.9, лист 1

Файл разметки «delay_view»:

xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/textView3"
android:layout_gravity="center_horizontal" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/textView4"
android:layout_gravity="center_horizontal" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Напомнить через 10 минут"
android:id="@+id/button4"
android:layout_gravity="center_horizontal" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Напомнить через 30 минут"
android:id="@+id/button5"
android:layout_gravity="center_horizontal" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Завершить"
android:id="@+id/button6"
android:layout_gravity="center_horizontal" />
</<b>LinearLayout>

Листинг Б.10, лист 1

Файл разметки «info_activity»:

xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_height="match_parent"
android:weightSum="1">

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editTextName"
android:hint="Название"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"/>

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:hint="Доп. информция"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Время"
android:id="@+id/textView"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"/>

<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timePicker"
android:layout_marginTop="10dp"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Дата"
android:id="@+id/textView2"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"/>

<DatePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/datePicker"
android:layout_marginTop="10dp" />

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent" android:layout_height="match_parent"
android:weightSum="1">

<Button
android:layout_width="wrap_content"
Листинг Б.11, лист 1
1   2   3   4   5   6

Похожие:

Программа «Task Manager» icon Руководство пользователя по установке ap manager II
Перед установкой ap manager II на компьютере должно быть установлено следующее программное обеспечение: Mysql serve 0 и Mysql odbc...
Программа «Task Manager» icon Программа SantaFe Manager
Что может звук ? Мультимедиа и электронная почта
Программа «Task Manager» icon Task Answer the following questions using the text

Программа «Task Manager» icon Инструкция по установке программы: Подключите при помощи прилагаемого...
Программа для синхронизации мобильных телефонов с компьютером Cell Phone Manager, главная особенность которой универсальность
Программа «Task Manager» icon Руководство пользователя Введение
Программа Rec Manager для EdicMini lcd предназначена для организации доступа к памяти диктофона, а также для настройки диктофона...
Программа «Task Manager» icon Iqm manager: руководство пользователя

Программа «Task Manager» icon Iqm manager: руководство пользователя

Программа «Task Manager» icon Iqm manager: руководство пользователя

Программа «Task Manager» icon Благотворительность в зеркале сми
Принц Уильям помог носорогам. Он участвует в деятельности благотворительной организации Task Trust которая вырастила в английском...
Программа «Task Manager» icon Сведения о профессии
В переводе с английского слово manager означает – заведующий, директор, управляющий
Программа «Task Manager» icon Инструкция по загрузке файлов через ftp в качестве ftp-клиента можно...
В качестве ftp-клиента можно использовать far manager, при использовании другого ftp-клиента необходимо учитывать его особенности...
Программа «Task Manager» icon Должностная инструкция site qc manager / Менеджер контроля качества...
Он назначается руководителем департамента контроля качества головного офиса и входит в состав департамента качества
Программа «Task Manager» icon + Инструкция на русском
В комплекте идет утилита Ozice settings Manager для настройки хард-клавиш и экранных кнопок. Отличительной особенностью OziExplorer...
Программа «Task Manager» icon Реферат по курсу: Проектирование и разработка scada систем Тема:"...
Современный мир — это мир постоянно растущих потребностей, для удовлетворения которых необходим рост прибыли, а значит, кроме всего...
Программа «Task Manager» icon Техническое задание на оказание услуг по технической поддержке системы управления
Предмет оказания услуг: услуги по технической поддержке системы управления Microsoft System Center Configuration Manager 2012 (далее-...
Программа «Task Manager» icon Инструкция по отключению Odyssey Access Client Manager в правом нижнем...
Если Вам по договору предоставляется реальный адрес Интернет, то он изменится с X x. 186. X на X x. 187. X это может вызвать неработоспособности...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск