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

Commit eb6cde75 authored by Mike Kasick's avatar Mike Kasick Committed by Gerrit Code Review
Browse files

PowerWidget: Re-enable LTE button.

- Implement toggleLTE,
  from CM 10.0: I3f7521f5ec4e9f9106c58afd4d5b10c7086b55fd.
- Support all LTE network modes defined in RILConstants and
  com.android.internal.telephony.Phone.
- Cleanup: Remove unused LTE_MODE, restrict state change to updateState.
- Also use Settings.Global.getInt() for PREFERRED_NETWORK_MODE.

Change-Id: I43bb2491d650d641d243d3cb67ee80bc7c8f5cdf
parent 1dde8f0d
Loading
Loading
Loading
Loading
+0 −7
Original line number Original line Diff line number Diff line
@@ -2631,13 +2631,6 @@ public final class Settings {
        */
        */
        public static final String EXPANDED_NETWORK_MODE = "expanded_network_mode";
        public static final String EXPANDED_NETWORK_MODE = "expanded_network_mode";


        /**
         * Notification Power Widget - Custom LTE Toggle
         * 1 - lte on, 0 - lte off
         * @hide
         */
        public static final String LTE_MODE = "lte_mode";

        /**
        /**
        * Notification Power Widget - Custom Screen Timeout
        * Notification Power Widget - Custom Screen Timeout
        * @hide
        * @hide
+18 −19
Original line number Original line Diff line number Diff line
package com.android.systemui.statusbar.powerwidget;
package com.android.systemui.statusbar.powerwidget;


import android.content.ContentResolver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.net.Uri;
import android.net.Uri;
@@ -18,28 +17,27 @@ public class LTEButton extends PowerButton{


    private static final List<Uri> OBSERVED_URIS = new ArrayList<Uri>();
    private static final List<Uri> OBSERVED_URIS = new ArrayList<Uri>();
    static {
    static {
        OBSERVED_URIS.add(Settings.System.getUriFor(Settings.System.LTE_MODE));
        OBSERVED_URIS.add(Settings.Global.getUriFor(Settings.Global.PREFERRED_NETWORK_MODE));
    }
    }


    public LTEButton() { mType = BUTTON_LTE; }
    public LTEButton() { mType = BUTTON_LTE; }


    @Override
    @Override
    protected void updateState(Context context) {
    protected void updateState(Context context) {
        ContentResolver resolver = context.getContentResolver();
        int network = getCurrentPreferredNetworkMode(context);
        int network = getCurrentPreferredNetworkMode(context);
        switch(network) {
        switch(network) {
            case Phone.NT_MODE_GLOBAL:
            case Phone.NT_MODE_GLOBAL:
/*
            case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
            case Phone.NT_MODE_LTE_GSM_WCDMA:
            case Phone.NT_MODE_LTE_GSM_WCDMA:
            case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
            case Phone.NT_MODE_LTE_ONLY:
            case Phone.NT_MODE_LTE_ONLY:
            case Phone.NT_MODE_LTE_WCDMA:
                mIcon = R.drawable.stat_lte_on;
                mIcon = R.drawable.stat_lte_on;
                mState = STATE_ENABLED;
                mState = STATE_ENABLED;
                Settings.System.putInt(resolver, Settings.System.LTE_MODE, 1);
                break;
                break;*/
            default:
            default:
                mIcon = R.drawable.stat_lte_off;
                mIcon = R.drawable.stat_lte_off;
                mState = STATE_DISABLED;
                mState = STATE_DISABLED;
                Settings.System.putInt(resolver, Settings.System.LTE_MODE, 0);
                break;
                break;
        }
        }
    }
    }
@@ -49,17 +47,18 @@ public class LTEButton extends PowerButton{
        TelephonyManager tm = (TelephonyManager)
        TelephonyManager tm = (TelephonyManager)
            context.getSystemService(Context.TELEPHONY_SERVICE);
            context.getSystemService(Context.TELEPHONY_SERVICE);
        int network = getCurrentPreferredNetworkMode(context);
        int network = getCurrentPreferredNetworkMode(context);
        ContentResolver resolver = context.getContentResolver();
        switch(network) {
        if (Phone.NT_MODE_GLOBAL == network/* ||
            case Phone.NT_MODE_GLOBAL:
              Phone.NT_MODE_LTE_GSM_WCDMA == network*/) {
            case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
            //tm.toggleLTE(false);                                   // TODO: ******* Disabled for now ************
            case Phone.NT_MODE_LTE_GSM_WCDMA:
            mState = STATE_DISABLED;
            case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
            Settings.System.putInt(resolver, Settings.System.LTE_MODE, 0);
            case Phone.NT_MODE_LTE_ONLY:
        } else if (Phone.NT_MODE_CDMA == network/* ||
            case Phone.NT_MODE_LTE_WCDMA:
                     tm.getLteOnGsmMode() != 0*/) {
                tm.toggleLTE(false);
            //tm.toggleLTE(true);                                    // TODO: ******* Disabled for now ************
                break;
            mState = STATE_ENABLED;
            default:
            Settings.System.putInt(resolver, Settings.System.LTE_MODE, 1);
                tm.toggleLTE(true);
                break;
        }
        }
    }
    }


@@ -80,7 +79,7 @@ public class LTEButton extends PowerButton{
    private static int getCurrentPreferredNetworkMode(Context context) {
    private static int getCurrentPreferredNetworkMode(Context context) {
        int network = -1;
        int network = -1;
        try {
        try {
            network = Settings.Secure.getInt(context.getContentResolver(),
            network = Settings.Global.getInt(context.getContentResolver(),
                    Settings.Global.PREFERRED_NETWORK_MODE);
                    Settings.Global.PREFERRED_NETWORK_MODE);
        } catch (SettingNotFoundException e) {
        } catch (SettingNotFoundException e) {
            e.printStackTrace();
            e.printStackTrace();
+11 −0
Original line number Original line Diff line number Diff line
@@ -607,6 +607,17 @@ public class TelephonyManager {
        }
        }
    }
    }


    /**
     * {@hide}
     */
    public void toggleLTE(boolean on) {
        try {
            getITelephony().toggleLTE(on);
        } catch (RemoteException e) {
            //Silently fail
        }
    }

    /** Unknown network class. {@hide} */
    /** Unknown network class. {@hide} */
    public static final int NETWORK_CLASS_UNKNOWN = 0;
    public static final int NETWORK_CLASS_UNKNOWN = 0;
    /** Class of broadly defined "2G" networks. {@hide} */
    /** Class of broadly defined "2G" networks. {@hide} */
+6 −0
Original line number Original line Diff line number Diff line
@@ -44,6 +44,12 @@ interface ITelephony {
     */
     */
    void call(String number);
    void call(String number);


    /**
     * Toggle between 3G and LTE (NT_MODE_CDMA, NT_MODE_GLOBAL)
     * @param boolean to turn on and off LTE
     */
    void toggleLTE(boolean on);

    /**
    /**
     * If there is currently a call in progress, show the call screen.
     * If there is currently a call in progress, show the call screen.
     * The DTMF dialpad may or may not be visible initially, depending on
     * The DTMF dialpad may or may not be visible initially, depending on