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

Commit 02c507e2 authored by Adrian Roos's avatar Adrian Roos Committed by Android (Google) Code Review
Browse files

Merge "Hide emergency app setting when not available"

parents 903198f3 bef722cf
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -43,6 +43,9 @@ public class DefaultEmergencyPreference extends AppListPreference {

    private final ContentResolver mContentResolver;

    public static final Intent QUERY_INTENT = new Intent(
            TelephonyManager.ACTION_EMERGENCY_ASSISTANCE);

    public DefaultEmergencyPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContentResolver = context.getContentResolver();
@@ -85,18 +88,19 @@ public class DefaultEmergencyPreference extends AppListPreference {
    private Set<String> resolveAssistPackageAndQueryApps() {
        Set<String> packages = new ArraySet<>();

        Intent queryIntent = new Intent(TelephonyManager.ACTION_EMERGENCY_ASSISTANCE);
        PackageManager packageManager = getContext().getPackageManager();
        List<ResolveInfo> infos = packageManager.queryIntentActivities(queryIntent, 0);
        List<ResolveInfo> infos = packageManager.queryIntentActivities(QUERY_INTENT, 0);

        PackageInfo bestMatch = null;
        for (int i = 0; i < infos.size(); i++) {
            if (infos.get(i) == null || infos.get(i).activityInfo == null
                    || packages.contains(infos.get(i).activityInfo.packageName)) {
        final int size = infos.size();
        for (int i = 0; i < size; i++) {
            ResolveInfo info = infos.get(i);
            if (info == null || info.activityInfo == null
                    || packages.contains(info.activityInfo.packageName)) {
                continue;
            }

            String packageName = infos.get(i).activityInfo.packageName;
            String packageName = info.activityInfo.packageName;

            packages.add(packageName);

@@ -130,6 +134,11 @@ public class DefaultEmergencyPreference extends AppListPreference {
    }

    public static boolean isAvailable(Context context) {
        return isCapable(context)
                && context.getPackageManager().resolveActivity(QUERY_INTENT, 0) != null;
    }

    public static boolean isCapable(Context context) {
        return context.getResources().getBoolean(
                com.android.internal.R.bool.config_voice_capable);
    }
+6 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.settings.InstrumentedFragment;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Index;
import com.android.settings.search.Indexable;

import java.util.ArrayList;
@@ -86,6 +87,11 @@ public class ManageDefaultApps extends SettingsPreferenceFragment
        if (!DefaultEmergencyPreference.isAvailable(getActivity())) {
            removePreference(KEY_DEFAULT_EMERGENCY_APP);
        }

        if (DefaultEmergencyPreference.isCapable(getActivity())) {
            Index.getInstance(getActivity()).updateFromClassNameResource(
                    ManageDefaultApps.class.getName(), true, true);
        }
    }

    @Override