Android Open Source - links Bookmark In Groups Search Loader






From Project

Back to project page links.

License

The source code is released under:

MIT License

If you think the Android project links listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.iiitb.se.links.utils.network.bookmarks.search;
/*from   ww w  .  j  a v  a  2 s .  co  m*/
import java.util.List;

import org.iiitb.se.links.R;
import org.iiitb.se.links.home.fragments.adapter.BookmarksAdapter;
import org.iiitb.se.links.utils.AppConstants;
import org.iiitb.se.links.utils.BookmarkLoadType;
import org.iiitb.se.links.utils.StringConstants;
import org.iiitb.se.links.utils.URLConstants;
import org.iiitb.se.links.utils.network.AbstractResourceDownloader;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.scribe.model.OAuthRequest;
import org.scribe.model.Response;
import org.scribe.model.Token;
import org.scribe.model.Verb;

import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.util.Log;

public class BookmarkInGroupsSearchLoader extends AbstractResourceDownloader {

  protected static final String TAG = "BookmarkInGroupsSearchLoader";
  private BookmarksAdapter bookmarksAdapter;
  private List<JSONObject> bookmarks;
  private String searchQuery;
  private String groupId;

  public BookmarkInGroupsSearchLoader(Context context,
      BookmarksAdapter bookmarksAdapter, List<JSONObject> bookmarks,
      String searchQuery, String groupId) {
    super(context);
    this.bookmarksAdapter = bookmarksAdapter;
    this.bookmarks = bookmarks;
    this.searchQuery = searchQuery;
    this.groupId = groupId;
  }

  @Override
  public void fetchProtectedResource(Token accessToken) {
    fetchBookmarks(accessToken, BookmarkLoadType.TIMELINE);
  }

  public void authorizeOrLoadBookarks() {
    String accessTokenKey = sharedPreferences.getString(
        AppConstants.ACCESS_TOKEN_KEY, null);
    String accessTokenSecret = sharedPreferences.getString(
        AppConstants.ACCESS_TOKEN_SECRET, null);
    if (null == accessTokenKey || null == accessTokenSecret) {
      Log.i(TAG, "Token Key is not saved. Will start authorization.");
      authDialog.show();
      authDialog.setTitle(context.getString(R.string.authorize_links));
      startAuthorize();
    } else {
      Log.i(TAG, "Token Key found. Will access protected resource - bookmarks.");
      Token accessToken = new Token(accessTokenKey, accessTokenSecret);
      fetchBookmarks(accessToken, BookmarkLoadType.TIMELINE);
    }
  }

  public void fetchBookmarks(final BookmarkLoadType bookmarkLoadType) {
    String accessTokenKey = sharedPreferences.getString(
        AppConstants.ACCESS_TOKEN_KEY, null);
    String accessTokenSecret = sharedPreferences.getString(
        AppConstants.ACCESS_TOKEN_SECRET, null);
    Token accessToken = new Token(accessTokenKey, accessTokenSecret);
    fetchBookmarks(accessToken, bookmarkLoadType);
  }

  protected void fetchBookmarks(final Token accessToken,
      final BookmarkLoadType bookmarkLoadType) {
    if (netAvailable()) {
      (new AsyncTask<Void, Integer, String>() {
        Response response;
        int status;

        @Override
        protected void onPreExecute() {
          mProgressDialog.setProgress(0);
          mProgressDialog.show();
        }

        @Override
        protected void onProgressUpdate(Integer... progress) {
          mProgressDialog.setProgress(progress[0]);
        }

        @Override
        protected String doInBackground(Void... params) {
          String resourceURL = null;
          String lastBookmarkUpdatedAt = sharedPreferences.getString(
              AppConstants.LAST_SEARCH_BOOKMARK_UPDATED_AT, null);
          String query = Uri.encode(searchQuery);
          switch (bookmarkLoadType) {
            case MORE_BOOKMARKS:
              resourceURL = String.format(
                  URLConstants.SEARCH_MORE_BOOKMARKS_IN_GROUP, groupId, query,
                  lastBookmarkUpdatedAt);
              break;
            case REFRESH_BOOKMARKS:
              break;
            case TIMELINE:
              bookmarks.clear();
              resourceURL = String.format(URLConstants.SEARCH_IN_GROUP,
                  groupId, query);
              break;
            default:
              break;

          }

          OAuthRequest request = new OAuthRequest(Verb.GET, resourceURL);
          mOauthService.signRequest(accessToken, request);
          response = request.send();
          status = response.getCode();
          return response.getBody();
        }

        @Override
        protected void onPostExecute(String responseBody) {
          // Log.i(TAG, responseBody);
          mProgressDialog.hide();
          if (null == responseBody || 401 == status) {
            startAuthorize();
          } else {
            try {
              JSONArray resp = new JSONArray(responseBody);
              for (int index = 0; index < resp.length(); index += 1) {
                bookmarks.add(resp.getJSONObject(index));
              }

              if (0 < bookmarks.size()) {

                JSONObject linkObj = bookmarks.get(0);
                String updatedAt = linkObj
                    .getString(StringConstants.UPDATED_AT);
                sharedPreferencesEditor.putString(
                    AppConstants.FIRST_SEARCH_BOOKMARK_UPDATED_AT, updatedAt);

                linkObj = bookmarks.get(bookmarks.size() - 1);
                updatedAt = linkObj.getString(StringConstants.UPDATED_AT);
                sharedPreferencesEditor.putString(
                    AppConstants.LAST_SEARCH_BOOKMARK_UPDATED_AT, updatedAt);

                sharedPreferencesEditor.commit();
                bookmarksAdapter.notifyDataSetChanged();
                Log.i(TAG,
                    "Saving the updated time of first and last received bookmark");
              }
            } catch (JSONException e) {
              e.printStackTrace();
            }
          }
        }

      }).execute();
    }
  }

}




Java Source Code List

org.iiitb.se.links.GroupActivity.java
org.iiitb.se.links.MainActivity.java
org.iiitb.se.links.custom.ExpandableHeightGridView.java
org.iiitb.se.links.group.fragments.AddBookmarkInGroupFragment.java
org.iiitb.se.links.group.fragments.BookmarkSearchInGroupsFragment.java
org.iiitb.se.links.group.fragments.GroupLinkFragment.java
org.iiitb.se.links.home.ResourceLoader.java
org.iiitb.se.links.home.cards.AbstractGroupCard.java
org.iiitb.se.links.home.cards.BookmarkCard.java
org.iiitb.se.links.home.cards.RequestsGroupCard.java
org.iiitb.se.links.home.cards.ShareGroupCard.java
org.iiitb.se.links.home.cards.SubscribedGroupCard.java
org.iiitb.se.links.home.cards.expand.BookmarkCardExpand.java
org.iiitb.se.links.home.cards.expand.adapter.TagViewAdapter.java
org.iiitb.se.links.home.fragments.AddBookmarkFragment.java
org.iiitb.se.links.home.fragments.BookmarkSearchFragment.java
org.iiitb.se.links.home.fragments.EditBookmarkFragment.java
org.iiitb.se.links.home.fragments.LinkFragment.java
org.iiitb.se.links.home.fragments.RequestsGroupFragment.java
org.iiitb.se.links.home.fragments.SubscribedGroupFragment.java
org.iiitb.se.links.home.fragments.adapter.AbstractGroupsAdapter.java
org.iiitb.se.links.home.fragments.adapter.BookmarksAdapter.java
org.iiitb.se.links.home.fragments.adapter.RequestsGroupsAdapter.java
org.iiitb.se.links.home.fragments.adapter.ShareGroupsAdapter.java
org.iiitb.se.links.home.fragments.adapter.SubscribedGroupsAdapter.java
org.iiitb.se.links.utils.AuthorizationClient.java
org.iiitb.se.links.utils.BookmarkLoadType.java
org.iiitb.se.links.utils.BookmarkOperations.java
org.iiitb.se.links.utils.DomainExtractor.java
org.iiitb.se.links.utils.FragmentTypes.java
org.iiitb.se.links.utils.StringConstants.java
org.iiitb.se.links.utils.URLConstants.java
org.iiitb.se.links.utils.network.AbstractResourceDownloader.java
org.iiitb.se.links.utils.network.MyProperties.java
org.iiitb.se.links.utils.network.WebpageLoader.java
org.iiitb.se.links.utils.network.bookmarks.BookmarkAdder.java
org.iiitb.se.links.utils.network.bookmarks.BookmarkDeleter.java
org.iiitb.se.links.utils.network.bookmarks.BookmarkEditor.java
org.iiitb.se.links.utils.network.bookmarks.BookmarkGroupAdder.java
org.iiitb.se.links.utils.network.bookmarks.BookmarkSharer.java
org.iiitb.se.links.utils.network.bookmarks.Logout.java
org.iiitb.se.links.utils.network.bookmarks.TimelineLoader.java
org.iiitb.se.links.utils.network.bookmarks.search.BookmarkInGroupsSearchLoader.java
org.iiitb.se.links.utils.network.bookmarks.search.BookmarkSearchLoader.java
org.iiitb.se.links.utils.network.groups.GroupTimelineLoader.java
org.iiitb.se.links.utils.network.groups.requests.GroupRequestsDecider.java
org.iiitb.se.links.utils.network.groups.requests.RequestsGroupsLoader.java
org.iiitb.se.links.utils.network.groups.subscribed.GroupUnsubscriber.java
org.iiitb.se.links.utils.network.groups.subscribed.SubscribedGroupsLoader.java