package com.rapidftr.screens; import java.io.IOException; import net.rim.blackberry.api.invoke.CameraArguments; import net.rim.blackberry.api.invoke.Invoke; import net.rim.device.api.ui.UiApplication; import com.rapidftr.controllers.SnapshotController; import com.rapidftr.screens.internal.CustomScreen; import com.rapidftr.utilities.ImageEncoder; import com.rapidftr.utilities.Logger; import com.rapidftr.utilities.PhotoSaveListener; public class SnapshotScreen extends CustomScreen { private PhotoSaveListener listener; public SnapshotScreen() { super(); listener = new PhotoSaveListener() { protected void photo(String path) { try { ((SnapshotController) controller).capturedImage(path, new ImageEncoder().getEncodedImage(path)); } catch (IOException e) { e.printStackTrace(); Logger.log("Photo:" + e.getMessage()); } } }; } protected void onExposed() { UiApplication.getUiApplication().removeFileSystemJournalListener( listener); getSnapshotController().popScreen(); super.onExposed(); } private SnapshotController getSnapshotController(){ return (SnapshotController) controller; } protected void onUiEngineAttached(boolean attached) { if (!attached) return; Invoke.invokeApplication(Invoke.APP_TYPE_CAMERA, new CameraArguments()); super.onUiEngineAttached(attached); } public void setUp() { UiApplication.getUiApplication().addFileSystemJournalListener(listener); } }