Package arc.backend.android
Class AndroidApplication
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity
arc.backend.android.AndroidApplication
- All Implemented Interfaces:
android.content.ComponentCallbacks
,android.content.ComponentCallbacks2
,android.view.KeyEvent.Callback
,android.view.LayoutInflater.Factory
,android.view.LayoutInflater.Factory2
,android.view.View.OnCreateContextMenuListener
,android.view.Window.Callback
,Application
,Disposable
An implementation of the
Application
interface for Android. Create an Activity
that derives from this class. In
the Activity.onCreate(Bundle)
method call the initialize(ApplicationListener)
method specifying the
configuration for the GLSurfaceView.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
A listener for special Android events such onActivityResult(...).Nested classes/interfaces inherited from interface arc.Application
Application.ApplicationType
-
Field Summary
Modifier and TypeFieldDescriptionprotected Audio
protected android.content.ClipboardManager
protected AndroidFiles
protected AndroidGraphics
android.os.Handler
protected boolean
protected AndroidInput
protected final Seq<ApplicationListener>
static final int
protected Settings
protected boolean
Fields inherited from class android.app.Activity
DEFAULT_KEYS_DIALER, DEFAULT_KEYS_DISABLE, DEFAULT_KEYS_SEARCH_GLOBAL, DEFAULT_KEYS_SEARCH_LOCAL, DEFAULT_KEYS_SHORTCUT, FOCUSED_STATE_SET, RESULT_CANCELED, RESULT_FIRST_USER, RESULT_OK
Fields inherited from class android.content.Context
ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_INCLUDE_CAPABILITIES, BIND_NOT_FOREGROUND, BIND_NOT_PERCEPTIBLE, BIND_WAIVE_PRIORITY, BIOMETRIC_SERVICE, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FINGERPRINT_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_PROJECTION_SERVICE, MEDIA_ROUTER_SERVICE, MEDIA_SESSION_SERVICE, MIDI_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_NO_LOCALIZED_COLLATORS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NETWORK_STATS_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, ROLE_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_CLASSIFICATION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
Fields inherited from interface android.content.ComponentCallbacks2
TRIM_MEMORY_BACKGROUND, TRIM_MEMORY_COMPLETE, TRIM_MEMORY_MODERATE, TRIM_MEMORY_RUNNING_CRITICAL, TRIM_MEMORY_RUNNING_LOW, TRIM_MEMORY_RUNNING_MODERATE, TRIM_MEMORY_UI_HIDDEN
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addResultListener
(Intc runner, AndroidApplication.AndroidEventListener listener) Adds an event listener for Android specific event such as onActivityResult(...).protected android.widget.FrameLayout.LayoutParams
protected void
createWakeLock
(boolean use) void
exit()
Schedule an exit from the application.Returns a list of all the application listeners used.long
getType()
int
protected void
hideStatusBar
(boolean hide) void
initialize
(ApplicationListener listener) This method has to be called in theActivity.onCreate(Bundle)
method.void
initialize
(ApplicationListener listener, AndroidApplicationConfiguration config) This method has to be called in theActivity.onCreate(Bundle)
method.android.view.View
initializeForView
(ApplicationListener listener) This method has to be called in theActivity.onCreate(Bundle)
method.android.view.View
initializeForView
(ApplicationListener listener, AndroidApplicationConfiguration config) This method has to be called in theActivity.onCreate(Bundle)
method.protected void
onActivityResult
(int requestCode, int resultCode, android.content.Intent data) void
onConfigurationChanged
(android.content.res.Configuration config) protected void
protected void
onPause()
protected void
onResume()
void
onWindowFocusChanged
(boolean hasFocus) boolean
openFolder
(String file) Open a folder in the system's file browser.boolean
Launches the default browser to display a URI.void
Posts a runnable on the main loop thread.void
setClipboardText
(String contents) void
useImmersiveMode
(boolean use) Methods inherited from class android.app.Activity
addContentView, attachBaseContext, closeContextMenu, closeOptionsMenu, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchGenericMotionEvent, dispatchKeyEvent, dispatchKeyShortcutEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, dump, enterPictureInPictureMode, enterPictureInPictureMode, findViewById, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getMenuInflater, getParent, getParentActivityIntent, getPreferences, getReferrer, getRequestedOrientation, getSearchEvent, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, invalidateOptionsMenu, isActivityTransitionRunning, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLocalVoiceInteractionSupported, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onBackPressed, onChildTitleChanged, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelMenu, onCreatePanelView, onCreateThumbnail, onCreateView, onCreateView, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onGetDirectActions, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onLowMemory, onMenuItemSelected, onMenuOpened, onMultiWindowModeChanged, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onNewIntent, onOptionsItemSelected, onOptionsMenuClosed, onPanelClosed, onPerformDirectAction, onPictureInPictureModeChanged, onPictureInPictureModeChanged, onPostCreate, onPostCreate, onPostResume, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onPreparePanel, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRequestPermissionsResult, onRestart, onRestoreInstanceState, onRestoreInstanceState, onRetainNonConfigurationInstance, onSaveInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onStart, onStateNotSaved, onStop, onTitleChanged, onTopResumedActivityChanged, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, postponeEnterTransition, recreate, registerActivityLifecycleCallbacks, registerForContextMenu, releaseInstance, removeDialog, reportFullyDrawn, requestDragAndDropPermissions, requestPermissions, requestShowKeyboardShortcuts, requestVisibleBehind, requestWindowFeature, requireViewById, runOnUiThread, setActionBar, setContentTransitionManager, setContentView, setContentView, setContentView, setDefaultKeyMode, setEnterSharedElementCallback, setExitSharedElementCallback, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setInheritShowWhenLocked, setIntent, setMediaController, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTheme, setTitle, setTitle, setTitleColor, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityForResult, startActivityForResult, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderForResult, startIntentSenderForResult, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterActivityLifecycleCallbacks, unregisterForContextMenu
Methods inherited from class android.view.ContextThemeWrapper
applyOverrideConfiguration, getAssets, getResources, getTheme, setTheme
Methods inherited from class android.content.ContextWrapper
bindIsolatedService, bindService, bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getOpPackageName, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getSharedPreferences, getSystemServiceName, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver, updateServiceGroup
Methods inherited from class android.content.Context
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, unregisterComponentCallbacks
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface arc.Application
addListener, defaultUpdate, dispose, getJavaHeap, isAndroid, isDesktop, isHeadless, isIOS, isMobile, isWeb, removeListener
Methods inherited from interface arc.util.Disposable
isDisposed
Methods inherited from interface android.view.Window.Callback
onPointerCaptureChanged
-
Field Details
-
MINIMUM_SDK
public static final int MINIMUM_SDK- See Also:
-
listeners
-
runnables
-
executedRunnables
-
handler
public android.os.Handler handler -
graphics
-
input
-
audio
-
files
-
settings
-
clipboard
protected android.content.ClipboardManager clipboard -
useImmersiveMode
protected boolean useImmersiveMode -
hideStatusBar
protected boolean hideStatusBar
-
-
Constructor Details
-
AndroidApplication
public AndroidApplication()
-
-
Method Details
-
initialize
This method has to be called in theActivity.onCreate(Bundle)
method. It sets up all the things necessary to get input, render via OpenGL and so on. Uses a defaultAndroidApplicationConfiguration
.- Parameters:
listener
- theApplicationListener
implementing the program logic
-
initialize
This method has to be called in theActivity.onCreate(Bundle)
method. It sets up all the things necessary to get input, render via OpenGL and so on. You can configure other aspects of the application with the rest of the fields in theAndroidApplicationConfiguration
instance.- Parameters:
listener
- theApplicationListener
implementing the program logicconfig
- theAndroidApplicationConfiguration
, defining various settings of the application (use accelerometer, etc.).
-
initializeForView
This method has to be called in theActivity.onCreate(Bundle)
method. It sets up all the things necessary to get input, render via OpenGL and so on. Uses a defaultAndroidApplicationConfiguration
.Note: you have to add the returned view to your layout!
- Parameters:
listener
- theApplicationListener
implementing the program logic- Returns:
- the GLSurfaceView of the application
-
initializeForView
public android.view.View initializeForView(ApplicationListener listener, AndroidApplicationConfiguration config) This method has to be called in theActivity.onCreate(Bundle)
method. It sets up all the things necessary to get input, render via OpenGL and so on. You can configure other aspects of the application with the rest of the fields in theAndroidApplicationConfiguration
instance.Note: you have to add the returned view to your layout!
- Parameters:
listener
- theApplicationListener
implementing the program logicconfig
- theAndroidApplicationConfiguration
, defining various settings of the application (use accelerometer, etc.).- Returns:
- the GLSurfaceView of the application
-
createLayoutParams
protected android.widget.FrameLayout.LayoutParams createLayoutParams() -
createWakeLock
protected void createWakeLock(boolean use) -
hideStatusBar
protected void hideStatusBar(boolean hide) -
onWindowFocusChanged
public void onWindowFocusChanged(boolean hasFocus) - Specified by:
onWindowFocusChanged
in interfaceandroid.view.Window.Callback
- Overrides:
onWindowFocusChanged
in classandroid.app.Activity
-
useImmersiveMode
public void useImmersiveMode(boolean use) -
onPause
protected void onPause()- Overrides:
onPause
in classandroid.app.Activity
-
onResume
protected void onResume()- Overrides:
onResume
in classandroid.app.Activity
-
onDestroy
protected void onDestroy()- Overrides:
onDestroy
in classandroid.app.Activity
-
openFolder
Description copied from interface:Application
Open a folder in the system's file browser.- Specified by:
openFolder
in interfaceApplication
- Returns:
- whether this operation was successful.
-
openURI
Description copied from interface:Application
Launches the default browser to display a URI. If the default browser is not able to handle the specified URI, the application registered for handling URIs of the specified type is invoked. The application is determined from the protocol and path of the URI. A best effort is made to open the given URI; however, since external applications are involved, no guarantee can be made as to whether the URI was actually opened. If it is known that the URI was not opened, false will be returned; otherwise, true will be returned.- Specified by:
openURI
in interfaceApplication
- Parameters:
URI
- the URI to be opened.- Returns:
- false if it is known the uri was not opened, true otherwise.
-
getType
- Specified by:
getType
in interfaceApplication
- Returns:
- what
Application.ApplicationType
this application has, e.g. Android or Desktop
-
getVersion
public int getVersion()- Specified by:
getVersion
in interfaceApplication
- Returns:
- the Android API level on Android, the major OS version on iOS (5, 6, 7, ..), or 0 on the desktop.
-
getNativeHeap
public long getNativeHeap()- Specified by:
getNativeHeap
in interfaceApplication
- Returns:
- the Native heap memory use in bytes. Only valid on Android.
-
getClipboardText
- Specified by:
getClipboardText
in interfaceApplication
-
setClipboardText
- Specified by:
setClipboardText
in interfaceApplication
-
post
Description copied from interface:Application
Posts a runnable on the main loop thread.- Specified by:
post
in interfaceApplication
-
onConfigurationChanged
public void onConfigurationChanged(android.content.res.Configuration config) - Specified by:
onConfigurationChanged
in interfaceandroid.content.ComponentCallbacks
- Overrides:
onConfigurationChanged
in classandroid.app.Activity
-
exit
public void exit()Description copied from interface:Application
Schedule an exit from the application. On android, this will cause a call to pause() and dispose() some time in the future, it will not immediately finish your application. On iOS this should be avoided in production as it breaks Apples guidelines.- Specified by:
exit
in interfaceApplication
-
onActivityResult
protected void onActivityResult(int requestCode, int resultCode, android.content.Intent data) - Overrides:
onActivityResult
in classandroid.app.Activity
-
addResultListener
Adds an event listener for Android specific event such as onActivityResult(...). -
getListeners
Description copied from interface:Application
Returns a list of all the application listeners used.- Specified by:
getListeners
in interfaceApplication
-