OSDN Git Service

Allows to launch only authenticator owned activities
[android-x86/packages-apps-Settings.git] / src / com / android / settings / accounts / AccountTypePreferenceLoader.java
index a90a3d3..c639d1d 100644 (file)
@@ -29,14 +29,15 @@ import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.content.res.Resources.Theme;
 import android.os.UserHandle;
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.Preference.OnPreferenceClickListener;
-import android.support.v7.preference.PreferenceGroup;
-import android.support.v7.preference.PreferenceScreen;
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.preference.Preference;
+import androidx.preference.Preference.OnPreferenceClickListener;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
 import com.android.settings.R;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.location.LocationSettings;
@@ -60,9 +61,9 @@ public class AccountTypePreferenceLoader {
 
     private AuthenticatorHelper mAuthenticatorHelper;
     private UserHandle mUserHandle;
-    private PreferenceFragment mFragment;
+    private PreferenceFragmentCompat mFragment;
 
-    public AccountTypePreferenceLoader(PreferenceFragment fragment,
+    public AccountTypePreferenceLoader(PreferenceFragmentCompat fragment,
             AuthenticatorHelper authenticatorHelper, UserHandle userHandle) {
         mFragment = fragment;
         mAuthenticatorHelper = authenticatorHelper;
@@ -196,14 +197,7 @@ public class AccountTypePreferenceLoader {
         ActivityInfo resolvedActivityInfo = resolveInfo.activityInfo;
         ApplicationInfo resolvedAppInfo = resolvedActivityInfo.applicationInfo;
         try {
-            if (resolvedActivityInfo.exported) {
-                if (resolvedActivityInfo.permission == null) {
-                    return true; // exported activity without permission.
-                } else if (pm.checkPermission(resolvedActivityInfo.permission,
-                    authDesc.packageName) == PackageManager.PERMISSION_GRANTED) {
-                    return true;
-                }
-            }
+            // Allows to launch only authenticator owned activities.
             ApplicationInfo authenticatorAppInf = pm.getApplicationInfo(authDesc.packageName, 0);
             return resolvedAppInfo.uid == authenticatorAppInf.uid;
         } catch (NameNotFoundException e) {
@@ -235,7 +229,7 @@ public class AccountTypePreferenceLoader {
                     ? ((Instrumentable) mFragment).getMetricsCategory()
                     : Instrumentable.METRICS_CATEGORY_UNKNOWN;
             new SubSettingLauncher(preference.getContext())
-                    .setTitle(mTitleRes)
+                    .setTitleRes(mTitleRes)
                     .setDestination(mClass)
                     .setSourceMetricsCategory(metricsCategory)
                     .launch();