Android Open Source - yammp Music Browser Fragment






From Project

Back to project page yammp.

License

The source code is released under:

GNU Lesser General Public License

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

/*
 *  YAMMP - Yet Another Multi Media Player for android
 *  Copyright (C) 2011-2012  Mariotaku Lee <mariotaku.lee@gmail.com>
 */* w  w w .  j  a  va  2s .c o  m*/
 *  This file is part of YAMMP.
 *
 *  YAMMP is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  YAMMP is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with YAMMP.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.yammp.app;

import java.util.ArrayList;

import org.yammp.Constants;
import org.yammp.R;
import org.yammp.util.PreferencesEditor;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.actionbarsherlock.app.SherlockFragment;
import com.viewpagerindicator.TabPageIndicator;
import com.viewpagerindicator.TitleProvider;

public class MusicBrowserFragment extends SherlockFragment implements Constants,
    OnPageChangeListener {

  private ViewPager mViewPager;
  private TabPageIndicator mIndicator;
  //private VerticalTabPageIndicator mVerticalIndicator;

  private TabsAdapter mAdapter;

  private PreferencesEditor mPrefs;

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    setHasOptionsMenu(true);

    mPrefs = new PreferencesEditor(getActivity());
    mAdapter = new TabsAdapter(getFragmentManager());
    mViewPager = (ViewPager) getView().findViewById(R.id.pager);
    mIndicator = (TabPageIndicator) getView().findViewById(R.id.indicator);
//    mVerticalIndicator = (VerticalTabPageIndicator) getView().findViewById(
//        R.id.vertical_indicator);
    configureTabs();
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.music_browser, container, false);
    return view;
  }

  @Override
  public void onCreate(Bundle icicle) {

    super.onCreate(icicle);

  }

  @Override
  public void onPageScrolled(int arg0, float arg1, int arg2) {

  }

  @Override
  public void onPageScrollStateChanged(int state) {

  }

  @Override
  public void onPageSelected(int position) {
    mPrefs.setIntState(STATE_KEY_CURRENTTAB, position);

  }

  private void configureTabs() {

    mAdapter.addFragment(new ArtistFragment(), getString(R.string.artists).toUpperCase());
    mAdapter.addFragment(new AlbumFragment(), getString(R.string.albums).toUpperCase());
    mAdapter.addFragment(new TrackFragment(), getString(R.string.tracks).toUpperCase());
    mAdapter.addFragment(new PlaylistFragment(), getString(R.string.playlists)
        .toUpperCase());
    mAdapter.addFragment(new GenreFragment(), getString(R.string.genres).toUpperCase());

    mViewPager.setAdapter(mAdapter);
    int currenttab = mPrefs.getIntState(STATE_KEY_CURRENTTAB, 0);
    if (mIndicator != null) {
      mIndicator.setViewPager(mViewPager, currenttab);
      mIndicator.setOnPageChangeListener(this);
    }
//    if (mVerticalIndicator != null) {
//      mVerticalIndicator.setViewPager(mViewPager, currenttab);
//      mVerticalIndicator.setOnPageChangeListener(this);
//    }
  }

  private class TabsAdapter extends FragmentStatePagerAdapter implements TitleProvider {

    private ArrayList<Fragment> mFragments = new ArrayList<Fragment>();
    private ArrayList<String> mTitles = new ArrayList<String>();

    public TabsAdapter(FragmentManager manager) {
      super(manager);
    }

    public void addFragment(Fragment fragment, String name) {
      mFragments.add(fragment);
      mTitles.add(name);
      notifyDataSetChanged();
    }

    @Override
    public int getCount() {
      return mFragments.size();
    }

    @Override
    public Fragment getItem(int position) {
      return mFragments.get(position);
    }

    @Override
    public String getTitle(int position) {
      return mTitles.get(position);
    }

  }
}




Java Source Code List

org.yammp.Constants.java
org.yammp.MediaAppWidgetProvider4x1.java
org.yammp.MediaAppWidgetProvider4x2.java
org.yammp.MediaButtonIntentReceiver.java
org.yammp.MusicPlaybackService.java
org.yammp.app.AlbumFragment.java
org.yammp.app.AppearanceSettingsActivity.java
org.yammp.app.ArtistFragment.java
org.yammp.app.Equalizer.java
org.yammp.app.GenreFragment.java
org.yammp.app.LyricsFragment.java
org.yammp.app.MusicBrowserActivity.java
org.yammp.app.MusicBrowserFragment.java
org.yammp.app.MusicPlaybackActivity.java
org.yammp.app.MusicSettingsActivity.java
org.yammp.app.PlaylistFragment.java
org.yammp.app.PluginFragment.java
org.yammp.app.PluginsManagerActivity.java
org.yammp.app.QueryBrowserActivity.java
org.yammp.app.QueryFragment.java
org.yammp.app.TrackBrowserActivity.java
org.yammp.app.TrackFragment.java
org.yammp.dialog.DeleteDialog.java
org.yammp.dialog.PlayShortcut.java
org.yammp.dialog.PlaylistDialog.java
org.yammp.dialog.PlaylistPickerDialog.java
org.yammp.dialog.PlaylistPicker.java
org.yammp.dialog.ScanningProgress.java
org.yammp.dialog.SearchDialog.java
org.yammp.dialog.SleepTimerDialog.java
org.yammp.dialog.VerticalTextSpinnerDialog.java
org.yammp.dialog.WeekSelector.java
org.yammp.util.ColorAnalyser.java
org.yammp.util.EqualizerWrapper.java
org.yammp.util.ImageDownloader.java
org.yammp.util.LazyImageLoader.java
org.yammp.util.LyricsDownloader.java
org.yammp.util.LyricsParser.java
org.yammp.util.LyricsSplitter.java
org.yammp.util.MusicUtils.java
org.yammp.util.PreferencesEditor.java
org.yammp.util.ServiceToken.java
org.yammp.util.ShakeListener.java
org.yammp.util.SortCursor.java
org.yammp.util.VisualizerCompatAudioFX.java
org.yammp.util.VisualizerCompatScoop.java
org.yammp.util.VisualizerCompat.java
org.yammp.util.VisualizerWrapper.java
org.yammp.view.EqualizerView.java
org.yammp.view.SliderView.java
org.yammp.view.TouchPaintView.java
org.yammp.view.VerticalTextSpinner.java
org.yammp.view.VisualizerViewFftSpectrum.java
org.yammp.view.VisualizerViewWaveForm.java
org.yammp.widget.CheckableRelativeLayout.java
org.yammp.widget.RepeatingImageButton.java
org.yammp.widget.SeparatedListAdapter.java
org.yammp.widget.TextScrollView.java
org.yammp.widget.TouchInterceptor.java