GithubHelp home page GithubHelp logo

motocitizen's People

Contributors

elagin avatar prodigy009 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

vacxe elagin

motocitizen's Issues

Функционал "на месте"

Если пользователем была нажата кнопка "еду" для данного события.

  1. Текущий статус "onway" или "washere" и событие в радиусе "accuracy" пользователя, либо расстояние меньше 100м(для gps) - статус меняем на "inplace"
  2. Текущий статус "inplace" и расстояние увеличилось до 1км - меняем статус на "washere"

Если "еду" не нажималось

  1. Текущий статус отсутствует либо "washere" и расстояние меньше 100м - выставляем статус "inplace"
  2. Текущий статус "inplace" и расстояние увеличилось до 1км - меняем статус на "washere"

Вылетело при первом запуске

04-06 14:45:01.366 25466-25537/motocitizen.main E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.(Handler.java:121)
at android.app.Dialog.(Dialog.java:107)
at android.app.AlertDialog.(AlertDialog.java:114)
at android.app.AlertDialog.(AlertDialog.java:98)
at android.app.ProgressDialog.(ProgressDialog.java:77)
at motocitizen.network.HttpClient.onPreExecute(HttpClient.java:46)
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
at android.os.AsyncTask.execute(AsyncTask.java:534)
at motocitizen.app.mc.gcm.MCGCMRegistration.storeRegistrationId(MCGCMRegistration.java:144)
at motocitizen.app.mc.gcm.MCGCMRegistration.access$200(MCGCMRegistration.java:28)
at motocitizen.app.mc.gcm.MCGCMRegistration$1.doInBackground(MCGCMRegistration.java:117)
at motocitizen.app.mc.gcm.MCGCMRegistration$1.doInBackground(MCGCMRegistration.java:107)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)

Мой инцидент.

Вероятно стоит как-то выделить созданный самим пользователем инцидент: цветом, или расположением вверху списка или как-то еще.

Software keyboard

Когда набираешь сообщение и, не закрывая клавиатуру переходишь на другую вкладку - клавиатура остается на экране.

Функционал "выехал"

Обеспечить уникальность статуса "выехал" для каждого пользователя. Если выехал на одно событие, а потом на другое - у первого менять статус на "был на месте/выезжал" в зависимости от того, доехал ли на него.

Не ходят пуши

{"result":"18801 \n\n<TITLE>Unauthorized</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n

Unauthorized</H1>\n

Error 401</H2>\n</BODY>\n</HTML>\n"}
04-06 14:48:37.396 25635-25635/motocitizen.main D/CREATE ACC ERROR﹕ {"result":"18801 \n\n<TITLE>Unauthorized</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n

Unauthorized</H1>\n

Error 401</H2>\n</BODY>\n</HTML>\n"}

Исчезает не дописанный инцидент.

Начинаем создавать новый инцидент. Сворачиваем приложение, возвращаем обратно и оказываемся на "главном" экране. Не дописанный инцидент исчезает.

Надеюсь исправить, т.к. как раз примерно в этом месте сейчас ведется рефакторинг.

Лишние запросы при работе с инцидентом.

Например после нажатия "выехал". Вызывается mcaccidents / getlist в котром возвращется измененный инцидент. Думаю, что это лишнее. Применилось ли это изменение можно понять по позвращаемому результату отправки "выехал".
А если кто-то за это время тоже изменил инциден то должен придти пуш.

Переход по ссылкам

Сделать парсинг сообщений/инцедентов, чтоб можно было по клику перейти по ссылке в сообщении

"Для статистики"

Сделать возможным создавать событие с флагом "для статистики".
Необходимо продумать функционал.

UI Замена шестеренки

Обычно шестеренка это доступ к настройкам. У нас же это меню. Думаю, что стоит либо оставить шестеренку, но сделать чтобы под ней настройки открывались, либо заменить на три горизонтальные линии либо три вертикальные точки, как это сделано в UI на планшетах.

Вылет при старте

3530-3530/motocitizen.main E/WindowManager﹕ Activity motocitizen.startup.Startup has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@423d0198 that was originally added here
android.view.WindowLeaked: Activity motocitizen.startup.Startup has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@423d0198 that was originally added here
at android.view.ViewRootImpl.(ViewRootImpl.java:374)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
at android.view.Window$LocalWindowManager.addView(Window.java:547)
at android.app.Dialog.show(Dialog.java:277)
at motocitizen.network.HttpClient.onPreExecute(HttpClient.java:50)
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
at android.os.AsyncTask.execute(AsyncTask.java:534)
at motocitizen.startup.Startup.onResume(Startup.java:93)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1184)
at android.app.Activity.performResume(Activity.java:5082)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2573)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2097)
at android.app.ActivityThread.access$600(ActivityThread.java:133)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1203)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4794)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
at dalvik.system.NativeStart.main(Native Method)

at motocitizen.startup.Startup.onResume(Startup.java:93)
if (request != null) {
(new IncidentRequest()).execute(request);
}

При старте идет лишний запрос списка событий к серверу

03-29 14:00:19.081 1856-1856/motocitizen.main D/POST﹕ lon=37.62273406982422&distance=10&calledMethod=getlist&user=rjhdby&lat=55.752296447753906
03-29 14:00:19.281 1856-1856/motocitizen.main D/JSON ERROR﹕ 200
03-29 14:00:19.281 1856-1856/motocitizen.main D/JSON RESPONSE﹕ {"list":[{"error":"no_new"}]}
.........
03-29 14:00:19.911 1856-1856/motocitizen.main D/POST﹕ lon=37.62273406982422&distance=10&calledMethod=getlist&user=rjhdby&lat=55.752296447753906
03-29 14:00:20.021 1856-1856/motocitizen.main D/JSON ERROR﹕ 200
03-29 14:00:20.021 1856-1856/motocitizen.main D/JSON RESPONSE﹕ {"list":[{"error":"no_new"}]}

Окно "угон".

Может быть стоит в будущем доработать окно угона, добавив там поля:
*Производитель
*Год выпуска
*Приметы
*Фото
и т.д.
Приозводитель - выпадающий список, можно будет статистику какую-то собирать.
Фото - мы "попадаем" на дисковое пространство. Но с другой стороны и так на форуме народ фото может публиковать.

Работа с картой.

  1. По клику на иконке инцидента отображать баллон с подробной информацией.
  2. По клику внутри баллона переходить на окно с подробной информацией по этому инциденту.

Ограничение оповещений по времени

Пользователь задает периоды времени, когда события (не) должны приходить, делать звуковое оповещение.
Надо продумать, как лучше реализовать.

Игнорировать инцидент.

Может быть стоить когда-нибудь сделать возможность игнорировать изменения по инциденту. Отображать его серым цветом, пуши на него не приходят и из "getlist" он тоже исключен.

"Уточнить адрес" - другая карта

Пока не актуально, но все же.
В настройках выбрана карта OSM (на закладке "карта", отображается именно эта карта), создаю новый инцидент, выбираю "уточнить адрес" - открывается карта Google.

Долгий запуск приложения

Приложение долго загружается (сервый экран).
Надо разобраться с алгоритмом запуска, что-то перенести ближе к концу, чтобы Activity раньше нарисовалось, а потом уже запросы отправлялись.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.