Hi!
My application have to save some information in some files on sdcard. If
i connect my phone (Htc Hero) at computer ass USB storage after i turn off
USB Storage all my files what are created by my app are deleted. If anyone
have idea why this is happining please help me..
That is my code:
package com.app.liviu.simpleMusciPlayer.playlist;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import android.content.Context;
import android.util.Log;
import com.app.liviu.simpleMusciPlayer.database.DatabaseManager;
import com.app.liviu.simpleMusicPlayer.MainActivity;
import com.app.liviu.simpleMusicPlayer.R;
import com.app.liviu.simpleMusicPlayer.Util.Constants;
public class Playlist implements BasePlaylist
{
private String TAG = "Playlist";
private String namePlaylist = "unknown";
private ArrayList<Song> songsList;
private String path;
private DatabaseManager dbManager;
private Context context;
private int imageResId;
public Playlist(Context ctx)
{
context = ctx;
songsList = new ArrayList<Song>();
dbManager = new DatabaseManager(context);
imageResId = R.drawable.plsimg;
}
public Playlist(String playListName,Context ctx)
{
context = ctx;
songsList = new ArrayList<Song>();
dbManager = new DatabaseManager(context);
namePlaylist = playListName;
path = Constants.PLAYLISTS_DIRECTORY + namePlaylist +
".pls";
imageResId = R.drawable.plsimg;
}
public void setNamePlaylist(String namePlaylist_)
{
namePlaylist = namePlaylist_;
path = Constants.PLAYLISTS_DIRECTORY + namePlaylist +
".pls";
}
public String getPlaylistName()
{
return namePlaylist;
}
public void savePlayList()
{
File dir = new File(Constants.PLAYLISTS_DIRECTORY);
if(!dir.exists())
{
dir.mkdir();
//Log.e(TAG, "Am creat directorul!");
}
else
//Log.e(TAG, "directorul exista!");
try
{
FileWriter fstream = new FileWriter(path,false);
BufferedWriter out = new BufferedWriter(fstream);
for(int i = 0; i < songsList.size(); i++)
out.write(Integer.toString(songsList.get(i).getId()) +
"\n");
out.close();
fstream.close();
//Log.e(TAG,"i wrote something in file " + songsList.size());
}
catch (Exception e)
{
Log.e(TAG,"Error at write " + e.getMessage());
}
}
public boolean loadPlaylist()
{
try
{
FileInputStream file = new FileInputStream(path);
DataInputStream in = new DataInputStream(file);
BufferedReader br = new BufferedReader(new
InputStreamReader(in));
String strLine;
songsList = new ArrayList<Song>();
dbManager.openDatabase();
while ((strLine = br.readLine()) != null)
{
//Log.e(TAG,"i read from file " + strLine);
songsList.add(dbManager.getSongAtIndex(Integer.parseInt(strLine)));
}
Log.e(TAG,"playlist " + namePlaylist + " have " +
songsList.size() + " songs!");
dbManager.closeDatabaseManager();
if(songsList.size() == 0)
return false;
songsList.get(0).setImagePath("//sdcard//test.jpg");
in.close();
br.close();
return true;
} catch (FileNotFoundException e)
{
Log.e(TAG,"error at opening file");
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return false;
}
public boolean addSongToPlaylist(Song s)
{
for(int i = 0; i < songsList.size(); i++)
{
if(songsList.get(i).getId() == s.getId())
return false;
}
songsList.add(s);
return true;
}
public boolean deleteSongFromPlaylist(Song s)
{
if(!songsList.contains(s))
{
Log.e(TAG, "The song " + s.getId() + s.getTitle() + " do not
exist in playlist");
return false;
}
else
{
for(int i = 0; i < songsList.size(); i++)
if(songsList.get(i).equals(s))
{
songsList.remove(i);
Log.e(TAG,"The song " + s.getId() + s.getTitle() +
"was deleted! " + songsList.size());
return true;
}
}
return false;
}
public Song getFirstSongFromPlaylist()
{
Log.e(TAG,"First song!");
Song s = null;
try
{
Log.e(TAG,"First Song have id " + songsList.get(0).getId());
s = songsList.get(0);
}
catch (IndexOutOfBoundsException e)
{
Log.e(TAG,"no first song!");
}
return s;
}
public Song getLastSongFromPlaylist()
{
Song s = null;
try
{
Log.e(TAG,"Last song!");
Log.e(TAG,"Last Song have id " + songsList.get(songsList.size()
-1).toString());
s = songsList.get(songsList.size() -1);
}
catch (IndexOutOfBoundsException e)
{
Log.e(TAG,"no Last song!");
}
return s;
}
//i return -1 if not exists next song
public Song getNextSongFromPlaylist(int index)
{
Log.e(TAG,"Next song!");
Song s = null;
try
{
Log.e(TAG,"send next song at position " + (index + 1 ) + " with
id " + songsList.get(index+1).toString() );
s = songsList.get(index + 1);
}
catch (IndexOutOfBoundsException e)
{
Log.e(TAG, "index out of bounds!");
}
return s;
}
//i returned null if no previous
public Song getPreviousSongFromPlaylist(int index)
{
Log.e(TAG,"Prev song!");
Song s = null;
try
{
Log.e(TAG,"send previous song at position " + (index - 1 ) +
" with " + songsList.get(index - 1).toString() );
s = songsList.get(index - 1);
}
catch (IndexOutOfBoundsException e)
{
Log.e(TAG, "no prev song");
}
return s;
}
public Song getSongFromPlaylist(int index)
{
Song s = null;
try
{
Log.e(TAG,"its ok..we have the song,it exists in playlist.we
sending it now " + songsList.get(index).toString());
s = songsList.get(index);
}
catch (IndexOutOfBoundsException e)
{
Log.e(TAG, "no song at index " + index);
}
return s;
}
public boolean rateSongInPlaylist(Song s, int rate)
{
// TODO Auto-generated method stub
return false;
}
public boolean renameSongInPlaylist(Song s)
{
// TODO Auto-generated method stub
return false;
}
public void listPlaylistSongs()
{
int i;
for(i = 0; i < songsList.size(); i++)
Log.e(TAG,songsList.get(i).toString());
}
public ArrayList<Song> getAllSongFiles()
{
return songsList;
}
public boolean isPlaylistEmpty()
{
return songsList.isEmpty();
}
public void setPlaylistSongsList(ArrayList<Song> list)
{
songsList = list;
for(int i = 0; i < songsList.size(); i++)
if(songsList.get(i).equals(MainActivity.musicPlayer.getCurrentSong()))
{
Log.e(TAG, "am gasit current song " +
songsList.get(i).toString());
MainActivity.pManager.setSongPosition(i);
}
}
public void setImageResId(int imageResId)
{
this.imageResId = imageResId;
}
public int getImageResId()
{
return imageResId;
}
}
Thank you!
--
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en