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

Commit 276c38c9 authored by Mike Kasick's avatar Mike Kasick Committed by Ricardo Cerqueira
Browse files

Port wimax support changes from CM9.

- Register WiMax service in ContextImpl (fixes 4G toggle).
- Fix misdocumented EXTRA_4G_STATE in WimaxManagerConstants.
- Share wimaxClassLoader between WimaxHelper and ConnectivityService.
- Add ACCESS_4G_RADIO_DISABLE, ACCESS_4G_STATE, and CHANGE_4G_STATE
  permissions to SystemUI.

Note that WimaxManagerConstants was previously misdocumented, confabulating
the lookup key EXTRA_4G_STATE ("4g_state") with EXTRA_WIMAX_STATUS
("wimax_status"), which no longer exists.  This is also fixed.

Change-Id: I4f5973e7bd2ff4c860036df0f38589b34ad72b49
parent c2235045
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -77,6 +77,8 @@ import android.net.wifi.IWifiManager;
import android.net.wifi.WifiManager;
import android.net.wifi.p2p.IWifiP2pManager;
import android.net.wifi.p2p.WifiP2pManager;
import android.net.wimax.WimaxHelper;
import android.net.wimax.WimaxManagerConstants;
import android.nfc.NfcManager;
import android.os.Binder;
import android.os.Bundle;
@@ -597,6 +599,11 @@ class ContextImpl extends Context {
                    final Context outerContext = ctx.getOuterContext();
                    return new ProfileManager (outerContext, ctx.mMainThread.getHandler());
                }});

        registerService(WimaxManagerConstants.WIMAX_SERVICE, new ServiceFetcher() {
                public Object createService(ContextImpl ctx) {
                    return WimaxHelper.createWimaxService(ctx, ctx.mMainThread.getHandler());
                }});
    }

    static ContextImpl getImpl(Context context) {
+1 −2
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ public class WimaxManagerConstants
     * The lookup key for an int that indicates whether Wimax is enabled,
     * disabled, enabling, disabling, or unknown.
     */
    public static final String EXTRA_WIMAX_STATUS = "wimax_status";
    public static final String EXTRA_4G_STATE = "4g_state";

    /**
     * Broadcast intent action indicating that Wimax state has been changed
@@ -48,7 +48,6 @@ public class WimaxManagerConstants
     * initializing, initialized, unknown and ready.
     */
    public static final String EXTRA_WIMAX_STATE = "WimaxState";
    public static final String EXTRA_4G_STATE = "4g_state";
    public static final String EXTRA_WIMAX_STATE_INT = "WimaxStateInt";
    /**
     * The lookup key for an int that indicates whether state of Wimax
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_4G_RADIO_DISABLE" />
    <uses-permission android:name="android.permission.ACCESS_4G_STATE" />
    <uses-permission android:name="android.permission.CHANGE_4G_STATE" />

    <!-- Physical hardware -->
    <uses-permission android:name="android.permission.MANAGE_USB" />
+2 −10
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ import android.net.RouteInfo;
import android.net.SamplingDataTracker;
import android.net.Uri;
import android.net.wifi.WifiStateTracker;
import android.net.wimax.WimaxHelper;
import android.net.wimax.WimaxManagerConstants;
import android.os.AsyncTask;
import android.os.Binder;
@@ -747,8 +748,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        Class wimaxStateTrackerClass = null;
        Class wimaxServiceClass = null;
        Class wimaxManagerClass;
        String wimaxJarLocation;
        String wimaxLibLocation;
        String wimaxManagerClassName;
        String wimaxServiceClassName;
        String wimaxStateTrackerClassName;
@@ -760,10 +759,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {

        if (isWimaxEnabled) {
            try {
                wimaxJarLocation = context.getResources().getString(
                        com.android.internal.R.string.config_wimaxServiceJarLocation);
                wimaxLibLocation = context.getResources().getString(
                        com.android.internal.R.string.config_wimaxNativeLibLocation);
                wimaxManagerClassName = context.getResources().getString(
                        com.android.internal.R.string.config_wimaxManagerClassname);
                wimaxServiceClassName = context.getResources().getString(
@@ -771,10 +766,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                wimaxStateTrackerClassName = context.getResources().getString(
                        com.android.internal.R.string.config_wimaxStateTrackerClassname);

                if (DBG) log("wimaxJarLocation: " + wimaxJarLocation);
                wimaxClassLoader =  new DexClassLoader(wimaxJarLocation,
                        new ContextWrapper(context).getCacheDir().getAbsolutePath(),
                        wimaxLibLocation, ClassLoader.getSystemClassLoader());
                wimaxClassLoader = WimaxHelper.getWimaxClassLoader(context);

                try {
                    wimaxManagerClass = wimaxClassLoader.loadClass(wimaxManagerClassName);