// -*- mode: java; c-basic-offset: 2; -*-
// Copyright 2016 MIT, All rights reserved
// Released under the Apache License, Version 2.0
// http://www.apache.org/licenses/LICENSE-2.0
package com.google.appinventor.components.annotations.androidmanifest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Annotation to describe an <action> element required by an <intent-filter>
* element so that it can be added to AndroidManifest.xml.
*
* Note: Some of this documentation is adapted from the Android framework specification
* linked below. That documentation is licensed under the
* {@link <a href="https://creativecommons.org/licenses/by/2.5/">
* Creative Commons Attribution license v2.5
* </a>}.
*
* See {@link <a href="https://developer.android.com/guide/topics/manifest/action-element.html">
* https://developer.android.com/guide/topics/manifest/action-element.html
* </a>}.
*
* @author will2596@gmail.com (William Byrne)
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface ActionElement {
/**
* The fully qualified name of the action. For standard actions defined in
* the {@link android.content.Intent} class, prepend "android.intent.action" to
* the "string" in each ACTION_string constant. For example, to specify
* ACTION_MAIN the fully qualified name would be "android.intent.action.MAIN".
* Custom defined actions are conventionally prepended with the package name
* of their containing class, e.g. "com.example.project.ACTION". The name attribute
* is required in any @ActionElement annotation and hence has no default value.
*
* @return the fully qualified name of the action
*/
String name();
}