package com.sound.ampache.fragments;
/* Copyright (c) 2008-2009 Kevin James Purdy <purdyk@gmail.com>
* Copyright (c) 2010 Krisopher Heijari <iif.ftw@gmail.com>
* Copyright (c) 2014 David Hrdina Nemecek <dejvino@gmail.com>
*
* +------------------------------------------------------------------------+
* | This program 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 2 |
* | of the License, or (at your option) any later version. |
* | |
* | This program 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 this program; if not, write to the Free Software |
* | Foundation, Inc., 59 Temple Place - Suite 330, |
* | Boston, MA 02111-1307, USA. |
* +------------------------------------------------------------------------+
*/
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
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.ProgressBar;
import com.sound.ampache.net.AmpacheApiAction;
import com.sound.ampache.objects.Album;
import com.sound.ampache.objects.Directive;
import com.sound.ampache.ui.AmpacheListView;
import com.sound.ampache.ui.FetchingProgressBarListener;
import com.sound.ampache.ui.HorizontalAlbumListView;
import com.sound.ampache.R;
import com.sound.ampache.amdroid;
import com.sound.ampache.ui.OnAmpacheObjectClickListener;
import com.sound.ampache.ui.VerticalAmpacheListView;
public class DashboardFragment extends Fragment
{
private View rootView;
private HorizontalAlbumListView randomAlbumListView;
private HorizontalAlbumListView recentAlbumListView;
//private VerticalAmpacheListView randomAlbumListView;
//private VerticalAmpacheListView recentAlbumListView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.dashboard_layout, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
rootView = view;
amdroid.networkClient.auth();
OnAmpacheObjectClickListener<Album> onAlbumClickListener = new OnAmpacheObjectClickListener<Album>()
{
@Override
public void onAmpacheObjectClick(Album object)
{
Directive directive = new Directive(AmpacheApiAction.ALBUM_SONGS, object.getId(), object.name);
Fragment newFragment = new BrowseFragment();
Bundle arguments = new Bundle();
arguments.putParcelable(BrowseFragment.ARGUMENTS_KEY_DIRECTIVE, directive);
newFragment.setArguments(arguments);
if (getFragmentManager() == null) {
throw new RuntimeException("Cannot get fragment manager.");
}
getFragmentManager().beginTransaction()
.replace(R.id.mainContent, newFragment)
.commit();
}
};
randomAlbumListView = (HorizontalAlbumListView) rootView.findViewById(R.id.random_albums);
randomAlbumListView.setIsFetchingListener(new FetchingProgressBarListener(rootView, R.id.random_albums_progress_bar));
randomAlbumListView.enqueRequest(new Directive(AmpacheApiAction.STATS, "random", "Random albums"));
randomAlbumListView.setOnAmpacheObjectClickListener(onAlbumClickListener);
//randomAlbumListView.setEmptyView(browseListView);
recentAlbumListView = (HorizontalAlbumListView) rootView.findViewById(R.id.recent_albums);
recentAlbumListView.setIsFetchingListener(new FetchingProgressBarListener(rootView, R.id.recent_albums_progress_bar));
recentAlbumListView.enqueRequest(new Directive(AmpacheApiAction.STATS, "recent", "Recent albums"));
recentAlbumListView.setOnAmpacheObjectClickListener(onAlbumClickListener);
//randomAlbumListView.setEmptyView(browseListView);
}
@Override
public void onPrepareOptionsMenu(Menu menu)
{
menu.clear();
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.dash_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId()) {
case R.id.dash_menu_preferences:
Intent intent = new Intent().setClass(getActivity(), PreferencesFragment.class);
if (intent != null)
startActivity(intent);
break;
default:
return false;
}
return true;
}
}