Android Open Source - FlibityBoop Favorite Activity






From Project

Back to project page FlibityBoop.

License

The source code is released under:

Apache License

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

/**
 * IFT2905 : Interface personne machine/* w ww.  j  ava2s  .c  o m*/
 * Projet de session: FlibityBoop.
 * Team: Vincent CABELI, Henry LIM, Pamela MEHANNA, Emmanuel NOUTAHI, Olivier TASTET
 * @author Emmanuel Noutahi, Vincent Cabeli
 */
package com.maclandrol.flibityboop;

import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.widget.TextView;


/**
 * Activit des favoris, utilise un viewpager avec des fragments
 * Une page pour les TVShow et une seconde pour les Films
 * Ce code est fortement inspir de celui du dmo
 */
public class FavoriteActivity extends BaseActivity {
  
  SimplePagerAdapter adapter;
  ViewPager pager;
  TextView t;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_favorites);
        
        // On utilise un PagerAdapter pour insrer des pages dans le ViewPager
        adapter = new SimplePagerAdapter(getSupportFragmentManager());
        t = (TextView) findViewById(R.id.fav_type_titre);
        pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(adapter);
        
        // On utilise les tabs de l'action bar, donc il faut manuellement
        // initialiser ces tabs
        final ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        
        ActionBar.TabListener tabListener = new ActionBar.TabListener() {
          /*
           * onTabSelected est appel lorsque l'usager appuie sur
           * l'un des tabs de l'action bar. On doit donc changer
           * la page du ViewPager.
           * 
           */
          @Override
            public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
                pager.setCurrentItem(tab.getPosition());
                if(tab.getPosition()==1)
                t.setText(R.string.fav_mov);
                else
                  t.setText(R.string.fav_show);
            }

            @Override
            public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
            }

            @Override
            public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
            }
        };

        // On ajoute manuellement les tabs, mais on pourrait aussi
        // combiner la cration des tabs avec le ViewPager.
        // On utilise getPageTitle pour dterminer les titres
        // de chaque page automatiquement.
        for (int i = 0; i < adapter.getCount(); i++) {
            actionBar.addTab(
                    actionBar.newTab()
                            .setText(adapter.getPageTitle(i))
                            .setTabListener(tabListener));
        }

    //  l'inverse de ci-haut, on veut aussi mettre  jour
    // le tab slectionn de l'action bar lorsqu'on change
    // la page dans le ViewPager.
    pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
      @Override
      public void onPageSelected(int position) {
        getActionBar().setSelectedNavigationItem(position);
        if (position == 1)
          t.setText(R.string.fav_mov);
        else
          t.setText(R.string.fav_show);
      }
    });

  }

    /*
     * 
     * Le SimplePagerAdapter est le contrleur principal du ViewPager.
     * C'est ici qu'on dtermine le contenu du ViewPager.
     * 
     * Comme nous avons peu de pages, on utilise un FragmentPagerAdapter.
     * Cette variante du PagerAdapter conserve en mmoire les fragments au
     * complet, y compris les layouts. Ceci augmente les performances, mais
     * aussi l'usage mmoire.
     * 
     */
    private class SimplePagerAdapter extends FragmentPagerAdapter
    {
    public SimplePagerAdapter(FragmentManager fm) {
      super(fm);
    }

    /*
     * La mthode getItem est la mthode la plus importante du PagerAdapter.
     * C'est ici qu'on initialise les fragments sur demande.
     * 
     */
    @Override
    public Fragment getItem(int i) {
      if(i==1){
        MovieListFragment f = new MovieListFragment();
        Bundle args = new Bundle();
        args.putString("trie", "alphabetic");
        f.setArguments(args);
        return f;
      }
      
      return new TVListFragment();
    }

    /*
     * Donne le nombre de pages. Ceci pourrait tre variable, mais
     * est gnralement fixe. Rduire le nombre de pages peut
     * tre problmatique.
     * 
     */
    @Override
    public int getCount() {

      return 2;
    }
    
    /*
     * Retourne le titre d'une page. Ce titre peut tre utilis pour,
     * par exemple, afficher le titre de la page dans l'action bar.
     * Le PagerTabStrip/PagerTitleStrip utilise getPageTitle pour
     * afficher les titres.
     * 
     */
    @Override
    public CharSequence getPageTitle(int position) {
      
      if(position==1)
        return "Movies";
      else
        return "TV Shows";
    }
      
    }
}




Java Source Code List

com.maclandrol.flibityboop.API.java
com.maclandrol.flibityboop.BaseActivity.java
com.maclandrol.flibityboop.Critics.java
com.maclandrol.flibityboop.DBHelperMedia.java
com.maclandrol.flibityboop.FavoriteActivity.java
com.maclandrol.flibityboop.FileCache.java
com.maclandrol.flibityboop.ImageLoader.java
com.maclandrol.flibityboop.MainActivity.java
com.maclandrol.flibityboop.MediaAdapter.java
com.maclandrol.flibityboop.MediaContentProvider.java
com.maclandrol.flibityboop.MediaDetails.java
com.maclandrol.flibityboop.MediaInfos.java
com.maclandrol.flibityboop.Media.java
com.maclandrol.flibityboop.MemoryCache.java
com.maclandrol.flibityboop.MovieFavoriteCursorAdapter.java
com.maclandrol.flibityboop.MovieListFragment.java
com.maclandrol.flibityboop.RottenTomatoes.java
com.maclandrol.flibityboop.SearchActivity.java
com.maclandrol.flibityboop.SearchSuggestionProvider.java
com.maclandrol.flibityboop.SectionListAdapter.java
com.maclandrol.flibityboop.SettingActivity.java
com.maclandrol.flibityboop.ShowFavoriteCursorAdapter.java
com.maclandrol.flibityboop.TVListFragment.java
com.maclandrol.flibityboop.Tastekid.java
com.maclandrol.flibityboop.TheMovieDB.java
com.maclandrol.flibityboop.TraktTV.java
com.maclandrol.flibityboop.Utils.java