Class Display


public final class Display extends CN1Constants

Central class for the API that manages rendering/events and is used to place top level components (Form) on the "display".

This class handles the main thread for the toolkit referenced here on as the EDT (Event Dispatch Thread) similar to the Swing EDT. This thread encapsulates the platform specific event delivery and painting semantics and enables threading features such as animations etc...

The EDT should not be blocked since paint operations and events would also be blocked in much the same way as they would be in other platforms. To serialize calls back into the EDT, use the methods Display#callSerially & Display#callSeriallyAndWait.

Notice that all Codename One calls occur on the EDT (events, painting, animations, etc...), Codename One should normally be manipulated on the EDT as well (hence the Display#callSerially & Display#callSeriallyAndWait methods). Theoretically, it should be possible to manipulate some Codename One features from other threads, but this can't be guaranteed to work for all use cases.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Indicates that commands should be added to an always visible bar at the bottom of the form.
    static final int
    Identical to the bar behavior, places the back command within the title bar of the form/dialg
    static final int
    Places all commands on the right side of the title bar with a uniform size grid layout
    static final int
    Indicates that the Codename One implementation should decide internally the command behavior most appropriate for this platform.
    static final int
    Commands are placed in the same was as they are in the ice cream sandwich Android OS update where the back button has a theme icon the application icon appears next to the
    static final int
    Indicates that commands should try to add themselves to the native menus
    static final int
    Commands are placed in a side menu similar to Facebook/Google+ apps
    static final int
    Indicates the classic Codename One command behavior where the commands are placed in a list within a dialog.
    static final int
    Indicates the touch menu dialog rendered by Codename One where commands are placed into a scrollable dialog
    static final int
    Game action for down key
    static final int
    Game action for fire
    static final int
    Game action for the left key
    static final int
    Game action for right key
    static final int
    Game action for UP key
    static final int
    An attribute that encapsulates '#' int value.
    static final int
    Half-QWERTY which needs software assistance for completion
    static final int
    Numeric keypad keyboard type
    static final int
    Full QWERTY keypad keyboard type, even if a numeric keyboard also exists
    static final int
    Unknown keyboard type is the default indicating the software should try to detect the keyboard type if necessary
    static final int
    A touch based device that doesn't have a physical keyboard.
    static final int
    Special case game key used for media playback events
    static final int
    Special case game key used for media playback events
    static final int
    Special case game key used for media playback events
    static final int
    Special case game key used for media playback events
    static final int
    Special case game key used for media playback events
    static final int
    Special case game key used for media playback events
    static final int
    Special case game key used for media playback events
    static final int
    Special case game key used for media playback events
    static final int
    Allow show to occur during edit and discard all user input at this moment
    static final int
    Allow show to occur during edit and save all user input at this moment
    static final int
    If show is called while editing text in the native text box an exception is thrown
    static final int
    Ignore all calls to show occurring during edit, they are discarded immediately
    static final int
    Show will update the current form to which the OK button of the text box will return
    static final String
    A common sound type that can be used with playBuiltinSound
    static final String
    A common sound type that can be used with playBuiltinSound
    static final String
    A common sound type that can be used with playBuiltinSound
    static final String
    A common sound type that can be used with playBuiltinSound
    static final String
    A common sound type that can be used with playBuiltinSound
    static final String
    A common sound type that can be used with playBuiltinSound
    static final String
    Client property key used on the first shown Form to indicate the desired initial window size as a percentage of the available desktop.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addCompletionHandler(Media media, Runnable onCompletion)
    Adds a callback to a Media element that will be called when the media finishes playing.
    void
    An error handler will receive an action event with the source exception from the EDT once an error handler is installed the default Codename One error dialog will no longer appear
    void
    Adds a listener to receive messages from the native platform.
    void
    Adds a listener for VirtualKeyboard hide/show events.
    void
    Adds a listener to receive notifications about native window changes such as resize or movement.
    void
    Manually announces text to native accessibility services, optionally associating the announcement with a specific component.
    void
    Convenience overload to announce text without specifying a component.
    boolean
    On most platforms it is quite fast to draw on a mutable image and then render that image, however some platforms have much slower mutable images in comparison to just drawing on the screen.
    void
    Causes the runnable to be invoked on the event dispatch thread.
    void
    Identical to callSerially with the added benefit of waiting for the Runnable method to complete.
    void
    callSeriallyAndWait(Runnable r, int timeout)
    Identical to callSerially with the added benefit of waiting for the Runnable method to complete.
    void
    Causes the runnable to be invoked on the event dispatch thread when the event dispatch thread is idle.
    void
    Cancels a local notification by ID.
    boolean
    Returns true if the device has dialing capabilities
    Returns true if executing this URL should work, returns false if it will not and null if this is unknown.
    boolean
    Returns true if the device allows forcing the orientation via code, feature phones do not allow this although some include a jad property allowing for this feature
    boolean
    Checks to see if you can prompt the user to install the app on their homescreen.
    void
    captureAudio(MediaRecorderBuilder recordingOptions, ActionListener response)
    This method tries to invoke the device native hardware to capture audio.
    void
    This method tries to invoke the device native hardware to capture audio.
    void
    This method tries to invoke the device native camera to capture images.
    Captures a screenshot of the screen.
    void
    Same as #captureVideo(com.codename1.ui.events.ActionListener), except that it attempts to impose constraints on the capture.
    void
    This method tries to invoke the device native camera to capture video.
    Converts the given string from logical bidi layout to visual bidi layout so it can be rendered properly on the screen.
    int
    convertToPixels(float dipCount)
    Converts the dips count to pixels, dips are roughly 1mm in length.
    int
    convertToPixels(float value, byte unitType)
    Converts from specified unit to pixels.
    int
    convertToPixels(float value, byte unitType, boolean horizontal)
    Converts from specified unit to pixels.
    int
    convertToPixels(int dipCount, boolean horizontal)
    Converts the dips count to pixels, dips are roughly 1mm in length.
    void
    Performs a clipboard copy operation, if the native clipboard is supported by the implementation it would be used
    Creates an audio media that can be played in the background.
    Creates an audio media that can be played in the background.
    createContact(String firstName, String familyName, String officePhone, String homePhone, String cellPhone, String email)
    Create a contact to the device contacts book
    createMedia(InputStream stream, String mimeType, Runnable onCompletion)
    Create the sound in the given stream Notice that an audio is "auto destroyed" on completion and cannot be played twice!
    createMedia(String uri, boolean isVideo, Runnable onCompletion)
    Creates a sound in the given URI which is partially platform specific.
    createMediaAsync(InputStream stream, String mimeType, Runnable onCompletion)
     
    createMediaAsync(String uri, boolean video, Runnable onCompletion)
    Creates media asynchronously.
    Parameters
    Creates a Media recorder Object which will record from the device mic to a file in the given path.
    Creates a Media recorder Object which will record from the device mic to a file in the given path.
    Creates a soft/weak reference to an object that allows it to be collected yet caches it.
    Start a Codename One thread that supports crash protection and similar Codename One features.
    static void
    Closes down the EDT and Codename One, under normal conditions this method is completely unnecessary since exiting the application will shut down Codename One.
    void
    delete(String databaseName)
    Deletes database
    boolean
    removed a contact from the device contacts book
    void
    Stop receiving push notifications to this client application
    void
    dial(String phoneNumber)
    Opens the device Dialer application with the given phone number
    void
    Removes the notification previously posted with the notify status bar method
    void
    Dispatches a message to all of the registered listeners.
    void
    editString(Component cmp, int maxSize, int constraint, String text)
    Fires the native in place text editing logic, normally you wouldn't invoke this API directly and instead use an API like com.codename1.ui.TextArea#startEditingAsync(), com.codename1.ui.TextArea#startEditing() or com.codename1.ui.Form#setEditOnShow(com.codename1.ui.TextArea).
    void
    editString(Component cmp, int maxSize, int constraint, String text, int initiatingKeycode)
    Fires the native in place text editing logic, normally you wouldn't invoke this API directly and instead use an API like com.codename1.ui.TextArea#startEditingAsync(), com.codename1.ui.TextArea#startEditing() or com.codename1.ui.Form#setEditOnShow(com.codename1.ui.TextArea).
    void
    Executes the given URL on the native platform
    void
    execute(String url, ActionListener response)
    Executes the given URL on the native platform, this method is useful if the platform has the ability to send an event to the app when the execution has ended, currently this works only for Android platform to invoke other intents.
    boolean
    exists(String databaseName)
    Indicates weather a database exists
    void
    Exits the application...
    boolean
    Try to exit full-screen mode if the platform supports it.
    Extracts the hard reference from the soft/weak reference given
    void
    Fires a virtual keyboard show event.
    void
    Dispatches a window change event to registered listeners.
    void
    flashBacklight(int duration)
    Flash the backlight of the device for the given length of time
    gaussianBlurImage(Image image, float radius)
    Create a blur image from the given image.
    getAllContacts(boolean withNumbers)
    Gets all contacts from the address book of the device
    getAllContacts(boolean withNumbers, boolean includesFullName, boolean includesPicture, boolean includesNumbers, boolean includesEmail, boolean includeAddress)
    Notice: this method might be very slow and should be invoked on a separate thread! It might have platform specific optimizations over getAllContacts followed by looping over individual contacts but that isn't guaranteed.
    Gets the available recording MimeTypes
    int
    getCharLocation(String source, int index)
    Returns the index of the given char within the source string, the actual index isn't necessarily the same when bidi is involved See this for more on visual vs.
    Returns the native implementation of the code scanner or null
    int
    Indicates the way commands should be added to a form as one of the ocmmand constants defined in this class
    Get a Contact according to it's contact id.
    getContactById(String id, boolean includesFullName, boolean includesPicture, boolean includesNumbers, boolean includesEmail, boolean includeAddress)
    This method returns a Contact by the contact id and fills it's data according to the given flags.
    The crash reporter gets invoked when an uncaught exception is intercepted
    Return the form currently displayed on the screen or null if no form is currently displayed.
    getDatabasePath(String databaseName)
    Returns the file path of the Database if support for database exists on the platform.
    Get the default virtual keyboard or null if the VirtualKeyboard is disabled
    Returns the device density as a string.
    Returns the size of the desktop hosting the application window when running on a desktop platform.
    int
    Returns one of the density variables appropriate for this device, notice that density doesn't always correspond to resolution and an implementation might decide to change the density based on DPI constraints.
    int
    Return the height of the display
    Gets the display safe area as a rectangle.
    int
    Return the width of the display
    float
    getDragSpeed(boolean yAxis)
    This method returns the dragging speed based on the latest dragged events
    int
    This method allows us to manipulate the drag started detection logic.
    int
    Indicates the maximum frames the API will try to draw every second
    int
    getGameAction(int keyCode)
    Returns the game action code matching the given key combination
    Returns the image IO instance that allows scaling image files.
    Returns the native OS purchase implementation if applicable, if unavailable this method will try to fallback to a custom purchase implementation and failing that will return null
    getInAppPurchase(boolean d)
    Deprecated
    Returns the initial desktop window size hint provided by the first shown form, when available.
    static Display
    Return the Display instance
    int
    Gets the invisible area under the Virtual Keyboard.
    int
    Returns the type of the input device one of: KEYBOARD_TYPE_UNKNOWN, KEYBOARD_TYPE_NUMERIC, KEYBOARD_TYPE_QWERTY, KEYBOARD_TYPE_VIRTUAL, KEYBOARD_TYPE_HALF_QWERTY
    int
    getKeyCode(int gameAction)
    Returns the keycode matching the given game action constant (the opposite of getGameAction).
    float
    Returns a scale factor representing how much larger system fonts should be.
     
    Gets IDs of all contacts that are linked to a given contact.
    The localization manager allows adapting values for display in different locales thru parsing and formatting capabilities (similar to JavaSE's DateFormat/NumberFormat).
    This method returns the platform Location Manager used for geofencing.
    int
    Long pointer press is invoked after the given interval, this allows making long press events shorter/longer
    Gets the recording mime type for the returned Media from the createMediaRecorder method
    Returns the MSISDN for devices that expose it
    Returns the current content of the clipboard
    Returns a 2-3 letter code representing the platform name for the platform override
    Returns the suffixes for ovr files that should be used when loading a layered resource file on this platform
    Gets reference to plugin support object.
    int
    Gets the preferred time (in seconds) between background fetches.
    Returns the build hints for the simulator, this will only work in the debug environment and it's designed to allow extensions/API's to verify user settings/build hints exist
    getProperty(String key, String defaultValue)
    Returns the property from the underlying platform deployment or the default value if no deployment values are supported.
    This method is essentially equivalent to cls.getResourceAsStream(String) however some platforms might define unique ways in which to load resources within the implementation.
    Gets a reference to an application-wide shared Javascript context that can be used for running Javascript commands.
    int
    Returns the status of the show during edit flag
    int
    Indicates the level of SMS support in the platform as one of: #SMS_NOT_SUPPORTED (for desktop, tablet etc.), #SMS_SEAMLESS (no UI interaction), #SMS_INTERACTIVE (with compose UI), #SMS_BOTH.
    getStackTrace(Thread parentThread, Throwable t)
    Returns the stack trace from the exception on the given thread.
    Returns all platform supported virtual keyboards names
    Returns the UDID for devices that support it
    Gets the VirtualKeyboardListener Objects of exists.
    Returns the current window bounds when running on a desktop platform.
    boolean
    Returns true if the device has camera false otherwise.
    boolean
    This method should be invoked by components that broadcast events on the pointerReleased callback.
    boolean
    Indicates if the implemenetation has a native underlying theme
    void
    Broadcasts hide notify into Codename One, this method is invoked by the Codename One implementation to notify Codename One of hideNotify events
    static void
    This is the INTERNAL Display initialization method, it will be removed in future versions of the API.
    void
    installBuiltinSound(String soundIdentifier, InputStream data)
    Installs a replacement sound as the builtin sound responsible for the given sound identifier (this will override the system sound if such a sound exists).
    void
    Installs the native theme, this is only applicable if hasNativeTheme() returned true.
    void
    Invokes runnable and blocks the current thread, if the current thread is the EDT it will still be blocked in a way that doesn't break event dispatch .
    void
    invokeAndBlock(Runnable r, boolean dropEvents)
    Invokes runnable and blocks the current thread, if the current thread is the EDT it will still be blocked in a way that doesn't break event dispatch .
    void
    Invokes a Runnable with blocking disabled.
    <T> T
    Invokes a RunnableWithResultSync with blocking disabled.
    boolean
    Allows a Codename One application to minimize without forcing it to the front whenever a new dialog is poped up
    boolean
    Checks if the altgraph key is currently down.
    boolean
    Checks if the alt key is currently down.
    boolean
    Normally Codename One folds the VKB when switching forms this field allows us to block that behavior.
    boolean
    Checks to see if the current platform supports background fetch.
    boolean
    Returns true if the underlying OS supports numeric badges on icons.
    boolean
    Indicates whether Codename One should consider the bidi RTL algorithm when drawing text or navigating with the text field cursor.
    boolean
    Indicates whether a user installed or system sound is available
    boolean
    Allows muting/unmuting the builtin sounds easily
    boolean
    Indicates whether this platform can attempt to detect active phone-call interruptions.
    boolean
    Indicates whether the device has a double layer screen thus allowing two stages to touch events: click and hover.
    boolean
    Some platforms allow the user to block contacts access on a per application basis this method returns true if the user denied permission to access contacts.
    boolean
    Checks if the control key is currently down.
    Returns true if the platform is in dark mode, null is returned for unknown status
    boolean
     
    boolean
    Returns true if this is a desktop application
    boolean
    Returns true if we are currently in the event dispatch thread.
    boolean
    Checks if async stack traces are enabled.
    boolean
    Checks if this platform supports full-screen mode.
    boolean
    Checks to see if the given gallery type is supported on the current platform.
    boolean
    Returns true if gaussian blur is supported on this platform
    boolean
    Indicates if the getAllContacts is platform optimized, notice that the method might still take seconds or more to run so you should still use a separate thread!
    boolean
    Best-effort check for whether the platform currently believes an active phone call is interrupting the app.
    boolean
    Checks if the app is currently running in full-screen mode.
    static boolean
    This method returns true if the Display is initialized.
    boolean
    Returns true if the system is currently in the process of transitioning between forms
    boolean
    Returns true if this device is jailbroken or rooted, false if not or unknown.
    boolean
    Returns true if the user has selected larger type fonts in the system settings.
    boolean
    Checks if the meta key is currently down.
    boolean
    Indicates whether an application is minimized
    boolean
    When set to true Codename One allows multiple hardware keys to be pressed at once, this isn't on by default since it can trigger some complexities with UI navigation to/from native code
    boolean
    Indicates whether the device supports multi-touch events, this is only relevant when touch events are supported
    boolean
    Indicates whether Codename One commands should be mapped to the native menus
    boolean
    Indicates whether the device supports native in place editing in which case lightweight input logic shouldn't be used for input.
    boolean
    Indicates whether the native picker dialog is supported for the given type which can include one of PICKER_TYPE_DATE_AND_TIME, PICKER_TYPE_TIME, PICKER_TYPE_DATE
    boolean
    Indicates if the underlying platform supports sharing capabilities
    boolean
    Indicates if the title of the Form is native title(in android ICS devices if the command behavior is native the ActionBar is used to display the title and the menu)
    boolean
    Indicates if the native video player includes its own play/pause etc.
    boolean
    Indicates whether the notify status bar method will present a notification to the user
    boolean
    Returns true if the underlying OS supports opening the native navigation application
    boolean
    Returns true if the device is currently in portrait mode
    boolean
    A pure touch device has no focus showing when the user is using the touch interface.
    boolean
    Checks if the last mouse press was a right click.
    boolean
    isRTL(char c)
    Returns true if the given character is an RTL character
    boolean
    Checks if the device supports disabling the screen display from dimming, allowing the developer to keep the screen display on.
    boolean
    Checks is the scroll-wheel mouse is currently scrolling.
    boolean
    Checks if shift key is currently down.
    boolean
    Allows detecting development mode so debugging code and special cases can be used to simplify flow
    boolean
    Indicates whether the device is a tablet, notice that this is often a guess
    boolean
    Indicates whether the 3rd softbutton should be supported on this device
    boolean
    The name of this method is misleading due to it's legacy.
    boolean
    Indicates if the virtual keyboard is currently showing or not
    void
    keyPressed(int keyCode)
    Pushes a key press event with the given keycode into Codename One
    void
    keyReleased(int keyCode)
    Pushes a key release event with the given keycode into Codename One
    void
    lockOrientation(boolean portrait)
    On devices that return true for canForceOrientation() this method can lock the device orientation either to portrait or landscape mode
    boolean
    Minimizes the current application if minimization is supported by the platform (may fail).
    void
    Notifies the platform that push notification processing is complete.
    void
    notifyStatusBar(String tickerText, String contentTitle, String contentBody, boolean vibrate, boolean flashLights)
    Place a notification on the device status bar (if device has this functionality).
    notifyStatusBar(String tickerText, String contentTitle, String contentBody, boolean vibrate, boolean flashLights, Hashtable args)
    Place a notification on the device status bar (if device has this functionality).
    int
    Return the number of alpha levels supported by the implementation.
    int
    Returns the number of colors applicable on the device, note that the API does not support gray scale devices.
    void
    A callback fired when you are allowed to prompt the user to install the app on their homescreen.
    void
    Called by the underlying implementation to indicate that editing in the native system has completed and changes should propagate into Codename One
    void
    openGallery(ActionListener response, int type)
    Opens the device gallery to pick an image or a video.
    void
    Opens the device image gallery The method returns immediately and the response will be sent asynchronously to the given ActionListener Object
    void
    openNativeNavigationApp(double latitude, double longitude)
    Opens the native navigation app in the given coordinate.
    void
    Opens the native navigation app with the given search location
    openOrCreate(String databaseName)
    Opens a database or create one if not exists.
    boolean
    Checks if this platform uses input modes.
    void
    playBuiltinSound(String soundIdentifier)
    Plays a builtin device sound matching the given identifier, implementations and themes can offer additional identifiers to the ones that are already built in.
    void
    pointerDragged(int[] x, int[] y)
    Pushes a pointer drag event with the given coordinates into Codename One
    void
    pointerHover(int[] x, int[] y)
    Pushes a pointer hover event with the given coordinates into Codename One
    void
    pointerHoverPressed(int[] x, int[] y)
    Pushes a pointer hover release event with the given coordinates into Codename One
    void
    pointerHoverReleased(int[] x, int[] y)
    Pushes a pointer hover release event with the given coordinates into Codename One
    void
    pointerPressed(int[] x, int[] y)
    Pushes a pointer press event with the given coordinates into Codename One
    void
    pointerReleased(int[] x, int[] y)
    Pushes a pointer release event with the given coordinates into Codename One
    void
    Posts a message to the native platform.
    boolean
    Prompts the user to install this app on their homescreen.
    void
    Refreshes the native list of contacts on devices that require this see com.codename1.contacts.ContactsManager#refresh()
    void
    if the title is native(e.g the android action bar), notify the native title that is needs to be refreshed
    void
    Register to receive push notification, invoke this method once (ever) to receive push notifications.
    void
    registerPush(String id, boolean noFallback)
    User register to receive push notification
    void
    registerPush(Hashtable metaData, boolean noFallback)
    Register to receive push notification, invoke this method once (ever) to receive push notifications.
    void
    Register a virtual keyboard
    void
    removeCompletionHandler(Media media, Runnable onCompletion)
    Removes onComplete callback from Media element.
    void
    An error handler will receive an action event with the source exception from the EDT once an error handler is installed the default Codename One error dialog will no longer appear
    void
    Removes a listener from receiving messages from the native platform.
    void
    Removes a listener for VirtualKeyboard hide/show events.
    void
    Removes a previously registered window listener.
    boolean
    Try to enter full-screen mode if the platform supports it.
    void
    Restore the minimized application if minimization is supported by the platform
    void
    Runs the last bookmark that was set using #setBookmark(java.lang.Runnable)
    void
    Allows executing a background task in a separate low priority thread.
    void
    scheduleLocalNotification(LocalNotification n, long firstTime, int repeat)
    Schedules a local notification that will occur after the given time elapsed.
    void
    Captures a screenshot in the native layer which should include peer components as well.
    void
    sendMessage(String[] recipients, String subject, Message msg)
    Send an email using the platform mail client.
    void
    sendSMS(String phoneNumber, String message)
    Sends a SMS message to the given phone number
    void
    sendSMS(String phoneNumber, String message, boolean interactive)
    Sends a SMS message to the given phone number, the code below demonstrates the logic of detecting platform behavior for sending SMS.
    void
    setAllowMinimizing(boolean allowMinimizing)
    Allows a Codename One application to minimize without forcing it to the front whenever a new dialog is poped up
    void
    setAutoFoldVKBOnFormSwitch(boolean autoFoldVKBOnFormSwitch)
    Normally Codename One folds the VKB when switching forms this field allows us to block that behavior.
    void
    setBadgeNumber(int number)
    Sets the number that appears on the application icon in iOS
    void
    setBidiAlgorithm(boolean activate)
    Indicates whether Codename One should consider the bidi RTL algorithm when drawing text or navigating with the text field cursor.
    void
    Sets a bookmark that can restore the app to a particular state.
    void
    setBuiltinSoundsEnabled(boolean enabled)
    Allows muting/unmuting the builtin sounds easily
    void
    setCommandBehavior(int commandBehavior)
    Indicates the way commands should be added to a form as one of the ocmmand constants defined in this class
    void
    The crash reporter gets invoked when an uncaught exception is intercepted
    void
    setDarkMode(Boolean darkMode)
    Override the default dark mode setting
    void
    Sets the default virtual keyboard to be used by the platform
    void
    setDragStartPercentage(int dragStartPercentage)
    This method allows us to manipulate the drag started detection logic.
    void
    setEnableAsyncStackTraces(boolean enableAsyncStackTraces)
    Enables or disables async stack traces.
    void
    setFramerate(int rate)
    Indicates the maximum frames the API will try to draw every second by default this is set to 10.
    void
    Sets the initial desktop window size hint (percent of the desktop) that should be used when the first form is shown.
    setInterval(int period, Runnable r)
    Convenience method to schedule a task to run on the EDT after periodms repeating every periodms.
    void
    Long pointer press is invoked after the given interval, this allows making long press events shorter/longer
    void
    setMultiKeyMode(boolean multiKeyMode)
    When set to true Codename One allows multiple hardware keys to be pressed at once, this isn't on by default since it can trigger some complexities with UI navigation to/from native code
    void
    setNativeCommands(boolean nativeCommands)
    Indicates whether Codename One commands should be mapped to the native menus
    void
    setNoSleep(boolean noSleep)
    Calling this method with noSleep=true will cause the edt to run without sleeping.
    void
    Sets the frequency for polling the server in case of polling based push notification
    void
    Sets the preferred time interval between background fetches.
    void
    Sets a build hint into the settings while overwriting any previous value.
    void
    setProperty(String key, String value)
    Sets a local property to the application, this method has no effect on the implementation code and only allows the user to override the logic of getProperty for internal application purposes.
    void
    setPureTouch(boolean pureTouch)
    A pure touch device has no focus showing when the user is using the touch interface.
    void
    If isScreenSaverDisableSupported() returns true calling this method will lock the screen display on
    void
    setShowDuringEditBehavior(int showDuringEdit)
    Invoking the show() method of a form/dialog while the user is editing text in the native text box can have several behaviors: SHOW_DURING_EDIT_IGNORE, SHOW_DURING_EDIT_EXCEPTION, SHOW_DURING_EDIT_ALLOW_DISCARD, SHOW_DURING_EDIT_ALLOW_SAVE, SHOW_DURING_EDIT_SET_AS_NEXT
    void
    setShowVirtualKeyboard(boolean show)
    Displays the virtual keyboard on devices that support manually poping up the vitual keyboard
    void
    setThirdSoftButton(boolean thirdSoftButton)
    Indicates whether the 3rd softbutton should be supported on this device
    setTimeout(int timeout, Runnable r)
    Convenience method to schedule a task to run on the EDT after timeoutms.
    void
    setTouchScreenDevice(boolean touchScreen)
    Indicates if this is a touch screen device that will return pen events, defaults to true if the device has pen events but can be overriden by the developer.
    void
    setTransitionYield(int transitionD)
    Indicates whether a delay should exist between calls to flush graphics during transition.
    void
    Sets a listener for VirtualKeyboard hide/show events.
    void
    setWindowSize(int width, int height)
    Requests a resize of the application window when supported by the platform.
    void
    share(String toShare)
    Share the required information using the platform sharing services.
    void
    share(String text, String image, String mimeType)
    Share the required information using the platform sharing services.
    void
    share(String textOrPath, String image, String mimeType, Rectangle sourceRect)
    Share the required information using the platform sharing services.
    boolean
    This is an internal state flag relevant only for pureTouch mode (otherwise it will always be true).
    boolean
    This is an internal state flag relevant only for pureTouch mode (otherwise it will always be true).
    showNativePicker(int type, Component source, Object currentValue, Object data)
    Shows a native modal dialog allowing us to perform the picking for the given type which can include one of PICKER_TYPE_DATE_AND_TIME, PICKER_TYPE_TIME, PICKER_TYPE_DATE
    void
    showNativeScreen(Object nativeFullScreenPeer)
    Shows a native Form/Canvas or some other heavyweight native screen
    void
    Broadcasts show notify into Codename One, this method is invoked by the Codename One implementation to notify Codename One of showNotify events
    void
    sizeChanged(int w, int h)
    Notifies Codename One of display size changes, this method is invoked by the implementation class and is for internal use
    void
    Starts the remote control service.
    Start a Codename One thread that supports crash protection and similar Codename One features.
    void
    Allows us to stop editString on the given text component
    void
    stopEditing(Component cmp, Runnable onFinish)
    Allows us to stop editString on the given text component or Form.
    void
    Stops the remote control service.
    void
    This is the reverse method for lock orientation allowing orientation lock to be disabled
    void
    vibrate(int duration)
    Vibrates the device for the given length of time, notice that this might ignore the time value completely on some OS's where this level of control isn't supported e.g.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • SOUND_TYPE_ALARM

      public static final String SOUND_TYPE_ALARM
      A common sound type that can be used with playBuiltinSound
      See Also:
    • SOUND_TYPE_CONFIRMATION

      public static final String SOUND_TYPE_CONFIRMATION
      A common sound type that can be used with playBuiltinSound
      See Also:
    • SOUND_TYPE_ERROR

      public static final String SOUND_TYPE_ERROR
      A common sound type that can be used with playBuiltinSound
      See Also:
    • SOUND_TYPE_INFO

      public static final String SOUND_TYPE_INFO
      A common sound type that can be used with playBuiltinSound
      See Also:
    • SOUND_TYPE_WARNING

      public static final String SOUND_TYPE_WARNING
      A common sound type that can be used with playBuiltinSound
      See Also:
    • SOUND_TYPE_BUTTON_PRESS

      public static final String SOUND_TYPE_BUTTON_PRESS
      A common sound type that can be used with playBuiltinSound
      See Also:
    • KEYBOARD_TYPE_UNKNOWN

      public static final int KEYBOARD_TYPE_UNKNOWN
      Unknown keyboard type is the default indicating the software should try to detect the keyboard type if necessary
      See Also:
    • KEYBOARD_TYPE_NUMERIC

      public static final int KEYBOARD_TYPE_NUMERIC
      Numeric keypad keyboard type
      See Also:
    • KEYBOARD_TYPE_QWERTY

      public static final int KEYBOARD_TYPE_QWERTY
      Full QWERTY keypad keyboard type, even if a numeric keyboard also exists
      See Also:
    • KEYBOARD_TYPE_VIRTUAL

      public static final int KEYBOARD_TYPE_VIRTUAL
      A touch based device that doesn't have a physical keyboard. Such a device pops up a virtual keyboad.
      See Also:
    • KEYBOARD_TYPE_HALF_QWERTY

      public static final int KEYBOARD_TYPE_HALF_QWERTY
      Half-QWERTY which needs software assistance for completion
      See Also:
    • GAME_FIRE

      public static final int GAME_FIRE
      Game action for fire
      See Also:
    • GAME_LEFT

      public static final int GAME_LEFT
      Game action for the left key
      See Also:
    • GAME_RIGHT

      public static final int GAME_RIGHT
      Game action for right key
      See Also:
    • GAME_UP

      public static final int GAME_UP
      Game action for UP key
      See Also:
    • GAME_DOWN

      public static final int GAME_DOWN
      Game action for down key
      See Also:
    • MEDIA_KEY_SKIP_FORWARD

      public static final int MEDIA_KEY_SKIP_FORWARD
      Special case game key used for media playback events
      See Also:
    • MEDIA_KEY_SKIP_BACK

      public static final int MEDIA_KEY_SKIP_BACK
      Special case game key used for media playback events
      See Also:
    • MEDIA_KEY_PLAY

      public static final int MEDIA_KEY_PLAY
      Special case game key used for media playback events
      See Also:
    • MEDIA_KEY_STOP

      public static final int MEDIA_KEY_STOP
      Special case game key used for media playback events
      See Also:
    • MEDIA_KEY_PLAY_STOP

      public static final int MEDIA_KEY_PLAY_STOP
      Special case game key used for media playback events
      See Also:
    • MEDIA_KEY_PLAY_PAUSE

      public static final int MEDIA_KEY_PLAY_PAUSE
      Special case game key used for media playback events
      See Also:
    • MEDIA_KEY_FAST_FORWARD

      public static final int MEDIA_KEY_FAST_FORWARD
      Special case game key used for media playback events
      See Also:
    • MEDIA_KEY_FAST_BACKWARD

      public static final int MEDIA_KEY_FAST_BACKWARD
      Special case game key used for media playback events
      See Also:
    • KEY_POUND

      public static final int KEY_POUND
      An attribute that encapsulates '#' int value.
      See Also:
    • SHOW_DURING_EDIT_IGNORE

      public static final int SHOW_DURING_EDIT_IGNORE
      Ignore all calls to show occurring during edit, they are discarded immediately
      See Also:
    • SHOW_DURING_EDIT_EXCEPTION

      public static final int SHOW_DURING_EDIT_EXCEPTION
      If show is called while editing text in the native text box an exception is thrown
      See Also:
    • SHOW_DURING_EDIT_ALLOW_DISCARD

      public static final int SHOW_DURING_EDIT_ALLOW_DISCARD
      Allow show to occur during edit and discard all user input at this moment
      See Also:
    • SHOW_DURING_EDIT_ALLOW_SAVE

      public static final int SHOW_DURING_EDIT_ALLOW_SAVE
      Allow show to occur during edit and save all user input at this moment
      See Also:
    • SHOW_DURING_EDIT_SET_AS_NEXT

      public static final int SHOW_DURING_EDIT_SET_AS_NEXT
      Show will update the current form to which the OK button of the text box will return
      See Also:
    • COMMAND_BEHAVIOR_DEFAULT

      public static final int COMMAND_BEHAVIOR_DEFAULT
      Indicates that the Codename One implementation should decide internally the command behavior most appropriate for this platform.
      See Also:
    • COMMAND_BEHAVIOR_SOFTKEY

      public static final int COMMAND_BEHAVIOR_SOFTKEY
      Indicates the classic Codename One command behavior where the commands are placed in a list within a dialog. This is the most customizable approach for none touch devices.
      See Also:
    • COMMAND_BEHAVIOR_TOUCH_MENU

      public static final int COMMAND_BEHAVIOR_TOUCH_MENU
      Indicates the touch menu dialog rendered by Codename One where commands are placed into a scrollable dialog
      See Also:
    • COMMAND_BEHAVIOR_BUTTON_BAR

      public static final int COMMAND_BEHAVIOR_BUTTON_BAR
      Indicates that commands should be added to an always visible bar at the bottom of the form.
      See Also:
    • COMMAND_BEHAVIOR_BUTTON_BAR_TITLE_BACK

      public static final int COMMAND_BEHAVIOR_BUTTON_BAR_TITLE_BACK
      Identical to the bar behavior, places the back command within the title bar of the form/dialg
      See Also:
    • COMMAND_BEHAVIOR_BUTTON_BAR_TITLE_RIGHT

      public static final int COMMAND_BEHAVIOR_BUTTON_BAR_TITLE_RIGHT
      Places all commands on the right side of the title bar with a uniform size grid layout
      See Also:
    • COMMAND_BEHAVIOR_ICS

      public static final int COMMAND_BEHAVIOR_ICS
      Commands are placed in the same was as they are in the ice cream sandwich Android OS update where the back button has a theme icon the application icon appears next to the
      See Also:
    • COMMAND_BEHAVIOR_SIDE_NAVIGATION

      public static final int COMMAND_BEHAVIOR_SIDE_NAVIGATION
      Commands are placed in a side menu similar to Facebook/Google+ apps
      See Also:
    • COMMAND_BEHAVIOR_NATIVE

      public static final int COMMAND_BEHAVIOR_NATIVE
      Indicates that commands should try to add themselves to the native menus
      See Also:
    • WINDOW_SIZE_HINT_PERCENT

      public static final String WINDOW_SIZE_HINT_PERCENT
      Client property key used on the first shown Form to indicate the desired initial window size as a percentage of the available desktop. The value should be a com.codename1.ui.geom.Dimension whose width and height represent percentages.
      See Also:
  • Method Details

    • init

      public static void init(Object m)

      This is the INTERNAL Display initialization method, it will be removed in future versions of the API. This method must be called before any Form is shown

      Parameters
      • m: platform specific object used by the implementation
      Deprecated

      this method is invoked internally do not invoke it!

    • deinitialize

      public static void deinitialize()
      Closes down the EDT and Codename One, under normal conditions this method is completely unnecessary since exiting the application will shut down Codename One. However, if the application is minimized and the user wishes to free all resources without exiting the application then this method can be used. Once this method is used Codename One will no longer work and Display.init(Object) should be invoked again for any further Codename One call! Notice that minimize (being a Codename One method) MUST be invoked before invoking this method!
    • isInitialized

      public static boolean isInitialized()

      This method returns true if the Display is initialized.

      Returns

      true if the EDT is running

    • getInstance

      public static Display getInstance()

      Return the Display instance

      Returns

      the Display instance

    • setBookmark

      public void setBookmark(Runnable bookmark)

      Sets a bookmark that can restore the app to a particular state. This takes a Runnable that will be run when #restoreToBookmark() () } is called.

      The primary purpose of this feature is live code refresh.

      Parameters
      • bookmark: A Runnable that can be run to restore the app to a particular point.
      Since

      8.0

    • restoreToBookmark

      public void restoreToBookmark()

      Runs the last bookmark that was set using #setBookmark(java.lang.Runnable)

      Since

      8.0

    • getPluginSupport

      public PluginSupport getPluginSupport()

      Gets reference to plugin support object.

      Returns

      The plugin support object.

      Since

      8.0

    • getDragStartPercentage

      public int getDragStartPercentage()

      This method allows us to manipulate the drag started detection logic. If the pointer was dragged for more than this percentage of the display size it is safe to assume that a drag is in progress.

      Returns

      motion percentage

    • setDragStartPercentage

      public void setDragStartPercentage(int dragStartPercentage)

      This method allows us to manipulate the drag started detection logic. If the pointer was dragged for more than this percentage of the display size it is safe to assume that a drag is in progress.

      Parameters
      • dragStartPercentage: percentage of the screen required to initiate drag
    • setFramerate

      public void setFramerate(int rate)

      Indicates the maximum frames the API will try to draw every second by default this is set to 10. The advantage of limiting framerate is to allow the CPU to perform other tasks besides drawing. Notice that when no change is occurring on the screen no frame is drawn and so a high/low FPS will have no effect then. 10FPS would be very reasonable for a business application.

      Parameters
      • rate: the frame rate
    • vibrate

      public void vibrate(int duration)

      Vibrates the device for the given length of time, notice that this might ignore the time value completely on some OS's where this level of control isn't supported e.g. iOS see: https://github.com/codenameone/CodenameOne/issues/1904

      Parameters
      • duration: length of time to vibrate (might be ignored)
    • flashBacklight

      public void flashBacklight(int duration)

      Flash the backlight of the device for the given length of time

      Parameters
      • duration: length of time to flash the backlight
      Deprecated

      this refers to functionality of devices that are no longer sold, not to the devices "flash"

    • announceForAccessibility

      public void announceForAccessibility(Component cmp, String text)

      Manually announces text to native accessibility services, optionally associating the announcement with a specific component. Most assistive technologies will announce a component automatically when it gains focus; this method is intended for situations where an announcement should occur independently of focus changes.

      Parameters
      • cmp: the component related to this announcement or null for the root view

      • text: the message to announce

    • announceForAccessibility

      public void announceForAccessibility(String text)

      Convenience overload to announce text without specifying a component.

      Parameters
      • text: the message to announce
    • getShowDuringEditBehavior

      public int getShowDuringEditBehavior()

      Returns the status of the show during edit flag

      Returns
      Returns:

      one of the following: SHOW_DURING_EDIT_IGNORE, SHOW_DURING_EDIT_EXCEPTION, SHOW_DURING_EDIT_ALLOW_DISCARD, SHOW_DURING_EDIT_ALLOW_SAVE, SHOW_DURING_EDIT_SET_AS_NEXT

      Deprecated

      this method isn't applicable in modern devices

    • setShowDuringEditBehavior

      public void setShowDuringEditBehavior(int showDuringEdit)

      Invoking the show() method of a form/dialog while the user is editing text in the native text box can have several behaviors: SHOW_DURING_EDIT_IGNORE, SHOW_DURING_EDIT_EXCEPTION, SHOW_DURING_EDIT_ALLOW_DISCARD, SHOW_DURING_EDIT_ALLOW_SAVE, SHOW_DURING_EDIT_SET_AS_NEXT

      Parameters
      • showDuringEdit: @param showDuringEdit one of the following: SHOW_DURING_EDIT_IGNORE, SHOW_DURING_EDIT_EXCEPTION, SHOW_DURING_EDIT_ALLOW_DISCARD, SHOW_DURING_EDIT_ALLOW_SAVE, SHOW_DURING_EDIT_SET_AS_NEXT
      Deprecated

      this method isn't applicable in modern devices

    • getFrameRate

      public int getFrameRate()

      Indicates the maximum frames the API will try to draw every second

      Returns

      the frame rate

    • isEdt

      public boolean isEdt()

      Returns true if we are currently in the event dispatch thread. This is useful for generic code that can be used both with the EDT and outside of it.

      Returns
      Returns:
      true if we are currently in the event dispatch thread; otherwise false
    • stopRemoteControl

      public void stopRemoteControl()

      Stops the remote control service. This should be implemented in the platform to handle unbinding the com.codename1.media.RemoteControlListener with the platform's remote control.

      This is executed when a new listener is registered using com.codename1.media.MediaManager#setRemoteControlListener(com.codename1.media.RemoteControlListener)

      Since

      7.0

    • startRemoteControl

      public void startRemoteControl()

      Starts the remote control service. This should be implemented in the platform to handle binding the RemoteControlListener with the platform's remote control.

      This is executed when the user registers a new listener using MediaManager#setRemoteControlListener(com.codename1.media.RemoteControlListener)

      Since

      7.0

    • isDarkMode

      public Boolean isDarkMode()

      Returns true if the platform is in dark mode, null is returned for unknown status

      Returns

      true in case of dark mode

    • setDarkMode

      public void setDarkMode(Boolean darkMode)

      Override the default dark mode setting

      Parameters
      • darkMode: can be set to null to reset to platform default
    • isLargerTextEnabled

      public boolean isLargerTextEnabled()

      Returns true if the user has selected larger type fonts in the system settings.

      Returns

      true when the platform indicates a larger text preference.

      Since

      7.1

    • getLargerTextScale

      public float getLargerTextScale()

      Returns a scale factor representing how much larger system fonts should be. A value of 1.0 indicates the default system font size.

      Returns

      scale factor for larger system fonts.

      Since

      7.1

    • isEnableAsyncStackTraces

      public boolean isEnableAsyncStackTraces()

      Checks if async stack traces are enabled. If enabled, the stack trace at the point of #callSerially(java.lang.Runnable) calls will be recorded, and logged in the case that there is an uncaught exception.

      Currently this is only supported in the JavaSE/Simulator port.

      Returns

      Whether async stack traces are enabled.

      Since

      7.0

      See also
      • #setEnableAsyncStackTraces(boolean)
    • setEnableAsyncStackTraces

      public void setEnableAsyncStackTraces(boolean enableAsyncStackTraces)

      Enables or disables async stack traces. If enabled, the stack trace at the point of #callSerially(java.lang.Runnable) calls will be recorded, and logged in the case that there is an uncaught exception.

      Currently this is only supported in the JavaSE/Simulator port.

      Parameters
      • enableAsyncStackTraces: True to enable async stack traces.
      Since

      7.0

      See also
      • #isEnableAsyncStackTraces()
    • callSerially

      public void callSerially(Runnable r)

      Causes the runnable to be invoked on the event dispatch thread. This method returns immediately and will not wait for the serial call to occur

      Parameters
      • r: @param r runnable (NOT A THREAD!) that will be invoked on the EDT serial to the paint and key handling events
    • callSeriallyOnIdle

      public void callSeriallyOnIdle(Runnable r)

      Causes the runnable to be invoked on the event dispatch thread when the event dispatch thread is idle. This method returns immediately and will not wait for the serial call to occur. Notice this method is identical to call serially but will perform the runnable only when the EDT is idle

      Parameters
      • r: @param r runnable (NOT A THREAD!) that will be invoked on the EDT serial to the paint and key handling events
    • getLineSeparator

      public String getLineSeparator()
    • scheduleBackgroundTask

      public void scheduleBackgroundTask(Runnable r)

      Allows executing a background task in a separate low priority thread. Tasks are serialized so they don't overload the CPU.

      Parameters
      • r: the task to perform in the background
    • callSeriallyAndWait

      public void callSeriallyAndWait(Runnable r)

      Identical to callSerially with the added benefit of waiting for the Runnable method to complete.

      Parameters
      • r: @param r runnable (NOT A THREAD!) that will be invoked on the EDT serial to the paint and key handling events
      Throws
      • IllegalStateException: @throws IllegalStateException if this method is invoked on the event dispatch thread (e.g. during paint or event handling).
    • platformUsesInputMode

      public boolean platformUsesInputMode()

      Checks if this platform uses input modes. No current platforms return true for this. It is a holdover from J2ME.

      Returns

      True if the platform supports input modes. Only true for J2ME and RIM.

    • callSeriallyAndWait

      public void callSeriallyAndWait(Runnable r, int timeout)

      Identical to callSerially with the added benefit of waiting for the Runnable method to complete.

      Parameters
      • r: @param r runnable (NOT A THREAD!) that will be invoked on the EDT serial to the paint and key handling events

      • timeout: timeout duration, on timeout the method just returns

      Throws
      • IllegalStateException: @throws IllegalStateException if this method is invoked on the event dispatch thread (e.g. during paint or event handling).
    • isInTransition

      public boolean isInTransition()

      Returns true if the system is currently in the process of transitioning between forms

      Returns

      true if in the middle of form transition

    • getStackTrace

      public String getStackTrace(Thread parentThread, Throwable t)

      Returns the stack trace from the exception on the given thread. This API isn't supported on all platforms and may return a blank string when unavailable.

      Parameters
      • parentThread: the thread in which the exception was thrown

      • t: the exception

      Returns

      a stack trace string that might be blank

    • onEditingComplete

      public void onEditingComplete(Component c, String text)

      Called by the underlying implementation to indicate that editing in the native system has completed and changes should propagate into Codename One

      Parameters
      • c: edited component

      • text: new text for the component

    • invokeWithoutBlocking

      public void invokeWithoutBlocking(Runnable r)

      Invokes a Runnable with blocking disabled. If any attempt is made to block (i.e. call #invokeAndBlock(java.lang.Runnable) from inside this Runnable, it will result in a BlockingDisallowedException being thrown.

      Parameters
      • r: Runnable to be run immediately.
      Throws
      • BlockingDisallowedException: @throws BlockingDisallowedException If #invokeAndBlock(java.lang.Runnable) is attempted anywhere in the Runnable.
      Since

      7.0

    • invokeWithoutBlockingWithResultSync

      public <T> T invokeWithoutBlockingWithResultSync(RunnableWithResultSync<T> r)

      Invokes a RunnableWithResultSync with blocking disabled. If any attempt is made to block (i.e. call #invokeAndBlock(java.lang.Runnable) from inside this Runnable, it will result in a BlockingDisallowedException being thrown.

      Parameters
      • r: RunnableWithResultSync to be run immediately.
      Throws
      • BlockingDisallowedException: @throws BlockingDisallowedException If #invokeAndBlock(java.lang.Runnable) is attempted anywhere in the Runnable.
      Since

      7.0

    • invokeAndBlock

      public void invokeAndBlock(Runnable r, boolean dropEvents)

      Invokes runnable and blocks the current thread, if the current thread is the EDT it will still be blocked in a way that doesn't break event dispatch . Important: calling this method spawns a new thread that shouldn't access the UI!

      See this section in the developer guide for further information.

      Parameters
      • r: runnable (NOT A THREAD!) that will be invoked synchronously by this method

      • dropEvents: @param dropEvents indicates if the display should drop all events while this runnable is running

      Throws
      • BlockingDisallowedException: @throws BlockingDisallowedException if this method is called while blocking is disabled (i.e. we are running inside a call to #invokeWithoutBlocking(java.lang.Runnable) on the EDT).
    • invokeAndBlock

      public void invokeAndBlock(Runnable r)

      Invokes runnable and blocks the current thread, if the current thread is the EDT it will still be blocked in a way that doesn't break event dispatch . Important: calling this method spawns a new thread that shouldn't access the UI!

      See this section in the developer guide for further information.

      Parameters
      • r: runnable (NOT A THREAD!) that will be invoked synchroniously by this method
    • isTouchScreenDevice

      public boolean isTouchScreenDevice()

      The name of this method is misleading due to it's legacy. It will return true on the desktop too where the mouse sends pointer events.

      Returns

      true if this device supports touch/pointer events

    • setTouchScreenDevice

      public void setTouchScreenDevice(boolean touchScreen)

      Indicates if this is a touch screen device that will return pen events, defaults to true if the device has pen events but can be overriden by the developer.

      Parameters
      • touchScreen: false if this is not a touch screen device
    • setNoSleep

      public void setNoSleep(boolean noSleep)

      Calling this method with noSleep=true will cause the edt to run without sleeping.

      Parameters
      • noSleep: causes the edt to stop the sleeping periods between 2 cycles
    • setTransitionYield

      public void setTransitionYield(int transitionD)

      Indicates whether a delay should exist between calls to flush graphics during transition. In some devices flushGraphics is asynchronious causing it to be very slow with our background thread. The solution is to add a short wait allowing the implementation time to paint the screen. This value is set automatically by default but can be overriden for some devices.

      Parameters
      • transitionD: -1 for no delay otherwise delay in milliseconds
    • editString

      public void editString(Component cmp, int maxSize, int constraint, String text)

      Fires the native in place text editing logic, normally you wouldn't invoke this API directly and instead use an API like com.codename1.ui.TextArea#startEditingAsync(), com.codename1.ui.TextArea#startEditing() or com.codename1.ui.Form#setEditOnShow(com.codename1.ui.TextArea).

      Parameters
      • cmp: the TextArea component

      • maxSize: the maximum size from the text area

      • constraint: the constraints of the text area

      • text: the string to edit

    • editString

      public void editString(Component cmp, int maxSize, int constraint, String text, int initiatingKeycode)

      Fires the native in place text editing logic, normally you wouldn't invoke this API directly and instead use an API like com.codename1.ui.TextArea#startEditingAsync(), com.codename1.ui.TextArea#startEditing() or com.codename1.ui.Form#setEditOnShow(com.codename1.ui.TextArea).

      Parameters
      • cmp: the TextArea component

      • maxSize: the maximum size from the text area

      • constraint: the constraints of the text area

      • text: the string to edit

      • initiatingKeycode: the keycode used to initiate the edit.

    • stopEditing

      public void stopEditing(Component cmp)

      Allows us to stop editString on the given text component

      Parameters
      • cmp: the text field/text area component
    • stopEditing

      public void stopEditing(Component cmp, Runnable onFinish)

      Allows us to stop editString on the given text component or Form. If cmp is a Form, it will stop editing in any active component on the form, and close the keyboard if it is opened.

      Parameters
      • cmp: the text field/text area component

      • onFinish: invoked when editing stopped

    • minimizeApplication

      public boolean minimizeApplication()

      Minimizes the current application if minimization is supported by the platform (may fail). Returns false if minimization failed.

      Returns

      false if minimization failed true if it succeeded or seems to be successful

    • isMinimized

      public boolean isMinimized()

      Indicates whether an application is minimized

      Returns

      true if the application is minimized

    • restoreMinimizedApplication

      public void restoreMinimizedApplication()
      Restore the minimized application if minimization is supported by the platform
    • isControlKeyDown

      public boolean isControlKeyDown()
      Checks if the control key is currently down. Only relevant for desktop ports.
    • isMetaKeyDown

      public boolean isMetaKeyDown()
      Checks if the meta key is currently down. Only relevant for desktop ports.
    • isAltKeyDown

      public boolean isAltKeyDown()
      Checks if the alt key is currently down. Only relevant for desktop ports.
    • isAltGraphKeyDown

      public boolean isAltGraphKeyDown()
      Checks if the altgraph key is currently down. Only relevant for desktop ports.
    • isRightMouseButtonDown

      public boolean isRightMouseButtonDown()

      Checks if the last mouse press was a right click.

      Returns

      True if the last mouse press was a right click.

      Since

      7.0

    • isShiftKeyDown

      public boolean isShiftKeyDown()
      Checks if shift key is currently down. Only relevant for desktop ports.
    • keyPressed

      public void keyPressed(int keyCode)

      Pushes a key press event with the given keycode into Codename One

      Parameters
      • keyCode: keycode of the key event
    • keyReleased

      public void keyReleased(int keyCode)

      Pushes a key release event with the given keycode into Codename One

      Parameters
      • keyCode: keycode of the key event
    • pointerDragged

      public void pointerDragged(int[] x, int[] y)

      Pushes a pointer drag event with the given coordinates into Codename One

      Parameters
      • x: the x position of the pointer

      • y: the y position of the pointer

    • pointerHover

      public void pointerHover(int[] x, int[] y)

      Pushes a pointer hover event with the given coordinates into Codename One

      Parameters
      • x: the x position of the pointer

      • y: the y position of the pointer

    • pointerHoverPressed

      public void pointerHoverPressed(int[] x, int[] y)

      Pushes a pointer hover release event with the given coordinates into Codename One

      Parameters
      • x: the x position of the pointer

      • y: the y position of the pointer

    • pointerHoverReleased

      public void pointerHoverReleased(int[] x, int[] y)

      Pushes a pointer hover release event with the given coordinates into Codename One

      Parameters
      • x: the x position of the pointer

      • y: the y position of the pointer

    • pointerPressed

      public void pointerPressed(int[] x, int[] y)

      Pushes a pointer press event with the given coordinates into Codename One

      Parameters
      • x: the x position of the pointer

      • y: the y position of the pointer

    • pointerReleased

      public void pointerReleased(int[] x, int[] y)

      Pushes a pointer release event with the given coordinates into Codename One

      Parameters
      • x: the x position of the pointer

      • y: the y position of the pointer

    • sizeChanged

      public void sizeChanged(int w, int h)

      Notifies Codename One of display size changes, this method is invoked by the implementation class and is for internal use

      Parameters
      • w: the width of the drawing surface

      • h: the height of the drawing surface

    • hideNotify

      public void hideNotify()
      Broadcasts hide notify into Codename One, this method is invoked by the Codename One implementation to notify Codename One of hideNotify events
    • showNotify

      public void showNotify()
      Broadcasts show notify into Codename One, this method is invoked by the Codename One implementation to notify Codename One of showNotify events
    • hasDragOccured

      public boolean hasDragOccured()

      This method should be invoked by components that broadcast events on the pointerReleased callback. This method will indicate if a drag occured since the pointer press event, notice that this method will not behave as expected for multi-touch events.

      Returns

      true if a drag has occured since the last pointer pressed

    • getCurrent

      public Form getCurrent()

      Return the form currently displayed on the screen or null if no form is currently displayed.

      Returns
      Returns:
      the form currently displayed on the screen or null if no form is currently displayed
    • numAlphaLevels

      public int numAlphaLevels()

      Return the number of alpha levels supported by the implementation.

      Returns

      the number of alpha levels supported by the implementation

      Deprecated

      this method isn't implemented in most modern devices

    • numColors

      public int numColors()

      Returns the number of colors applicable on the device, note that the API does not support gray scale devices.

      Returns

      the number of colors applicable on the device

      Deprecated

      this method isn't implemented in most modern devices

    • getDisplayWidth

      public int getDisplayWidth()

      Return the width of the display

      Returns

      the width of the display

    • getDisplayHeight

      public int getDisplayHeight()

      Return the height of the display

      Returns

      the height of the display

    • getDesktopSize

      public Dimension getDesktopSize()

      Returns the size of the desktop hosting the application window when running on a desktop platform.

      Returns

      the desktop size or the current display size if not supported

    • getWindowBounds

      public Rectangle getWindowBounds()

      Returns the current window bounds when running on a desktop platform.

      Returns

      the bounds of the application window

    • setWindowSize

      public void setWindowSize(int width, int height)

      Requests a resize of the application window when supported by the platform.

      Parameters
      • width: the desired window width

      • height: the desired window height

    • getInitialWindowSizeHintPercent

      public Dimension getInitialWindowSizeHintPercent()

      Returns the initial desktop window size hint provided by the first shown form, when available.

      Returns

      the stored hint or null

    • setInitialWindowSizeHintPercent

      public void setInitialWindowSizeHintPercent(Dimension hint)

      Sets the initial desktop window size hint (percent of the desktop) that should be used when the first form is shown. This is primarily useful for desktop environments where the Codename One application is hosted in a window rather than full-screen.

      Parameters
      • hint: @param hint a Dimension whose width/height represent percentages of the desktop to use for the initial window size, or null to clear a previously stored hint
    • convertToPixels

      public int convertToPixels(int dipCount, boolean horizontal)

      Converts the dips count to pixels, dips are roughly 1mm in length. This is a very rough estimate and not to be relied upon

      Parameters
      • dipCount: the dips that we will convert to pixels

      • horizontal: indicates pixels in the horizontal plane

      Returns

      value in pixels

    • convertToPixels

      public int convertToPixels(float value, byte unitType)

      Converts from specified unit to pixels.

      Parameters
      • value: The value to convert, expressed in unitType.

      • unitType: @param unitType The unit type. One of Style#UNIT_TYPE_DIPS, Style#UNIT_TYPE_PIXELS, Style#UNIT_TYPE_REM, Style#UNIT_TYPE_SCREEN_PERCENTAGE, Style#UNIT_TYPE_VH, Style#UNIT_TYPE_VW, Style#UNIT_TYPE_VMIN, Style#UNIT_TYPE_VMAX

      Returns

      The value converted to pixels.

      Since

      8.0

    • convertToPixels

      public int convertToPixels(float value, byte unitType, boolean horizontal)

      Converts from specified unit to pixels.

      Parameters
      • value: The value to convert, expressed in unitType.

      • unitType: @param unitType The unit type. One of Style#UNIT_TYPE_DIPS, Style#UNIT_TYPE_PIXELS, Style#UNIT_TYPE_REM, Style#UNIT_TYPE_SCREEN_PERCENTAGE, Style#UNIT_TYPE_VH, Style#UNIT_TYPE_VW, Style#UNIT_TYPE_VMIN, Style#UNIT_TYPE_VMAX

      • horizontal: Whether screen percentage units should be based on horitonzal or vertical percentage.

      Returns

      The value converted to pixels.

      Since

      8.0

    • convertToPixels

      public int convertToPixels(float dipCount)

      Converts the dips count to pixels, dips are roughly 1mm in length. This is a very rough estimate and not to be relied upon. This version of the method assumes square pixels which is pretty much the norm.

      Parameters
      • dipCount: the dips that we will convert to pixels
      Returns

      value in pixels

    • getGameAction

      public int getGameAction(int keyCode)

      Returns the game action code matching the given key combination

      Parameters
      • keyCode: key code received from the event
      Returns

      game action matching this keycode

    • getKeyCode

      public int getKeyCode(int gameAction)

      Returns the keycode matching the given game action constant (the opposite of getGameAction). On some devices getKeyCode returns numeric keypad values for game actions, this breaks the code since we filter these values (to prevent navigation on '2'). We pick unused negative values for game keys and assign them to game keys for getKeyCode so they will work with getGameAction.

      Parameters
      • gameAction: game action constant from this class
      Returns

      keycode matching this constant

      Deprecated
    • isThirdSoftButton

      public boolean isThirdSoftButton()

      Indicates whether the 3rd softbutton should be supported on this device

      Returns

      true if a third softbutton should be used

    • setThirdSoftButton

      public void setThirdSoftButton(boolean thirdSoftButton)

      Indicates whether the 3rd softbutton should be supported on this device

      Parameters
      • thirdSoftButton: true if a third softbutton should be used
    • setShowVirtualKeyboard

      public void setShowVirtualKeyboard(boolean show)

      Displays the virtual keyboard on devices that support manually poping up the vitual keyboard

      Parameters
      • show: toggles the virtual keyboards visibility
      Deprecated
    • isVirtualKeyboardShowing

      public boolean isVirtualKeyboardShowing()

      Indicates if the virtual keyboard is currently showing or not

      Returns

      true if the virtual keyboard is showing

      Deprecated
    • getSupportedVirtualKeyboard

      public String[] getSupportedVirtualKeyboard()

      Returns all platform supported virtual keyboards names

      Returns

      all platform supported virtual keyboards names

      Deprecated

      this method is only used in feature phones and has no modern equivalent

    • registerVirtualKeyboard

      public void registerVirtualKeyboard(VirtualKeyboardInterface vkb)

      Register a virtual keyboard

      Parameters
      • vkb
      Deprecated

      this method is only used in feature phones and has no modern equivalent

    • getDefaultVirtualKeyboard

      public VirtualKeyboardInterface getDefaultVirtualKeyboard()

      Get the default virtual keyboard or null if the VirtualKeyboard is disabled

      Returns

      the default vkb

      Deprecated

      this method is only used in feature phones and has no modern equivalent

    • setDefaultVirtualKeyboard

      public void setDefaultVirtualKeyboard(VirtualKeyboardInterface vkb)

      Sets the default virtual keyboard to be used by the platform

      Parameters
      • vkb: @param vkb a VirtualKeyboard to be used or null to disable the VirtualKeyboard
      Deprecated

      this method is only used in feature phones and has no modern equivalent

    • getVirtualKeyboardListener

      public ActionListener getVirtualKeyboardListener()

      Gets the VirtualKeyboardListener Objects of exists.

      Returns

      a Listener Object or null if not exists

      Deprecated

      Use #removeVirtualKeyboardListener(com.codename1.ui.events.ActionListener)

    • setVirtualKeyboardListener

      public void setVirtualKeyboardListener(ActionListener l)

      Sets a listener for VirtualKeyboard hide/show events. The Listener will get an event once the keyboard is opened/closed with a Boolean value that represents the state of the keyboard true for open and false for closed getSource() on the ActionEvent will return the Boolean value.

      Parameters
      • l: the listener
      Deprecated

      Use #addVirtualKeyboardListener(com.codename1.ui.events.ActionListener)

    • addVirtualKeyboardListener

      public void addVirtualKeyboardListener(ActionListener l)

      Adds a listener for VirtualKeyboard hide/show events. ActionEvents will return a Boolean value for ActionEvent#getSource(), with Boolean.TRUE on show, and Boolean.FALSE on hide.

      Note: Keyboard events may not be 100% reliable as they use heuristics on most platforms to guess when the keyboard is shown or hidden.

      Parameters
      • l: The listener.
      Since

      6.0

      See also
      • #removeVirtualKeyboardListener(com.codename1.ui.events.ActionListener)
    • removeVirtualKeyboardListener

      public void removeVirtualKeyboardListener(ActionListener l)

      Removes a listener for VirtualKeyboard hide/show events. ActionEvents will return a Boolean value for ActionEvent#getSource(), with Boolean.TRUE on show, and Boolean.FALSE on hide.

      Note: Keyboard events may not be 100% reliable as they use heuristics on most platforms to guess when the keyboard is shown or hidden.

      Parameters
      • l: The listener.
      Since

      6.0

      See also
      • #addVirtualKeyboardListener(com.codename1.ui.events.ActionListener)
    • fireVirtualKeyboardEvent

      public void fireVirtualKeyboardEvent(boolean show)

      Fires a virtual keyboard show event.

      Parameters
      • show
      Since

      6.0

    • getInvisibleAreaUnderVKB

      public int getInvisibleAreaUnderVKB()

      Gets the invisible area under the Virtual Keyboard.

      Returns

      Height of the VKB that overlaps the screen.

      Since

      6.0

    • getKeyboardType

      public int getKeyboardType()

      Returns the type of the input device one of: KEYBOARD_TYPE_UNKNOWN, KEYBOARD_TYPE_NUMERIC, KEYBOARD_TYPE_QWERTY, KEYBOARD_TYPE_VIRTUAL, KEYBOARD_TYPE_HALF_QWERTY

      Returns

      KEYBOARD_TYPE_UNKNOWN

    • isNativeInputSupported

      public boolean isNativeInputSupported()

      Indicates whether the device supports native in place editing in which case lightweight input logic shouldn't be used for input.

      Returns

      false by default

    • isMultiTouch

      public boolean isMultiTouch()

      Indicates whether the device supports multi-touch events, this is only relevant when touch events are supported

      Returns

      false by default

    • isClickTouchScreen

      public boolean isClickTouchScreen()

      Indicates whether the device has a double layer screen thus allowing two stages to touch events: click and hover. This is true for devices such as the storm but can also be true for a PC with a mouse pointer floating on top.

      A click touch screen will also send pointer hover events to the underlying software and will only send the standard pointer events on click.

      Returns

      false by default

    • getDragSpeed

      public float getDragSpeed(boolean yAxis)

      This method returns the dragging speed based on the latest dragged events

      Parameters
      • yAxis: indicates what axis speed is required
      Returns

      the dragging speed

    • isBidiAlgorithm

      public boolean isBidiAlgorithm()

      Indicates whether Codename One should consider the bidi RTL algorithm when drawing text or navigating with the text field cursor.

      Returns

      true if the bidi algorithm should be considered

    • setBidiAlgorithm

      public void setBidiAlgorithm(boolean activate)

      Indicates whether Codename One should consider the bidi RTL algorithm when drawing text or navigating with the text field cursor.

      Parameters
      • activate: @param activate set to true to activate the bidi algorithm, false to disable it
    • convertBidiLogicalToVisual

      public String convertBidiLogicalToVisual(String s)

      Converts the given string from logical bidi layout to visual bidi layout so it can be rendered properly on the screen. This method is only necessary for devices/platforms that don't have "built in" bidi support such as Sony Ericsson devices. See this for more on visual vs. logical ordering.

      Parameters
      • s: a "logical" string with RTL characters
      Returns

      a "visual" renderable string

    • getCharLocation

      public int getCharLocation(String source, int index)

      Returns the index of the given char within the source string, the actual index isn't necessarily the same when bidi is involved See this for more on visual vs. logical ordering.

      Parameters
      • source: the string in which we are looking for the position

      • index: the "logical" location of the cursor

      Returns

      the "visual" location of the cursor

    • isRTL

      public boolean isRTL(char c)

      Returns true if the given character is an RTL character

      Parameters
      • c: character to test
      Returns

      true if the charcter is an RTL character

    • getResourceAsStream

      public InputStream getResourceAsStream(Class cls, String resource)

      This method is essentially equivalent to cls.getResourceAsStream(String) however some platforms might define unique ways in which to load resources within the implementation.

      Parameters
      • cls: class to load the resource from

      • resource: relative/absolute URL based on the Java convention

      Returns

      input stream for the resource or null if not found

    • addEdtErrorHandler

      public void addEdtErrorHandler(ActionListener e)

      An error handler will receive an action event with the source exception from the EDT once an error handler is installed the default Codename One error dialog will no longer appear

      Parameters
      • e: listener receiving the errors
    • removeEdtErrorHandler

      public void removeEdtErrorHandler(ActionListener e)

      An error handler will receive an action event with the source exception from the EDT once an error handler is installed the default Codename One error dialog will no longer appear

      Parameters
      • e: listener receiving the errors
    • isAllowMinimizing

      public boolean isAllowMinimizing()

      Allows a Codename One application to minimize without forcing it to the front whenever a new dialog is poped up

      Returns

      allowMinimizing value

    • setAllowMinimizing

      public void setAllowMinimizing(boolean allowMinimizing)

      Allows a Codename One application to minimize without forcing it to the front whenever a new dialog is poped up

      Parameters
      • allowMinimizing: value
    • shouldRenderSelection

      public boolean shouldRenderSelection()

      This is an internal state flag relevant only for pureTouch mode (otherwise it will always be true). A pureTouch mode is stopped if a user switches to using the trackball/navigation pad and this flag essentially toggles between those two modes.

      Returns

      the shouldRenderSelection

    • shouldRenderSelection

      public boolean shouldRenderSelection(Component c)

      This is an internal state flag relevant only for pureTouch mode (otherwise it will always be true). A pureTouch mode is stopped if a user switches to using the trackball/navigation pad and this flag essentially toggles between those two modes.

      Parameters
      • c: the component to test against, this prevents a touch outside of the component that triggers a repaint from painting the component selection
      Returns

      the shouldRenderSelection

    • isPureTouch

      public boolean isPureTouch()

      A pure touch device has no focus showing when the user is using the touch interface. Selection only shows when the user actually touches the screen or suddenly switches to using a keypad/trackball. This sort of interface is common in Android devices

      Returns

      the pureTouch flag

    • setPureTouch

      public void setPureTouch(boolean pureTouch)

      A pure touch device has no focus showing when the user is using the touch interface. Selection only shows when the user actually touches the screen or suddenly switches to using a keypad/trackball. This sort of interface is common in Android devices

      Parameters
      • pureTouch: the value for pureTouch
    • isNativeCommands

      public boolean isNativeCommands()

      Indicates whether Codename One commands should be mapped to the native menus

      Returns

      the nativeCommands status

      Deprecated

      use getCommandBehavior() == Display.COMMAND_BEHAVIOR_NATIVE

    • setNativeCommands

      public void setNativeCommands(boolean nativeCommands)

      Indicates whether Codename One commands should be mapped to the native menus

      Parameters
      • nativeCommands: the flag to set
      Deprecated

      use setCommandBehavior(Display.COMMAND_BEHAVIOR_NATIVE)

    • exitApplication

      public void exitApplication()
      Exits the application...
    • isFullScreenSupported

      public boolean isFullScreenSupported()

      Checks if this platform supports full-screen mode. If full-screen mode is supported, you can use the #requestFullScreen(), #exitFullScreen(), and #isInFullScreenMode() methods to enter and exit full-screen - and query the current state.

      Currently only desktop and Javascript builds support full-screen mode; And Javascript only supports this on certain browsers. See the MDN Fullscreen API docs for a list of browsers that support full-screen.

      When running in the simulator, full-screen is only supported for the desktop skin.

      Returns

      true if Full-screen mode is supported on this platform.

      Since

      6.0

      See also
      • #requestFullScreen()

      • #exitFullScreen()

      • #isInFullScreenMode()

    • requestFullScreen

      public boolean requestFullScreen()

      Try to enter full-screen mode if the platform supports it.

      Currently only desktop and Javascript builds support full-screen mode; And Javascript only supports this on certain browsers. See the MDN Fullscreen API docs for a list of browsers that support full-screen.

      When running in the simulator, full-screen is only supported for the desktop skin.

      Returns
      Returns:

      true on success. This will also return true if the app is already running in full-screen mode. It will return false if the app fails to enter full-screen mode.

      Since

      6.0

      See also
      • #exitFullScreen()

      • #isInFullScreenMode()

      • #isFullScreenSupported()

    • exitFullScreen

      public boolean exitFullScreen()

      Try to exit full-screen mode if the platform supports it.

      Currently only desktop and Javascript builds support full-screen mode; And Javascript only supports this on certain browsers. See the MDN Fullscreen API docs for a list of browsers that support full-screen.

      When running in the simulator, full-screen is only supported for the desktop skin.

      Returns
      Returns:

      true on success. This will also return true if the app is already NOT in full-screen mode. It will return false if the app fails to exit full-screen mode.

      Since

      6.0

      See also
      • #requestFullScreen()

      • #isInFullScreenMode()

      • #isFullScreenSupported()

    • isInFullScreenMode

      public boolean isInFullScreenMode()

      Checks if the app is currently running in full-screen mode.

      Returns

      true if the app is currently in full-screen mode.

      Since

      6.0

      See also
      • #requestFullScreen()

      • #exitFullScreen()

      • #isFullScreenSupported()

    • showNativeScreen

      public void showNativeScreen(Object nativeFullScreenPeer)

      Shows a native Form/Canvas or some other heavyweight native screen

      Parameters
      • nativeFullScreenPeer: the native screen peer
    • isAutoFoldVKBOnFormSwitch

      public boolean isAutoFoldVKBOnFormSwitch()

      Normally Codename One folds the VKB when switching forms this field allows us to block that behavior.

      Returns

      the autoFoldVKBOnFormSwitch

    • setAutoFoldVKBOnFormSwitch

      public void setAutoFoldVKBOnFormSwitch(boolean autoFoldVKBOnFormSwitch)

      Normally Codename One folds the VKB when switching forms this field allows us to block that behavior.

      Parameters
      • autoFoldVKBOnFormSwitch: the autoFoldVKBOnFormSwitch to set
    • getCommandBehavior

      public int getCommandBehavior()

      Indicates the way commands should be added to a form as one of the ocmmand constants defined in this class

      Returns

      the commandBehavior

      Deprecated
    • setCommandBehavior

      public void setCommandBehavior(int commandBehavior)

      Indicates the way commands should be added to a form as one of the ocmmand constants defined in this class

      Parameters
      • commandBehavior: the commandBehavior to set
      Deprecated
    • postMessage

      public void postMessage(MessageEvent message)

      Posts a message to the native platform. Different platforms may handle messages posted this way differently.

      The Javascript port will dispatch the message on the window object as a custom DOM event named 'cn1outbox', with the event data containing a 'detail' key with the message, and a 'code' key with the code.

      Parameters
      • message: The message.
      Since

      7.0

    • addMessageListener

      public void addMessageListener(ActionListener<MessageEvent> l)

      Adds a listener to receive messages from the native platform. This is one mechanism for the native platform to communicate with the Codename one app.

      In the JavaScript port, listeners will be notified when DOM events named 'cn1inbox' are received on the window object. The event data 'detail' key will be the source of the message, and the 'code' key will be the source of the code.

      Parameters
      • l: The listener.
      Since

      7.0

    • removeMessageListener

      public void removeMessageListener(ActionListener<MessageEvent> l)

      Removes a listener from receiving messages from the native platform.

      Parameters
      • l: The listener.
      Since

      7.0

    • dispatchMessage

      public void dispatchMessage(MessageEvent evt)

      Dispatches a message to all of the registered listeners.

      Parameters
      • evt
      Since

      7.0

      See also
      • #addMessageListener(com.codename1.ui.events.ActionListener)

      • #removeMessageListener(com.codename1.ui.events.ActionListener)

    • addWindowListener

      public void addWindowListener(ActionListener<WindowEvent> l)

      Adds a listener to receive notifications about native window changes such as resize or movement.

      Parameters
      • l: the listener to add
    • removeWindowListener

      public void removeWindowListener(ActionListener<WindowEvent> l)

      Removes a previously registered window listener.

      Parameters
      • l: the listener to remove
    • fireWindowEvent

      public void fireWindowEvent(WindowEvent evt)

      Dispatches a window change event to registered listeners. This method is intended to be invoked by platform implementations.

      Parameters
      • evt: the window event to dispatch
    • getProperty

      public String getProperty(String key, String defaultValue)

      Returns the property from the underlying platform deployment or the default value if no deployment values are supported. This is equivalent to the getAppProperty from the jad file.

      The implementation should be responsible for the following keys to return reasonable valid values for the application:

      • AppName

      • User-Agent

      • AppVersion

      • Platform - Similar to microedition.platform

      • OS - returns what is the underlying platform e.g. - iOS, Android, RIM, SE...

      • OSVer - OS version when available as a user readable string (not necessarily a number e.g: 3.2.1).

      Parameters
      • key: the key of the property

      • defaultValue: a default return value

      Returns

      the value of the property

    • setProperty

      public void setProperty(String key, String value)

      Sets a local property to the application, this method has no effect on the implementation code and only allows the user to override the logic of getProperty for internal application purposes.

      Parameters
      • key: key the key of the property

      • value: the value of the property

    • canExecute

      public Boolean canExecute(String url)

      Returns true if executing this URL should work, returns false if it will not and null if this is unknown.

      Boolean can = Display.getInstance().canExecute("imdb:///find?q=godfather");
      if(can != null && can) {
        Display.getInstance().execute("imdb:///find?q=godfather");
      } else {
        Display.getInstance().execute("http://www.imdb.com");
      }
      
      Parameters
      • url: the url that would be executed
      Returns
      Returns:
      true if executing this URL should work, returns false if it will not and null if this is unknown
    • execute

      public void execute(String url)

      Executes the given URL on the native platform

      Boolean can = Display.getInstance().canExecute("imdb:///find?q=godfather");
      if(can != null && can) {
        Display.getInstance().execute("imdb:///find?q=godfather");
      } else {
        Display.getInstance().execute("http://www.imdb.com");
      }
      
      Parameters
      • url: the url to execute
    • execute

      public void execute(String url, ActionListener response)

      Executes the given URL on the native platform, this method is useful if the platform has the ability to send an event to the app when the execution has ended, currently this works only for Android platform to invoke other intents.

      Parameters
      • url: the url to execute

      • response: @param response a callback from the platform when this execution returned to the application

    • getDeviceDensity

      public int getDeviceDensity()

      Returns one of the density variables appropriate for this device, notice that density doesn't always correspond to resolution and an implementation might decide to change the density based on DPI constraints.

      Returns

      one of the DENSITY constants of Display

    • getDensityStr

      public String getDensityStr()

      Returns the device density as a string.

      • DENSITY_VERY_LOW : "very-low"

      • DENSITY_LOW : "low"

      • DENSITY_MEDIUM : "medium"

      • DENSITY_HIGH : "high"

      • DENSITY_VERY_HIGH : "very-high"

      • DENSITY_HD : "hd"

      • DENSITY_560 : "560"

      • DENSITY_2HD : "2hd"

      • DENSITY_4K : "4k";

      Returns

      Device density as a string.

      Since

      7.0

      See also
      • #getDeviceDensity()
    • playBuiltinSound

      public void playBuiltinSound(String soundIdentifier)

      Plays a builtin device sound matching the given identifier, implementations and themes can offer additional identifiers to the ones that are already built in.

      Parameters
      • soundIdentifier: @param soundIdentifier the sound identifier which can match one of the common constants in this class or be a user/implementation defined sound
      Deprecated

      this isn't supported on most platforms

    • getDisplaySafeArea

      public Rectangle getDisplaySafeArea(Rectangle rect)

      Gets the display safe area as a rectangle.

      Parameters
      • rect: Out parameter that will store the display safe area.
      Returns

      The display safe area.

      Since

      7.0

      See also
      • Form#getSafeArea()
    • installBuiltinSound

      public void installBuiltinSound(String soundIdentifier, InputStream data) throws IOException

      Installs a replacement sound as the builtin sound responsible for the given sound identifier (this will override the system sound if such a sound exists).

      Parameters
      • soundIdentifier: the sound string passed to playBuiltinSound

      • data: @param data an input stream containing platform specific audio file, its usually safe to assume that wav/mp3 would be supported.

      Throws
      • IOException: if the stream throws an exception
      Throws:
      IOException
    • isBuiltinSoundAvailable

      public boolean isBuiltinSoundAvailable(String soundIdentifier)

      Indicates whether a user installed or system sound is available

      Parameters
      • soundIdentifier: the sound string passed to playBuiltinSound
      Returns

      true if a sound of this given type is avilable

      Deprecated

      this isn't supported on most platforms

    • isBuiltinSoundsEnabled

      public boolean isBuiltinSoundsEnabled()

      Allows muting/unmuting the builtin sounds easily

      Returns

      true if the sound is not muted

    • setBuiltinSoundsEnabled

      public void setBuiltinSoundsEnabled(boolean enabled)

      Allows muting/unmuting the builtin sounds easily

      Parameters
      • enabled: indicates whether the sound is muted
    • createMedia

      public Media createMedia(String uri, boolean isVideo, Runnable onCompletion) throws IOException

      Creates a sound in the given URI which is partially platform specific. Notice that an audio is "auto destroyed" on completion and cannot be played twice!

      Parameters
      • uri: the platform specific location for the sound

      • onCompletion: invoked when the audio file finishes playing, may be null

      Returns

      a handle that can be used to control the playback of the audio

      Throws
      • java.io.IOException: if the URI access fails
      Throws:
      IOException
    • createMediaAsync

      public AsyncResource<Media> createMediaAsync(String uri, boolean video, Runnable onCompletion)

      Creates media asynchronously.

      Parameters
      • uri: the platform specific location for the sound

      • onCompletion: invoked when the audio file finishes playing, may be null

      Returns

      a handle that can be used to control the playback of the audio

      Since

      7.0

    • addCompletionHandler

      public void addCompletionHandler(Media media, Runnable onCompletion)

      Adds a callback to a Media element that will be called when the media finishes playing.

      Parameters
      • media: The media to add the callback to.

      • onCompletion: The callback that will run on the EDT when the playback completes.

      See also
      • #removeCompletionHandler(com.codename1.media.Media, java.lang.Runnable)
    • removeCompletionHandler

      public void removeCompletionHandler(Media media, Runnable onCompletion)

      Removes onComplete callback from Media element.

      Parameters
      • media: The media element.

      • onCompletion: The callback.

      See also
      • #addCompletionHandler(com.codename1.media.Media, java.lang.Runnable)
    • createMedia

      public Media createMedia(InputStream stream, String mimeType, Runnable onCompletion) throws IOException

      Create the sound in the given stream Notice that an audio is "auto destroyed" on completion and cannot be played twice!

      Parameters
      • stream: the stream containing the media data

      • mimeType: the type of the data in the stream

      • onCompletion: invoked when the audio file finishes playing, may be null

      Returns

      a handle that can be used to control the playback of the audio

      Throws
      • java.io.IOException: if the URI access fails
      Throws:
      IOException
    • createMediaAsync

      public AsyncResource<Media> createMediaAsync(InputStream stream, String mimeType, Runnable onCompletion)
    • createSoftWeakRef

      public Object createSoftWeakRef(Object o)

      Creates a soft/weak reference to an object that allows it to be collected yet caches it. This method is in the porting layer since CLDC only includes weak references while some platforms include nothing at all and some include the superior soft references.

      Parameters
      • o: object to cache
      Returns

      a caching object or null if caching isn't supported

    • extractHardRef

      public Object extractHardRef(Object o)

      Extracts the hard reference from the soft/weak reference given

      Parameters
      • o: the reference returned by createSoftWeakRef
      Returns

      the original object submitted or null

    • hasNativeTheme

      public boolean hasNativeTheme()

      Indicates if the implemenetation has a native underlying theme

      Returns

      true if the implementation has a native theme available

    • installNativeTheme

      public void installNativeTheme()
      Installs the native theme, this is only applicable if hasNativeTheme() returned true. Notice that this method might replace the DefaultLookAndFeel instance and the default transitions.
    • copyToClipboard

      public void copyToClipboard(Object obj)

      Performs a clipboard copy operation, if the native clipboard is supported by the implementation it would be used

      Parameters
      • obj: @param obj object to copy, while this can be any arbitrary object it is recommended that only Strings or Codename One image objects be used to copy
    • getPasteDataFromClipboard

      public Object getPasteDataFromClipboard()

      Returns the current content of the clipboard

      Returns

      can be any object or null see copyToClipboard

    • isPortrait

      public boolean isPortrait()

      Returns true if the device is currently in portrait mode

      Returns

      true if the device is in portrait mode

    • canForceOrientation

      public boolean canForceOrientation()

      Returns true if the device allows forcing the orientation via code, feature phones do not allow this although some include a jad property allowing for this feature

      Since version 6.0, orientation lock is supported in Javascript builds in some browsers. For a full list of browsers the support locking orientation, see the MDN Lock Orientation docs.

      NOTE: In Javascript builds, orientation lock is only supported if the app is running in full-screen mode. If the app is not currently in full-screen mode, then #canForceOrientation() will return false and #lockOrientation(boolean) will do nothing.

      Returns

      true if lockOrientation would work

      See also
      • #lockOrientation(boolean)

      • #unlockOrientation()

    • lockOrientation

      public void lockOrientation(boolean portrait)

      On devices that return true for canForceOrientation() this method can lock the device orientation either to portrait or landscape mode

      Since version 6.0, orientation lock is supported in Javascript builds in some browsers. For a full list of browsers the support locking orientation, see the MDN Lock Orientation docs.

      NOTE: In Javascript builds, orientation lock is only supported if the app is running in full-screen mode. If the app is not currently in full-screen mode, then #canForceOrientation() will return false and #lockOrientation(boolean) will do nothing.

      Parameters
      • portrait: true to lock to portrait mode, false to lock to landscape mode
      See also
      • #unlockOrientation()

      • #canForceOrientation()

    • unlockOrientation

      public void unlockOrientation()

      This is the reverse method for lock orientation allowing orientation lock to be disabled

      Since version 6.0, orientation lock is supported in Javascript builds in some browsers. For a full list of browsers the support locking orientation, see the MDN Lock Orientation docs.

      NOTE: In Javascript builds, orientation lock is only supported if the app is running in full-screen mode. If the app is not currently in full-screen mode, then #canForceOrientation() will return false and #lockOrientation(boolean) will do nothing.

      See also
      • #lockOrientation(boolean)

      • #canForceOrientation()

    • isTablet

      public boolean isTablet()

      Indicates whether the device is a tablet, notice that this is often a guess

      Returns

      true if the device is assumed to be a tablet

    • isDesktop

      public boolean isDesktop()

      Returns true if this is a desktop application

      Returns

      true if this is a desktop application

    • canDial

      public boolean canDial()

      Returns true if the device has dialing capabilities

      Returns

      false if it cannot dial

    • areMutableImagesFast

      public boolean areMutableImagesFast()

      On most platforms it is quite fast to draw on a mutable image and then render that image, however some platforms have much slower mutable images in comparison to just drawing on the screen. These platforms should return false here and Codename One will try to use less mutable image related optimizations in transitions and other operations.

      Returns

      true if mutable images are fast on this platform

    • getLocationManager

      public LocationManager getLocationManager()

      This method returns the platform Location Manager used for geofencing. This allows tracking the user location in the background. Usage:

      // File: BGLocationTest.java
      public void showForm() {
          Form hi = new Form("Hi World");
          hi.addComponent(new Label("Hi World"));
      
          Location loc = new Location();
          loc.setLatitude(51.5033630);
          loc.setLongitude(-0.1276250);
      
          Geofence gf = new Geofence("test", loc, 100, 100000);
      
          LocationManager.getLocationManager().addGeoFencing(GeofenceListenerImpl.class, gf);
      
          hi.show();
      }
      
      // File: GeofenceListenerImpl.java
      public class GeofenceListenerImpl implements GeofenceListener {
          public void onExit(String id) {
              System.out.println("Exited "+id);
          }
      
          public void onEntered(String id) {
              System.out.println("Entered "+id);
          }
      }
      
      `public class GeofenceListenerImpl implements GeofenceListener {
      public void onExit(String id) {
      System.out.println("Exited "+id);`
      
      public void onEntered(String id) {
      System.out.println("Entered "+id);
      }
      }
      Form hi = new Form("Hi World");
      hi.addComponent(new Label("Hi World"));
      
      Location loc = new Location();
      loc.setLatitude(51.5033630);
      loc.setLongitude(-0.1276250);
      
      Geofence gf = new Geofence("test", loc, 100, 100000);
      
      LocationManager.getLocationManager().addGeoFencing(GeofenceListenerImpl.class, gf);
      
      hi.show();}
      
      Returns

      LocationManager Object

    • capturePhoto

      public void capturePhoto(ActionListener response)

      This method tries to invoke the device native camera to capture images. The method returns immediately and the response will be sent asynchronously to the given ActionListener Object The image is saved as a jpeg to a file on the device.

      use this in the actionPerformed to retrieve the file path String path = (String) evt.getSource();

      if evt returns null the image capture was cancelled by the user.

      Parameters
      • response: a callback Object to retrieve the file path
      Throws
      • RuntimeException: if this feature failed or unsupported on the platform
    • captureAudio

      public void captureAudio(ActionListener<ActionEvent> response)

      This method tries to invoke the device native hardware to capture audio. The method returns immediately and the response will be sent asynchronously to the given ActionListener Object The audio is saved to a file on the device.

      use this in the actionPerformed to retrieve the file path String path = (String) evt.getSource();

      Parameters
      • response: a callback Object to retrieve the file path
      Throws
      • RuntimeException: if this feature failed or unsupported on the platform
    • captureAudio

      public void captureAudio(MediaRecorderBuilder recordingOptions, ActionListener response)

      This method tries to invoke the device native hardware to capture audio. The method returns immediately and the response will be sent asynchronously to the given ActionListener Object The audio is saved to a file on the device.

      use this in the actionPerformed to retrieve the file path String path = (String) evt.getSource();

      Parameters
      • recordingOptions: Audio recording options.

      • response: a callback Object to retrieve the file path

      Throws
      • RuntimeException: if this feature failed or unsupported on the platform
      Since

      7.0

    • captureVideo

      public void captureVideo(ActionListener response)

      This method tries to invoke the device native camera to capture video. The method returns immediately and the response will be sent asynchronously to the given ActionListener Object The video is saved to a file on the device.

      use this in the actionPerformed to retrieve the file path String path = (String) evt.getSource();

      Parameters
      • response: a callback Object to retrieve the file path
      Throws
      • RuntimeException: if this feature failed or unsupported on the platform
    • captureVideo

      public void captureVideo(VideoCaptureConstraints constraints, ActionListener response)

      Same as #captureVideo(com.codename1.ui.events.ActionListener), except that it attempts to impose constraints on the capture. Constraints include width, height, and max length. Not all platforms support capture constraints. Use the VideoCaptureConstraints#isSupported() to see if a constraint is supported. If constraints are not supported at all, then this method will fall back to calling #captureVideo(com.codename1.ui.events.ActionListener).

      Parameters
      • constraints: Capture constraints to use.

      • response: a callback Object to retrieve the file path

      Since

      7.0

      See also
      • com.codename1.capture.Capture#captureVideo(com.codename1.capture.VideoCaptureConstraints, com.codename1.ui.events.ActionListener)
    • openImageGallery

      public void openImageGallery(ActionListener response)

      Opens the device image gallery The method returns immediately and the response will be sent asynchronously to the given ActionListener Object

      use this in the actionPerformed to retrieve the file path String path = (String) evt.getSource();

      Parameters
      • response: a callback Object to retrieve the file path
      Throws
      • RuntimeException: if this feature failed or unsupported on the platform
      Deprecated

      see openGallery instead

    • openGallery

      public void openGallery(ActionListener response, int type)

      Opens the device gallery to pick an image or a video.

      The method returns immediately and the response is sent asynchronously to the given ActionListener Object as the source value of the event (as a String)

      E.g. within the callback action performed call you can use this code: String path = (String) evt.getSource();.

      A more detailed sample of picking a video file can be seen here:

      final Form hi = new Form("MediaPlayer", new BorderLayout());
      hi.setToolbar(new Toolbar());
      Style s = UIManager.getInstance().getComponentStyle("Title");
      FontImage icon = FontImage.createMaterial(FontImage.MATERIAL_VIDEO_LIBRARY, s);
      hi.getToolbar().addCommandToRightBar(new Command("", icon) {
      @Override
          public void actionPerformed(ActionEvent evt) {
              Display.getInstance().openGallery((e) -> {
                  if(e != null && e.getSource() != null) {
                      String file = (String)e.getSource();
                      try {
                          Media video = MediaManager.createMedia(file, true);
                          hi.removeAll();
                          hi.add(BorderLayout.CENTER, new MediaPlayer(video));
                          hi.revalidate();
                      } catch(IOException err) {
                          Log.e(err);
                      }
                  }
              }, Display.GALLERY_VIDEO);
          }
      });
      hi.show();
      

      Version 5.0 and higher support multi-selection (i.e. the types #GALLERY_IMAGE_MULTI, #GALLERY_VIDEO_MULTI, and #GALLERY_ALL_MULTI). When using one of the multiselection types, the source of the ActionEvent will be a String[], containing the paths of the selected elements, or null if the user cancelled the dialog.

      Platform support

      Currently (version 5.0 and higher), all platforms support the types #GALLERY_IMAGE, #GALLERY_VIDEO, #GALLERY_ALL, #GALLERY_IMAGE_MULTI, #GALLERY_VIDEO_MULTI, #GALLERY_ALL_MULTI. On iOS, multi-selection requires a deployment target of iOS 8.0 or higher, so it is disabled by default. You can enable multi-selection on iOS, by adding the ios.enableGalleryMultiselect=true build hint. This build hint will be added automatically for you if you run your app in the simulator, and it calls openGallery() with one of the multiselect gallery types.

      Parameters
      • response: @param response a callback Object to retrieve the file path For multiselection types (#GALLERY_IMAGE_MULTI, #GALLERY_VIDEO_MULTI, and #GALLERY_ALL_MULTI), the source of the ActionEvent sent this callback will be a String[]. For other types, it will be a String. If the dialog was cancelled, it will be null.

      • type: one of the following #GALLERY_IMAGE, #GALLERY_VIDEO, #GALLERY_ALL, #GALLERY_IMAGE_MULTI, #GALLERY_VIDEO_MULTI, #GALLERY_ALL_MULTI.

      Throws
      • RuntimeException: if this feature failed or unsupported on the platform. Use #isGalleryTypeSupported(int) to check if the type is supported before calling this method.
      See also
      • #isGalleryTypeSupported(int) To see if a type is supported on the current platform.
    • isGalleryTypeSupported

      public boolean isGalleryTypeSupported(int type)

      Checks to see if the given gallery type is supported on the current platform.

      Parameters
      • type: one of the following #GALLERY_IMAGE, #GALLERY_VIDEO, #GALLERY_ALL, #GALLERY_IMAGE_MULTI, #GALLERY_VIDEO_MULTI, #GALLERY_ALL_MULTI.
      Returns

      True if the type is supported

      See also
      • #openGallery(com.codename1.ui.events.ActionListener, int)
    • getPlatformName

      public String getPlatformName()

      Returns a 2-3 letter code representing the platform name for the platform override

      Returns

      the name of the platform e.g. ios, rim, win, and, me, HTML5

    • getPlatformOverrides

      public String[] getPlatformOverrides()

      Returns the suffixes for ovr files that should be used when loading a layered resource file on this platform

      Returns

      a string array with the proper order of resource override layers

    • sendMessage

      public void sendMessage(String[] recipients, String subject, Message msg)

      Send an email using the platform mail client.

      The code below demonstrates sending a simple message with attachments using the devices native email client:

      Message m = new Message("Body of message");
      m.getAttachments().put(textAttachmentUri, "text/plain");
      m.getAttachments().put(imageAttachmentUri, "image/png");
      Display.getInstance().sendMessage(new String[] {"[email protected]"}, "Subject of message", m);
      
      Parameters
      • recipients: array of e-mail addresses

      • subject: e-mail subject

      • msg: the Message to send

    • dial

      public void dial(String phoneNumber)

      Opens the device Dialer application with the given phone number

      Parameters
      • phoneNumber
    • isCallDetectionSupported

      public boolean isCallDetectionSupported()

      Indicates whether this platform can attempt to detect active phone-call interruptions.

      A true result means the platform provides a best-effort heuristic only. It does not guarantee exact telephony state.

      Returns

      true if call detection is implemented on this platform.

    • isInCall

      public boolean isInCall()

      Best-effort check for whether the platform currently believes an active phone call is interrupting the app.

      This API is intentionally heuristic. It can produce false positives (e.g. non-call interruptions like Control Center or app-switching) and false negatives. Use it for UX hints and telemetry, not as a security or business-critical gate.

      Returns

      true if the platform currently believes a call interruption is active.

    • getSMSSupport

      public int getSMSSupport()

      Indicates the level of SMS support in the platform as one of: #SMS_NOT_SUPPORTED (for desktop, tablet etc.), #SMS_SEAMLESS (no UI interaction), #SMS_INTERACTIVE (with compose UI), #SMS_BOTH.

      The sample below demonstrates the use case for this property:

      switch(Display.getInstance().getSMSSupport()) {
          case Display.SMS_NOT_SUPPORTED:
              return;
          case Display.SMS_SEAMLESS:
              showUIDialogToEditMessageData();
              Display.getInstance().sendSMS(phone, data);
              return;
          default:
              Display.getInstance().sendSMS(phone, data);
              return;
      }
      
      Returns

      one of the SMS_* values

    • sendSMS

      public void sendSMS(String phoneNumber, String message) throws IOException

      Sends a SMS message to the given phone number

      Parameters
      • phoneNumber: to send the sms

      • message: the content of the sms

      Throws:
      IOException
    • sendSMS

      public void sendSMS(String phoneNumber, String message, boolean interactive) throws IOException

      Sends a SMS message to the given phone number, the code below demonstrates the logic of detecting platform behavior for sending SMS.

      switch(Display.getInstance().getSMSSupport()) {
          case Display.SMS_NOT_SUPPORTED:
              return;
          case Display.SMS_SEAMLESS:
              showUIDialogToEditMessageData();
              Display.getInstance().sendSMS(phone, data);
              return;
          default:
              Display.getInstance().sendSMS(phone, data);
              return;
      }
      
      Parameters
      • phoneNumber: to send the sms

      • message: the content of the sms

      • interactive: indicates the SMS should show a UI or should not show a UI if applicable see getSMSSupport

      See also
      • #getSMSSupport()
      Throws:
      IOException
    • notifyStatusBar

      public void notifyStatusBar(String tickerText, String contentTitle, String contentBody, boolean vibrate, boolean flashLights)

      Place a notification on the device status bar (if device has this functionality). Clicking the notification might re-start the Application.

      Parameters
      • tickerText: the ticker text of the Notification

      • contentTitle: the title of the Notification

      • contentBody: the content of the Notification

      • vibrate: enable/disable notification alert

      • flashLights: enable/disable notification flashing

      Deprecated
    • isNotificationSupported

      public boolean isNotificationSupported()

      Indicates whether the notify status bar method will present a notification to the user

      Returns

      true if the notify status bar method will present a notification to the user

    • notifyStatusBar

      public Object notifyStatusBar(String tickerText, String contentTitle, String contentBody, boolean vibrate, boolean flashLights, Hashtable args)

      Place a notification on the device status bar (if device has this functionality). Clicking the notification might re-start the Application.

      Parameters
      • tickerText: the ticker text of the Notification

      • contentTitle: the title of the Notification

      • contentBody: the content of the Notification

      • vibrate: enable/disable notification alert

      • flashLights: enable/disable notification flashing

      • args: additional arguments to the notification

      Returns

      a platform native object that allows modifying notification state

      Deprecated

      use scheduleLocalNotification instead

    • dismissNotification

      public void dismissNotification(Object o)

      Removes the notification previously posted with the notify status bar method

      Parameters
      • o: the object returned from the notifyStatusBar method
    • isBadgingSupported

      public boolean isBadgingSupported()

      Returns true if the underlying OS supports numeric badges on icons. Notice this is only available on iOS and only when push notification is enabled

      Returns

      true if the underlying OS supports numeric badges

    • setBadgeNumber

      public void setBadgeNumber(int number)

      Sets the number that appears on the application icon in iOS

      Parameters
      • number: number to show on the icon
    • isOpenNativeNavigationAppSupported

      public boolean isOpenNativeNavigationAppSupported()

      Returns true if the underlying OS supports opening the native navigation application

      Returns

      true if the underlying OS supports launch of native navigation app

    • openNativeNavigationApp

      public void openNativeNavigationApp(double latitude, double longitude)

      Opens the native navigation app in the given coordinate.

      Parameters
      • latitude

      • longitude

    • openNativeNavigationApp

      public void openNativeNavigationApp(String location)

      Opens the native navigation app with the given search location

      Parameters
      • location: the location to search for in the native navigation map
    • getAllContacts

      public String[] getAllContacts(boolean withNumbers)

      Gets all contacts from the address book of the device

      Parameters
      • withNumbers: if true returns only contacts that has a number
      Returns

      array of contacts unique ids

    • getAllContacts

      public Contact[] getAllContacts(boolean withNumbers, boolean includesFullName, boolean includesPicture, boolean includesNumbers, boolean includesEmail, boolean includeAddress)

      Notice: this method might be very slow and should be invoked on a separate thread! It might have platform specific optimizations over getAllContacts followed by looping over individual contacts but that isn't guaranteed. See isGetAllContactsFast for information.

      The sample below demonstrates listing all the contacts within the device with their photos

      Form hi = new Form("Contacts", new BoxLayout(BoxLayout.Y_AXIS));
      hi.add(new InfiniteProgress());
      int size = Display.getInstance().convertToPixels(5, true);
      FontImage fi = FontImage.createFixed("" + FontImage.MATERIAL_PERSON, FontImage.getMaterialDesignFont(), 0xff, size, size);
      
      Display.getInstance().scheduleBackgroundTask(() -> {
          Contact[] contacts = Display.getInstance().getAllContacts(true, true, false, true, false, false);
          Display.getInstance().callSerially(() -> {
              hi.removeAll();
              for(Contact c : contacts) {
                  MultiButton mb = new MultiButton(c.getDisplayName());
                  mb.setIcon(fi);
                  mb.setTextLine2(c.getPrimaryPhoneNumber());
                  hi.add(mb);
                  mb.putClientProperty("id", c.getId());
                  Display.getInstance().scheduleBackgroundTask(() -> {
                      Contact cc = ContactsManager.getContactById(c.getId(), false, true, false, false, false);
                      Display.getInstance().callSerially(() -> {
                          Image photo = cc.getPhoto();
                          if(photo != null) {
                              mb.setIcon(photo.fill(size, size));
                              mb.revalidate();
                          }
                      });
                  });
              }
              hi.getContentPane().animateLayout(150);
          });
      });
      
      Parameters
      • withNumbers: if true returns only contacts that has a number

      • includesFullName: if true try to fetch the full name of the Contact(not just display name)

      • includesPicture: if true try to fetch the Contact Picture if exists

      • includesNumbers: if true try to fetch all Contact numbers

      • includesEmail: if true try to fetch all Contact Emails

      • includeAddress: if true try to fetch all Contact Addresses

      Returns

      array of the contacts

    • isGetAllContactsFast

      public boolean isGetAllContactsFast()

      Indicates if the getAllContacts is platform optimized, notice that the method might still take seconds or more to run so you should still use a separate thread!

      Returns

      true if getAllContacts will perform faster that just getting each contact

    • getLinkedContactIds

      public String[] getLinkedContactIds(Contact c)

      Gets IDs of all contacts that are linked to a given contact. Some platforms, like iOS, allow for multiple distinct contact records to be "linked" to indicate that they refer to the same person.

      Parameters
      • c: The contact whose "linked" contacts are to be retrieved.
      Returns

      IDs of linked contacts.

    • getContactById

      public Contact getContactById(String id)

      Get a Contact according to it's contact id.

      Parameters
      • id: unique id of the Contact
      Returns

      a Contact Object

    • getContactById

      public Contact getContactById(String id, boolean includesFullName, boolean includesPicture, boolean includesNumbers, boolean includesEmail, boolean includeAddress)

      This method returns a Contact by the contact id and fills it's data according to the given flags.

      The sample below demonstrates listing all the contacts within the device with their photos

      Form hi = new Form("Contacts", new BoxLayout(BoxLayout.Y_AXIS));
      hi.add(new InfiniteProgress());
      int size = Display.getInstance().convertToPixels(5, true);
      FontImage fi = FontImage.createFixed("" + FontImage.MATERIAL_PERSON, FontImage.getMaterialDesignFont(), 0xff, size, size);
      
      Display.getInstance().scheduleBackgroundTask(() -> {
          Contact[] contacts = Display.getInstance().getAllContacts(true, true, false, true, false, false);
          Display.getInstance().callSerially(() -> {
              hi.removeAll();
              for(Contact c : contacts) {
                  MultiButton mb = new MultiButton(c.getDisplayName());
                  mb.setIcon(fi);
                  mb.setTextLine2(c.getPrimaryPhoneNumber());
                  hi.add(mb);
                  mb.putClientProperty("id", c.getId());
                  Display.getInstance().scheduleBackgroundTask(() -> {
                      Contact cc = ContactsManager.getContactById(c.getId(), false, true, false, false, false);
                      Display.getInstance().callSerially(() -> {
                          Image photo = cc.getPhoto();
                          if(photo != null) {
                              mb.setIcon(photo.fill(size, size));
                              mb.revalidate();
                          }
                      });
                  });
              }
              hi.getContentPane().animateLayout(150);
          });
      });
      
      Parameters
      • id: of the Contact

      • includesFullName: if true try to fetch the full name of the Contact(not just display name)

      • includesPicture: if true try to fetch the Contact Picture if exists

      • includesNumbers: if true try to fetch all Contact numbers

      • includesEmail: if true try to fetch all Contact Emails

      • includeAddress: if true try to fetch all Contact Addresses

      Returns

      a Contact Object

    • isContactsPermissionGranted

      public boolean isContactsPermissionGranted()

      Some platforms allow the user to block contacts access on a per application basis this method returns true if the user denied permission to access contacts. This can allow you to customize the error message presented to the user.

      Returns

      true if contacts access is allowed or globally available, false otherwise

    • createContact

      public String createContact(String firstName, String familyName, String officePhone, String homePhone, String cellPhone, String email)

      Create a contact to the device contacts book

      Parameters
      • firstName: the Contact firstName

      • familyName: the Contact familyName

      • officePhone: the Contact work phone or null

      • homePhone: the Contact home phone or null

      • cellPhone: the Contact mobile phone or null

      • email: the Contact email or null

      Returns

      the contact id if creation succeeded or null if failed

    • deleteContact

      public boolean deleteContact(String id)

      removed a contact from the device contacts book

      Parameters
      • id: the contact id to remove
      Returns

      true if deletion succeeded false otherwise

    • isNativeVideoPlayerControlsIncluded

      public boolean isNativeVideoPlayerControlsIncluded()

      Indicates if the native video player includes its own play/pause etc. controls so the movie player component doesn't need to include them

      Returns

      true if the movie player component doesn't need to include such controls

    • isNativeShareSupported

      public boolean isNativeShareSupported()

      Indicates if the underlying platform supports sharing capabilities

      Returns

      true if the underlying platform handles share.

    • share

      public void share(String toShare)

      Share the required information using the platform sharing services. a Sharing service can be: mail, sms, facebook, twitter,... This method is implemented if isNativeShareSupported() returned true for a specific platform.

      Since 6.0, there is native sharing support in the Javascript port using the navigator.share API. Currently (2019) this is only supported on Chrome for Android, and will only work if the app is accessed over https:.

      Parameters
      • toShare: String to share.
      Deprecated

      use the method share that accepts an image and mime type

    • share

      public void share(String text, String image, String mimeType)

      Share the required information using the platform sharing services. a Sharing service can be: mail, sms, facebook, twitter,... This method is implemented if isNativeShareSupported() returned true for a specific platform.

      Since 6.0, there is native sharing support in the Javascript port using the navigator.share API. Currently (2019) this is only supported on Chrome for Android, and will only work if the app is accessed over https:.

      Parameters
      • text: String to share.

      • image: file path to the image or null

      • mimeType: type of the image or null if no image to share

    • share

      public void share(String textOrPath, String image, String mimeType, Rectangle sourceRect)

      Share the required information using the platform sharing services. a Sharing service can be: mail, sms, facebook, twitter,... This method is implemented if isNativeShareSupported() returned true for a specific platform.

      Since 6.0, there is native sharing support in the Javascript port using the navigator.share API. Currently (2019) this is only supported on Chrome for Android, and will only work if the app is accessed over https:.

      Since 8.0, you can share files using using the file path in the text parameter. The file must exist in file system storage, and you must define the appropriate mimeType in the mimeType parameter. E.g. share("file:/.../myfile.pdf", null, "application.pdf")

      Parameters
      • textOrPath: String to share, or path to file to share.

      • image: file path to the image or null

      • mimeType: type of the image or file. null if just sharing text

      • sourceRect: @param sourceRect The source rectangle of the button that originated the share request. This is used on some platforms to provide a hint as to where the share dialog overlay should pop up. Particularly, on the iPad with iOS 8 and higher.

    • getLocalizationManager

      public L10NManager getLocalizationManager()

      The localization manager allows adapting values for display in different locales thru parsing and formatting capabilities (similar to JavaSE's DateFormat/NumberFormat). It also includes language/locale/currency related API's similar to Locale/currency API's from JavaSE.

      The sample code below just lists the various capabilities of the API:

      Form hi = new Form("L10N", new TableLayout(16, 2));
      L10NManager l10n = L10NManager.getInstance();
      hi.add("format(double)").add(l10n.format(11.11)).
          add("format(int)").add(l10n.format(33)).
          add("formatCurrency").add(l10n.formatCurrency(53.267)).
          add("formatDateLongStyle").add(l10n.formatDateLongStyle(new Date())).
          add("formatDateShortStyle").add(l10n.formatDateShortStyle(new Date())).
          add("formatDateTime").add(l10n.formatDateTime(new Date())).
          add("formatDateTimeMedium").add(l10n.formatDateTimeMedium(new Date())).
          add("formatDateTimeShort").add(l10n.formatDateTimeShort(new Date())).
          add("getCurrencySymbol").add(l10n.getCurrencySymbol()).
          add("getLanguage").add(l10n.getLanguage()).
          add("getLocale").add(l10n.getLocale()).
          add("isRTLLocale").add("" + l10n.isRTLLocale()).
          add("parseCurrency").add(l10n.formatCurrency(l10n.parseCurrency("33.77$"))).
          add("parseDouble").add(l10n.format(l10n.parseDouble("34.35"))).
          add("parseInt").add(l10n.format(l10n.parseInt("56"))).
          add("parseLong").add("" + l10n.parseLong("4444444"));
      hi.show();
      
      Returns

      an instance of the localization manager

    • registerPush

      public void registerPush(String id, boolean noFallback)

      User register to receive push notification

      Parameters
      • id: the id for the user

      • noFallback: @param noFallback some devices don't support an efficient push API and will resort to polling to provide push like functionality. If this flag is set to true no polling will occur and the error PushCallback.REGISTRATION_ERROR_SERVICE_NOT_AVAILABLE will be sent to the push interface.

      Deprecated

      use #registerPush() the Android push id should be set with the build hint gcm.sender_id which will work for Chrome JavaScript builds too

    • registerPush

      public void registerPush(Hashtable metaData, boolean noFallback)

      Register to receive push notification, invoke this method once (ever) to receive push notifications.

      Parameters
      • metaData: @param metaData meta data for push, this is relevant on some platforms such as google where a push id is necessary,

      • noFallback: @param noFallback some devices don't support an efficient push API and will resort to polling to provide push like functionality. If this flag is set to true no polling will occur and the error PushCallback.REGISTRATION_ERROR_SERVICE_NOT_AVAILABLE will be sent to the push interface.

      Deprecated

      use #registerPush() the Android push id should be set with the build hint gcm.sender_id which will work for Chrome JavaScript builds too

    • registerPush

      public void registerPush()
      Register to receive push notification, invoke this method once (ever) to receive push notifications.
    • deregisterPush

      public void deregisterPush()
      Stop receiving push notifications to this client application
    • createMediaRecorder

      public Media createMediaRecorder(String path) throws IOException

      Creates a Media recorder Object which will record from the device mic to a file in the given path. The output format will be amr-nb if supported by the platform.

      Parameters
      • path: @param path a file path to where to store the recording, if the file does not exists it will be created.
      Throws:
      IOException
    • createMediaRecorder

      public Media createMediaRecorder(MediaRecorderBuilder builder) throws IOException
      Parameters
      • builder: A MediaRecorderBuilder
      Returns

      a MediaRecorder

      Throws
      • IOException
      Since

      7.0

      Deprecated

      use MediaRecorderBuilder#build()

      See also
      • MediaRecorderBuilder#build()
      Throws:
      IOException
    • createMediaRecorder

      public Media createMediaRecorder(String path, String mimeType) throws IOException

      Creates a Media recorder Object which will record from the device mic to a file in the given path.

      Parameters
      • path: @param path a file path to where to store the recording, if the file does not exists it will be created.

      • mimeType: @param mimeType the output mime type that is supported see getAvailableRecordingMimeTypes()

      Throws:
      IOException
    • getImageIO

      public ImageIO getImageIO()

      Returns the image IO instance that allows scaling image files.

      Returns

      the image IO instance or null if image IO isn't supported for the given platform

    • getMediaRecorderingMimeType

      public String getMediaRecorderingMimeType()

      Gets the recording mime type for the returned Media from the createMediaRecorder method

      Returns

      the recording mime type

      Deprecated

      see getAvailableRecordingMimeTypes() instead

    • openOrCreate

      public Database openOrCreate(String databaseName) throws IOException

      Opens a database or create one if not exists. On platforms where #isDatabaseCustomPathSupported() this method can optionally accept a file path.

      Parameters
      • databaseName: the name of the database
      Returns

      Database Object or null if not supported on the platform

      Throws
      • IOException: if database cannot be created
      Throws:
      IOException
    • isDatabaseCustomPathSupported

      public boolean isDatabaseCustomPathSupported()
    • delete

      public void delete(String databaseName) throws IOException

      Deletes database

      Parameters
      • databaseName: the name of the database
      Throws
      • IOException: if database cannot be deleted
      Throws:
      IOException
    • exists

      public boolean exists(String databaseName)

      Indicates weather a database exists

      Parameters
      • databaseName: the name of the database
      Returns

      true if database exists

    • getDatabasePath

      public String getDatabasePath(String databaseName)

      Returns the file path of the Database if support for database exists on the platform.

      Parameters
      • databaseName: @param databaseName the name of the database with out / or path elements e.g. mydatabase.db
      Returns

      the file path of the database or null if database isn't supported

    • setPollingFrequency

      public void setPollingFrequency(int freq)

      Sets the frequency for polling the server in case of polling based push notification

      Parameters
      • freq: the frequency in milliseconds
      Deprecated

      we no longer support push polling

    • createThread

      public Thread createThread(Runnable r, String name)

      Start a Codename One thread that supports crash protection and similar Codename One features.

      Parameters
      • r: runnable to run, NOTICE the thread MUST be explicitly started!

      • name: the name for the thread

      Returns

      a thread instance which must be explicitly started!

    • startThread

      public Thread startThread(Runnable r, String name)

      Start a Codename One thread that supports crash protection and similar Codename One features.

      Parameters
      • r: runnable to run, NOTICE the thread MUST be explicitly started!

      • name: the name for the thread

      Returns

      a thread instance which must be explicitly started!

      Deprecated

      confusing name use java.lang.String) instead

    • isNativeTitle

      public boolean isNativeTitle()

      Indicates if the title of the Form is native title(in android ICS devices if the command behavior is native the ActionBar is used to display the title and the menu)

      Returns

      true if platform would like to show the Form title

    • refreshNativeTitle

      public void refreshNativeTitle()
      if the title is native(e.g the android action bar), notify the native title that is needs to be refreshed
    • getCrashReporter

      public CrashReport getCrashReporter()

      The crash reporter gets invoked when an uncaught exception is intercepted

      Returns

      the crashReporter

    • setCrashReporter

      public void setCrashReporter(CrashReport crashReporter)

      The crash reporter gets invoked when an uncaught exception is intercepted

      Parameters
      • crashReporter: the crashReporter to set
    • getUdid

      public String getUdid()

      Returns the UDID for devices that support it

      Returns

      the UDID or null

    • getMsisdn

      public String getMsisdn()

      Returns the MSISDN for devices that expose it

      Returns

      the msisdn or null

    • getInAppPurchase

      public Purchase getInAppPurchase()

      Returns the native OS purchase implementation if applicable, if unavailable this method will try to fallback to a custom purchase implementation and failing that will return null

      Returns

      instance of the purchase class or null

    • getInAppPurchase

      public Purchase getInAppPurchase(boolean d)
      Deprecated
    • getCodeScanner

      public CodeScanner getCodeScanner()

      Returns the native implementation of the code scanner or null

      Returns

      code scanner instance

      Deprecated

      Use the cn1-codescanner cn1lib.

    • getAvailableRecordingMimeTypes

      public String[] getAvailableRecordingMimeTypes()
      Gets the available recording MimeTypes
    • isScreenSaverDisableSupported

      public boolean isScreenSaverDisableSupported()
      Checks if the device supports disabling the screen display from dimming, allowing the developer to keep the screen display on.
    • isScrollWheeling

      public boolean isScrollWheeling()

      Checks is the scroll-wheel mouse is currently scrolling. The scroll-wheel simulates pointer presses and drags so there are cases when you are processing pointer events when you may want to know if it was driggered by a scroll wheel.

      Returns

      True if the scroll-wheel is responsible for current pointer events.

      Since

      8.0

    • setScreenSaverEnabled

      public void setScreenSaverEnabled(boolean e)

      If isScreenSaverDisableSupported() returns true calling this method will lock the screen display on

      Parameters
      • e: @param e when set to true the screen saver will work as usual and when set to false the screen will not turn off automatically
    • hasCamera

      public boolean hasCamera()
      Returns true if the device has camera false otherwise.
    • isNativePickerTypeSupported

      public boolean isNativePickerTypeSupported(int pickerType)

      Indicates whether the native picker dialog is supported for the given type which can include one of PICKER_TYPE_DATE_AND_TIME, PICKER_TYPE_TIME, PICKER_TYPE_DATE

      Parameters
      • pickerType: the picker type constant
      Returns

      true if the native platform supports this picker type

    • showNativePicker

      public Object showNativePicker(int type, Component source, Object currentValue, Object data)

      Shows a native modal dialog allowing us to perform the picking for the given type which can include one of PICKER_TYPE_DATE_AND_TIME, PICKER_TYPE_TIME, PICKER_TYPE_DATE

      Parameters
      • type: the picker type constant

      • source: @param source the source component (optional) the native dialog will be placed in relation to this component if applicable

      • currentValue: the currently selected value

      • data: additional meta data specific to the picker type when applicable

      Returns

      the value from the picker or null if the operation was canceled.

    • isMultiKeyMode

      public boolean isMultiKeyMode()

      When set to true Codename One allows multiple hardware keys to be pressed at once, this isn't on by default since it can trigger some complexities with UI navigation to/from native code

      Returns

      the multiKeyMode

    • setMultiKeyMode

      public void setMultiKeyMode(boolean multiKeyMode)

      When set to true Codename One allows multiple hardware keys to be pressed at once, this isn't on by default since it can trigger some complexities with UI navigation to/from native code

      Parameters
      • multiKeyMode: the multiKeyMode to set
    • getLongPointerPressInterval

      public int getLongPointerPressInterval()

      Long pointer press is invoked after the given interval, this allows making long press events shorter/longer

      Returns

      time in milliseconds

    • setLongPointerPressInterval

      public void setLongPointerPressInterval(int v)

      Long pointer press is invoked after the given interval, this allows making long press events shorter/longer

      Parameters
      • v: time in milliseconds
    • scheduleLocalNotification

      public void scheduleLocalNotification(LocalNotification n, long firstTime, int repeat)

      Schedules a local notification that will occur after the given time elapsed.

      The sample below combines this with the geofence API to show a local notification when entering a radius with the app in the background:

      // File: GeofenceListenerImpl.java
      public class GeofenceListenerImpl implements GeofenceListener {
      @Override
          public void onExit(String id) {
          }
      @Override
          public void onEntered(String id) {
              if(!Display.getInstance().isMinimized()) {
                  Display.getInstance().callSerially(() -> {
                      Dialog.show("Welcome", "Thanks for arriving", "OK", null);
                  });
              } else {
                  LocalNotification ln = new LocalNotification();
                  ln.setId("LnMessage");
                  ln.setAlertTitle("Welcome");
                  ln.setAlertBody("Thanks for arriving!");
                  Display.getInstance().scheduleLocalNotification(ln, System.currentTimeMillis() + 10, LocalNotification.REPEAT_NONE);
              }
          }
      }
      
      // File: GeofenceSample.java
      Geofence gf = new Geofence("test", loc, 100, 100000);
      LocationManager.getLocationManager().addGeoFencing(GeofenceListenerImpl.class, gf);
      
      Parameters
      • n: The notification to schedule.

      • firstTime: time in milliseconds when to schedule the notification

      • repeat: @param repeat repeat one of the following: REPEAT_NONE, REPEAT_FIFTEEN_MINUTES, REPEAT_HALF_HOUR, REPEAT_HOUR, REPEAT_DAY, REPEAT_WEEK

    • cancelLocalNotification

      public void cancelLocalNotification(String notificationId)

      Cancels a local notification by ID.

      Parameters
      • notificationId
      See also
      • com.codename1.notifications.LocalNotification
    • setPreferredBackgroundFetchInterval

      public void setPreferredBackgroundFetchInterval(int seconds)

      Sets the preferred time interval between background fetches. This is only a preferred interval and is not guaranteed. Some platforms, like iOS, maintain sovereign control over when and if background fetches will be allowed. This number is used only as a guideline.

      This method must be called in order to activate background fetch.>

      Note: If the platform doesn't support background fetch (i.e. #isBackgroundFetchSupported() returns false, then this method does nothing.

      Parameters
      • seconds: The time interval in seconds.
      See also
      • #isBackgroundFetchSupported()

      • #getPreferredBackgroundFetchInterval(int) ()

      • com.codename1.background.BackgroundFetch

    • getPreferredBackgroundFetchInterval

      public int getPreferredBackgroundFetchInterval(int seconds)

      Gets the preferred time (in seconds) between background fetches.

      Returns

      The time interval in seconds.

      See also
      • #isBackgroundFetchSupported()

      • #setPreferredBackgroundFetchInterval(int)

      • com.codename1.background.BackgroundFetch

    • isBackgroundFetchSupported

      public boolean isBackgroundFetchSupported()

      Checks to see if the current platform supports background fetch.

      Returns

      True if the current platform supports background fetch.

      See also
      • #setPreferredBackgroundFetchInterval(int)

      • #getPreferredBackgroundFetchInterval(int) ()

      • com.codename1.background.BackgroundFetch

    • isSimulator

      public boolean isSimulator()

      Allows detecting development mode so debugging code and special cases can be used to simplify flow

      Returns

      true if we are running in the simulator, false otherwise

    • createBackgroundMedia

      public Media createBackgroundMedia(String uri) throws IOException

      Creates an audio media that can be played in the background.

      Parameters
      • uri: @param uri the uri of the media can start with jar://, file://, http:// (can also use rtsp:// if supported on the platform)
      Returns
      Returns:

      Media a Media Object that can be used to control the playback of the media or null if background playing is not supported on the platform

      Throws
      • IOException: if creation of media from the given URI has failed
      Throws:
      IOException
    • createBackgroundMediaAsync

      public AsyncResource<Media> createBackgroundMediaAsync(String uri)

      Creates an audio media that can be played in the background. This call is asynchronous, so that it will return perhaps before the media object is ready.

      Parameters
      • uri: @param uri the uri of the media can start with jar://, file://, http:// (can also use rtsp:// if supported on the platform)
      Returns
      Returns:
      Media a Media Object that can be used to control the playback of the media or null if background playing is not supported on the platform
    • gaussianBlurImage

      public Image gaussianBlurImage(Image image, float radius)

      Create a blur image from the given image. The algorithm is gaussian blur - https://en.wikipedia.org/wiki/Gaussian_blur

      Parameters
      • image: the image to blur

      • radius: the radius to be used in the algorithm

    • isGaussianBlurSupported

      public boolean isGaussianBlurSupported()

      Returns true if gaussian blur is supported on this platform

      Returns

      true if gaussian blur is supported.

    • refreshContacts

      public void refreshContacts()
      Refreshes the native list of contacts on devices that require this see com.codename1.contacts.ContactsManager#refresh()
    • isJailbrokenDevice

      public boolean isJailbrokenDevice()

      Returns true if this device is jailbroken or rooted, false if not or unknown. Notice that this method isn't accurate and can't detect all jailbreak/rooting cases

      Returns

      true if this device is jailbroken or rooted, false if not or unknown.

    • getProjectBuildHints

      public Map<String,String> getProjectBuildHints()

      Returns the build hints for the simulator, this will only work in the debug environment and it's designed to allow extensions/API's to verify user settings/build hints exist

      Returns

      map of the build hints that isn't modified without the codename1.arg. prefix

    • setProjectBuildHint

      public void setProjectBuildHint(String key, String value)

      Sets a build hint into the settings while overwriting any previous value. This will only work in the debug environment and it's designed to allow extensions/API's to verify user settings/build hints exist. Important: this will throw an exception outside of the simulator!

      Parameters
      • key: the build hint without the codename1.arg. prefix

      • value: the value for the hint

    • canInstallOnHomescreen

      public boolean canInstallOnHomescreen()

      Checks to see if you can prompt the user to install the app on their homescreen. This is only relevant for the Javascript port with PWAs. This is not a "static" property, as it only returns true if the app is in a state that allows you to prompt the user. E.g. if you have previously prompted the user and they have declined, then this will return false.

      Best practice is to use #onCanInstallOnHomescreen(java.lang.Runnable) to be notified when you are allowed to prompt the user for installation. Then call #promptInstallOnHomescreen() inside that method - or sometime after.

      Example

      `onCanInstallOnHomescreen(()->{
           if (canInstallOnHomescreen()) {
                if (promptInstallOnHomescreen()) {
                    // User accepted installation` else {
                    // user rejected installation
                }
           }
      });
      }
      

      https://developers.google.com/web/fundamentals/app-install-banners/

      Returns

      True if you are able to prompt the user to install the app on their homescreen.

      See also
      • #promptInstallOnHomescreen()

      • #onCanInstallOnHomescreen(java.lang.Runnable)

    • promptInstallOnHomescreen

      public boolean promptInstallOnHomescreen()

      Prompts the user to install this app on their homescreen. This is only relevant in the javascript port.

      Returns
      Returns:

      The result of the user prompt. true if the user accepts the installation, false if they reject it.

      See also
      • #canInstallOnHomescreen()

      • #onCanInstallOnHomescreen(java.lang.Runnable)

    • onCanInstallOnHomescreen

      public void onCanInstallOnHomescreen(Runnable r)

      A callback fired when you are allowed to prompt the user to install the app on their homescreen. Only relevant in the javascript port.

      Parameters
      • r: @param r Runnable that will be run when/if you are permitted to prompt the user to install the app on their homescreen.
    • captureScreen

      public Image captureScreen()

      Captures a screenshot of the screen.

      Returns

      An image of the screen, or null if it failed.

      Since

      7.0

      Deprecated

      use screenshot(SuccessCallback) instead

    • screenshot

      public void screenshot(SuccessCallback<Image> callback)

      Captures a screenshot in the native layer which should include peer components as well.

      Parameters
      • callback: will be invoked on the EDT with a screenshot
      Since

      7.0.211

    • notifyPushCompletion

      public void notifyPushCompletion()

      Notifies the platform that push notification processing is complete. This is useful on iOS where the app is woken up in the background to handle a push notification and needs to signal completion to avoid being suspended prematurely.

      If the ios.delayPushCompletion build hint (or property) is set to "true", Codename One will NOT automatically signal completion after the com.codename1.push.PushCallback#push(String) method returns. Instead, the application MUST invoke this method manually when it has finished its background work (e.g. playing audio, downloading content).

    • setTimeout

      public Timer setTimeout(int timeout, Runnable r)

      Convenience method to schedule a task to run on the EDT after timeoutms.

      Parameters
      • timeout: The timeout in milliseconds.

      • r: The task to run.

      Returns

      The Timer object that can be used to cancel the task.

      Since

      7.0

      See also
      • #setInterval(int, java.lang.Runnable)
    • setInterval

      public Timer setInterval(int period, Runnable r)

      Convenience method to schedule a task to run on the EDT after periodms repeating every periodms.

      Parameters
      • period: The delay and repeat in milliseconds.

      • r: The runnable to run on the EDT.

      Returns

      The timer object which can be used to cancel the task.

      Since

      7.0

      See also
      • #setTimeout(int, java.lang.Runnable)
    • getSharedJavascriptContext

      public BrowserComponent getSharedJavascriptContext()

      Gets a reference to an application-wide shared Javascript context that can be used for running Javascript commands. When running in the Javascript port, this Javascript context will be the same context in which the application itself is running, so it gives you the ability to interact with the browser and DOM directly using the familiar BrowserComponent API.

      When running on other platforms, this shared context will be an off-screen browser component.

      Sample code allowing user to execute arbitrary Javascript code inside the shared context:

      Form hi = new Form("Hi World", new BorderLayout());
      TextArea input = new TextArea();
      TextArea output = new TextArea();
      output.setEditable(false);
      
      Button execute = new Button("Run");
      execute.addActionListener(evt->{
          BrowserComponent bc = CN.getSharedJavascriptContext().ready().get();
          bc.execute("callback.onSuccess(window.eval(${0}))", new Object[]{input.getText()}, res->{
              output.setText(res.toString());
          });
      });
      SplitPane split = new SplitPane(SplitPane.VERTICAL_SPLIT, input, output, "0", "50%", "99%");
      hi.add(CENTER, split);
      hi.add(NORTH, execute);
      
      hi.show();
      
      Returns

      A shared BrowserComponent

      Since

      7.0