package com.nokia.mid.s40.bg; import com.sun.cldc.isolate.Isolate; import com.sun.midp.main.AmsUtil; import com.sun.midp.midletsuite.MIDletSuiteStorage; import com.sun.midp.events.Event; import com.sun.midp.events.NativeEvent; import com.sun.midp.events.EventQueue; import com.sun.midp.events.EventTypes; import com.sun.midp.events.EventListener; public class BGUtils implements EventListener { private static native int getFGMIDletNumber(); private static native String getFGMIDletClass(); public static void setBGMIDletResident(boolean param) { AmsUtil.executeWithArgs(MIDletSuiteStorage.getMIDletSuiteStorage(), 0, BGUtils.getFGMIDletNumber(), BGUtils.getFGMIDletClass(), null, null, null, null, -1, -1, Isolate.MAX_PRIORITY, null, false); } public static native boolean launchIEMIDlet(String midletSuiteVendor, String midletName, int midletNumber, String startupNoteText, String args); static { EventQueue.getEventQueue() .registerEventListener(EventTypes.NATIVE_MIDLET_EXECUTE_REQUEST, BGUtils.getBGUtilsInstance()); } private static BGUtils bgUtils = null; public static BGUtils getBGUtilsInstance() { if (bgUtils == null) { bgUtils = new BGUtils(); } return bgUtils; } public boolean preprocess(Event event, Event waitingEvent) { return true; } public void process(Event event) { NativeEvent nativeEvent = (NativeEvent)event; switch (nativeEvent.getType()) { case EventTypes.NATIVE_MIDLET_EXECUTE_REQUEST: AmsUtil.executeWithArgs(MIDletSuiteStorage.getMIDletSuiteStorage(), 0, nativeEvent.intParam1, nativeEvent.stringParam1, null, null, null, null, -1, -1, Isolate.MAX_PRIORITY, null, false); break; } } }