[Safer intents] Permission controller
To avoid implicit intents, make intents launch explicitly. Test: build, manual Bug: 323061508 Change-Id: Ib95b417fc8682f690890fc55f321b4fece2c0369
This commit is contained in:
@@ -4,14 +4,18 @@ import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
|
||||
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.location.LocationManager;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.permission.PermissionControllerManager;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
@@ -69,6 +73,21 @@ public class AppLocationPermissionPreferenceController extends
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void displayPreference(@NonNull PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
|
||||
Preference pref = screen.findPreference(getPreferenceKey());
|
||||
if (pref != null) {
|
||||
pref.setIntent(new Intent(Intent.ACTION_MANAGE_PERMISSION_APPS)
|
||||
.setPackage(mContext.getPackageManager().getPermissionControllerPackageName())
|
||||
.putExtra(TextUtils.equals(pref.getKey(), "app_level_permissions")
|
||||
? Intent.EXTRA_PERMISSION_NAME
|
||||
: Intent.EXTRA_PERMISSION_GROUP_NAME,
|
||||
"android.permission-group.LOCATION"));
|
||||
}
|
||||
}
|
||||
|
||||
private void setAppCounts(int numTotal, int numHasLocation) {
|
||||
mNumTotal = numTotal;
|
||||
mNumHasLocation = numHasLocation;
|
||||
|
||||
Reference in New Issue
Block a user