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

Commit ef6aada4 authored by Hai Zhang's avatar Hai Zhang
Browse files

Add managing domain URLs to the new Default apps screen.

Bug: 124452117
Test: manual
Change-Id: I5ca94ab608d56ce958e1a524aa2e36010fa05f9b
parent 75e3e174
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -499,6 +499,9 @@
    <!-- Label when there is no default apps [CHAR LIMIT=30] -->
    <string name="no_default_apps">No default apps</string>

    <!-- Title for preference item that will show the user's preferences for this app's priority for opening links to websites that it claims to support [CHAR LIMIT=30] -->
    <string name="default_apps_manage_domain_urls">Opening links</string>

    <!-- Title for category of default apps for work [CHAR LIMIT=30] -->
    <string name="default_apps_for_work">Default for work</string>

+4 −3
Original line number Diff line number Diff line
@@ -53,8 +53,8 @@ public class DefaultAppFragment extends SettingsFragment

    private static final String LOG_TAG = DefaultAppFragment.class.getSimpleName();

    private static final String PREFERENCE_KEY_NONE =
            DefaultAppFragment.class.getPackage().getName() + ".preference.NONE";
    private static final String PREFERENCE_KEY_NONE = DefaultAppFragment.class.getName()
            + ".preference.NONE";

    private String mRoleName;

@@ -185,11 +185,12 @@ public class DefaultAppFragment extends SettingsFragment
            preference.setOnPreferenceChangeListener((preference2, newValue) -> false);
            preference.setOnPreferenceClickListener(this);
        }

        preference.setChecked(checked);
        if (applicationInfo != null) {
            mRole.prepareApplicationPreferenceAsUser(preference, applicationInfo, mUser, context);
        }
        // TODO: Ordering?

        preferenceScreen.addPreference(preference);
    }

+25 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.ArrayMap;

import androidx.annotation.NonNull;
@@ -48,7 +49,11 @@ public class DefaultAppListFragment extends SettingsFragment

    private static final String LOG_TAG = DefaultAppListFragment.class.getSimpleName();

    private static final String PREFERENCE_KEY_WORK_CATEGORY = "work_category";
    private static final String PREFERENCE_KEY_MANAGE_DOMAIN_URLS =
            DefaultAppListFragment.class.getName() + ".preference.MANAGE_DOMAIN_URLS";

    private static final String PREFERENCE_KEY_WORK_CATEGORY =
            DefaultAppListFragment.class.getName() + ".preference.WORK_CATEGORY";

    private DefaultAppListViewModel mViewModel;

@@ -119,6 +124,7 @@ public class DefaultAppListFragment extends SettingsFragment

        addPreferences(preferenceScreen, roleItems, oldPreferences, this, mViewModel.getUser(),
                context);
        addManageDomainUrlsPreference(preferenceScreen, oldPreferences, context);
        if (hasWorkProfile && !workRoleItems.isEmpty()) {
            PreferenceCategory workPreferenceCategory = oldWorkPreferenceCategory;
            if (workPreferenceCategory == null) {
@@ -173,7 +179,6 @@ public class DefaultAppListFragment extends SettingsFragment
                preference.setSummary(Utils.getAppLabel(holderApplicationInfo, context));
            }

            // TODO: Ordering?
            preferenceGroup.addPreference(preference);
        }
    }
@@ -191,4 +196,22 @@ public class DefaultAppListFragment extends SettingsFragment
        startActivity(intent);
        return true;
    }

    private static void addManageDomainUrlsPreference(@NonNull PreferenceGroup preferenceGroup,
            @NonNull ArrayMap<String, Preference> oldPreferences, @NonNull Context context) {
        Preference preference = oldPreferences.get(PREFERENCE_KEY_MANAGE_DOMAIN_URLS);
        if (preference == null) {
            preference = new Preference(context);
            preference.setKey(PREFERENCE_KEY_MANAGE_DOMAIN_URLS);
            preference.setIconSpaceReserved(true);
            preference.setTitle(context.getString(R.string.default_apps_manage_domain_urls));
            preference.setPersistent(false);
            preference.setOnPreferenceClickListener(preference2 -> {
                context.startActivity(new Intent(Settings.ACTION_MANAGE_DOMAIN_URLS));
                return true;
            });
        }

        preferenceGroup.addPreference(preference);
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -145,7 +145,6 @@ public class SpecialAppAccessFragment extends SettingsFragment

            preference.setChecked(isHolderPackage);

            // TODO: Ordering?
            preferenceScreen.addPreference(preference);
        }

+0 −1
Original line number Diff line number Diff line
@@ -112,7 +112,6 @@ public class SpecialAppAccessListFragment extends SettingsFragment
                preference.setOnPreferenceClickListener(this);
            }

            // TODO: Ordering?
            preferenceScreen.addPreference(preference);
        }