package com.PP.LunarTabsAndroid.Dialogs;
import java.io.File;
import org.herac.tuxguitar.song.models.TGSong;
import android.R;
import android.app.Dialog;
import android.content.Context;
import com.PP.LunarTabsAndroid.APIs.TextToSpeechAPI;
import com.PP.LunarTabsAndroid.APIs.TuxGuitarUtil;
import com.PP.LunarTabsAndroid.Activities.MainActivity;
import com.PP.LunarTabsAndroid.UI.DataModel;
import com.PP.LunarTabsAndroid.UI.ResourceModel;
import com.PP.LunarTabsAndroid.UI.SerializedParams;
import com.daidalos.afiledialog.FileChooserDialog;
public class GuitarFileLoaderDialog extends FileChooserDialog {
public GuitarFileLoaderDialog(final Context context, final MainActivity mainActivity) {
super(context,SerializedParams.getInstance().getHomeDir());
setCanCreateFiles(false);
setFilter(".*gp1|.*gp2|.*gp3|.*gp4|.*gp5|.*gpx|.*ptb");
addListener(new FileChooserDialog.OnFileSelectedListener() {
@Override
public void onFileSelected(Dialog source, File file) {
//finish dialog
source.dismiss();
//attempt file load and populate tracks
try {
//populate GUI with selection
// fileField.setText(file.getName());
// fileField.setContentDescription(file.getName());
//load song and store in gui data model
TGSong song = TuxGuitarUtil.loadSong(file.getPath());
// fileField.setText(song.getName());
// fileField.setContentDescription(song.getName());
DataModel dataModel = DataModel.getInstance();
dataModel.setFilePath(file.getPath());
dataModel.setFileName(song.getName());
if(song!=null) {
dataModel.setSong(song);
}
//create tracks
mainActivity.createTrackOptions();
//set first segment selected and load instructions
if(dataModel.getTracksList().size() >0) {
//set params
dataModel.setTrackNum(0);
dataModel.setCurrentSegment(0);
//enable instructions list
mainActivity.getInstructionsList().setHilightEnabled(true);
//perform load and show on GUI
mainActivity.loadInstructions();
DataModel.getInstance().clearSelectedInstructionIndex();
mainActivity.getInstructionsList().refreshGUI();
}
//notify user that track successfully loaded
TextToSpeechAPI.speak(ResourceModel.getInstance().FILE_LOADED_SPEECH);
}
catch(Exception e) {
//say could not be loaded
TextToSpeechAPI.speak(ResourceModel.getInstance().ERROR_FILE_NOT_LOADED);
}
}
@Override
public void onFileSelected(Dialog source, File folder, String name) {}
});
}
}