// #if includeSmsFeature 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; 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); /** Case: ... * */ if (label.equals("Accept Photo")) { Image image = Image.createImage(incomingImageData, 0, incomingImageData.length); Image copy = Image.createImage(image.getWidth(), image.getHeight()); PhotoViewScreen canv = new PhotoViewScreen(copy); canv.setFromSMS(true); // [NC] Changed in the scenario 07: just the first line below to // support generic AbstractController canv.setCommandListener(new PhotoViewController(this.midlet, getAlbumData(), (AlbumListScreen) getAlbumListScreen(), "NoName")); this.setCurrentScreen(canv); return true; } else if (label.equals("Reject Photo")) { // [NC] Changed in the scenario 07: just the first line below to // support generic AbstractController ((AlbumListScreen) getAlbumListScreen()).repaintListAlbum(getAlbumData().getAlbumNames()); setCurrentScreen(getAlbumListScreen()); ScreenSingleton.getInstance().setCurrentScreenName(Constants.ALBUMLIST_SCREEN); return true; /* For All commands not handled here, send them to the super class */ } else if (label.equals("Ok")) { // [NC] Changed in the scenario 07: just the first line below to // support generic AbstractController ((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; } } //#endif