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

Commit c7fa4da5 authored by jasonwshsu's avatar jasonwshsu
Browse files

Accessibility shortcut primary action - add settings UI for accessibility shortcut type fragment

Bug: 142531433
Test: manual test
Change-Id: I6a9eebc1718f2b924cfb373f09abb57890fa10a5
parent 4d59bce2
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -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);
            }
            }
+25 −0
Original line number Original line Diff line number Diff line
@@ -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;
    }
}
}