Search in sources :

Example 1 with Event

use of org.eclipse.egit.github.core.event.Event in project hubroid by EddieRingle.

the class GitHubApiService method onHandleIntent.

@Override
protected void onHandleIntent(Intent intent) {
    if (intent == null) {
        return;
    }
    mGitHubClient = new GitHubClient(sApiHostname, sApiPort, sApiScheme);
    mGitHubClient.setUserAgent(USER_AGENT);
    if (!intent.getBooleanExtra(ARG_ANONYMOUS, false)) {
        if (intent.hasExtra(ARG_OAUTH_TOKEN)) {
            mGitHubClient.setOAuth2Token(intent.getStringExtra(ARG_OAUTH_TOKEN));
        } else if (intent.hasExtra(ARG_BASIC_USERNAME) && intent.hasExtra(ARG_BASIC_PASSWORD)) {
            mGitHubClient.setCredentials(intent.getStringExtra(ARG_BASIC_USERNAME), intent.getStringExtra(ARG_BASIC_PASSWORD));
        } else if (intent.hasExtra(ARG_ACCOUNT) && intent.getParcelableExtra(ARG_ACCOUNT) != null) {
            final Account account = intent.getParcelableExtra(ARG_ACCOUNT);
            try {
                final String oauthToken = new OAuthUserProvider().getOAuthResponse(this, account).access_token;
                if (oauthToken != null) {
                    mGitHubClient.setOAuth2Token(oauthToken);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } catch (AccountsException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            }
        }
    }
    if (intent.getAction().equals(ACTION_GET_URI)) {
        final GitHubRequest request = new GitHubRequest();
        request.setUri(intent.getData().toString());
        GitHubResponse response;
        try {
            response = mGitHubClient.get(request);
        } catch (IOException e) {
            response = null;
            e.printStackTrace();
        }
        final Intent resultIntent = new Intent(ACTION_GET_URI, intent.getData());
        if (response != null) {
            resultIntent.putExtra(EXTRA_HAS_NEXT, response.getNext() != null);
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(response.getBody()));
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_EVENTS_LIST_USER_PUBLIC)) {
        final EventService es = new EventService(mGitHubClient);
        ArrayList<Event> result = null;
        PageIterator<Event> iterator = null;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        if (intent.hasExtra(PARAM_LOGIN)) {
            iterator = es.pageUserEvents(intent.getStringExtra(PARAM_LOGIN), true, startPage, REQUEST_PAGE_SIZE);
        }
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<Event>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_EVENTS_LIST_USER_PUBLIC);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_EVENTS_LIST_USER_RECEIVED)) {
        final EventService es = new EventService(mGitHubClient);
        ArrayList<Event> result = null;
        PageIterator<Event> iterator = null;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        if (intent.hasExtra(PARAM_LOGIN)) {
            iterator = es.pageUserReceivedEvents(intent.getStringExtra(PARAM_LOGIN), false, startPage, REQUEST_PAGE_SIZE);
        }
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<Event>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_EVENTS_LIST_USER_RECEIVED);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_EVENTS_LIST_TIMELINE)) {
        final EventService es = new EventService(mGitHubClient);
        ArrayList<Event> result = null;
        PageIterator<Event> iterator;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        iterator = es.pagePublicEvents(startPage, REQUEST_PAGE_SIZE);
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<Event>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_EVENTS_LIST_TIMELINE);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_ISSUES_LIST_SELF)) {
        final IssueService is = new IssueService(mGitHubClient);
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        ArrayList<RepositoryIssue> result = null;
        PageIterator<RepositoryIssue> iterator;
        HashMap<String, String> params = new HashMap<String, String>();
        if (intent.hasExtra(PARAM_FILTER)) {
            params.put("filter", intent.getStringExtra(PARAM_FILTER));
        }
        if (intent.hasExtra(PARAM_STATE)) {
            params.put("state", intent.getStringExtra(PARAM_STATE));
        }
        if (intent.hasExtra(PARAM_LABELS)) {
            params.put("labels", intent.getStringExtra(PARAM_LABELS));
        }
        if (intent.hasExtra(PARAM_SORT)) {
            params.put("sort", intent.getStringExtra(PARAM_SORT));
        }
        if (intent.hasExtra(PARAM_DIRECTION)) {
            params.put("direction", intent.getStringExtra(PARAM_DIRECTION));
        }
        if (intent.hasExtra(PARAM_SINCE)) {
            params.put("since", intent.getStringExtra(PARAM_SINCE));
        }
        iterator = is.pageIssues(params, startPage, REQUEST_PAGE_SIZE);
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<RepositoryIssue>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_ISSUES_LIST_SELF);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_ORGS_SELF_MEMBERSHIPS)) {
        final OrganizationService os = new OrganizationService(mGitHubClient);
        List<User> result;
        try {
            result = os.getOrganizations();
        } catch (IOException e) {
            result = null;
            e.printStackTrace();
        }
        final Intent resultIntent = new Intent(ACTION_ORGS_SELF_MEMBERSHIPS);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_REPOS_GET_REPO)) {
        final RepositoryService rs = new RepositoryService(mGitHubClient);
        Repository result;
        try {
            result = rs.getRepository(intent.getStringExtra(PARAM_REPO_OWNER), intent.getStringExtra(PARAM_REPO_NAME));
        } catch (IOException e) {
            result = null;
            e.printStackTrace();
        }
        final Intent resultIntent = new Intent(ACTION_REPOS_GET_REPO);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_REPOS_LIST_ORG_OWNED)) {
        final RepositoryService rs = new RepositoryService(mGitHubClient);
        ArrayList<Repository> result = null;
        PageIterator<Repository> iterator;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        iterator = rs.pageOrgRepositories(intent.getStringExtra(PARAM_LOGIN), startPage, REQUEST_PAGE_SIZE);
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<Repository>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_REPOS_LIST_ORG_OWNED);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_REPOS_LIST_SELF_OWNED)) {
        final RepositoryService rs = new RepositoryService(mGitHubClient);
        ArrayList<Repository> result = null;
        PageIterator<Repository> iterator;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        Map<String, String> filter = new HashMap<String, String>();
        filter.put("type", "owner");
        filter.put("sort", "pushed");
        iterator = rs.pageRepositories(filter, startPage, REQUEST_PAGE_SIZE);
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<Repository>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_REPOS_LIST_SELF_OWNED);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_REPOS_LIST_USER_OWNED)) {
        final RepositoryService rs = new RepositoryService(mGitHubClient);
        ArrayList<Repository> result = null;
        PageIterator<Repository> iterator;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        iterator = rs.pageRepositories(intent.getStringExtra(PARAM_LOGIN), startPage, REQUEST_PAGE_SIZE);
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<Repository>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_REPOS_LIST_USER_OWNED);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_REPOS_LIST_USER_WATCHED)) {
        final WatcherService ws = new WatcherService(mGitHubClient);
        ArrayList<Repository> result = null;
        PageIterator<Repository> iterator;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        try {
            iterator = ws.pageWatched(intent.getStringExtra(PARAM_LOGIN), startPage, REQUEST_PAGE_SIZE);
        } catch (IOException e) {
            iterator = null;
        }
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<Repository>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_REPOS_LIST_USER_WATCHED);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_USERS_GET_USER)) {
        final UserService us = new UserService(mGitHubClient);
        User result;
        try {
            result = us.getUser(intent.getStringExtra(PARAM_LOGIN));
        } catch (IOException e) {
            result = null;
            e.printStackTrace();
        }
        final Intent resultIntent = new Intent(ACTION_USERS_GET_USER);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_USERS_LIST_FOLLOWERS)) {
        final UserService us = new UserService(mGitHubClient);
        ArrayList<User> result = null;
        PageIterator<User> iterator;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        iterator = us.pageFollowers(intent.getStringExtra(PARAM_LOGIN), startPage, REQUEST_PAGE_SIZE);
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<User>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_USERS_LIST_FOLLOWERS);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    } else if (intent.getAction().equals(ACTION_USERS_LIST_FOLLOWING)) {
        final UserService us = new UserService(mGitHubClient);
        ArrayList<User> result = null;
        PageIterator<User> iterator;
        final int startPage = intent.getIntExtra(ARG_START_PAGE, 1);
        iterator = us.pageFollowing(intent.getStringExtra(PARAM_LOGIN), startPage, REQUEST_PAGE_SIZE);
        if (iterator != null && iterator.hasNext()) {
            result = new ArrayList<User>();
            result.addAll(iterator.next());
        }
        final Intent resultIntent = new Intent(ACTION_USERS_LIST_FOLLOWING);
        if (result != null) {
            resultIntent.putExtra(EXTRA_RESULT_JSON, GsonUtils.toJson(result));
            resultIntent.putExtra(EXTRA_HAS_NEXT, iterator.hasNext());
            resultIntent.putExtra(EXTRA_NEXT_PAGE, iterator.getNextPage());
        } else {
            resultIntent.putExtra(EXTRA_ERROR, true);
        }
        sendBroadcast(resultIntent);
    }
}
Also used : IssueService(org.eclipse.egit.github.core.service.IssueService) Account(android.accounts.Account) User(org.eclipse.egit.github.core.User) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) AccountsException(android.accounts.AccountsException) GitHubRequest(org.eclipse.egit.github.core.client.GitHubRequest) RepositoryIssue(org.eclipse.egit.github.core.RepositoryIssue) GitHubClient(org.eclipse.egit.github.core.client.GitHubClient) ArrayList(java.util.ArrayList) List(java.util.List) RepositoryService(org.eclipse.egit.github.core.service.RepositoryService) GitHubResponse(org.eclipse.egit.github.core.client.GitHubResponse) UserService(org.eclipse.egit.github.core.service.UserService) Intent(android.content.Intent) EventService(org.eclipse.egit.github.core.service.EventService) IOException(java.io.IOException) OrganizationService(org.eclipse.egit.github.core.service.OrganizationService) Repository(org.eclipse.egit.github.core.Repository) OAuthUserProvider(net.idlesoft.android.apps.github.authenticator.OAuthUserProvider) PageIterator(org.eclipse.egit.github.core.client.PageIterator) WatcherService(org.eclipse.egit.github.core.service.WatcherService) Event(org.eclipse.egit.github.core.event.Event)

Example 2 with Event

use of org.eclipse.egit.github.core.event.Event in project hubroid by EddieRingle.

the class EventListAdapter method getView.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.event_list_item, null);
        holder = new ViewHolder();
        holder.title = (TextView) convertView.findViewById(R.id.tv_event_title);
        holder.gravatar = (ImageView) convertView.findViewById(R.id.iv_event_gravatar);
        holder.extra = (TextView) convertView.findViewById(R.id.tv_event_extra);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    final Event e = getItem(position);
    EventUtil.fillHolderWithEvent(holder, e);
    final AQuery aq = new AQuery(getContext());
    aq.id(holder.gravatar).image(e.getActor().getAvatarUrl(), true, true, 140, R.drawable.gravatar, null, AQuery.FADE_IN_NETWORK);
    holder.gravatar.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            final Intent profileIntent = new Intent(getContext(), ProfileActivity.class);
            profileIntent.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_NEW_TASK);
            profileIntent.putExtra(ARG_TARGET_USER, GsonUtils.toJson(e.getActor()));
            getContext().startActivity(profileIntent);
        }
    });
    return convertView;
}
Also used : AQuery(com.androidquery.AQuery) ProfileActivity(net.idlesoft.android.apps.github.ui.activities.app.ProfileActivity) Event(org.eclipse.egit.github.core.event.Event) Intent(android.content.Intent) ImageView(android.widget.ImageView) TextView(android.widget.TextView) View(android.view.View)

Aggregations

Intent (android.content.Intent)2 Event (org.eclipse.egit.github.core.event.Event)2 Account (android.accounts.Account)1 AccountsException (android.accounts.AccountsException)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 AQuery (com.androidquery.AQuery)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 OAuthUserProvider (net.idlesoft.android.apps.github.authenticator.OAuthUserProvider)1 ProfileActivity (net.idlesoft.android.apps.github.ui.activities.app.ProfileActivity)1 Repository (org.eclipse.egit.github.core.Repository)1 RepositoryIssue (org.eclipse.egit.github.core.RepositoryIssue)1 User (org.eclipse.egit.github.core.User)1 GitHubClient (org.eclipse.egit.github.core.client.GitHubClient)1 GitHubRequest (org.eclipse.egit.github.core.client.GitHubRequest)1 GitHubResponse (org.eclipse.egit.github.core.client.GitHubResponse)1