Giter VIP home page Giter VIP logo

forkhub's People

Contributors

adman avatar arepina avatar atakanb avatar atermenji avatar bananeweizen avatar chiara-de-liberato avatar crazymaster avatar dajo90 avatar fadils avatar hellodanylo avatar jojosch avatar jonan avatar justinmuller avatar kevinsawicki avatar lacrosse avatar meisolsson avatar motoaleks avatar mueller-ma avatar nwalters512 avatar phansier avatar rk4an avatar rtyley avatar tsnik avatar uevgeniy avatar victorxd70 avatar vkavalchuk avatar vovayatsyuk avatar xen0n avatar xhmikosr avatar zacsweers avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

vaginessa tsnik

forkhub's Issues

NPE crash on Milestone view page

Steps:
Open Milestone view.
Push on "Open Issues"
Filter page opens.
Tap on Milestone chosebox.
App crashes.

Stacktrace:

12-23 14:30:07.356 14032-14032/jp.forkhub E/AndroidRuntime: FATAL EXCEPTION: main
                                                            Process: jp.forkhub, PID: 14032
                                                            java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                                at com.github.kevinsawicki.wishlist.ViewUpdater.setText(ViewUpdater.java:162)
                                                                at com.github.kevinsawicki.wishlist.TypeAdapter.setText(TypeAdapter.java:140)
                                                                at com.github.mobile.ui.issue.MilestoneDialogFragment$MilestoneListAdapter.update(MilestoneDialogFragment.java:73)
                                                                at com.github.mobile.ui.issue.MilestoneDialogFragment$MilestoneListAdapter.update(MilestoneDialogFragment.java:48)
                                                                at com.github.kevinsawicki.wishlist.SingleTypeAdapter.update(SingleTypeAdapter.java:164)
                                                                at com.github.kevinsawicki.wishlist.SingleTypeAdapter.getView(SingleTypeAdapter.java:180)
                                                                at android.widget.AbsListView.obtainView(AbsListView.java:3250)
                                                                at android.widget.ListView.measureHeightOfChildren(ListView.java:1396)
                                                                at android.widget.ListView.onMeasure(ListView.java:1303)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
                                                                at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
                                                                at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at com.android.internal.policy.DecorView.onMeasure(DecorView.java:872)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2625)
                                                                at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1650)
                                                                at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1928)
                                                                at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1550)
                                                                at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7190)
                                                                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:959)
                                                                at android.view.Choreographer.doCallbacks(Choreographer.java:734)
                                                                at android.view.Choreographer.doFrame(Choreographer.java:670)
                                                                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:945)
                                                                at android.os.Handler.handleCallback(Handler.java:751)
                                                                at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                at android.os.Looper.loop(Looper.java:154)
                                                                at android.app.ActivityThread.main(ActivityThread.java:6776)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)

SRS

Собрать куски в единый документ по мере готовности.

NPE crush on Issue create page

Steps:

  1. Open repository view
  2. Push issues tab
  3. Push plus on top-left to add new issue
  4. Tap select milestone. => crush

StackTrace:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: jp.forkhub, PID: 5085
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.CompoundButton.setChecked(boolean)' on a null object reference
                      at com.github.kevinsawicki.wishlist.ViewUpdater.setChecked(ViewUpdater.java:304)
                      at com.github.kevinsawicki.wishlist.TypeAdapter.setChecked(TypeAdapter.java:268)
                      at com.github.mobile.ui.issue.MilestoneDialogFragment$MilestoneListAdapter.update(MilestoneDialogFragment.java:77)
                      at com.github.mobile.ui.issue.MilestoneDialogFragment$MilestoneListAdapter.update(MilestoneDialogFragment.java:48)
                      at com.github.kevinsawicki.wishlist.SingleTypeAdapter.update(SingleTypeAdapter.java:164)
                      at com.github.kevinsawicki.wishlist.SingleTypeAdapter.getView(SingleTypeAdapter.java:180)
                      at android.widget.AbsListView.obtainView(AbsListView.java:2363)
                      at android.widget.ListView.measureHeightOfChildren(ListView.java:1326)
                      at android.widget.ListView.onMeasure(ListView.java:1233)
                      at android.view.View.measure(View.java:19857)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at android.view.View.measure(View.java:19857)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at android.view.View.measure(View.java:19857)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
                      at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
                      at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
                      at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
                      at android.view.View.measure(View.java:19857)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at android.view.View.measure(View.java:19857)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at android.view.View.measure(View.java:19857)
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                      at com.android.internal.policy.DecorView.onMeasure(DecorView.java:689)
                      at android.view.View.measure(View.java:19857)
                      at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2275)
                      at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1366)
                      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1619)
                      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
                      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)
                      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
                      at android.view.Choreographer.doCallbacks(Choreographer.java:686)
                      at android.view.Choreographer.doFrame(Choreographer.java:621)
                      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6119)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Create new/edit screens layouts (in paint)

После выявления юзер сторей определить, где мы какие кнопки добавляем, как выглядят новые экраны. Условно говоря в пеинте, не надо заморачиваться по поводу качества макетов.

Plan + Risks

План с наложением на него рисков.

User Stories analysis

Необходимо проанализировать существующее приложение и выявить места, в которых возникают US связанные с мильстонами.
Выявленные User Stories зафиксировать в виде эпиков, к которым впоследствии будут прикреплены дев таски.
В описании эпика: скрин экрана, какие элементы интерфейса добавляем, какие действия по ним совершаются.

View closed issues on milestone view page

Если android API позволяет, то при скролле вниз, описание "уплывает" вверх, оставляя на экране только вкладки ACTIVE/CLOSED.
image

Current architecture analysis

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

Project architecture

Архитектура проекта. Должны быть не только представлены все необходимые диаграммы, но и расписаны блоки. Это делается для того, чтобы при возникновении необходимости расширения или другой модификации проекта, разработчик точно знал как и куда дописывать новые/изменять части проекта.

Risks table

Таблица рисков, с указанием самого риска, его степени влияния, и необходимой реакции на риск, если он сыграл.

Tasks actualisation

Актуализировать таски на доске
Пометить отдельным лейблом те, которые НЕ берем в план

Date & time input realization details and mockups

На основе сравнительного анализа выбрать один способ ввода даты для milestone'а, описать его в виде функциональных требований, добавить скриншот (мокап для последующей реализации).

NPE crush on open MilestoneDialogFragment

NPE (Compound button is null) in update metod.

Stacktrace:

12-23 14:30:07.356 14032-14032/jp.forkhub E/AndroidRuntime: FATAL EXCEPTION: main
                                                            Process: jp.forkhub, PID: 14032
                                                            java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                                at com.github.kevinsawicki.wishlist.ViewUpdater.setText(ViewUpdater.java:162)
                                                                at com.github.kevinsawicki.wishlist.TypeAdapter.setText(TypeAdapter.java:140)
                                                                at com.github.mobile.ui.issue.MilestoneDialogFragment$MilestoneListAdapter.update(MilestoneDialogFragment.java:73)
                                                                at com.github.mobile.ui.issue.MilestoneDialogFragment$MilestoneListAdapter.update(MilestoneDialogFragment.java:48)
                                                                at com.github.kevinsawicki.wishlist.SingleTypeAdapter.update(SingleTypeAdapter.java:164)
                                                                at com.github.kevinsawicki.wishlist.SingleTypeAdapter.getView(SingleTypeAdapter.java:180)
                                                                at android.widget.AbsListView.obtainView(AbsListView.java:3250)
                                                                at android.widget.ListView.measureHeightOfChildren(ListView.java:1396)
                                                                at android.widget.ListView.onMeasure(ListView.java:1303)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
                                                                at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
                                                                at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
                                                                at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                at com.android.internal.policy.DecorView.onMeasure(DecorView.java:872)
                                                                at android.view.View.measure(View.java:21121)
                                                                at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2625)
                                                                at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1650)
                                                                at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1928)
                                                                at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1550)
                                                                at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7190)
                                                                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:959)
                                                                at android.view.Choreographer.doCallbacks(Choreographer.java:734)
                                                                at android.view.Choreographer.doFrame(Choreographer.java:670)
                                                                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:945)
                                                                at android.os.Handler.handleCallback(Handler.java:751)
                                                                at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                at android.os.Looper.loop(Looper.java:154)
                                                                at android.app.ActivityThread.main(ActivityThread.java:6776)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)

Create tasks categorization table

Создать таблицу с основными, второстепенными и обособленными задачами
В рамках таска только распределение.
Выделение задач - отдельно

Milestones API support

Необходимо:

  1. Изучить структуру GitHub API
  2. Посмотреть существующие в коде способы обращения к API и архитектурные подходы
  3. Объявить интерфейсы будущих методов.
  4. Реализовать методы для CRUD мильстонов, CRUD ишуев в части, связанной с мильстонами.

Project plan

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

Edit milestones page crash

Steps:

Open milestone.
Tap Edit
Edit page opened
Tap back in left top.

Additional

hard back (button) does same

01-12 21:32:35.355 15104-15104/jp.forkhub E/AndroidRuntime: FATAL EXCEPTION: main
                                                            Process: jp.forkhub, PID: 15104
                                                            java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=17, result=0, data=null} to activity {jp.forkhub/com.github.mobile.ui.milestone.MilestoneViewActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.content.Intent.getSerializableExtra(java.lang.String)' on a null object reference
                                                                at android.app.ActivityThread.deliverResults(ActivityThread.java:4005)
                                                                at android.app.ActivityThread.handleSendResult(ActivityThread.java:4048)
                                                                at android.app.ActivityThread.access$1400(ActivityThread.java:177)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:135)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5910)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at java.lang.reflect.Method.invoke(Method.java:372)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
                                                             Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.content.Intent.getSerializableExtra(java.lang.String)' on a null object reference
                                                                at com.github.mobile.ui.milestone.MilestoneViewActivity.onActivityResult(MilestoneViewActivity.java:116)
                                                                at android.app.Activity.dispatchActivityResult(Activity.java:6441)
                                                                at android.app.ActivityThread.deliverResults(ActivityThread.java:4001)
                                                                at android.app.ActivityThread.handleSendResult(ActivityThread.java:4048) 
                                                                at android.app.ActivityThread.access$1400(ActivityThread.java:177) 
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                at android.os.Looper.loop(Looper.java:135) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5910) 
                                                                at java.lang.reflect.Method.invoke(Native Method) 
                                                                at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) ```

Milestone view page

Like issue page + list of issues with active links + button to add issue to milestone

FR: 9-17, 27

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.