com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_link3' is unknown.
Invoking the Application Download Status API
The Android app catalog application provides an API to notify external applications of the application download progress. To invoke this API, the external applications need to invoke the service exposed by the app catalog application and implement a BroadcastReceiver
to receive results.
Guidelines to invoke the API
Use the points given below as guidelines:
- Use the
org.wso2.app.catalog.START_SERVICE
service name to invoke the API. - Use the
org.wso2.app.catalog.MESSAGE_PROCESSED
action name to call and receive the output from the API. - Use the
APP_DOWNLOAD_PROGRESS
operation code when invoking the API. - Define the intent result parameters as follows:
- Define 200 as the status codes to denote success and 400 to denote failure.
Define the payload as a result payload.
The service will return the JSON output as the payload.
{ “app” : “APPLICATION PACKAGE NAME”, “progress” “DOWNLOAD PROGRESS” }
- Define 200 as the status codes to denote success and 400 to denote failure.
Invoking the API
Follow the steps given below to invoke the API by starting the exposed service.
Configure the
BroadcastReceiver
.public class CatalogServiceResponseReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String status = intent.getStringExtra(“status”); JSONObject result = new JSONObject(intent.getStringExtra(“payload”)); //Your result manipulation code goes here } }
Register a receiver to listen to the service results.
Context context = getApplicationContext(); IntentFilter filter = new IntentFilter(“org.wso2.app.catalog.MESSAGE_PROCESSED”); filter.addCategory(Intent.CATEGORY_DEFAULT); CatalogServiceResponseReceiver receiver = new CatalogServiceResponseReceiver(); registerReceiver(receiver, filter);
Call the service. This should always happen after registering the receiver.
Intent intent = new Intent(“org.wso2.app.catalog.START_SERVICE”); Intent explicitIntent = createExplicitFromImplicitIntent(context, intent); if (explicitIntent != null) { intent = explicitIntent; } intent.putExtra("code", “APP_DOWNLOAD_PROGRESS”);
Create an explicit intent method.
public static Intent createExplicitFromImplicitIntent(Context context, Intent implicitIntent) { //Retrieve all services that can match the given intent PackageManager pm = context.getPackageManager(); List<ResolveInfo> resolveInfo = pm.queryIntentServices(implicitIntent, 0); //Make sure only one match was found if (resolveInfo == null || resolveInfo.size() != 1) { return null; } //Get component info and create ComponentName ResolveInfo serviceInfo = resolveInfo.get(0); String packageName = serviceInfo.serviceInfo.packageName; String className = serviceInfo.serviceInfo.name; ComponentName component = new ComponentName(packageName, className); //Create a new intent. Use the old one for extras and such reuse Intent explicitIntent = new Intent(implicitIntent); //Set the component to be explicit explicitIntent.setComponent(component); return explicitIntent; }
com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.