{"action":"created","issue":{"url":"https://api.github.com/repos/dimagi/commcare-odk/issues/966","labels_url":"https://api.github.com/repos/dimagi/commcare-odk/issues/966/labels{/name}","comments_url":"https://api.github.com/repos/dimagi/commcare-odk/issues/966/comments","events_url":"https://api.github.com/repos/dimagi/commcare-odk/issues/966/events","html_url":"https://github.com/dimagi/commcare-odk/pull/966","id":125701956,"number":966,"title":"UI controllers work with @ManagedUI + UI controller for login activity","user":{"login":"amstone326","id":3723143,"avatar_url":"https://avatars.githubusercontent.com/u/3723143?v=3","gravatar_id":"","url":"https://api.github.com/users/amstone326","html_url":"https://github.com/amstone326","followers_url":"https://api.github.com/users/amstone326/followers","following_url":"https://api.github.com/users/amstone326/following{/other_user}","gists_url":"https://api.github.com/users/amstone326/gists{/gist_id}","starred_url":"https://api.github.com/users/amstone326/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amstone326/subscriptions","organizations_url":"https://api.github.com/users/amstone326/orgs","repos_url":"https://api.github.com/users/amstone326/repos","events_url":"https://api.github.com/users/amstone326/events{/privacy}","received_events_url":"https://api.github.com/users/amstone326/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dimagi/commcare-odk/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/dimagi/commcare-odk/labels/ready%20for%20review","name":"ready for review","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/dimagi/commcare-odk/milestones/6","html_url":"https://github.com/dimagi/commcare-odk/milestones/commcare_2.26","labels_url":"https://api.github.com/repos/dimagi/commcare-odk/milestones/6/labels","id":1429885,"number":6,"title":"commcare_2.26","description":null,"creator":{"login":"phillipm","id":94817,"avatar_url":"https://avatars.githubusercontent.com/u/94817?v=3","gravatar_id":"","url":"https://api.github.com/users/phillipm","html_url":"https://github.com/phillipm","followers_url":"https://api.github.com/users/phillipm/followers","following_url":"https://api.github.com/users/phillipm/following{/other_user}","gists_url":"https://api.github.com/users/phillipm/gists{/gist_id}","starred_url":"https://api.github.com/users/phillipm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phillipm/subscriptions","organizations_url":"https://api.github.com/users/phillipm/orgs","repos_url":"https://api.github.com/users/phillipm/repos","events_url":"https://api.github.com/users/phillipm/events{/privacy}","received_events_url":"https://api.github.com/users/phillipm/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":71,"state":"open","created_at":"2015-11-25T18:23:45Z","updated_at":"2016-01-10T18:12:00Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-01-08T21:51:12Z","updated_at":"2016-01-10T23:02:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dimagi/commcare-odk/pulls/966","html_url":"https://github.com/dimagi/commcare-odk/pull/966","diff_url":"https://github.com/dimagi/commcare-odk/pull/966.diff","patch_url":"https://github.com/dimagi/commcare-odk/pull/966.patch"},"body":"Pre-factoring for PIN password work -- 2 major changes:\r\n1. A CommCareActivity can now utilize *both* the @ManagedUI framework and a UIController. This involved making a CommCareActivityUIController interface, and adjusting the util methods in ManagedUiFramework.java \r\n2. LoginActivity now uses a ui controller (along with the @ManagedUI annotation that it was already using)"},"comment":{"url":"https://api.github.com/repos/dimagi/commcare-odk/issues/comments/170403630","html_url":"https://github.com/dimagi/commcare-odk/pull/966#issuecomment-170403630","issue_url":"https://api.github.com/repos/dimagi/commcare-odk/issues/966","id":170403630,"user":{"login":"phillipm","id":94817,"avatar_url":"https://avatars.githubusercontent.com/u/94817?v=3","gravatar_id":"","url":"https://api.github.com/users/phillipm","html_url":"https://github.com/phillipm","followers_url":"https://api.github.com/users/phillipm/followers","following_url":"https://api.github.com/users/phillipm/following{/other_user}","gists_url":"https://api.github.com/users/phillipm/gists{/gist_id}","starred_url":"https://api.github.com/users/phillipm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phillipm/subscriptions","organizations_url":"https://api.github.com/users/phillipm/orgs","repos_url":"https://api.github.com/users/phillipm/repos","events_url":"https://api.github.com/users/phillipm/events{/privacy}","received_events_url":"https://api.github.com/users/phillipm/received_events","type":"User","site_admin":false},"created_at":"2016-01-10T23:02:30Z","updated_at":"2016-01-10T23:02:30Z","body":"Solid refactor!\r\nOne idea to making the ui controller framework you've setup potentially clearer is to replace usages of `CommCareActivity.usesUIController` with a method called something like `.getUIController` (that name is taken but I'm having trouble coming up with a more descriptive name) that either returns the activity itself or the ui controller if there is one being used. I say this because it seems like you test for the existence of a ui controller and then promptly use that info to either use the ui controller or the activity to do some work.\r\n\r\nLeft another suggestion along with this one. If they don't seem worth making, I'm happy to merge whenever."}}