About the ODG Theme
Unlike standard Android, ReticleOS has a widget bar, which allows user to interact with widgets while an application is running in foreground. In essence, creating a multi-application experience in Android. This creates an issue when a developer wants to hide the widget bar while their application is running. Standard Android widow flag or theme will not be effective since Android is not designed to handle it. Using the full screen flag works, but also hide the status bar on the top of the screen.
ReticleOS adopts the concept of FULL_SCREEN mode in Android, and introduces a new flag, FLAG_DISMISS_SYSTEM_WIDGET_BAR, in the PackageParser and PhoneWindow to dismiss the bar.
To simplify things for developers, ReticleOS introduces a new manifest XML tag:
The new tag functions similar to android:theme and would overwrite android:theme if both are present. Currently, we have three custom ODG themes to serve various purposes:
is same as Theme.Black.NoTitleBar with NO widget bar
is same as Theme.NoTitleBar with no widget bar.
is same as Theme.Holo.NoActionBar without widget bar, but with black background.
- To hide the widget bar for the whole application, include the tag and our custom theme in the <application> tag.
<application odg_theme="Theme.HoloNoActionBarNoWidgetBar" ... />
- 2. To hide the widget bar for a specific activity, include the tag and our custom theme in the <activity> tag.
<activity odg_theme="Theme.HoloNoActionBarNoWidgetBar" ... />
Our modified framework package parser would parse the tag and assign the flag, "com.android.internal.R.styleable.Window_windowNoWidgetBar", to application window. The PhoneWindowManager will take care of the rest subsequently.