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

Commit d55a6b49 authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

Add external dependency API.

An APN will not be connected to if some external dependency is not met.

bug:3486704
Change-Id: I7d94df343b260013efd11faa978deb13f07f1389
parent f0d2c1c4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -300,4 +300,8 @@ public class BluetoothTetheringDataTracker implements NetworkStateTracker {
        msg = mCsHandler.obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
        msg.sendToTarget();
    }

    public void setDependencyMet(boolean met) {
        // not supported on this network
    }
}
+12 −0
Original line number Diff line number Diff line
@@ -690,4 +690,16 @@ public class ConnectivityManager
            return null;
        }
    }

    /**
     * @param networkType The network who's dependence has changed
     * @param met Boolean - true if network use is ok, false if not
     * {@hide}
     */
    public void setDataDependency(int networkType, boolean met) {
        try {
            mService.setDataDependency(networkType, met);
        } catch (RemoteException e) {
        }
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -191,6 +191,10 @@ public class DummyDataStateTracker implements NetworkStateTracker {
        return new LinkCapabilities(mLinkCapabilities);
    }

    public void setDependencyMet(boolean met) {
        // not supported on this network
    }

    static private void log(String s) {
        Slog.d(TAG, s);
    }
+2 −0
Original line number Diff line number Diff line
@@ -92,4 +92,6 @@ interface IConnectivityManager
    void setGlobalProxy(in ProxyProperties p);

    ProxyProperties getProxy();

    void setDataDependency(int networkType, boolean met);
}
+20 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Messenger;
@@ -493,6 +494,25 @@ public class MobileDataStateTracker implements NetworkStateTracker {
        }
    }

    /**
     * carrier dependency is met/unmet
     * @param met
     */
    public void setDependencyMet(boolean met) {
        Bundle bundle = Bundle.forPair(DataConnectionTracker.APN_TYPE_KEY, mApnType);
        try {
            log("setDependencyMet: E met=" + met);
            Message msg = Message.obtain();
            msg.what = DataConnectionTracker.CMD_SET_DEPENDENCY_MET;
            msg.arg1 = (met ? DataConnectionTracker.ENABLED : DataConnectionTracker.DISABLED);
            msg.setData(bundle);
            mDataConnectionTrackerAc.sendMessage(msg);
            log("setDependencyMet: X met=" + met);
        } catch (NullPointerException e) {
            log("setDependencyMet: X mAc was null" + e);
        }
    }

    @Override
    public String toString() {
        StringBuffer sb = new StringBuffer("Mobile data state: ");
Loading