Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58081f2c authored by Jason Hsu's avatar Jason Hsu Committed by Android (Google) Code Review
Browse files

Merge "Accessibility shortcut primary action - add settings UI for...

Merge "Accessibility shortcut primary action - add settings UI for accessibility shortcut type fragment" into rvc-dev
parents d3946b54 c7fa4da5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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);
            }
+25 −0
Original line number Diff line number Diff line
@@ -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;
    }
}