Android Open Source - Test-SimpleTwitterClient Tweet Loader






From Project

Back to project page Test-SimpleTwitterClient.

License

The source code is released under:

This is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a co...

If you think the Android project Test-SimpleTwitterClient 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 com.example.Twitter_Android.Loaders;
//w  w  w .j  av a 2s . c o  m
import android.content.AsyncTaskLoader;
import android.content.Context;
import android.preference.PreferenceManager;
import com.example.Twitter_Android.AppActivity.SettingsActivity;

import java.util.List;

abstract class TweetLoader<T> extends AsyncTaskLoader<List<T>> {
  protected final int RESULT_COUNT;
  private List<T> loadedTweets;
  private static final String DEFAULT_TWEET_COUNT = "50";

  //------------------------------------------------------------------------------------------------------------------
  TweetLoader(Context context) {
    super(context);
    String value = PreferenceManager.getDefaultSharedPreferences(context).getString(SettingsActivity.ALLOWED_TWEET_COUNT, DEFAULT_TWEET_COUNT);
    RESULT_COUNT = Integer.valueOf(value);
  }
  //------------------------------------------------------------------------------------------------------------------

  @Override
  public void deliverResult(List<T> data) {
    if (isReset()) {
      releaseResources(data);
      return;
    }
    List<T> oldData = loadedTweets;
    loadedTweets = data;

    if (isStarted()) {
      super.deliverResult(data);
    }

    if (oldData != null && oldData != data) {
      releaseResources(oldData);
    }
  }

  void setLoadedTweets(List<T> loadedData) {
    loadedTweets = loadedData;
  }
  //------------------------------------------------------------------------------------------------------------------

  @Override
  protected void onStartLoading() {
    super.onStartLoading();
    if (loadedTweets != null && loadedTweets.size() > 0) {
      deliverResult(loadedTweets);
    } else {
      forceLoad();
    }
  }
  //------------------------------------------------------------------------------------------------------------------

  @Override
  protected void onStopLoading() {
    cancelLoad();
  }
  //------------------------------------------------------------------------------------------------------------------

  @Override
  protected void onReset() {
    // Ensure the loader has been stopped.
    onStopLoading();

    // At this point we can release the resources associated with 'mData'.
    if (loadedTweets != null) {
      releaseResources(loadedTweets);
      loadedTweets = null;
    }
  }

  //------------------------------------------------------------------------------------------------------------------

  @Override
  public void onCanceled(List<T> data) {
    super.onCanceled(data);
    releaseResources(data);
  }
  //------------------------------------------------------------------------------------------------------------------

  @Override
  public abstract List<T> loadInBackground();
  //------------------------------------------------------------------------------------------------------------------

  private void releaseResources(List<T> data) {
    if (data != null) {
      data.clear();
    }
  }
}




Java Source Code List

com.example.Twitter_Android.AppActivity.ConcreteUserTimelineActivity.java
com.example.Twitter_Android.AppActivity.MainActivity.java
com.example.Twitter_Android.AppActivity.MessagesActivity.java
com.example.Twitter_Android.AppActivity.SearchableActivity.java
com.example.Twitter_Android.AppActivity.SettingsActivity.java
com.example.Twitter_Android.AsynkTasks.ImageDownloader.java
com.example.Twitter_Android.AsynkTasks.TaskDeleteTweet.java
com.example.Twitter_Android.AsynkTasks.TaskFollow.java
com.example.Twitter_Android.AsynkTasks.TaskPostTweet.java
com.example.Twitter_Android.AsynkTasks.TaskReply.java
com.example.Twitter_Android.AsynkTasks.TaskRetweet.java
com.example.Twitter_Android.AsynkTasks.TaskSendMessage.java
com.example.Twitter_Android.AsynkTasks.TaskUnfollow.java
com.example.Twitter_Android.Fragments.ConcreteUserTimelineFragment.java
com.example.Twitter_Android.Fragments.ConnectedUserTimelineFragment.java
com.example.Twitter_Android.Fragments.FollowersFragment.java
com.example.Twitter_Android.Fragments.FollowingsFragment.java
com.example.Twitter_Android.Fragments.HomeTimelineFragment.java
com.example.Twitter_Android.Fragments.TimelineFragment.java
com.example.Twitter_Android.Fragments.UserInfoFragment.java
com.example.Twitter_Android.Fragments.Adapters.ConcreteUserTimelineAdapter.java
com.example.Twitter_Android.Fragments.Adapters.FollowingsListAdapter.java
com.example.Twitter_Android.Fragments.Adapters.MessagesAdapter.java
com.example.Twitter_Android.Fragments.Adapters.TimelineAdapter.java
com.example.Twitter_Android.Fragments.Adapters.TweetAdapter.java
com.example.Twitter_Android.Fragments.Dialogs.DeleteTweetDialog.java
com.example.Twitter_Android.Fragments.Dialogs.DirectMessageDialog.java
com.example.Twitter_Android.Fragments.Dialogs.ErrorDialog.java
com.example.Twitter_Android.Fragments.Dialogs.PostTweetDialog.java
com.example.Twitter_Android.Fragments.Dialogs.ReplyDialog.java
com.example.Twitter_Android.Fragments.Dialogs.RetweetDialog.java
com.example.Twitter_Android.Fragments.Dialogs.ShowImageDialog.java
com.example.Twitter_Android.Fragments.Dialogs.UserInfoDialog.java
com.example.Twitter_Android.Fragments.Preferences.SettingsFragment.java
com.example.Twitter_Android.Loaders.AsyncUserInfoLoader.java
com.example.Twitter_Android.Loaders.FollowersLoader.java
com.example.Twitter_Android.Loaders.FollowingsLoader.java
com.example.Twitter_Android.Loaders.HomeTimelineLoader.java
com.example.Twitter_Android.Loaders.MessageLoader.java
com.example.Twitter_Android.Loaders.Task_LoadSearchedTweets.java
com.example.Twitter_Android.Loaders.Task_LoadSearchedUsers.java
com.example.Twitter_Android.Loaders.TweetLoader.java
com.example.Twitter_Android.Loaders.UserTimelineLoader.java
com.example.Twitter_Android.Logic.AppDatabase.java
com.example.Twitter_Android.Logic.Constants.java
com.example.Twitter_Android.Logic.DataCache.java
com.example.Twitter_Android.Logic.FileWorker.java
com.example.Twitter_Android.Logic.Person.java
com.example.Twitter_Android.Logic.Tweet.java
com.example.Twitter_Android.Net.Connector.java
com.example.Twitter_Android.Net.Parser.java
com.mass.cmassive.CMassive.java