Accessibility shortcut primary action - add settings UI for accessibility shortcut type fragment
Bug: 142531433 Test: manual test Change-Id: I6a9eebc1718f2b924cfb373f09abb57890fa10a5
This commit is contained in:
@@ -635,9 +635,11 @@ public class AccessibilitySettings extends DashboardFragment {
|
||||
final String description = info.loadDescription(mPm);
|
||||
final int imageRes = info.getAnimatedImageRes();
|
||||
final String htmlDescription = info.loadHtmlDescription(mPm);
|
||||
final String settingsClassName = info.getSettingsActivityName();
|
||||
|
||||
putBasicExtras(preference, prefKey, title, description, imageRes, htmlDescription,
|
||||
componentName);
|
||||
putSettingsExtras(preference, packageName, settingsClassName);
|
||||
|
||||
preferenceList.add(preference);
|
||||
}
|
||||
|
@@ -26,10 +26,12 @@ import android.content.pm.ActivityInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -82,6 +84,12 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
|
||||
|
||||
// Settings html description.
|
||||
mHtmlDescription = arguments.getCharSequence(AccessibilitySettings.EXTRA_HTML_DESCRIPTION);
|
||||
|
||||
// Settings title and intent.
|
||||
final String settingsTitle = arguments.getString(
|
||||
AccessibilitySettings.EXTRA_SETTINGS_TITLE);
|
||||
mSettingsIntent = TextUtils.isEmpty(settingsTitle) ? null : getSettingsIntent(arguments);
|
||||
mSettingsTitle = (mSettingsIntent == null) ? null : settingsTitle;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -131,4 +139,21 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
|
||||
Log.w(TAG, "Target activity not found.");
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Intent getSettingsIntent(Bundle arguments) {
|
||||
final String settingsComponentName = arguments.getString(
|
||||
AccessibilitySettings.EXTRA_SETTINGS_COMPONENT_NAME);
|
||||
if (TextUtils.isEmpty(settingsComponentName)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final Intent settingsIntent = new Intent(Intent.ACTION_MAIN).setComponent(
|
||||
ComponentName.unflattenFromString(settingsComponentName));
|
||||
if (getPackageManager().queryIntentActivities(settingsIntent, /* flags= */ 0).isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return settingsIntent;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user