total review

This commit is contained in:
OnlyPapy98
2026-04-03 19:30:06 +02:00
parent 4eaca7e1d8
commit c0e5072523
10 changed files with 177 additions and 130 deletions

View File

@@ -4,10 +4,10 @@
<selectionStates> <selectionStates>
<SelectionState runConfigName="app"> <SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" /> <option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2026-02-13T13:45:19.610071900Z"> <DropdownSelection timestamp="2026-04-03T13:27:33.582048600Z">
<Target type="DEFAULT_BOOT"> <Target type="DEFAULT_BOOT">
<handle> <handle>
<DeviceId pluginId="PhysicalDevice" identifier="serial=5051918437" /> <DeviceId pluginId="PhysicalDevice" identifier="serial=5051917024" />
</handle> </handle>
</Target> </Target>
</DropdownSelection> </DropdownSelection>

View File

@@ -1,3 +1,5 @@
import java.util.Properties
plugins { plugins {
alias(libs.plugins.android.application) alias(libs.plugins.android.application)
alias(libs.plugins.google.android.libraries.mapsplatform.secrets.gradle.plugin) alias(libs.plugins.google.android.libraries.mapsplatform.secrets.gradle.plugin)
@@ -5,6 +7,13 @@ plugins {
alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.android)
} }
val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("local.properties")
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(keystorePropertiesFile.inputStream())
}
android { android {
namespace = "com.example.quiz" namespace = "com.example.quiz"
compileSdk = 34 compileSdk = 34
@@ -19,22 +28,37 @@ android {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
} }
signingConfigs {
create("release") {
storeFile = file(keystoreProperties["STORE_FILE"] as String)
storePassword = keystoreProperties["STORE_PASSWORD"] as String
keyAlias = keystoreProperties["KEY_ALIAS"] as String
keyPassword = keystoreProperties["KEY_PASSWORD"] as String
}
}
buildTypes { buildTypes {
release { release {
isMinifyEnabled = false isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
proguardFiles( proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"), getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro" "proguard-rules.pro"
) )
} }
} }
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_11 sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11
} }
buildFeatures { buildFeatures {
viewBinding = true viewBinding = true
} }
kotlinOptions { kotlinOptions {
jvmTarget = "17" jvmTarget = "17"
} }
@@ -42,41 +66,50 @@ android {
dependencies { dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar")))) implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
implementation(libs.room.runtime) implementation(libs.room.runtime)
annotationProcessor(libs.room.compiler)
implementation("com.github.NaikSoftware:StompProtocolAndroid:1.6.6") implementation("com.github.NaikSoftware:StompProtocolAndroid:1.6.6")
// RxJava (déjà présent normalement)
implementation("io.reactivex.rxjava2:rxjava:2.2.21") implementation("io.reactivex.rxjava2:rxjava:2.2.21")
implementation("io.reactivex.rxjava2:rxandroid:2.1.1") implementation("io.reactivex.rxjava2:rxandroid:2.1.1")
annotationProcessor(libs.room.compiler)
implementation(libs.stompprotocolandroid) implementation(libs.retrofit)
implementation(libs.okhttp)
implementation(libs.logging.interceptor)
implementation(libs.converter.gson)
implementation(libs.kotlinx.coroutines.android)
implementation(libs.hilt.android)
annotationProcessor(libs.hilt.compiler)
implementation(libs.recyclerview.v7)
implementation(libs.appcompat)
implementation(libs.material)
implementation(libs.constraintlayout)
implementation(libs.navigation.fragment)
implementation(libs.navigation.ui)
implementation(libs.play.services.maps)
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
implementation("androidx.camera:camera-camera2:1.2.3") implementation("androidx.camera:camera-camera2:1.2.3")
implementation("androidx.camera:camera-lifecycle:1.2.3") implementation("androidx.camera:camera-lifecycle:1.2.3")
implementation("androidx.camera:camera-view:1.2.3") implementation("androidx.camera:camera-view:1.2.3")
implementation("androidx.camera:camera-core:1.2.3") implementation("androidx.camera:camera-core:1.2.3")
implementation("com.google.mlkit:barcode-scanning:17.2.0") implementation("com.google.mlkit:barcode-scanning:17.2.0")
implementation(libs.retrofit)
implementation(libs.okhttp)
implementation(libs.logging.interceptor)
implementation(libs.kotlinx.coroutines.android)
implementation(libs.converter.gson)
implementation(libs.hilt.android)
annotationProcessor(libs.hilt.compiler)
implementation(libs.rxjava)
implementation(libs.rxandroid)
implementation(libs.recyclerview.v7)
implementation(libs.appcompat)
implementation(libs.material)
implementation(libs.google.core)
implementation(libs.zxing.android.embedded) implementation(libs.zxing.android.embedded)
implementation(libs.constraintlayout)
implementation(libs.navigation.fragment)
implementation(libs.navigation.ui)
implementation(libs.play.services.maps)
implementation(project(":printama")) implementation(project(":printama"))
testImplementation(libs.junit) testImplementation(libs.junit)
androidTestImplementation(libs.ext.junit) androidTestImplementation(libs.ext.junit)
androidTestImplementation(libs.espresso.core) androidTestImplementation(libs.espresso.core)
implementation("androidx.annotation:annotation:1.7.1")
} }

View File

@@ -27,6 +27,7 @@ import com.example.quiz.utils.MessageDialog;
import com.example.quiz.utils.Result; import com.example.quiz.utils.Result;
import com.example.quiz.utils.SharedPrefsHelper; import com.example.quiz.utils.SharedPrefsHelper;
import com.example.quiz.viewModel.AgentViewModel; import com.example.quiz.viewModel.AgentViewModel;
import com.example.quiz.viewModel.LogsViewModel;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -47,6 +48,7 @@ public class AgentDetails extends Fragment {
private String agentId; private String agentId;
private FragmentAgentDetailsBinding binding; private FragmentAgentDetailsBinding binding;
MultiTypeOfBetsAdapter multiTypeOfBetsAdapter; MultiTypeOfBetsAdapter multiTypeOfBetsAdapter;
LogsViewModel logsViewModel;
private AgentViewModel agentViewModel; private AgentViewModel agentViewModel;
private boolean userInteraction = false; private boolean userInteraction = false;
@@ -91,6 +93,7 @@ public class AgentDetails extends Fragment {
allowedBetTypes = new Restriction(); allowedBetTypes = new Restriction();
prefsHelper = SharedPrefsHelper.getInstance(getContext()); prefsHelper = SharedPrefsHelper.getInstance(getContext());
loaderDialog = new LoaderDialog(getContext()); loaderDialog = new LoaderDialog(getContext());
logsViewModel = new ViewModelProvider(this).get(LogsViewModel.class);
return binding.getRoot(); return binding.getRoot();
} }
@@ -130,6 +133,8 @@ public class AgentDetails extends Fragment {
case SUCCESS:{ case SUCCESS:{
loaderDialog.dismiss(); loaderDialog.dismiss();
MessageDialog.showSuccess(getContext(), "L'accès a été mis à jour"); MessageDialog.showSuccess(getContext(), "L'accès a été mis à jour");
String logsMessage = !b? "Activation de l'accès du sous agent":"Désactivation de l'accès du sous agent";
logsViewModel.insertLog(prefsHelper.get("id"), !b?"ACTIVATION":"DESACTIVATION",message+" "+agent.getCode(), System.currentTimeMillis());
loadAgentDetails(agentId); loadAgentDetails(agentId);
break; break;
} }
@@ -181,6 +186,7 @@ public class AgentDetails extends Fragment {
} }
case SUCCESS:{ case SUCCESS:{
loaderDialog.dismiss(); loaderDialog.dismiss();
logsViewModel.insertLog(prefsHelper.get("id"), "MIS A JOUR PRODUIT", "Mise à jour des types de paris"+" "+agent.getCode()+": "+allowedBetTypes.getAllowedBetTypes().stream().map(Enum::toString).collect(Collectors.joining(",")), System.currentTimeMillis());
MessageDialog.showSuccess(getContext(), "Les types de paris ont été mises à jour"); MessageDialog.showSuccess(getContext(), "Les types de paris ont été mises à jour");
loadAgentDetails(agentId); loadAgentDetails(agentId);
break; break;

View File

@@ -1,5 +1,6 @@
package com.example.quiz; package com.example.quiz;
import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.content.Intent; import android.content.Intent;
@@ -373,30 +374,30 @@ public class BetValidation extends Fragment {
}); });
binding.betValidateBtn.setOnClickListener(v->{ binding.betValidateBtn.setOnClickListener(v->{
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { // Log.d("PAPER_STATUS", String.valueOf(ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.BLUETOOTH_CONNECT))+" "+String.valueOf(PackageManager.PERMISSION_GRANTED));
// TODO: Consider calling // if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT)
// ActivityCompat#requestPermissions // != PackageManager.PERMISSION_GRANTED) {
// here to request the missing permissions, and then overriding // // TODO: Consider calling
// public void onRequestPermissionsResult(int requestCode, String[] permissions, // // ActivityCompat#requestPermissions
// int[] grantResults) // // here to request the missing permissions, and then overriding
// to handle the case where the user grants the permission. See the documentation // // public void onRequestPermissionsResult(int requestCode, String[] permissions,
// for ActivityCompat#requestPermissions for more details. // // int[] grantResults)
return; // // to handle the case where the user grants the permission. See the documentation
} // // for ActivityCompat#requestPermissions for more details.
int paperStatus = Printama.with(getContext()).checkPaperStatus(); // return;
Log.d("PAPER_STATUS", String.valueOf(paperStatus)); // }
switch (paperStatus){ // int paperStatus = Printama.with(getContext()).checkPaperStatus();
case 2 :{ // switch (paperStatus){
MessageDialog.showError(getContext(), "Le papier d'impression est vide"); // case 2 :{
return; // MessageDialog.showError(getContext(), "Le papier d'impression est vide");
} // return;
case 1:{ // }
MessageDialog.showError(getContext(), "Le papier d'impression est presque vide"); // case 1:{
break; // MessageDialog.showError(getContext(), "Le papier d'impression est presque vide");
} // break;
default: // }
break; // }
}
if(binding.paymentType.getSelectedItem().toString().equals("Orange Money") && binding.phoneNumber.getText().toString().isEmpty()){ if(binding.paymentType.getSelectedItem().toString().equals("Orange Money") && binding.phoneNumber.getText().toString().isEmpty()){
MessageDialog.showError(getContext(), "Veuillez saisir le numéro de téléphone"); MessageDialog.showError(getContext(), "Veuillez saisir le numéro de téléphone");
return; return;
@@ -593,8 +594,8 @@ public class BetValidation extends Fragment {
case SUCCESS: case SUCCESS:
try { try {
loader.dismiss(); loader.dismiss();
logsViewModel.insertLog(prefsHelper.get("id"), "BET", "Création du pari "+pariResult.data.getNumeroTicket()+", type de paris: "+pariResult.data.getTypesParisMises().get(0).getTypePari()+", combinaison:"+selectedHorses.getValue().stream().map(String::valueOf).collect(Collectors.joining("-")), System.currentTimeMillis());
printPari(pariResult.data); printPari(pariResult.data);
logsViewModel.insertLog(prefsHelper.get("id"), "BET", "Création du pari "+pariResult.data.getNumeroTicket()+" type de paris: "+pariResult.data.getTypesParisMises().get(0).getTypePari(), System.currentTimeMillis());
dialog.dismiss(); dialog.dismiss();
MessageDialog.showSuccess(getContext(), "Pari créé avec succès"); MessageDialog.showSuccess(getContext(), "Pari créé avec succès");
} catch (WriterException e) { } catch (WriterException e) {

View File

@@ -33,6 +33,7 @@ import com.example.quiz.utils.SharedPrefsHelper;
import com.example.quiz.viewModel.LogsViewModel; import com.example.quiz.viewModel.LogsViewModel;
import com.example.quiz.viewModel.PariViewModel; import com.example.quiz.viewModel.PariViewModel;
import com.google.android.material.appbar.MaterialToolbar; import com.google.android.material.appbar.MaterialToolbar;
import com.google.zxing.WriterException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -140,7 +141,11 @@ public class Sold extends Fragment {
case SUCCESS:{ case SUCCESS:{
dialog.dismiss(); dialog.dismiss();
_showSold(doubleResult.data, date); try {
_showSold(doubleResult.data, date);
} catch (WriterException e) {
throw new RuntimeException(e);
}
logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE JOUR", "Solde du "+date, System.currentTimeMillis()); logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE JOUR", "Solde du "+date, System.currentTimeMillis());
break; break;
} }
@@ -156,44 +161,38 @@ public class Sold extends Fragment {
datePickerDialog.show(); datePickerDialog.show();
} }
void _showSold(SoldeResponse soldeResponse, String date){ void _showSold(SoldeResponse soldeResponse, String date) throws WriterException {
int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements(); try {
new AlertDialog.Builder(getContext()) int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements();
.setTitle("Solde") new AlertDialog.Builder(getContext())
.setMessage("Solde la course "+solde) .setTitle("Solde")
.setNeutralButton("Ok", (dialog, which)->{ .setMessage("Solde la course "+solde)
dialog.dismiss(); .setNeutralButton("Ok", (dialog, which)->{
}) dialog.dismiss();
.setPositiveButton("Imprimer", (dialog, which)->{ })
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { .setPositiveButton("Imprimer", (dialog, which)->{
// TODO: Consider calling Printama printama = Printama.with(getContext());
// ActivityCompat#requestPermissions Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo);
// here to request the missing permissions, and then overriding String title = "SOLDE AU "+date;
// public void onRequestPermissionsResult(int requestCode, String[] permissions, StringBuilder text = new StringBuilder();
// int[] grantResults) text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n");
// to handle the case where the user grants the permission. See the documentation text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n");
// for ActivityCompat#requestPermissions for more details. text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n");
return; text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n");
} text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n");
Printama printama = Printama.with(getContext()); text.append(printama.lineSeparator()).append("\n");
Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo); text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n");
String title = "SOLDE AU "+date; text.append(printama.lineSeparator()).append("\n");
StringBuilder text = new StringBuilder(); text.append("AGENT : ").append(prefsHelper.get("code")).append("\n");
text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n"); String now = formatter.format(LocalDateTime.now());
text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n"); text.append("DATE : ").append(now).append("\n");
text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n"); printama.printSold(logo, title, text);
text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n"); })
text.append(printama.lineSeparator()).append("\n"); .show();
text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n"); }catch (SecurityException e){
text.append(printama.lineSeparator()).append("\n"); MessageDialog.showError(getContext(), "Erreur lors de l'affichage du solde");
text.append("AGENT : ").append(prefsHelper.get("code")).append("\n"); }
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
String now = formatter.format(LocalDateTime.now());
text.append("DATE : ").append(now).append("\n");
printama.printSold(logo, title, text);
})
.show();
} }
} }

View File

@@ -27,6 +27,7 @@ import com.example.quiz.utils.Result;
import com.example.quiz.utils.SharedPrefsHelper; import com.example.quiz.utils.SharedPrefsHelper;
import com.example.quiz.viewModel.LogsViewModel; import com.example.quiz.viewModel.LogsViewModel;
import com.example.quiz.viewModel.PariViewModel; import com.example.quiz.viewModel.PariViewModel;
import com.google.zxing.WriterException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -102,7 +103,11 @@ public class SoldByCourse extends Fragment {
} }
case SUCCESS:{ case SUCCESS:{
loader.dismiss(); loader.dismiss();
_showPariDialog(doubleResult.data, binding.etRaceNumber.getText().toString()); try {
_showPariDialog(doubleResult.data, binding.etRaceNumber.getText().toString());
} catch (WriterException e) {
throw new RuntimeException(e);
}
logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE COURSE", "Solde de la course "+binding.etRaceNumber.getText(), System.currentTimeMillis()); logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE COURSE", "Solde de la course "+binding.etRaceNumber.getText(), System.currentTimeMillis());
break; break;
} }
@@ -112,44 +117,38 @@ public class SoldByCourse extends Fragment {
}); });
} }
void _showPariDialog(SoldeResponse soldeResponse, String numero){ void _showPariDialog(SoldeResponse soldeResponse, String numero) throws WriterException {
int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements(); try {
new AlertDialog.Builder(getContext()) int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements();
.setTitle("Solde") new AlertDialog.Builder(getContext())
.setMessage("Solde la course "+solde) .setTitle("Solde")
.setNeutralButton("Ok", (dialog, which) -> { .setMessage("Solde la course "+solde)
binding.etRaceNumber.setText(""); .setNeutralButton("Ok", (dialog, which) -> {
dialog.dismiss(); binding.etRaceNumber.setText("");
}) dialog.dismiss();
.setPositiveButton("Imprimer", (dialog, which)->{ })
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { .setPositiveButton("Imprimer", (dialog, which)->{
// TODO: Consider calling Printama printama = Printama.with(getContext());
// ActivityCompat#requestPermissions Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo);
// here to request the missing permissions, and then overriding String title = "SOLDE DE LA COURSE "+numero;
// public void onRequestPermissionsResult(int requestCode, String[] permissions, StringBuilder text = new StringBuilder();
// int[] grantResults) text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n");
// to handle the case where the user grants the permission. See the documentation text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n");
// for ActivityCompat#requestPermissions for more details. text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n");
return; text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n");
} text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n");
Printama printama = Printama.with(getContext()); text.append(printama.lineSeparator()).append("\n");
Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo); text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n");
String title = "SOLDE DE LA COURSE "+numero; text.append(printama.lineSeparator()).append("\n");
StringBuilder text = new StringBuilder(); text.append("AGENT : ").append(prefsHelper.get("code")).append("\n");
text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n"); String now = formatter.format(LocalDateTime.now());
text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n"); text.append("DATE : ").append(now).append("\n");
text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n"); printama.printSold(logo, title, text);
text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n"); })
text.append(printama.lineSeparator()).append("\n"); .show();
text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n"); }catch (SecurityException e){
text.append(printama.lineSeparator()).append("\n"); MessageDialog.showError(getContext(), "Erreur lors de l'affichage du solde");
text.append("AGENT : ").append(prefsHelper.get("code")).append("\n"); }
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
String now = formatter.format(LocalDateTime.now());
text.append("DATE : ").append(now).append("\n");
printama.printSold(logo, title, text);
})
.show();
} }
} }

View File

@@ -42,6 +42,8 @@ public class UpdatePin extends Fragment {
String newPin; String newPin;
String confirmation; String confirmation;
LogsViewModel logsViewModel;
AuthNavigator authNavigator; AuthNavigator authNavigator;
LoginViewModel viewModel; LoginViewModel viewModel;
@@ -69,6 +71,7 @@ public class UpdatePin extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
viewModel = new ViewModelProvider(this).get(LoginViewModel.class); viewModel = new ViewModelProvider(this).get(LoginViewModel.class);
logsViewModel = new ViewModelProvider(this).get(LogsViewModel.class);
loaderDialog = new LoaderDialog(getContext()); loaderDialog = new LoaderDialog(getContext());
authNavigator = new AuthNavigator(getContext(), getParentFragmentManager(), new SessionManager(getContext()), new ViewModelProvider(this).get(LoginViewModel.class),new ViewModelProvider(this).get(LogsViewModel.class),this); authNavigator = new AuthNavigator(getContext(), getParentFragmentManager(), new SessionManager(getContext()), new ViewModelProvider(this).get(LoginViewModel.class),new ViewModelProvider(this).get(LogsViewModel.class),this);
// Inflate the layout for this fragment // Inflate the layout for this fragment
@@ -110,7 +113,9 @@ public class UpdatePin extends Fragment {
} }
case SUCCESS:{ case SUCCESS:{
loaderDialog.dismiss(); loaderDialog.dismiss();
MessageDialog.showSuccess(getContext(), "Pin mis à jour avec succès"); MessageDialog.showSuccess(getContext(), "Pin mis à jour avec succès");
logsViewModel.insertLog(String.valueOf(userResult.data.getId()), "MIS A JOUR PIN", "Mise à jour du pin", System.currentTimeMillis());
SessionManager sessionManager = new SessionManager(getContext()); SessionManager sessionManager = new SessionManager(getContext());
authNavigator.showPinDialog(()->{ authNavigator.showPinDialog(()->{
sessionManager.updateLastExpiredDate(); sessionManager.updateLastExpiredDate();

BIN
key_store.jks Normal file

Binary file not shown.

View File

@@ -385,6 +385,7 @@ public class Printama {
_util.setAlign(PA.CENTER); _util.setAlign(PA.CENTER);
_util.printText("Powered by PMU-MALI"); _util.printText("Powered by PMU-MALI");
_util.printText("\n"+printama.lineSeparator()+"\n"); _util.printText("\n"+printama.lineSeparator()+"\n");
_util.printText("\n\n\n");
printama.feedPaper(); printama.feedPaper();
printama.close(); printama.close();
}); });
@@ -404,10 +405,13 @@ public class Printama {
_util.setNormalText(); _util.setNormalText();
_util.setAlign(PA.LEFT); _util.setAlign(PA.LEFT);
_util.printText(text.toString()); _util.printText(text.toString());
_util.printText(lineSeparator()); _util.printText(printama.lineSeparator()+"\n");
_util.setBold();
_util.setNormalText();
_util.setAlign(PA.CENTER); _util.setAlign(PA.CENTER);
_util.printText("Powered by PMU-MALI"+"\n"); _util.printText("Powered by PMU-MALI");
_util.printText(lineSeparator()); _util.printText("\n"+printama.lineSeparator()+"\n");
_util.printText("\n\n\n");
printama.feedPaper(); printama.feedPaper();
printama.close(); printama.close();
}); });