Class AppInfoMonitor
- All Implemented Interfaces:
Proxy
GAppInfoMonitor
monitors application information for changes.
GAppInfoMonitor
is a very simple object used for monitoring the app
info database for changes (newly installed or removed applications).
Call get()
to get a GAppInfoMonitor
and connect
to the Gio.AppInfoMonitor::changed
signal. The signal will be emitted once when
the app info database changes, and will not be emitted again until after the
next call to AppInfo.getAll()
or another g_app_info_*()
function.
This is because monitoring the app info database for changes is expensive.
The following functions will re-arm the Gio.AppInfoMonitor::changed
signal so it can be emitted again:
AppInfo.getAll()
AppInfo.getAllForType(java.lang.String)
AppInfo.getDefaultForType(java.lang.String, boolean)
AppInfo.getFallbackForType(java.lang.String)
AppInfo.getRecommendedForType(java.lang.String)
g_desktop_app_info_get_implementations()
g_desktop_app_info_new()
g_desktop_app_info_new_from_filename()
g_desktop_app_info_new_from_keyfile()
g_desktop_app_info_search()
The latter functions are available if using
GDesktopAppInfo
from
gio-unix-2.0.pc
(GIR namespace GioUnix-2.0
).
In the usual case, applications should try to make note of the change
(doing things like invalidating caches) but not act on it. In
particular, applications should avoid making calls to GAppInfo
APIs
in response to the change signal, deferring these until the time that
the updated data is actually required. The exception to this case is when
application information is actually being displayed on the screen
(for example, during a search or when the list of all applications is shown).
The reason for this is that changes to the list of installed applications
often come in groups (like during system updates) and rescanning the list
on every change is pointless and expensive.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
AppInfoMonitor.Builder<B extends AppInfoMonitor.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.static interface
Functional interface declaration of theChangedCallback
callback.Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
-
Constructor Summary
ConstructorDescriptionAppInfoMonitor
(MemorySegment address) Create a AppInfoMonitor proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected AppInfoMonitor
asParent()
Returns this instance as if it were its parent type.static AppInfoMonitor.Builder
<? extends AppInfoMonitor.Builder> builder()
AAppInfoMonitor.Builder
object constructs aAppInfoMonitor
with the specified properties.void
Emits the "changed" signal.static AppInfoMonitor
get()
Gets theGAppInfoMonitor
for the current thread-default main context.static Type
getType()
Get the GType of the AppInfoMonitor classonChanged
(AppInfoMonitor.ChangedCallback handler) Signal emitted when the app info database changes, when applications are installed or removed.Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getMemoryLayout, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
AppInfoMonitor
Create a AppInfoMonitor proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
-
Method Details
-
getType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
get
Gets theGAppInfoMonitor
for the current thread-default main context.The
GAppInfoMonitor
will emit a “changed” signal in the thread-default main context whenever the list of installed applications (as reported by g_app_info_get_all()) may have changed.The
GAppInfoMonitor
::changed signal will only be emitted once until g_app_info_get_all() (or anotherg_app_info_*()
function) is called. Doing so will re-arm the signal ready to notify about the next change.You must only call g_object_unref() on the return value from under the same main context as you created it.
- Returns:
- a reference to a
GAppInfoMonitor
-
onChanged
public SignalConnection<AppInfoMonitor.ChangedCallback> onChanged(AppInfoMonitor.ChangedCallback handler) Signal emitted when the app info database changes, when applications are installed or removed.- Parameters:
handler
- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitChanged
public void emitChanged()Emits the "changed" signal. SeeonChanged(org.gnome.gio.AppInfoMonitor.ChangedCallback)
. -
builder
AAppInfoMonitor.Builder
object constructs aAppInfoMonitor
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withAppInfoMonitor.Builder.build()
.
-