{"action":"created","issue":{"url":"https://api.github.com/repos/iFixit/iFixitAndroid/issues/265","repository_url":"https://api.github.com/repos/iFixit/iFixitAndroid","labels_url":"https://api.github.com/repos/iFixit/iFixitAndroid/issues/265/labels{/name}","comments_url":"https://api.github.com/repos/iFixit/iFixitAndroid/issues/265/comments","events_url":"https://api.github.com/repos/iFixit/iFixitAndroid/issues/265/events","html_url":"https://github.com/iFixit/iFixitAndroid/pull/265","id":214802068,"number":265,"title":"Modernize Dependencies - Material Design + AppCompat","user":{"login":"timothyasp","id":707699,"avatar_url":"https://avatars3.githubusercontent.com/u/707699?v=3","gravatar_id":"","url":"https://api.github.com/users/timothyasp","html_url":"https://github.com/timothyasp","followers_url":"https://api.github.com/users/timothyasp/followers","following_url":"https://api.github.com/users/timothyasp/following{/other_user}","gists_url":"https://api.github.com/users/timothyasp/gists{/gist_id}","starred_url":"https://api.github.com/users/timothyasp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timothyasp/subscriptions","organizations_url":"https://api.github.com/users/timothyasp/orgs","repos_url":"https://api.github.com/users/timothyasp/repos","events_url":"https://api.github.com/users/timothyasp/events{/privacy}","received_events_url":"https://api.github.com/users/timothyasp/received_events","type":"User","site_admin":false},"labels":[{"id":208011913,"url":"https://api.github.com/repos/iFixit/iFixitAndroid/labels/in%20progress","name":"in progress","color":"ededed","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":10,"created_at":"2017-03-16T18:44:35Z","updated_at":"2017-04-09T20:00:40Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/iFixit/iFixitAndroid/pulls/265","html_url":"https://github.com/iFixit/iFixitAndroid/pull/265","diff_url":"https://github.com/iFixit/iFixitAndroid/pull/265.diff","patch_url":"https://github.com/iFixit/iFixitAndroid/pull/265.patch"},"body":"## Overview\r\nThe changes in this pull are pretty massive, so warning about that, but the changes are so sweeping because it involved removing dependencies on old (5+ years) design back-compat libraries such as ActionBarSherlock, MenuDrawer and HttpRequest which were designed to bring modern UX back to old version of android.\r\n\r\nThe android ecosystem in the last 3 years has grown tremendously to support back-compat with the AppCompat and Android Design libraries, so I wanted to drag our app into the modern day of android development and rip out those old libraries and replace them with that new-new.\r\n\r\n## Summary of changes\r\n- Drop support for pre-4.0 android versions (minSdk 14)\r\n- Target and compile against the latest android sdk (compileSdk and targetSdk 25)\r\n- Update Picasso to 2.5.2\r\n- Update gradle-android to 2.3, Android Dev tools to 25.2.0 and Android Support to 25.0.2\r\n- Removed ABS, replace with AppCompatActivity and Toolbar\r\n- Removed MenuDrawer, replaced with DrawerLayout and NavigationDrawer\r\n- Removed HttpRequest and updated OkHttp to OkHttp3 (v3.6.0)\r\n   - Use new Cache feature in OkHttp3 to replace the Offline Guides cache so that normal browsing of the app will add to the elements and requests that are available offline.  \r\n   - **This still has some bugs. Needs work before release**\r\n- Removed our confusing and terrible (my bad) theming system and replaced with the new `attr/colorPrimary` and other android Design Library color constants. This was magical because it resulted in removing hundreds of drawables.\r\n- Cleaned up color constants, now conforms to the iFixit Style Guide\r\n- Remove old card drawable layout, use new CardView\r\n- Replace all icon png drawables with vector drawables\r\n- Reworked the TopicViewActivity to use the new coordinator layouts and have a nice Full image with a collapsing toolbar to show off the category images\r\n- Use the new Toolbar libraries instead of older, holo ViewPager styles.\r\n- Lots of general design and code updates\r\n\r\n## Bugfixes\r\n- Fix attaching images from phone galleries to the media manager on newer phones.\r\n- Fix loading styles to look decent\r\n- Fix GuideViewIntroFragment youtube videos click event to only trigger on actual clicking instead of touchdown.\r\n\r\n## To-do\r\n- [ ] Fix some edge cases with ApiSyncAdapter and cancelling / resyncing\r\n- [ ] Add #'s to ApiSyncAdapter messaging to give a better status update when syncing large amounts of data\r\n- [ ] Convert the following lists to RecyclerView and the new CardView styles for items\r\n    - [x] Search Results\r\n    - [ ] Guide Create Step Items\r\n    - [ ] Guide Create Reorder Step Items\r\n    - [ ] Comments\r\n- [ ] Test and fix bugs on Tablet views\r\n- [ ] Test and fix bugs on older phones, v4.0.3-v4.4 (ICS)\r\n- [x] Test and fix bugs with dozuki app\r\n- [ ] Test and fix bugs with dozuki custom apps\r\n    - [x] Accustream\r\n    - [x] PVA\r\n    - [ ] zealoptics\r\n    - [x] dripassist\r\n    - [ ] oscaro\r\n- [x] Remove Magnolia Medical\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/ifixit/ifixitandroid/265)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/iFixit/iFixitAndroid/issues/comments/292809023","html_url":"https://github.com/iFixit/iFixitAndroid/pull/265#issuecomment-292809023","issue_url":"https://api.github.com/repos/iFixit/iFixitAndroid/issues/265","id":292809023,"user":{"login":"marczych","id":1094445,"avatar_url":"https://avatars0.githubusercontent.com/u/1094445?v=3","gravatar_id":"","url":"https://api.github.com/users/marczych","html_url":"https://github.com/marczych","followers_url":"https://api.github.com/users/marczych/followers","following_url":"https://api.github.com/users/marczych/following{/other_user}","gists_url":"https://api.github.com/users/marczych/gists{/gist_id}","starred_url":"https://api.github.com/users/marczych/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marczych/subscriptions","organizations_url":"https://api.github.com/users/marczych/orgs","repos_url":"https://api.github.com/users/marczych/repos","events_url":"https://api.github.com/users/marczych/events{/privacy}","received_events_url":"https://api.github.com/users/marczych/received_events","type":"User","site_admin":false},"created_at":"2017-04-09T20:00:40Z","updated_at":"2017-04-09T20:00:40Z","body":"\n\n\n\nReviewed 26 of 26 files at r4.\nReview status: all files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.\n\n---\n\n*[App/src/com/dozuki/ifixit/ui/auth/LoginFragment.java, line 9 at r4](https://reviewable.io:443/reviews/ifixit/ifixitandroid/265#-KhJCkPGRXo0Wqxw52Ky:-KhJCkPGRXo0Wqxw52Kz:b-ptpok4) ([raw file](https://github.com/ifixit/ifixitandroid/blob/e2b3d388724952b7ab122eb3b78e1658e547c673/App/src/com/dozuki/ifixit/ui/auth/LoginFragment.java#L9)):*\n> ```Java\n> import android.content.IntentSender;\n> import android.os.AsyncTask;\n> import android.os.Build;\n> ```\n\nThis import was added but it isn't used as far as I can tell.\n\n---\n\n*[App/src/com/dozuki/ifixit/ui/guide/create/GuideCreateRecyclerListAdapter.java, line 44 at r4](https://reviewable.io:443/reviews/ifixit/ifixitandroid/265#-KhJDjJZYbMYv_GkY9kk:-KhJDjJZYbMYv_GkY9kl:bsuc5at) ([raw file](https://github.com/ifixit/ifixitandroid/blob/e2b3d388724952b7ab122eb3b78e1658e547c673/App/src/com/dozuki/ifixit/ui/guide/create/GuideCreateRecyclerListAdapter.java#L44)):*\n> ```Java\n>             userGuide.mPublic = guide.isPublic();\n>             userGuide.mIsPublishing = false;\n>             mGuides.set(i, userGuide);\n> ```\n\nIs this necessary? `userGuide` is modified in place so it might be fine to remove this line.\n\n---\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/ifixit/ifixitandroid/265)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"marczych"}}