Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
Николай Ч.
33 года, Россия
5 лет в сервисе
Был онлайн 4 месяца назад

Нужно сделать напоминание в установленные дату и время через web интерфейс (с мостами в java). Также сделать возможность удаления или изменения текста, даты напоминания. Предусмотреть загрузку напоминаний (имитация). Вся работа скрипта основана на id напоминаний в webview.
  Алгоритм добавления и клика по напоминанию в панели уведомлений/в баре (пример):

Открываем первое мая (клик на "1 мая"). Текст одного из напоминаний меняем на произвольный. Выбираем текущую дату, текущее время + 5 мин. Нажимаем сохранить. (см. Алгоритм сохранения) Закрываем программу (убиваем процесс) или перезагружаем телефон. Ждем. Через 5 мин в шторке уведомлений, на экране блокировки, в верхнем баре появляется напоминание с длинным текстом ( BigTextStyle().bigText() ) со звуком (произвольный) и вибрацией. Очень большое количество текста не должно вызвать ошибки. Длительность звука и вибрации, если не кликаем по уведомлению - 30 сек. Кликаем на уведомление (в этот момент напоминание стирается из натива): открывается программа и происходит открытие дня, в котором мы сохранили уведомление - у нас это первое мая. Открытие происходит путем выбора элемента по id (см. пункт "Сохранение") и клику по прородителю (id.previousSibling.previousSibling.click()).
   Алгоритм Сохранения:
При сохранении напоминания помимо манипуляций в нативе, к <divcontenteditable="true">Напоминание</div> добавляем id вида: "01052018_18:00" (пример), т.е. дата и время напоминания. Этот id мы используем в дальнейшем для:
- Открытия дня (при клике на напоминание в баре/панели уведомлений) в котором сохранено напоминание (см. Алгоритм добавления и клика по напоминанию)
 - Загрузке напоминаний и установки даты и времени срабатывания нативно (кнопка "Загрузить напоминания")
 - Удаления напоминаний - Изменении даты или текста напоминания
 - Вставки даты и времени напоминания в <inputtype="datetime-local"> при загрузке или выгрузке в документ (ls.innerHTML = localStorage.getItem('ls')) сохраненных напоминаний. Если напоминание уже имеет id (сохранялось ранее), то при изменении текста или даты(времени) срабатывания и сохранении - не должно появляться нового напоминания - мы редактируем существующее.
Если сохраняли по ошибки на прошедшее время - ничего не делаем (обработаю сам).
Алгоритм загрузки напоминаний (имитация загрузки из облака):
При клике на "Загрузить напоминания", загружаем напоминания и проходимся по ним с целью установить даты и время срабатывания напоминаний в натив. Используем для этого id. В примере только один id, соответственно на практике может быть больше. Если по какой то причине в нативе есть такое же напоминание, что и в загружаемых - это не должно вызывать ошибку или остановку скрипта.
Работа с прошедшими напоминаниями
Может случиться так, что у человека сел телефон и включил он его уже после времени напоминания - в этом случае напоминание все равно должно сработать, сколько бы времени не прошло. Если напоминание сработало, но по нему не кликнули и телефон сел - оно должно опять сработать при включении телефона.

<div id="load">Загрузить напоминания</div>

<div id="ls">
<p onclick="this.nextSibling.nextSibling.style.display='block'">Открыть первое мая</p>
<div id="load_el" style="display:none">1 мая
<div contenteditable="true">Напоминание1</div>
<input type="datetime-local">
<p class="save">Сохранить</p>
<p>Удалить</p>

<div contenteditable="true">Напоминание2</div>
<input type="datetime-local">
<p class="save">Сохранить</p>
<p>Удалить</p>

<div contenteditable="true">Напоминание3</div>
<input type="datetime-local">
<p class="save">Сохранить</p>
<p>Удалить</p>
</div>

<p onclick="this.nextSibling.nextSibling.style.display='block'">Открыть второе мая</p>
<div style="display:none">2 мая
<div contenteditable="true">Напоминание1</div>
<input type="datetime-local">
<p class="save">Сохранить</p>
<p>Удалить</p>

<div contenteditable="true">Напоминание2</div>
<input type="datetime-local">
<p class="save">Сохранить</p>
<p>Удалить</p>

<div contenteditable="true">Напоминание3</div>
<input type="datetime-local">
<p class="save">Сохранить</p>
<p>Удалить</p>
</div>
</div>

<script>
// Если есть сохраненное - загружаем
if (localStorage.getItem('ls')) {
ls.innerHTML = localStorage.getItem('ls')
}
// Сохранение
$('.save').on("click", function() {
localStorage.setItem('ls', ls.innerHTML)
})
// Загрузка
document.querySelector("#load").onclick = function(){
document.querySelector("#load_el").innerHTML = '<div id="03052018_18:00" contenteditable="true">Напоминание4</div><input type="datetime-local"><p class="save">Сохранить</p><p>Удалить</p>'
// Обьявляем для вновь загруженного контента
$('.save').on("click", function() {
localStorage.setItem('ls', ls.innerHTML)
})
}
</script>



Работа на Android 5 и далее
При выключении/включении телефона – ни чего не сбивается
Структура приложения с webview: файл index.html в основе. 
Основные операции в Java должны быть прокоментированы
Допустимо использование Jquery.
Оплата после теста лично, при встрече в Москве или через Яндекс деньги/ Webmoney(r-кошелек) / Сбербанк.