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

Commit 41363efc authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Add permission check functions to NetworkStatsService" into rvc-dev am:...

Merge "Add permission check functions to NetworkStatsService" into rvc-dev am: 70731d43 am: 596960c1

Change-Id: Idf450162a152a75b8351591c6e98601f43f86733
parents 27c0528d 596960c1
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static android.content.Intent.ACTION_SHUTDOWN;
import static android.content.Intent.ACTION_UID_REMOVED;
import static android.content.Intent.ACTION_USER_REMOVED;
import static android.content.Intent.EXTRA_UID;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
import static android.net.ConnectivityManager.isNetworkTypeMobile;
import static android.net.NetworkStack.checkNetworkStackPermission;
@@ -1793,6 +1794,24 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
        }
    }

    // TODO: It is copied from ConnectivitySerivce, consider refactor these check permission
    //  functions to a proper util.
    private boolean checkAnyPermissionOf(String... permissions) {
        for (String permission : permissions) {
            if (mContext.checkCallingOrSelfPermission(permission) == PERMISSION_GRANTED) {
                return true;
            }
        }
        return false;
    }

    private void enforceAnyPermissionOf(String... permissions) {
        if (!checkAnyPermissionOf(permissions)) {
            throw new SecurityException("Requires one of the following permissions: "
                    + String.join(", ", permissions) + ".");
        }
    }

    /**
     * Registers a custom provider of {@link android.net.NetworkStats} to combine the network
     * statistics that cannot be seen by the kernel to system. To unregister, invoke the