diff --git a/core/api/current.txt b/core/api/current.txt
index b4561b1f0fc14..c8441c7ba19e4 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -1570,6 +1570,7 @@ package android {
field public static final int tileMode = 16843265; // 0x1010201
field public static final int tileModeX = 16843895; // 0x1010477
field public static final int tileModeY = 16843896; // 0x1010478
+ field public static final int tileService;
field public static final int timePickerDialogTheme = 16843934; // 0x101049e
field public static final int timePickerMode = 16843956; // 0x10104b4
field public static final int timePickerStyle = 16843933; // 0x101049d
@@ -3233,6 +3234,7 @@ package android.accessibilityservice {
method public int getNonInteractiveUiTimeoutMillis();
method public android.content.pm.ResolveInfo getResolveInfo();
method public String getSettingsActivityName();
+ method @Nullable public String getTileServiceClassName();
method public boolean isAccessibilityTool();
method public String loadDescription(android.content.pm.PackageManager);
method public CharSequence loadSummary(android.content.pm.PackageManager);
diff --git a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
index 1167d0b1034f8..6988048c34e1e 100644
--- a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
+++ b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
@@ -536,6 +536,13 @@ public class AccessibilityServiceInfo implements Parcelable {
*/
private String mSettingsActivityName;
+ /**
+ * The class name of {@link android.service.quicksettings.TileService} is associated with this
+ * accessibility service for one to one mapping. It is used by system settings to remind users
+ * this accessibility service has a {@link android.service.quicksettings.TileService}.
+ */
+ private String mTileServiceClassName;
+
/**
* Bit mask with capabilities of this service.
*/
@@ -718,6 +725,8 @@ public class AccessibilityServiceInfo implements Parcelable {
}
mIsAccessibilityTool = asAttributes.getBoolean(
R.styleable.AccessibilityService_isAccessibilityTool, false);
+ mTileServiceClassName = asAttributes.getString(
+ com.android.internal.R.styleable.AccessibilityService_tileService);
asAttributes.recycle();
} catch (NameNotFoundException e) {
throw new XmlPullParserException( "Unable to create context for: "
@@ -820,6 +829,17 @@ public class AccessibilityServiceInfo implements Parcelable {
return mSettingsActivityName;
}
+ /**
+ * Gets the class name of {@link android.service.quicksettings.TileService} is associated with
+ * this accessibility service.
+ *
+ * @return The class names of {@link android.service.quicksettings.TileService}.
+ */
+ @Nullable
+ public String getTileServiceClassName() {
+ return mTileServiceClassName;
+ }
+
/**
* Gets the animated image resource id.
*
@@ -1083,6 +1103,7 @@ public class AccessibilityServiceInfo implements Parcelable {
parcel.writeInt(mHtmlDescriptionRes);
parcel.writeString(mNonLocalizedDescription);
parcel.writeBoolean(mIsAccessibilityTool);
+ parcel.writeString(mTileServiceClassName);
}
private void initFromParcel(Parcel parcel) {
@@ -1105,6 +1126,7 @@ public class AccessibilityServiceInfo implements Parcelable {
mHtmlDescriptionRes = parcel.readInt();
mNonLocalizedDescription = parcel.readString();
mIsAccessibilityTool = parcel.readBoolean();
+ mTileServiceClassName = parcel.readString();
}
@Override
@@ -1157,6 +1179,8 @@ public class AccessibilityServiceInfo implements Parcelable {
stringBuilder.append(", ");
stringBuilder.append("settingsActivityName: ").append(mSettingsActivityName);
stringBuilder.append(", ");
+ stringBuilder.append("tileServiceClassName: ").append(mTileServiceClassName);
+ stringBuilder.append(", ");
stringBuilder.append("summary: ").append(mNonLocalizedSummary);
stringBuilder.append(", ");
stringBuilder.append("isAccessibilityTool: ").append(mIsAccessibilityTool);
diff --git a/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java b/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java
index fe1cca53c78b5..52a1cad7fd880 100644
--- a/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java
+++ b/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java
@@ -95,6 +95,13 @@ public final class AccessibilityShortcutInfo {
*/
private String mSettingsActivityName;
+ /**
+ * The class name of {@link android.service.quicksettings.TileService} is associated with this
+ * accessibility shortcut target for one to one mapping. It is used by system settings to remind
+ * users this accessibility service has a {@link android.service.quicksettings.TileService}.
+ */
+ private String mTileServiceClassName;
+
/**
* Creates a new instance.
*
@@ -150,6 +157,9 @@ public final class AccessibilityShortcutInfo {
// Get settings activity name
mSettingsActivityName = asAttributes.getString(
com.android.internal.R.styleable.AccessibilityShortcutTarget_settingsActivity);
+ // Get tile service class name
+ mTileServiceClassName = asAttributes.getString(
+ com.android.internal.R.styleable.AccessibilityShortcutTarget_tileService);
asAttributes.recycle();
if ((mDescriptionResId == 0 && mHtmlDescriptionRes == 0) || mSummaryResId == 0) {
@@ -258,6 +268,17 @@ public final class AccessibilityShortcutInfo {
return mSettingsActivityName;
}
+ /**
+ * Gets the class name of {@link android.service.quicksettings.TileService} is associated with
+ * this accessibility shortcut target.
+ *
+ * @return The class names of {@link android.service.quicksettings.TileService}.
+ */
+ @Nullable
+ public String getTileServiceClassName() {
+ return mTileServiceClassName;
+ }
+
/**
* Gets string resource by the given activity and resource id.
*/
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 68ed8c962ba9a..8df5871577916 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -3914,6 +3914,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java b/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java
index 8755131644782..76fb520c91bcd 100644
--- a/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java
+++ b/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java
@@ -50,6 +50,8 @@ import java.util.List;
public class AccessibilityShortcutInfoTest {
private static final String SETTINGS_ACTIVITY_NAME =
"com.example.shortcut.target.SettingsActivity";
+ private static final String TILE_SERVICE_NAME =
+ "com.example.shortcut.target.TileService";
private Context mTargetContext;
private PackageManager mPackageManager;
@@ -110,10 +112,17 @@ public class AccessibilityShortcutInfoTest {
@Test
public void testSettingsActivity() {
- assertThat("Settings Activity is not correct",
+ assertThat("Settings activity is not correct",
mShortcutInfo.getSettingsActivityName(), is(SETTINGS_ACTIVITY_NAME));
}
+ @Test
+ public void testTileService() {
+ assertThat("Tile service is not correct",
+ mShortcutInfo.getTileServiceClassName(), is(TILE_SERVICE_NAME));
+ }
+
+
@Test
public void testEquals() {
assertTrue(mShortcutInfo.equals(mShortcutInfo));