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

Reply via email to