package lancs.mobilemedia.sms;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Image;
import lancs.mobilemedia.core.ui.MainUIMidlet;
import lancs.mobilemedia.core.ui.controller.AbstractController;
import lancs.mobilemedia.core.ui.controller.PhotoViewController;
import lancs.mobilemedia.core.ui.controller.ScreenSingleton;
import lancs.mobilemedia.core.ui.datamodel.AlbumData;
import lancs.mobilemedia.core.ui.screens.AlbumListScreen;
import lancs.mobilemedia.core.ui.screens.PhotoViewScreen;
import lancs.mobilemedia.core.util.Constants;
import de.ovgu.cide.jakutil.*;
public class SmsReceiverController extends AbstractController {
byte[] incomingImageData;
public SmsReceiverController( MainUIMidlet midlet, AlbumData albumData, AlbumListScreen albumListScreen){
super(midlet,albumData,albumListScreen);
}
/**
* Handle SMS specific events.
* If we are given a standard command that is handled by the BaseController, pass
* the handling off to our super class with the else clause
*/
public boolean handleCommand( Command c){
String label=c.getLabel();
System.out.println("SmsReceiverController::handleCommand: " + label);
if (label.equals("Accept Photo")) {
Image image=Image.createImage(incomingImageData,0,incomingImageData.length);
PhotoViewScreen canv=new PhotoViewScreen(image);
canv.setImage(incomingImageData);
canv.setFromSMS(true);
canv.setCommandListener(new PhotoViewController(this.midlet,getAlbumData(),(AlbumListScreen)getAlbumListScreen(),"NoName"));
this.setCurrentScreen(canv);
return true;
}
else if (label.equals("Reject Photo")) {
System.out.println("Reject Photo command");
((AlbumListScreen)getAlbumListScreen()).repaintListAlbum(getAlbumData().getAlbumNames());
setCurrentScreen(getAlbumListScreen());
ScreenSingleton.getInstance().setCurrentScreenName(Constants.ALBUMLIST_SCREEN);
return true;
}
else if (label.equals("Ok")) {
((AlbumListScreen)getAlbumListScreen()).repaintListAlbum(getAlbumData().getAlbumNames());
setCurrentScreen(getAlbumListScreen());
ScreenSingleton.getInstance().setCurrentScreenName(Constants.ALBUMLIST_SCREEN);
return true;
}
return false;
}
public void setIncommingData( byte[] incomingImageData){
this.incomingImageData=incomingImageData;
}
}