Load app data store asynchronously
This commit is contained in:
parent
1f21516021
commit
3f5f4d8a44
@ -31,8 +31,16 @@ var AppFavorites = new Lang.Class({
|
|||||||
AppStream.StoreLoadFlags.APP_INFO_USER |
|
AppStream.StoreLoadFlags.APP_INFO_USER |
|
||||||
AppStream.StoreLoadFlags.APPDATA |
|
AppStream.StoreLoadFlags.APPDATA |
|
||||||
AppStream.StoreLoadFlags.DESKTOP;
|
AppStream.StoreLoadFlags.DESKTOP;
|
||||||
|
this._appDataReady = false;
|
||||||
this._appDataStore = new AppStream.Store();
|
this._appDataStore = new AppStream.Store();
|
||||||
this._appDataStore.load(loadFlags, null);
|
this._appDataStore.load_async(loadFlags, null, (store, res) => {
|
||||||
|
try {
|
||||||
|
this._appDataReady = store.load_finish(res);
|
||||||
|
this.reload();
|
||||||
|
} catch(e) {
|
||||||
|
log('Failed to load AppData store: ' + e.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
this._favorites = {};
|
this._favorites = {};
|
||||||
global.settings.connect('changed::' + this.FAVORITE_APPS_KEY, this._onFavsChanged.bind(this));
|
global.settings.connect('changed::' + this.FAVORITE_APPS_KEY, this._onFavsChanged.bind(this));
|
||||||
@ -51,8 +59,11 @@ var AppFavorites = new Lang.Class({
|
|||||||
// Map old desktop file names to the current ones
|
// Map old desktop file names to the current ones
|
||||||
let updated = false;
|
let updated = false;
|
||||||
ids = ids.map(id => {
|
ids = ids.map(id => {
|
||||||
let appData = this._appDataStore.get_app_by_id_with_fallbacks(id) ||
|
let appData = null;
|
||||||
|
if (this._appDataReady)
|
||||||
|
appData = this._appDataStore.get_app_by_id_with_fallbacks(id) ||
|
||||||
this._appDataStore.get_app_by_provide(AppStream.ProvideKind.ID, id);
|
this._appDataStore.get_app_by_provide(AppStream.ProvideKind.ID, id);
|
||||||
|
|
||||||
let newId = appData != null ? appData.get_id() : undefined;
|
let newId = appData != null ? appData.get_id() : undefined;
|
||||||
if (newId !== undefined &&
|
if (newId !== undefined &&
|
||||||
newId !== id &&
|
newId !== id &&
|
||||||
|
Loading…
Reference in New Issue
Block a user