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

Commit e91a3f52 authored by Yuhao Zheng's avatar Yuhao Zheng Committed by Android (Google) Code Review
Browse files

Merge "Add a hidden API to toggle airplane mode." into klp-dev

parents 9720d5e1 5cd1a0e8
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -1476,4 +1476,20 @@ public class ConnectivityManager {
        } catch (RemoteException e) {
        } catch (RemoteException e) {
        }
        }
    }
    }

    /**
     * Set the value for enabling/disabling airplane mode
     *
     * @param enable whether to enable airplane mode or not
     *
     * <p>This method requires the call to hold the permission
     * {@link android.Manifest.permission#CONNECTIVITY_INTERNAL}.
     * @hide
     */
    public void setAirplaneMode(boolean enable) {
        try {
            mService.setAirplaneMode(enable);
        } catch (RemoteException e) {
        }
    }
}
}
+2 −0
Original line number Original line Diff line number Diff line
@@ -156,4 +156,6 @@ interface IConnectivityManager
    LinkQualityInfo[] getAllLinkQualityInfo();
    LinkQualityInfo[] getAllLinkQualityInfo();


    void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url);
    void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url);

    void setAirplaneMode(boolean enable);
}
}
+15 −0
Original line number Original line Diff line number Diff line
@@ -4681,6 +4681,21 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        setProvNotificationVisible(visible, networkType, extraInfo, url);
        setProvNotificationVisible(visible, networkType, extraInfo, url);
    }
    }


    @Override
    public void setAirplaneMode(boolean enable) {
        enforceConnectivityInternalPermission();
        final ContentResolver cr = mContext.getContentResolver();
        Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, enable ? 1 : 0);
        Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
        intent.putExtra("state", enable);
        final long ident = Binder.clearCallingIdentity();
        try {
            mContext.sendBroadcast(intent);
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
    }

    private void onUserStart(int userId) {
    private void onUserStart(int userId) {
        synchronized(mVpns) {
        synchronized(mVpns) {
            Vpn userVpn = mVpns.get(userId);
            Vpn userVpn = mVpns.get(userId);