{"action":"created","issue":{"url":"https://api.github.com/repos/batoulapps/Adhan/issues/16","repository_url":"https://api.github.com/repos/batoulapps/Adhan","labels_url":"https://api.github.com/repos/batoulapps/Adhan/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/batoulapps/Adhan/issues/16/comments","events_url":"https://api.github.com/repos/batoulapps/Adhan/issues/16/events","html_url":"https://github.com/batoulapps/Adhan/pull/16","id":145351115,"number":16,"title":"Use java6 time apis instead of JSR310 backport","user":{"login":"ahmedre","id":47771,"avatar_url":"https://avatars.githubusercontent.com/u/47771?v=3","gravatar_id":"","url":"https://api.github.com/users/ahmedre","html_url":"https://github.com/ahmedre","followers_url":"https://api.github.com/users/ahmedre/followers","following_url":"https://api.github.com/users/ahmedre/following{/other_user}","gists_url":"https://api.github.com/users/ahmedre/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmedre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmedre/subscriptions","organizations_url":"https://api.github.com/users/ahmedre/orgs","repos_url":"https://api.github.com/users/ahmedre/repos","events_url":"https://api.github.com/users/ahmedre/events{/privacy}","received_events_url":"https://api.github.com/users/ahmedre/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-02T08:33:00Z","updated_at":"2016-04-02T19:47:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/batoulapps/Adhan/pulls/16","html_url":"https://github.com/batoulapps/Adhan/pull/16","diff_url":"https://github.com/batoulapps/Adhan/pull/16.diff","patch_url":"https://github.com/batoulapps/Adhan/pull/16.patch"},"body":"The JSR310 backport api is definitely a better api than the Java 6\r\ncalendar apis. However, due to excessive caching with resource loading\r\non Android (used for loading the timezone database), an Android wrapper\r\nwould be ideally used, replacing the timezone provider with something\r\nthat reads from AssetManager.\r\n\r\nImplementing this correctly in Adhan would have therefore required\r\nsplitting up this library into 3 modules - a core module, a library\r\nmodule (for use by Java projects depending on threeten backport), and an\r\nAndroid Android module (outputting an aar for use by Android projects\r\nand  depending on the Android specific flavor of threeten backport).\r\n\r\nSince this is a hassle and costs the developer ~3000 methods towards the\r\nmethod limit, and since we don't really deal with timezone conversions\r\nwithin the library (everything is done in UTC), the alternative was to\r\njust use the java 6 apis. While more painful for the library developer,\r\nthis simplifies life for the application developers and allows them to\r\nuse whatever time library they want in their app (joda time, threeten\r\nbackport, or even native java 8 when not on Android)."},"comment":{"url":"https://api.github.com/repos/batoulapps/Adhan/issues/comments/204788905","html_url":"https://github.com/batoulapps/Adhan/pull/16#issuecomment-204788905","issue_url":"https://api.github.com/repos/batoulapps/Adhan/issues/16","id":204788905,"user":{"login":"z3bi","id":5318,"avatar_url":"https://avatars.githubusercontent.com/u/5318?v=3","gravatar_id":"","url":"https://api.github.com/users/z3bi","html_url":"https://github.com/z3bi","followers_url":"https://api.github.com/users/z3bi/followers","following_url":"https://api.github.com/users/z3bi/following{/other_user}","gists_url":"https://api.github.com/users/z3bi/gists{/gist_id}","starred_url":"https://api.github.com/users/z3bi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/z3bi/subscriptions","organizations_url":"https://api.github.com/users/z3bi/orgs","repos_url":"https://api.github.com/users/z3bi/repos","events_url":"https://api.github.com/users/z3bi/events{/privacy}","received_events_url":"https://api.github.com/users/z3bi/received_events","type":"User","site_admin":false},"created_at":"2016-04-02T19:47:00Z","updated_at":"2016-04-02T19:47:00Z","body":"One thing I'm worried about is that PrayerTimes takes a Date object, a developer would probably pass in new Date(); for now but depending on the current time, it may be a different calendrical date in UTC when its parsed by julianDay()."}}