Android Open Source - tpblogr Post List Fragment






From Project

Back to project page tpblogr.

License

The source code is released under:

MIT License

If you think the Android project tpblogr 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 blogr.vpm.fr.blogr.activity;
//  ww w .  j a v a2s.  c om
import android.app.DialogFragment;
import android.app.ListFragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

import blogr.vpm.fr.blogr.R;
import blogr.vpm.fr.blogr.bean.EmailBlog;
import blogr.vpm.fr.blogr.bean.GithubBlog;
import blogr.vpm.fr.blogr.bean.Post;
import blogr.vpm.fr.blogr.bean.TPBlog;
import blogr.vpm.fr.blogr.persistence.FilePostRetriever;
import blogr.vpm.fr.blogr.persistence.PostRetriever;

/**
 * Created by vincent on 08/10/14.
 */
public class PostListFragment extends ListFragment implements InvalidatedModelListener {

  private PostRetriever retriever;

  private PostSelectionListener postSelectionListener;

  private List<Post> posts;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    // init services
    retriever = new FilePostRetriever(getActivity());
    postSelectionListener = (PostSelectionListener) getActivity();
  }

  @Override
  public void onResume() {
    super.onResume();
    getActivity().getActionBar().setDisplayHomeAsUpEnabled(false);
    retrieveAndLoadAllPosts();
    setContextualListeners();
  }

  @Override
  public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.postlist, menu);
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();
    if (id == R.id.action_settings) {
      startActivity(new Intent(getActivity(), AllPreferencesActivity.class));
      return true;
    } else if (id == R.id.action_new) {
      DialogFragment pickBlogFragment = new BlogListDialogFragment();
      Bundle args = new Bundle();
      args.putInt(BlogListDialogFragment.REQUEST_CODE, PostListActivity.NEW_POST_REQ);
      pickBlogFragment.setArguments(args);
      pickBlogFragment.show(getFragmentManager(), "blogPicker");
      return true;
    } else if (id == R.id.action_new_email_blog) {
      Intent i = new Intent(getActivity(), BlogActivity.class);
      i.putExtra(BlogActivity.BLOG_KEY, new EmailBlog("", ""));
      startActivity(i);
      return true;
    } else if (id == R.id.action_new_tp_blog) {
      Intent i = new Intent(getActivity(), BlogActivity.class);
      i.putExtra(BlogActivity.BLOG_KEY, new TPBlog("", ""));
      startActivity(i);
      return true;
    } else if (id == R.id.action_new_github_blog) {
      Intent i = new Intent(getActivity(), BlogActivity.class);
      i.putExtra(BlogActivity.BLOG_KEY, new GithubBlog(""));
      startActivity(i);
      return true;
    } else if (id == R.id.action_manage_blog) {
      DialogFragment pickBlogFragment = new BlogListDialogFragment();
      Bundle args = new Bundle();
      args.putInt(BlogListDialogFragment.REQUEST_CODE, PostListActivity.NEW_BLOG_REQ);
      pickBlogFragment.setArguments(args);
      pickBlogFragment.show(getFragmentManager(), "blogPicker");
      return true;
    }
    return super.onOptionsItemSelected(item);
  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    Post selectedPost = posts.get(position);
    postSelectionListener.onPostSelection(selectedPost);
  }

  /**
   * Defines the listener when long clicking on one or multiple items of the list
   */
  private void setContextualListeners() {
    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
    final AbsListView.MultiChoiceModeListener actionModeCallback = new PostListChoiceModeListener(getActivity(), posts);
    getListView().setMultiChoiceModeListener(actionModeCallback);
  }

  /**
   * Retrieves all posts from file system and sets the list adapter with these posts.
   */
  private void retrieveAndLoadAllPosts() {
    setEmptyText(getActivity().getResources().getString(R.string.postlist_emptytext));
    posts = retriever.retrieveAll();
    List<String> postItems = new ArrayList<String>();
    for (Post post : posts) {
      postItems.add(post.getTitle());
    }
    setListAdapter(new ArrayAdapter<String>(getActivity(), R.layout.post_item, postItems));
  }

  @Override
  public void onInvalidatedModel() {
    retrieveAndLoadAllPosts();
  }
}




Java Source Code List

blogr.vpm.fr.blogr.activity.AllPreferencesActivity.java
blogr.vpm.fr.blogr.activity.BlogActivity.java
blogr.vpm.fr.blogr.activity.BlogListDialogFragment.java
blogr.vpm.fr.blogr.activity.DialogDismissedListener.java
blogr.vpm.fr.blogr.activity.EmailBlogEditionFragment.java
blogr.vpm.fr.blogr.activity.FlickrDialogFragment.java
blogr.vpm.fr.blogr.activity.GithubBlogEditionFragment.java
blogr.vpm.fr.blogr.activity.InvalidatedModelListener.java
blogr.vpm.fr.blogr.activity.PostEditionActivity.java
blogr.vpm.fr.blogr.activity.PostEditionFragment.java
blogr.vpm.fr.blogr.activity.PostListActivity.java
blogr.vpm.fr.blogr.activity.PostListChoiceModeListener.java
blogr.vpm.fr.blogr.activity.PostListFragment.java
blogr.vpm.fr.blogr.activity.PostSelectionListener.java
blogr.vpm.fr.blogr.activity.PreferenceCategoryFragment.java
blogr.vpm.fr.blogr.apis.flickr.FlickrJAndroidProvider.java
blogr.vpm.fr.blogr.apis.flickr.FlickrJAsyncTaskProvider.java
blogr.vpm.fr.blogr.apis.flickr.FlickrProvider.java
blogr.vpm.fr.blogr.apis.flickr.ParcelableFlickrPhoto.java
blogr.vpm.fr.blogr.bean.Blog.java
blogr.vpm.fr.blogr.bean.EmailBlog.java
blogr.vpm.fr.blogr.bean.GithubBlog.java
blogr.vpm.fr.blogr.bean.Post.java
blogr.vpm.fr.blogr.bean.TPBlog.java
blogr.vpm.fr.blogr.format.AlignCenterTagsProvider.java
blogr.vpm.fr.blogr.format.AlignLeftTagsProvider.java
blogr.vpm.fr.blogr.format.AlignRightTagsProvider.java
blogr.vpm.fr.blogr.insertion.DefaultInserter.java
blogr.vpm.fr.blogr.insertion.Inserter.java
blogr.vpm.fr.blogr.insertion.SingleTagProvider.java
blogr.vpm.fr.blogr.insertion.SurroundingTagsProvider.java
blogr.vpm.fr.blogr.location.AndroidLocationProvider.java
blogr.vpm.fr.blogr.location.LatLongTagProvider.java
blogr.vpm.fr.blogr.location.LocationProvider.java
blogr.vpm.fr.blogr.persistence.BlogRetriever.java
blogr.vpm.fr.blogr.persistence.BlogSaver.java
blogr.vpm.fr.blogr.persistence.FileBlogManager.java
blogr.vpm.fr.blogr.persistence.FilePostRetriever.java
blogr.vpm.fr.blogr.persistence.FilePostSaver.java
blogr.vpm.fr.blogr.persistence.PostRetriever.java
blogr.vpm.fr.blogr.persistence.PostSaver.java
blogr.vpm.fr.blogr.picture.AsyncPictureLoader.java
blogr.vpm.fr.blogr.picture.ImageViewLoader.java
blogr.vpm.fr.blogr.picture.PictureLoadedListener.java
blogr.vpm.fr.blogr.picture.PictureMdTagsProvider.java
blogr.vpm.fr.blogr.picture.PicturePickedListener.java
blogr.vpm.fr.blogr.picture.PictureTagProvider.java
blogr.vpm.fr.blogr.picture.PictureTpTagsProvider.java
blogr.vpm.fr.blogr.publish.Formatter.java
blogr.vpm.fr.blogr.publish.HtmlFormatter.java
blogr.vpm.fr.blogr.publish.IdentityFormatter.java
blogr.vpm.fr.blogr.publish.PostPublisher.java
blogr.vpm.fr.blogr.publish.StdEmailPostPublisher.java
blogr.vpm.fr.blogr.publish.TPJavaMailPostPublisher.java
blogr.vpm.fr.blogr.publish.TPPostPublisher.java
blogr.vpm.fr.blogr.service.PostPublishingPreferencesProvider.java
blogr.vpm.fr.blogr.service.PostPublishingServiceProvider.java