Skip to content

Commit

Permalink
add doc
Browse files Browse the repository at this point in the history
  • Loading branch information
lesclaz committed Dec 23, 2023
1 parent ea26a5c commit 77b5192
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 30 deletions.
74 changes: 47 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ implementation("com.github.suitetecsa.sdk-android:{última-versión}")
Para obtener información sobre las tarjetas SIM insertadas en el dispositivo, puedes seguir estos pasos:

#### Kotlin

```kotlin
// Instancia SimCardsAPI
val simCardsAPI = SimCardsAPI
Expand All @@ -29,6 +30,7 @@ val simCards = simCardsAPI.getSimCards()
```

#### Java

```java
// Instancia SimCardsAPI
SimCardsAPI simCardsAPI = SimCardsAPI
Expand All @@ -39,11 +41,26 @@ SimCardsAPI simCardsAPI = SimCardsAPI
List<SimCard> simCards = simCardsAPI.getSimCards();
```

### Realizar llamadas con una SIM

#### Kotlin

```kotlin
simcCards.last().makeCall(context, "51234567")
```

#### Java

```java
SimCardExtensionKt.makeCall(simCards.get(0), context, "51234567")
```

### Obtener saldo de la tarjeta SIM

Para obtener el saldo de la primera tarjeta SIM de la lista, puedes seguir estos pasos:

#### Kotlin

```kotlin
// Obtener la primera SIM de la lista
val firstSimCard = simCards.first()
Expand Down Expand Up @@ -72,6 +89,7 @@ firstSimCard.ussdExecute(
```

#### Java

```java
// Obtener la primera SIM de la lista
SimCard firstSimCard = simCards.get(0);
Expand Down Expand Up @@ -105,6 +123,7 @@ SimCardExtensionKt.ussdExecute(firstSimCard, "*222#", new ConsultBalanceCallBack
`consultBalance` es una función de extensión que realiza las consultas de saldo automáticamente, consulta primero el saldo inicial, y dependiendo de la información que extraiga consulta los demás saldos. O sea, que si en el saldo inicial no detecta paquetes de datos, no ejecutará la consulta (\*222\*328#). Esto puede ser un inconveniente si desea consultar siempre el estado de la tarifa por consumo, una forma de solucionarlo es comprobar si la linea posee información de planes de datos y si no fuese el caso hacer la consulta del estado de la TPC usando la función `ussdExecute`.

#### Kotlin

```kotlin
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
simCard.consultBalance(
Expand Down Expand Up @@ -178,79 +197,80 @@ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
```

#### Java

```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
SimCardExtensionKt.ussdExecute(firstSimCard, new ConsultBalanceCallBack() {
@SuppressLint("MissingPermission")
@Override
public void onRequesting(@NonNull UssdConsultType consultType) {
String consultMessage;
if (consultType instanceof UssdConsultType.BonusBalance) {
SimCardExtensionKt.ussdExecute(firstSimCard, new ConsultBalanceCallBack() {
@SuppressLint("MissingPermission")
@Override
public void onRequesting(@NonNull UssdConsultType consultType) {
String consultMessage;
if (consultType instanceof UssdConsultType.BonusBalance) {
consultMessage = "Consultando Bonos...";
} else if (consultType instanceof UssdConsultType.DataBalance) {
} else if (consultType instanceof UssdConsultType.DataBalance) {
consultMessage = "Consultando Datos...";
} else if (consultType instanceof UssdConsultType.MessagesBalance) {
} else if (consultType instanceof UssdConsultType.MessagesBalance) {
consultMessage = "Consultando SMS...";
} else if (consultType instanceof UssdConsultType.PrincipalBalance) {
} else if (consultType instanceof UssdConsultType.PrincipalBalance) {
consultMessage = "Consultando Saldo...";
} else if (consultType instanceof UssdConsultType.VoiceBalance) {
} else if (consultType instanceof UssdConsultType.VoiceBalance) {
consultMessage = "Consultando Minutos...";
} else {
} else {
consultMessage = "";
}
Toast.makeText(context, consultMessage, Toast.LENGTH_LONG).show();
}
}
Toast.makeText(context, consultMessage, Toast.LENGTH_LONG).show();
}

@Override
public void onSuccess(@NonNull UssdResponse ussdResponse) {
if (ussdResponse instanceof UssdResponse.BonusBalance) {
@Override
public void onSuccess(@NonNull UssdResponse ussdResponse) {
if (ussdResponse instanceof UssdResponse.BonusBalance) {
// Contiene la informacion extraida de la consulta de bono (*222*266#).
// Es la ultima operacion en realizarse
Toast.makeText(
context,
((UssdResponse.BonusBalance) ussdResponse).getCredit(),
Toast.LENGTH_LONG
).show();
} else if (ussdResponse instanceof UssdResponse.DataBalance) {
} else if (ussdResponse instanceof UssdResponse.DataBalance) {
// Contiene la informacion extraida de la consulta de datos (*222*328#).
// Solo se ejecuta si se detecta paquetes de datos en el saldo principal.
Toast.makeText(
context,
((UssdResponse.DataBalance) ussdResponse).getUsageBasedPricing(),
Toast.LENGTH_LONG
).show();
} else if (ussdResponse instanceof UssdResponse.MessagesBalance) {
} else if (ussdResponse instanceof UssdResponse.MessagesBalance) {
// Contiene la informacion extraida de la consulta de mensajes (*222*767#).
// Solo se ejecuta si se detecta paquetes de SMS en el saldo principal.
Toast.makeText(
context,
((UssdResponse.MessagesBalance) ussdResponse).getCount(),
Toast.LENGTH_LONG
).show();
} else if (ussdResponse instanceof UssdResponse.PrincipalBalance) {
} else if (ussdResponse instanceof UssdResponse.PrincipalBalance) {
// Contiene la informacion extraida de la consulta de saldo (*222#).
// Es la primera operacion en realizarse
Toast.makeText(
context,
((UssdResponse.PrincipalBalance) ussdResponse).getCredit(),
Toast.LENGTH_LONG
).show();
} else if (ussdResponse instanceof UssdResponse.VoiceBalance) {
} else if (ussdResponse instanceof UssdResponse.VoiceBalance) {
// Contiene la informacion extraida de la consulta de mensajes (*222*869#).
// Solo se ejecuta si se detecta paquetes de Voz en el saldo principal.
Toast.makeText(
context,
((UssdResponse.VoiceBalance) ussdResponse).getTime(),
Toast.LENGTH_LONG
).show();
}
}
}

@Override
public void onFailure(@NonNull Throwable throwable) {
throwable.printStackTrace();
}
});
@Override
public void onFailure(@NonNull Throwable throwable) {
throwable.printStackTrace();
}
});
}
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package cu.suitetecsa.sdkandroid.presentation.balance
import android.annotation.SuppressLint
import android.net.Uri
import android.os.Build
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.annotation.RequiresPermission
import androidx.compose.runtime.State
Expand Down Expand Up @@ -183,7 +182,6 @@ class BalancesViewModel @Inject constructor(
val ussdCode = if (!isActive) {
"*133*1*1*2${Uri.parse("#")}"
} else { "*133*1*1*1${Uri.parse("#")}" }
val successMessage = "Su solicitud esta siendo procesada."
currentSimCard?.also {
it.ussdExecute(
ussdCode,
Expand All @@ -199,7 +197,7 @@ class BalancesViewModel @Inject constructor(
override fun onSuccess(ussdResponse: UssdResponse) {
when (ussdResponse) {
is UssdResponse.Custom -> {
if (ussdResponse.response == successMessage) {
if (ussdResponse.response == UssdResponse.PROCESSING_RESPONSE) {
_state.value.data?.let { data ->
_state.value = _state.value.copy(
data = data.copy(usageBasedPricing = isActive)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,8 @@ sealed class UssdResponse {
) : UssdResponse()

data class Custom(val response: String) : UssdResponse()

companion object {
const val PROCESSING_RESPONSE = "Su solicitud esta siendo procesada."
}
}

0 comments on commit 77b5192

Please sign in to comment.