Merge "Add new tileService attributes for accessibility"

This commit is contained in:
TreeHugger Robot
2022-02-08 16:54:48 +00:00
committed by Android (Google) Code Review
7 changed files with 74 additions and 6 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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.
*/

View File

@@ -3914,6 +3914,11 @@
<!-- Component name of an activity that allows the user to modify
the settings for this service. This setting cannot be changed at runtime. -->
<attr name="settingsActivity" />
<!-- Component 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}. -->
<attr name="tileService" format="string" />
<!-- Attribute whether the accessibility service wants to be able to retrieve the
active window content. This setting cannot be changed at runtime.
<p>
@@ -4000,6 +4005,11 @@
<!-- Component name of an activity that allows the user to modify the settings for this
target of accessibility shortcut. -->
<attr name="settingsActivity" />
<!-- Component 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}. -->
<attr name="tileService" format="string" />
</declare-styleable>
<!-- Use <code>print-service</code> as the root tag of the XML resource that

View File

@@ -3274,6 +3274,7 @@
<public name="toExtendTop" />
<public name="toExtendRight" />
<public name="toExtendBottom" />
<public name="tileService" />
</staging-public-group>
<staging-public-group type="id" first-id="0x01de0000">

View File

@@ -17,9 +17,10 @@
-->
<accessibility-shortcut-target xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/accessibility_shortcut_description"
android:summary="@string/accessibility_shortcut_summary"
android:animatedImageDrawable="@drawable/bitmap_drawable"
android:htmlDescription="@string/accessibility_shortcut_html_description"
android:settingsActivity="com.example.shortcut.target.SettingsActivity"
android:description="@string/accessibility_shortcut_description"
android:summary="@string/accessibility_shortcut_summary"
android:animatedImageDrawable="@drawable/bitmap_drawable"
android:htmlDescription="@string/accessibility_shortcut_html_description"
android:settingsActivity="com.example.shortcut.target.SettingsActivity"
android:tileService="com.example.shortcut.target.TileService"
/>

View File

@@ -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));