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

Commit cfa39d26 authored by John Spurlock's avatar John Spurlock
Browse files

Defer opening a stats session until first use.

Bug:16174801
Change-Id: Ia70f9a01bd348809db4ab2992e5e1265778cfcfa
parent 99bd4eab
Loading
Loading
Loading
Loading
+13 −6
Original line number Original line Diff line number Diff line
@@ -63,14 +63,20 @@ public class MobileDataController {
        mStatsService = INetworkStatsService.Stub.asInterface(
        mStatsService = INetworkStatsService.Stub.asInterface(
                ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
                ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
        mPolicyManager = NetworkPolicyManager.from(mContext);
        mPolicyManager = NetworkPolicyManager.from(mContext);
    }


    private INetworkStatsSession getSession() {
        if (mSession == null) {
            try {
            try {
                mSession = mStatsService.openSession();
                mSession = mStatsService.openSession();
            } catch (RemoteException e) {
            } catch (RemoteException e) {
            Log.w(TAG, "Failed to open stats session");
                Log.w(TAG, "Failed to open stats session", e);
            mSession = null;
            } catch (RuntimeException e) {
                Log.w(TAG, "Failed to open stats session", e);
            }
            }
        }
        }
        return mSession;
    }


    public void setCallback(Callback callback) {
    public void setCallback(Callback callback) {
        mCallback = callback;
        mCallback = callback;
@@ -86,7 +92,8 @@ public class MobileDataController {
        if (subscriberId == null) {
        if (subscriberId == null) {
            return warn("no subscriber id");
            return warn("no subscriber id");
        }
        }
        if (mSession == null) {
        final INetworkStatsSession session = getSession();
        if (session == null) {
            return warn("no stats session");
            return warn("no stats session");
        }
        }
        final NetworkTemplate template = NetworkTemplate.buildTemplateMobileAll(subscriberId);
        final NetworkTemplate template = NetworkTemplate.buildTemplateMobileAll(subscriberId);