[ 
https://issues.apache.org/jira/browse/CB-10160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Binh Robles updated CB-10160:
-----------------------------
    Description: 
In src/android/NetworkManager.java, all the static final String constants are 
written in all lowercase. When checking the type in GetType(), the code already 
makes this adjustment: 
{quote}private String getType(NetworkInfo info) {
        if (info != null) {
            String type = 
info.getTypeName().{color:red}toLowerCase{color}(Locale.US);{quote}

However, if type == MOBILE or CELLULAR, the subType is not converted to all 
lowercase:
{quote} 
else if (type.equals(MOBILE) || type.equals(CELLULAR)) {
                type = {color:red}info.getSubtypeName();{color}
                if (type.equals(GSM) ||
                        type.equals(GPRS) ||
{quote}

For me, running on the Android emulator and pushing to a device, this was 
causing the app to always fail every subType comparison, and always return 
Connection.UNKNOWN, resulting in an app that was always 'offline'. 

After debugging the plugin, it looked like subTypes were coming in as 'GSM' and 
'UMTS' in all-caps, and being compared to 'gsm' and 'umts', the lower-case 
pre-defined strings. I added a .toLowerCase() to the subType get, and 
everything seems to be working fine for me:

else if (type.equals(MOBILE) || type.equals(CELLULAR)) {
                {color:green}type = info.getSubtypeName().toLowerCase();{color}
                if (type.equals(GSM) ||

I'm not sure why this was an issue for me, but hasn't been in the past for 
other users. I can submit whatever environment info you might want if you let 
me know. Thanks!

  was:
In src/android/NetworkManager.java, all the static final String constants are 
written in all lowercase. When checking the type in GetType(), the code already 
makes this adjustment: 
{quote}private String getType(NetworkInfo info) {
        if (info != null) {
            String type = 
info.getTypeName().{color:red}toLowerCase{color}(Locale.US);{quote}

However, if type == MOBILE or CELLULAR, the subType is not converted to all 
lowercase:
{quote} 
else if (type.equals(MOBILE) || type.equals(CELLULAR)) {
                type = {color:red}info.getSubtypeName();{color}
                if (type.equals(GSM) ||
                        type.equals(GPRS) ||
{quote}

For me, running on the Android emulator and pushing to a device, this was 
causing the app to always fail every subType comparison, and always return 
Connection.UNKNOWN, resulting in an app that was always 'offline'. 

After debugging the plugin, I added a .toLowerCase() to the subType get, and 
everything seems to be working fine for me:

else if (type.equals(MOBILE) || type.equals(CELLULAR)) {
                {color:green}type = info.getSubtypeName().toLowerCase();{color}
                if (type.equals(GSM) ||

I'm not sure why this was an issue for me, but hasn't been in the past for 
other users. I can submit whatever environment info you might want if you let 
me know. Thanks!


> Android - ConnectionType always returning Connection.UNKNOWN
> ------------------------------------------------------------
>
>                 Key: CB-10160
>                 URL: https://issues.apache.org/jira/browse/CB-10160
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Network Information
>    Affects Versions: 1.1.0
>         Environment: Apache Cordova project utilizing the Ionic Framework on 
> Mac OSX. Building and deploying using Android Studio 1.5. 
>            Reporter: Binh Robles
>              Labels: easyfix
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> In src/android/NetworkManager.java, all the static final String constants are 
> written in all lowercase. When checking the type in GetType(), the code 
> already makes this adjustment: 
> {quote}private String getType(NetworkInfo info) {
>         if (info != null) {
>             String type = 
> info.getTypeName().{color:red}toLowerCase{color}(Locale.US);{quote}
> However, if type == MOBILE or CELLULAR, the subType is not converted to all 
> lowercase:
> {quote} 
> else if (type.equals(MOBILE) || type.equals(CELLULAR)) {
>                 type = {color:red}info.getSubtypeName();{color}
>                 if (type.equals(GSM) ||
>                         type.equals(GPRS) ||
> {quote}
> For me, running on the Android emulator and pushing to a device, this was 
> causing the app to always fail every subType comparison, and always return 
> Connection.UNKNOWN, resulting in an app that was always 'offline'. 
> After debugging the plugin, it looked like subTypes were coming in as 'GSM' 
> and 'UMTS' in all-caps, and being compared to 'gsm' and 'umts', the 
> lower-case pre-defined strings. I added a .toLowerCase() to the subType get, 
> and everything seems to be working fine for me:
> else if (type.equals(MOBILE) || type.equals(CELLULAR)) {
>                 {color:green}type = 
> info.getSubtypeName().toLowerCase();{color}
>                 if (type.equals(GSM) ||
> I'm not sure why this was an issue for me, but hasn't been in the past for 
> other users. I can submit whatever environment info you might want if you let 
> me know. Thanks!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to