package lancs.mobilemedia.sms; import java.io.IOException; import java.io.InterruptedIOException; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.Command; import javax.wireless.messaging.Message; import javax.wireless.messaging.MessageConnection; import lancs.mobilemedia.core.ui.MainUIMidlet; import lancs.mobilemedia.core.ui.datamodel.AlbumData; import lancs.mobilemedia.core.ui.screens.AlbumListScreen; import de.ovgu.cide.jakutil.*; /** */ public class SmsReceiverThread implements Runnable { SmsReceiverController controller=null; String[] connections; String smsPort; MessageConnection smsconn; Message msg; String senderAddress; Command acceptPhotoCommand=new Command("Accept Photo",Command.ITEM,1); Command rejectPhotoCommand=new Command("Reject Photo",Command.ITEM,1); Command errorNotice=new Command("Ok",Command.ITEM,1); /** * Initialize the MIDlet with the current display object and graphical * components. */ public SmsReceiverThread( MainUIMidlet midlet, AlbumData albumData, AlbumListScreen albumListScreen, SmsReceiverController controller){ this.controller=controller; smsPort="1000"; } /** * Message reading thread. */ public void run(){ SmsMessaging smsMessenger=new SmsMessaging(); while (true) { System.out.println("Starting SMSReceiver::run()"); smsMessenger.setSmsReceivePort(smsPort); byte[] receivedData=null; try { receivedData=smsMessenger.receiveImage(); } catch ( InterruptedIOException e) { Alert alert=new Alert("Error Incoming Photo"); alert.setString("" + "You have just received a bad fragmentated photo which was not possible to recovery."); alert.addCommand(errorNotice); System.out.println("Error interreput"); alert.setCommandListener(controller); controller.setCurrentScreen(alert); smsMessenger.cleanUpReceiverConnections(); continue; } catch ( IOException e) { Alert alert=new Alert("Error Incoming Photo"); alert.setString("" + "You have just received a bad fragmentated photo which was not possible to recovery."); alert.addCommand(errorNotice); System.out.println("Bad fragmentation"); alert.setCommandListener(controller); controller.setCurrentScreen(alert); smsMessenger.cleanUpReceiverConnections(); continue; } System.out.println("BEFORE ALERT CODE"); Alert alert=new Alert("New Incoming Photo"); alert.setString("A MobilePhoto user has sent you a Photo. Do you want to accept it?"); alert.addCommand(acceptPhotoCommand); alert.addCommand(rejectPhotoCommand); controller.setIncommingData(receivedData); alert.setCommandListener(controller); controller.setCurrentScreen(alert); System.out.println("Finishing SMSReceiver run()"); } } }