<commit_before>cordova-sandbox
===============

A simple cordova sandbox to play a little, work a little 

para agregar el boton de compartir cuando se abre un pdf en android,
Modificacion en el AndroidManifest (Agregar dentro del activity):

```xml
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <action android:name="android.intent.action.SEND_MULTIPLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="application/pdf" />
</intent-filter>
```<commit_msg>agrego la configuracion del plugin al readme<commit_after>cordova-sandbox
===============

A simple cordova sandbox to play a little, work a little 

para agregar el boton de compartir cuando se abre un pdf en android,
Modificacion en el AndroidManifest (Agregar dentro del activity):

```xml
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <action android:name="android.intent.action.SEND_MULTIPLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="application/pdf" />
</intent-filter>
```

###### Notificaciones desde el servidor
Implemento PushPlugin https://github.com/phonegap-build/PushPlugin

Tener en cuenta al instalarlo de comprobar que el AndroidManifest este de acuerdo a lo que marca el plugin

Para que funcione correctamente, se realizo una modificacion en GCMIntentService.java:

en la linea 67, se modifica
```groovy
if ( PushPlugin.isInForeground() ){
```
por
```groovy
if ( PushPlugin.isInForeground() && PushPlugin.isActive() ){
```

en index.html esta el codigo javascript para manejar el registro y manejo de la notificacion

```javascript
document.addEventListener('deviceready', function () {
    pushNotification = window.plugins.pushNotification;
    pushNotification.register(
        successHandler,
        errorHandler,
        {
            "senderID":"Project Number",
            "ecb":"onNotification" //metodo que se llama una vez que android retorna el token del dispositivo, o cuando llega una notificacion
        });
})
```
el Project Number, se genera al registrar el proyecto en android, https://console.developers.google.com/project
Ahi, tambien hay que obtener el Api Key, en la seccion de APIS & AUTH -> Credentials, Public API access

```javascript
function onNotification(e) {
    $("#resultado").append('<li>EVENT -> RECEIVED:' + e.event + '</li>');

    switch( e.event )
    {
    case 'registered':
        if ( e.regid.length > 0 )
        {
            // e.regid ->token de registro del dispositivo, enviar al servidor
        }
    break;

    case 'message':
        //Notificacion del servidor
        if ( e.foreground )
        {
            //Notificacion mientras la app esta en primer plano
        }
        else
        {  
            //la aplicacion no estaba en primer plano
            if ( e.coldstart )
            {
                //la aplicacion estaba cerrada, se ejecuto al abrir la app por la notificacion
            }
            else
            {
                //la app se estaba ejecutando, pero en segundo plano
            }
        }
    break;

    case 'error':
        $("#resultado").append('<li>ERROR -> MSG:' + e.msg + '</li>');
    break;

    default:
        $("#resultado").append('<li>EVENT -> Unknown, an event was received and we do not know what it is</li>');
    break;
  }
}
```
{'fraction_non_alphanumeric': 0.11577082102776137, 'fraction_numerical': 0.0008860011813349084, 'mean_word_length': 2.9292343387471, 'pattern_counts': {'":': 2, '<': 21, '<?xml version=': 0, '>': 27, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1609061', 'n_tokens_mistral': 1021, 'n_tokens_neox': 981, 'n_words': 314}