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 String description = info.loadDescription(mPm);
|
||||||
final int imageRes = info.getAnimatedImageRes();
|
final int imageRes = info.getAnimatedImageRes();
|
||||||
final String htmlDescription = info.loadHtmlDescription(mPm);
|
final String htmlDescription = info.loadHtmlDescription(mPm);
|
||||||
|
final String settingsClassName = info.getSettingsActivityName();
|
||||||
|
|
||||||
putBasicExtras(preference, prefKey, title, description, imageRes, htmlDescription,
|
putBasicExtras(preference, prefKey, title, description, imageRes, htmlDescription,
|
||||||
componentName);
|
componentName);
|
||||||
|
putSettingsExtras(preference, packageName, settingsClassName);
|
||||||
|
|
||||||
preferenceList.add(preference);
|
preferenceList.add(preference);
|
||||||
}
|
}
|
||||||
|
@@ -26,10 +26,12 @@ import android.content.pm.ActivityInfo;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.preference.SwitchPreference;
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -82,6 +84,12 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
|
|||||||
|
|
||||||
// Settings html description.
|
// Settings html description.
|
||||||
mHtmlDescription = arguments.getCharSequence(AccessibilitySettings.EXTRA_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
|
@Override
|
||||||
@@ -131,4 +139,21 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
|
|||||||
Log.w(TAG, "Target activity not found.");
|
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