Android Open Source - watchme Tag List Fragment






From Project

Back to project page watchme.

License

The source code is released under:

Copyright (c) 2012 Johan Brook, Robin Andersson, Lisa Stenberg, Mattias Henriksson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen...

If you think the Android project watchme 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

/**
 *  TagListFragment.java/*  w ww.j  a v a2s  .  c  om*/
 *
 *  A fragment that present data about Tags.
 *
 *  @author lisastenberg
 *  @copyright (c) 2012 Robin Andersson, Johan Brook, Mattias Henriksson, Lisa Stenberg
 *  @license MIT
 */

package se.chalmers.watchme.ui;

import se.chalmers.watchme.R;
import se.chalmers.watchme.activity.TagMovieListActivity;
import se.chalmers.watchme.database.ICursorHelper;
import se.chalmers.watchme.database.TagsTable;
import se.chalmers.watchme.database.GenericCursorLoader;
import se.chalmers.watchme.database.WatchMeContentProvider;
import se.chalmers.watchme.model.Tag;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemLongClickListener;

public class TagListFragment extends ContentListFragment {
  
  public static final String TAG_ID = "se.chalmers.watchme.TAG_ID";
  
  private static final int LOADER_ID = 1;
  
  /**
   * Creates a new MovieListFragment with the Uri
   * WatchMeContentProvider.CONTENT_URI_TAGS
   */
  public TagListFragment() {
    super(WatchMeContentProvider.CONTENT_URI_TAGS);
  }
  
  @Override
  public void onActivityCreated(Bundle b) {
    super.onActivityCreated(b);
        
    setUpAdapter();
    
    // Set up listener to delete a Tag.
    this.getListView().setOnItemLongClickListener(new OnDeleteListener());
  }
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    
    return inflater.inflate(R.layout.tag_list_fragment_view, container, false);
  }
  
  @Override
  public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    
    /*
     * It should not be possible to mail or sort in this fragment
     */
    MenuItem mailItem = menu.findItem(R.id.menu_send_email_button);
    MenuItem sortItem = menu.findItem(R.id.menu_sort_button);
    
    mailItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    sortItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

    super.onCreateOptionsMenu(menu, inflater);
  }
  
  @Override
  public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
    
    return new GenericCursorLoader(getActivity(), new ICursorHelper() {
      
      @Override
      public Uri getUri() {
        return TagListFragment.this.getUri();
      }
      
      @Override
      public String getSortOrder() {
        return null;
      }
      
      @Override
      public Cursor getCursor() {
        return db.getAllTagsCursor();
      }
    });
  }
  
  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    /**
     * When a tag is clicked, create a cursor pointing at movies containing
     * that tag. Then send it to TagMovieListActivity using intent.putExtra()
     */
    
    Intent intent = new Intent(getActivity(), TagMovieListActivity.class);
    intent.putExtra(TAG_ID, id);
    startActivity(intent);
    getActivity().overridePendingTransition(R.anim.slide_in_from_right, R.anim.slide_out_to_left);
      
  }
  
   /**
     * The listener for when the user does a long-tap on an item in the list.
     * 
     * The Movie object in the list is removed if the user confirms that he wants to remove the Movie.
     * 
     * @author Johan
     * @author lisastenberg
     */
    private class OnDeleteListener implements OnItemLongClickListener {
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
      
      Cursor selectedTag = (Cursor) getListView().getItemAtPosition(position);
        final Tag tag = db.getTag(Long.parseLong(selectedTag.getString(0)));
        
            AlertDialog.Builder alertbox = new AlertDialog.Builder(getActivity());
            alertbox.setMessage(getString(R.string.delete_dialog_text) +" \"" + tag.getName() + "\"?");           
            alertbox.setPositiveButton(getString(R.string.delete_button_positive), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                  
                  db.removeTag(tag);
                  
                    Toast.makeText(getActivity().getApplicationContext(), "\"" + tag.getName() + "\" ws deleted" , Toast.LENGTH_SHORT).show();
                }
            });
            alertbox.setNeutralButton(getString(R.string.delete_button_negative), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                  // Nothing should happen if the user press cancel.
                }
            });
            
            alertbox.show();
      return true;
    }      
  }

    /**
     * Set up adapter and set adapter.
     */
  private void setUpAdapter() {
    
    // Bind name column in the table Tags to the text field in each row.
    String[] from = new String[] { TagsTable.COLUMN_NAME };
    int[] to = new int[] { android.R.id.text1 };
    
    getActivity().getSupportLoaderManager().initLoader(LOADER_ID, null, this);
    super.setAdapter(new SimpleCursorAdapter(getActivity(), android.R.layout.simple_list_item_1 , null, from, to, 0));
  }
}




Java Source Code List

se.chalmers.watchme.activity.AddMovieActivity.java
se.chalmers.watchme.activity.AutoCompleteAdapter.java
se.chalmers.watchme.activity.MainActivity.java
se.chalmers.watchme.activity.MovieDetailsActivity.java
se.chalmers.watchme.activity.SearchableActivity.java
se.chalmers.watchme.activity.TabsAdapter.java
se.chalmers.watchme.activity.TagMovieListActivity.java
se.chalmers.watchme.database.DatabaseAdapter.java
se.chalmers.watchme.database.DatabaseHelper.java
se.chalmers.watchme.database.GenericCursorLoader.java
se.chalmers.watchme.database.HasTagTable.java
se.chalmers.watchme.database.ICursorHelper.java
se.chalmers.watchme.database.MovieAlreadyExistsException.java
se.chalmers.watchme.database.MoviesTable.java
se.chalmers.watchme.database.TagsTable.java
se.chalmers.watchme.database.WatchMeContentProvider.java
se.chalmers.watchme.model.Movie.java
se.chalmers.watchme.model.Tag.java
se.chalmers.watchme.net.HttpRetriever.java
se.chalmers.watchme.net.IMDBHandler.java
se.chalmers.watchme.net.ImageDownloadTask.java
se.chalmers.watchme.net.MovieSource.java
se.chalmers.watchme.net.NoEntityException.java
se.chalmers.watchme.notifications.Notifiable.java
se.chalmers.watchme.notifications.NotificationClient.java
se.chalmers.watchme.notifications.NotificationService.java
se.chalmers.watchme.notifications.NotifyService.java
se.chalmers.watchme.ui.ContentListFragment.java
se.chalmers.watchme.ui.DatePickerFragment.java
se.chalmers.watchme.ui.ImageDialog.java
se.chalmers.watchme.ui.MovieListFragment.java
se.chalmers.watchme.ui.TagListFragment.java
se.chalmers.watchme.utils.DateTimeUtils.java
se.chalmers.watchme.utils.ImageCache.java
se.chalmers.watchme.utils.MenuUtils.java
se.chalmers.watchme.utils.MovieHelper.java
se.chalmers.watchmetest.Constants.java
se.chalmers.watchmetest.activity.MainActivityTest.java
se.chalmers.watchmetest.activity.MovieDetailsActivityTest.java
se.chalmers.watchmetest.activity.SearchableActivityTest.java
se.chalmers.watchmetest.activity.TabsAdapterTest.java
se.chalmers.watchmetest.activity.TagMovieListActivityTest.java
se.chalmers.watchmetest.database.WatchMeContentProviderTest.java
se.chalmers.watchmetest.model.MovieTest.java
se.chalmers.watchmetest.model.TagTest.java
se.chalmers.watchmetest.net.HttpRetrieverTest.java
se.chalmers.watchmetest.net.IMDBHandlerTest.java
se.chalmers.watchmetest.ui.MovieListFragmentTest.java
se.chalmers.watchmetest.ui.TagListFragmentTest.java
se.chalmers.watchmetest.util.DateTimeUtilsTest.java
se.chalmers.watchmetest.util.MovieHelperTest.java