17a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt/*
27a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * Copyright (C) 2006 The Android Open Source Project
37a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt *
47a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * Licensed under the Apache License, Version 2.0 (the "License");
57a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * you may not use this file except in compliance with the License.
67a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * You may obtain a copy of the License at
77a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt *
87a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt *      http://www.apache.org/licenses/LICENSE-2.0
97a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt *
107a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * Unless required by applicable law or agreed to in writing, software
117a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * distributed under the License is distributed on an "AS IS" BASIS,
127a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * See the License for the specific language governing permissions and
147a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt * limitations under the License.
157a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt */
167a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
177a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltpackage com.android.internal.telephony.mocks;
187a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
197a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.net.LinkProperties;
207a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.net.NetworkCapabilities;
217a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.os.Bundle;
227a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.os.IBinder;
237a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.os.RemoteException;
247a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.os.UserHandle;
257a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.telephony.CellInfo;
267a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.telephony.ServiceState;
277a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.telephony.SignalStrength;
287a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.telephony.SubscriptionManager;
297a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport android.telephony.VoLteServiceState;
307a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport com.android.internal.telephony.IPhoneStateListener;
317a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport com.android.internal.telephony.IOnSubscriptionsChangedListener;
327a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport com.android.internal.telephony.ITelephonyRegistry;
337a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
347a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport java.util.ArrayList;
357a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltimport java.util.List;
367a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
377a477263108748903cf5a4151a4e8b739f12264aRobert Greenwaltpublic class TelephonyRegistryMock extends ITelephonyRegistry.Stub {
387a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
397a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    private static class Record {
407a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        String callingPackage;
417a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
427a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        IBinder binder;
437a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
447a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        IPhoneStateListener callback;
457a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        IOnSubscriptionsChangedListener onSubscriptionsChangedListenerCallback;
467a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
477a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        int callerUserId;
487a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
497a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        int events;
507a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
517a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
527a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
537a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        int phoneId = SubscriptionManager.INVALID_PHONE_INDEX;
547a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
557a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        boolean canReadPhoneState;
567a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
577a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        boolean matchPhoneStateListenerEvent(int events) {
587a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            return (callback != null) && ((events & this.events) != 0);
597a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        }
607a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
617a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        boolean matchOnSubscriptionsChangedListener() {
627a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            return (onSubscriptionsChangedListenerCallback != null);
637a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        }
647a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
657a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        @Override
667a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        public String toString() {
677a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            return "{callingPackage=" + callingPackage + " binder=" + binder
687a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    + " callback=" + callback
697a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    + " onSubscriptionsChangedListenererCallback="
707a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                                            + onSubscriptionsChangedListenerCallback
717a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    + " callerUserId=" + callerUserId + " subId=" + subId + " phoneId=" + phoneId
727a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    + " events=" + Integer.toHexString(events)
737a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    + " canReadPhoneState=" + canReadPhoneState + "}";
747a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        }
757a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
767a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
777a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    private final ArrayList<IBinder> mRemoveList = new ArrayList<IBinder>();
787a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    private final ArrayList<Record> mRecords = new ArrayList<Record>();
797a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    private boolean hasNotifySubscriptionInfoChangedOccurred = false;
807a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
817a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public TelephonyRegistryMock() {
827a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
837a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
847a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    private void remove(IBinder binder) {
857a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        synchronized (mRecords) {
867a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            final int recordCount = mRecords.size();
877a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            for (int i = 0; i < recordCount; i++) {
887a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                if (mRecords.get(i).binder == binder) {
897a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    mRecords.remove(i);
907a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    return;
917a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                }
927a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            }
937a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        }
947a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
957a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
967a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    private void handleRemoveListLocked() {
977a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        int size = mRemoveList.size();
987a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        if (size > 0) {
997a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            for (IBinder b: mRemoveList) {
1007a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                remove(b);
1017a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            }
1027a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            mRemoveList.clear();
1037a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        }
1047a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1057a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1067a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1077a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
1087a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void addOnSubscriptionsChangedListener(String callingPackage,
1097a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            IOnSubscriptionsChangedListener callback) {
1107a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        Record r;
1117a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1127a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        synchronized (mRecords) {
1137a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            // register
1147a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            find_and_add: {
1157a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                IBinder b = callback.asBinder();
1167a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                final int N = mRecords.size();
1177a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                for (int i = 0; i < N; i++) {
1187a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    r = mRecords.get(i);
1197a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    if (b == r.binder) {
1207a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                        break find_and_add;
1217a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    }
1227a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                }
1237a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                r = new Record();
1247a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                r.binder = b;
1257a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                mRecords.add(r);
1267a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            }
1277a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1287a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            r.onSubscriptionsChangedListenerCallback = callback;
1297a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            r.callingPackage = callingPackage;
1307a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            r.callerUserId = UserHandle.getCallingUserId();
1317a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            r.events = 0;
1327a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            r.canReadPhoneState = true; // permission has been enforced above
1337a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            // Always notify when registration occurs if there has been a notification.
1347a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            if (hasNotifySubscriptionInfoChangedOccurred) {
1357a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                try {
1367a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    r.onSubscriptionsChangedListenerCallback.onSubscriptionsChanged();
1377a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                } catch (RemoteException e) {
1387a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    remove(r.binder);
1397a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                }
1407a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            } else {
1417a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                //log("listen oscl: hasNotifySubscriptionInfoChangedOccurred==false no callback");
1427a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            }
1437a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        }
1447a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1457a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1467a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1477a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
1487a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void removeOnSubscriptionsChangedListener(String pkgForDebug,
1497a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            IOnSubscriptionsChangedListener callback) {
1507a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        remove(callback.asBinder());
1517a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1527a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1537a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
1547a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifySubscriptionInfoChanged() {
1557a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        synchronized (mRecords) {
1567a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            if (!hasNotifySubscriptionInfoChangedOccurred) {
1577a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                //log("notifySubscriptionInfoChanged: first invocation mRecords.size="
1587a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                //        + mRecords.size());
1597a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            }
1607a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            hasNotifySubscriptionInfoChangedOccurred = true;
1617a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            mRemoveList.clear();
1627a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            for (Record r : mRecords) {
1637a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                if (r.matchOnSubscriptionsChangedListener()) {
1647a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    try {
1657a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                        r.onSubscriptionsChangedListenerCallback.onSubscriptionsChanged();
1667a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    } catch (RemoteException ex) {
1677a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                        mRemoveList.add(r.binder);
1687a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                    }
1697a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt                }
1707a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            }
1717a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            handleRemoveListLocked();
1727a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        }
1737a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1747a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1757a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
1767a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void listen(String pkg, IPhoneStateListener callback, int events, boolean notifyNow) {
1777a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
1787a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1797a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1807a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
1817a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void listenForSubscriber(int subId, String pkg, IPhoneStateListener callback, int events,
182d58f5ac4f8d9c0ef35ea16849fad21c2d3c638b6fionaxu                                    boolean notifyNow) {
1837a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
1847a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1857a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1867a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
1877a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCallState(int state, String incomingNumber) {
1887a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
1897a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1907a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1917a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
192bd3158360ca73324921350a1c61336af7f9c6d8dShishir Agrawal    public void notifyCallStateForPhoneId(int phoneId, int subId, int state,
193bd3158360ca73324921350a1c61336af7f9c6d8dShishir Agrawal                String incomingNumber) {
1947a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
1957a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
1967a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
1977a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
1987a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyServiceStateForPhoneId(int phoneId, int subId, ServiceState state) {
1997a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2007a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2017a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2027a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
203bd3158360ca73324921350a1c61336af7f9c6d8dShishir Agrawal    public void notifySignalStrengthForPhoneId(int phoneId, int subId,
204bd3158360ca73324921350a1c61336af7f9c6d8dShishir Agrawal                SignalStrength signalStrength) {
2057a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2067a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2077a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2087a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2097a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyMessageWaitingChangedForPhoneId(int phoneId, int subId, boolean mwi) {
2107a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2117a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2127a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2137a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2147a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCallForwardingChanged(boolean cfi) {
2157a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2167a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2177a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2187a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2197a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCallForwardingChangedForSubscriber(int subId, boolean cfi) {
2207a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2217a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2227a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2237a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2247a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyDataActivity(int state) {
2257a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2267a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2277a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2287a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2297a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyDataActivityForSubscriber(int subId, int state) {
2307a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2317a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2327a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2337a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2347a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyDataConnection(int state, boolean isDataConnectivityPossible,
2357a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            String reason, String apn, String apnType, LinkProperties linkProperties,
2367a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            NetworkCapabilities networkCapabilities, int networkType, boolean roaming) {
2377a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2387a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2397a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2407a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2417a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyDataConnectionForSubscriber(int subId, int state,
2427a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            boolean isDataConnectivityPossible, String reason, String apn, String apnType,
2437a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            LinkProperties linkProperties, NetworkCapabilities networkCapabilities,
2447a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            int networkType, boolean roaming) {
2457a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2467a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2477a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2487a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2497a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyDataConnectionFailed(String reason, String apnType) {
2507a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2517a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2527a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2537a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2547a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyDataConnectionFailedForSubscriber(int subId, String reason, String apnType) {
2557a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2567a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2577a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2587a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2597a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCellLocation(Bundle cellLocation) {
2607a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2617a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2627a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2637a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2647a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCellLocationForSubscriber(int subId, Bundle cellLocation) {
2657a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2667a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2677a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2687a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2697a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyOtaspChanged(int otaspMode) {
2707a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2717a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2727a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2737a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2747a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCellInfo(List<CellInfo> cellInfo) {
2757a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2767a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2777a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2787a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2797a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyPreciseCallState(int ringingCallState, int foregroundCallState,
2807a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            int backgroundCallState) {
2817a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2827a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2837a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2847a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2857a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyDisconnectCause(int disconnectCause, int preciseDisconnectCause) {
2867a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2877a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2887a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2897a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2907a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyPreciseDataConnectionFailed(String reason, String apnType, String apn,
2917a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt            String failCause) {
2927a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2937a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2947a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
2957a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
2967a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCellInfoForSubscriber(int subId, List<CellInfo> cellInfo) {
2977a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
2987a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
2997a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
3007a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
3017a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyVoLteServiceStateChanged(VoLteServiceState lteState) {
3027a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
3037a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
3047a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
3057a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
3067a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyOemHookRawEventForSubscriber(int subId, byte[] rawData) {
3077a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
3087a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
3097a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt
3107a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    @Override
3117a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    public void notifyCarrierNetworkChange(boolean active) {
3127a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt        throw new RuntimeException("Not implemented");
3137a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt    }
3147a477263108748903cf5a4151a4e8b739f12264aRobert Greenwalt}
315