Advertisement
anta40

FilePickerScreen

Jul 9th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.66 KB | None | 0 0
  1. package com.anta40.securemediaplayer;
  2.  
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6.  
  7. import javax.microedition.content.ContentHandlerException;
  8. import javax.microedition.content.Invocation;
  9. import javax.microedition.content.Registry;
  10. import javax.microedition.io.Connector;
  11. import javax.microedition.io.file.FileConnection;
  12. import javax.microedition.media.Manager;
  13. import javax.microedition.media.MediaException;
  14. import javax.microedition.media.Player;
  15.  
  16. import org.xml.sax.InputSource;
  17.  
  18. import net.rim.blackberry.api.browser.Browser;
  19. import net.rim.blackberry.api.browser.BrowserSession;
  20. import net.rim.device.api.io.IOUtilities;
  21. import net.rim.device.api.io.file.ExtendedFileConnection;
  22. import net.rim.device.api.ui.Field;
  23. import net.rim.device.api.ui.FieldChangeListener;
  24. import net.rim.device.api.ui.UiApplication;
  25. import net.rim.device.api.ui.component.ButtonField;
  26. import net.rim.device.api.ui.component.Dialog;
  27. import net.rim.device.api.ui.component.LabelField;
  28. import net.rim.device.api.ui.container.MainScreen;
  29. import net.rim.device.api.ui.picker.FilePicker;
  30. import net.rim.device.api.ui.picker.FilePicker.Listener;
  31.  
  32. public class FilePickerScreen extends MainScreen implements Listener, FieldChangeListener {
  33.  
  34.     private LabelField labelField;
  35.     private FilePicker filePicker;
  36.     private ButtonField buttonField;
  37.    
  38.     public FilePickerScreen(){
  39.  
  40.         setTitle("File Picker");  
  41.         buttonField = new ButtonField("Choose File", ButtonField.CONSUME_CLICK | ButtonField.NEVER_DIRTY | FIELD_HCENTER);            
  42.         buttonField.setChangeListener(this);
  43.         add(buttonField);              
  44.         labelField = new LabelField();
  45.         add(labelField);
  46.        
  47.         filePicker = FilePicker.getInstance();
  48.         filePicker.setFilter(".mp3");
  49.        
  50.         try {
  51.             String path = System.getProperty("fileconn.dir.music");
  52.  
  53.             FileConnection efconn = (FileConnection) Connector.open(path);
  54.  
  55.             if (efconn.exists()) filePicker.setPath(path);
  56.  
  57.         }
  58.         catch(final Exception ioe){
  59. //          UiApplication.getUiApplication().invokeLater(new Runnable(){
  60. //               public void run(){
  61. //                 Dialog.alert("Connector.open() threw " + ioe.toString());
  62. //               }                  
  63. //            });                
  64.         }
  65.        
  66.         filePicker.setListener(this);
  67.     }
  68.    
  69.     public void fieldChanged(Field field, int context) {
  70.          if(field == buttonField)  {
  71.              filePicker.show();                    
  72.          }
  73.     }
  74.  
  75.     public void selectionDone(String selection) {
  76.         if(selection != null && selection.length() > 0) {
  77.             //Dialog.inform(selection);
  78.             Invocation invocation = new Invocation(selection);
  79.             String path = System.getProperty("fileconn.dir.music");
  80.             //ExtendedFileConnection efconn = null;
  81.             try {
  82.                 FileConnection fconn = (FileConnection) Connector.open(selection, Connector.READ_WRITE);
  83.             InputStream is = fconn.openInputStream();
  84.                 byte[] bbb = IOUtilities.streamToBytes(is);
  85.                 Dialog.inform("bbb size: "+bbb.length);
  86.                 //DataOutputStream dos = efconn.openDataOutputStream();
  87.                 saveToFile("newsong.mp3", bbb);
  88.             //  dos.close();
  89.                 fconn.close();
  90.                
  91.                
  92.             } catch (IOException e1) {
  93.                 e1.printStackTrace();
  94.             }
  95. //          Registry reg = Registry.getRegistry("net.rim.device.api.content.BlackBerryContentHandler");
  96. //          try {
  97. //              reg.invoke(invocation);
  98. //          } catch (IllegalArgumentException e) {
  99. //              e.printStackTrace();
  100. //          } catch (ContentHandlerException e) {
  101. //              e.printStackTrace();
  102. //          } catch (SecurityException e) {
  103. //              e.printStackTrace();
  104. //          } catch (IOException e) {
  105. //              e.printStackTrace();
  106. //          }
  107.  
  108.    
  109. //          try {
  110. //              Player player = Manager.createPlayer(selection);
  111. //              player.realize();
  112. //              player.prefetch();
  113. //              player.start();
  114. //          }
  115. //          catch (MediaException me){
  116. //             
  117. //          }
  118. //          catch (IOException ioe){
  119. //             
  120. //          }
  121. //         
  122.             labelField.setText("Now playing: "+selection);
  123.         }
  124.     }
  125.    
  126.     private void saveToFile(String fName, byte[] bbb){
  127.         DataOutputStream os = null;
  128.         FileConnection fconn = null;
  129.           try {
  130.            fconn = (FileConnection) Connector.open("file://SDCard/BlackBerry/music/"+fName, Connector.WRITE);
  131.            if (!fconn.exists())
  132.             fconn.create();
  133.  
  134.            os = fconn.openDataOutputStream();
  135.            os.write(bbb);
  136.           } catch (IOException e) {
  137.            System.out.println(e.getMessage());
  138.           } finally {
  139.            try {
  140.             if (null != os)
  141.              os.close();
  142.             if (null != fconn)
  143.              fconn.close();
  144.            } catch (IOException e) {
  145.             System.out.println(e.getMessage());
  146.            }
  147.           }
  148.     }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement