package com.csound.wizard.fragment;
import android.app.Fragment;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import com.csound.wizard.App;
import com.csound.wizard.DirectoryChooserDialog;
import com.csound.wizard.MainActivity;
import com.csound.wizard.Utils;
import com.csound.wizard.model.Model;
import com.example.proglayout.R;
import com.ipaulpro.afilechooser.utils.FileUtils;
public class CurrentPlaylistFragment extends Fragment {
private ArrayAdapter<String> adapter;
private static final int REQUEST_CHOOSER = 1234;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View res = inflater.inflate(R.layout.fragment_current_playlist, container, false);
ListView lv = (ListView) res.findViewById(R.id.current_playlist);
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, Utils.getModel(this).getCurrentTrackNames()) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Model model = Utils.getModel(CurrentPlaylistFragment.this);
View res = super.getView(position, convertView, parent);
if (position == model.getCurrentTrackId()) {
res.setBackgroundColor(Color.parseColor("#87CEFA"));
} else {
res.setBackgroundColor(Color.TRANSPARENT);
}
return res;
}
};
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int item, long arg3) {
view.setSelected(true);
((MainActivity) getActivity()).goToTrack(item);
}
});
((Button) res.findViewById(R.id.action_load)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent getContentIntent = FileUtils.createGetContentIntent();
Intent intent = Intent.createChooser(getContentIntent, "Select a file");
startActivityForResult(intent, REQUEST_CHOOSER);
}
});
((Button) res.findViewById(R.id.action_load_dir)).setOnClickListener(new OnClickListener()
{
private String m_chosenDir = "";
private boolean m_newFolderEnabled = false;
@Override
public void onClick(View v)
{
// Create DirectoryChooserDialog and register a callback
DirectoryChooserDialog directoryChooserDialog =
new DirectoryChooserDialog(getActivity(),
new DirectoryChooserDialog.ChosenDirectoryListener()
{
@Override
public void onChosenDir(String chosenDir)
{
m_chosenDir = chosenDir;
Utils.getModel(CurrentPlaylistFragment.this).saveTracksFromDir(chosenDir);
((MainActivity) getActivity()).goToCurrentPlaylist();
}
});
// Toggle new folder button enabling
directoryChooserDialog.setNewFolderEnabled(m_newFolderEnabled);
// Load directory chooser dialog for initial 'm_chosenDir' directory.
// The registered callback will be called upon final directory selection.
directoryChooserDialog.chooseDirectory(m_chosenDir);
m_newFolderEnabled = ! m_newFolderEnabled;
}
});
return res;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CHOOSER:
if (resultCode == getActivity().RESULT_OK) {
final Uri uri = data.getData();
// Get the File path from the Uri
String path = FileUtils.getPath(getActivity(), uri);
try {
Utils.getModel(this).saveTrack(path);
} catch (Exception e) {
e.printStackTrace();
}
}
break;
}
((MainActivity) getActivity()).goToCurrentPlaylist();
}
@Override
public void onPause() {
super.onPause();
App app = (App) getActivity().getApplication();
app.setWatchingCurrentPlaylist(false);
}
@Override
public void onResume() {
super.onResume();
App app = (App) getActivity().getApplication();
app.setWatchingCurrentPlaylist(true);
}
}