Here are the examples of the java api class com.google.android.apps.dashclock.api.host.ExtensionListing taken from open source projects.
1. ExampleHostActivity#onItemClick()
Project: dashclock
File: ExampleHostActivity.java
File: ExampleHostActivity.java
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ExtensionListing info = mAdapter.getItem(position); if (info.worldReadable()) { List<ComponentName> updatableExtensions = new ArrayList<>(); updatableExtensions.add(info.componentName()); mHost.requestExtensionUpdate(updatableExtensions); } }
2. ExtensionManager#setActiveExtensions()
Project: dashclock
File: ExtensionManager.java
File: ExtensionManager.java
/** * Replaces the set of active extensions with the given list. */ public void setActiveExtensions(Set<ComponentName> extensions) { // Join external and internal extensions Set<ComponentName> allExtensions = new HashSet<>(getInternalActiveExtensionNames()); for (ComponentName cn : extensions) { if (!allExtensions.contains(cn)) { allExtensions.add(cn); } } Map<ComponentName, ExtensionListing> infos = new HashMap<>(); for (ExtensionListing info : getAvailableExtensions()) { infos.put(info.componentName(), info); } Set<ComponentName> activeExtensionNames = getActiveExtensionNames(); if (activeExtensionNames.equals(allExtensions)) { LOGD(TAG, "No change to list of active extensions."); return; } // Clear cached data for any no-longer-active extensions. for (ComponentName cn : activeExtensionNames) { if (!allExtensions.contains(cn)) { destroyExtensionData(cn); } } // Set the new list of active extensions, loading cached data if necessary. List<ExtensionWithData> newActiveExtensions = new ArrayList<>(); for (ComponentName cn : allExtensions) { if (mExtensionInfoMap.containsKey(cn)) { newActiveExtensions.add(mExtensionInfoMap.get(cn)); } else { ExtensionWithData ewd = new ExtensionWithData(); ewd.listing = infos.get(cn); if (ewd.listing == null) { ewd.listing = new ExtensionListing(); ewd.listing.componentName(cn); } ewd.latestData = deserializeExtensionData(ewd.listing.componentName()); newActiveExtensions.add(ewd); } } mExtensionInfoMap.clear(); for (ExtensionWithData ewd : newActiveExtensions) { mExtensionInfoMap.put(ewd.listing.componentName(), ewd); } synchronized (mActiveExtensions) { mActiveExtensions.clear(); mActiveExtensions.addAll(newActiveExtensions); } LOGD(TAG, "List of active extensions has changed."); notifyOnChangeListeners(null); }
3. ExtensionManager#cleanupExtensions()
Project: dashclock
File: ExtensionManager.java
File: ExtensionManager.java
/** * De-activates active extensions that are unsupported or are no longer installed. */ public boolean cleanupExtensions() { Set<ComponentName> availableExtensions = new HashSet<>(); for (ExtensionListing info : getAvailableExtensions()) { // Ensure the extension protocol version is supported. If it isn't, don't allow its use. if (!info.compatible()) { LOGW(TAG, "Extension '" + info.title() + "' using unsupported protocol version " + info.protocolVersion() + "."); continue; } availableExtensions.add(info.componentName()); } boolean cleanupRequired = false; Set<ComponentName> newActiveExtensions = new HashSet<>(); synchronized (mActiveExtensions) { for (ExtensionWithData ewd : mActiveExtensions) { if (availableExtensions.contains(ewd.listing.componentName())) { newActiveExtensions.add(ewd.listing.componentName()); } else { cleanupRequired = true; } } } if (cleanupRequired) { setActiveExtensions(newActiveExtensions); return true; } return false; }
4. DashClockService#findExtensionInfo()
Project: dashclock
File: DashClockService.java
File: DashClockService.java
private ExtensionListing findExtensionInfo(ComponentName extension) { for (ExtensionListing info : mExtensionManager.getAvailableExtensions()) { if (extension.equals(info.componentName())) { return info; } } return null; }
5. ConfigureExtensionsFragment#repopulateAvailableExtensions()
Project: dashclock
File: ConfigureExtensionsFragment.java
File: ConfigureExtensionsFragment.java
private void repopulateAvailableExtensions() { Set<ComponentName> selectedExtensions = new HashSet<>(); selectedExtensions.addAll(mSelectedExtensions); boolean selectedExtensionsDirty = false; mExtensionListings.clear(); mAvailableExtensions.clear(); Resources res = getResources(); for (ExtensionListing listing : mExtensionManager.getAvailableExtensions()) { ComponentName extension = listing.componentName(); mExtensionListings.put(listing.componentName(), listing); ExtensionListing previousListing = mExtensionListings.put(extension, listing); if (listing.icon() != 0) { Bitmap icon = Utils.loadExtensionIcon(getActivity(), extension, listing.icon(), null, res.getColor(R.color.extension_item_color)); mExtensionIcons.put(extension, new BitmapDrawable(res, icon)); } if (selectedExtensions.contains(listing.componentName())) { if (previousListing == null) { // Extension was newly detected selectedExtensionsDirty = true; } if (!listing.compatible()) { // If the extension is selected and its protocol isn't supported, // then make it available but remove it from the selection. mSelectedExtensions.remove(listing.componentName()); selectedExtensionsDirty = true; } else { // extensions. continue; } } mAvailableExtensions.add(listing.componentName()); } Collections.sort(mAvailableExtensions, new Comparator<ComponentName>() { @Override public int compare(ComponentName cn1, ComponentName cn2) { ExtensionListing listing1 = mExtensionListings.get(cn1); ExtensionListing listing2 = mExtensionListings.get(cn2); return listing1.title().compareToIgnoreCase(listing2.title()); } }); showHideAddFabView(true); if (selectedExtensionsDirty && mSelectedExtensionsAdapter != null) { mSelectedExtensionsAdapter.notifyDataSetChanged(); mExtensionManager.setInternalActiveExtensions(mSelectedExtensions); } if (mAddExtensionPopupMenu != null) { mAddExtensionPopupMenu.dismiss(); mAddExtensionPopupMenu = null; } }