Version avec integration slave master
This commit is contained in:
@@ -37,13 +37,16 @@ import android.widget.Toast;
|
||||
|
||||
import com.anggastudio.printama.Printama;
|
||||
import com.example.quiz.data.model.Course;
|
||||
import com.example.quiz.data.model.MiseInitiale;
|
||||
import com.example.quiz.data.model.Pari;
|
||||
import com.example.quiz.data.model.PariMise;
|
||||
import com.example.quiz.data.model.ParisResponse;
|
||||
import com.example.quiz.data.model.Reunion;
|
||||
import com.example.quiz.data.model.TypeOfBet;
|
||||
import com.example.quiz.data.model.dtos.NotifPayload;
|
||||
import com.example.quiz.data.model.dtos.PariCourseDto;
|
||||
import com.example.quiz.data.model.enums.PariStatut;
|
||||
import com.example.quiz.data.remote.StompManager;
|
||||
import com.example.quiz.databinding.FragmentBetValidationBinding;
|
||||
import com.example.quiz.utils.BluetoothUtils;
|
||||
import com.example.quiz.utils.LoaderDialog;
|
||||
@@ -51,14 +54,18 @@ import com.example.quiz.utils.MessageDialog;
|
||||
import com.example.quiz.utils.Result;
|
||||
import com.example.quiz.utils.SharedPrefsHelper;
|
||||
import com.example.quiz.viewModel.LogsViewModel;
|
||||
import com.example.quiz.viewModel.PariMiseViewModel;
|
||||
import com.example.quiz.viewModel.PariViewModel;
|
||||
import com.example.quiz.viewModel.SharedViewModel;
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.MultiFormatWriter;
|
||||
import com.google.zxing.WriterException;
|
||||
import com.google.zxing.common.BitMatrix;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
@@ -69,6 +76,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import dagger.hilt.android.AndroidEntryPoint;
|
||||
|
||||
/**
|
||||
@@ -84,8 +94,15 @@ public class BetValidation extends Fragment {
|
||||
|
||||
SharedViewModel shared;
|
||||
|
||||
PariMiseViewModel pariMiseViewModel;
|
||||
|
||||
List<MiseInitiale> misesInitiales;
|
||||
|
||||
private AlertDialog dialog;
|
||||
|
||||
@Inject
|
||||
StompManager stompManager;
|
||||
|
||||
private int nombreX;
|
||||
|
||||
LogsViewModel logsViewModel;
|
||||
@@ -253,6 +270,40 @@ public class BetValidation extends Fragment {
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
shared = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);
|
||||
pariMiseViewModel = new ViewModelProvider(this).get(PariMiseViewModel.class);
|
||||
pariMiseViewModel.getBetInitMise().observe(
|
||||
getViewLifecycleOwner(),
|
||||
result->{
|
||||
switch (result.status){
|
||||
case LOADING: {
|
||||
loader.show("Chargement des mise");
|
||||
break;
|
||||
}
|
||||
case SUCCESS: {
|
||||
misesInitiales = result.data;
|
||||
loader.dismiss();
|
||||
break;
|
||||
}
|
||||
case ERROR: {
|
||||
loader.dismiss();
|
||||
MessageDialog.showError(getContext(), result.message);
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
);
|
||||
if(shared.selectedCourse.getValue() != null){
|
||||
stompManager.subscribe("courses/"+shared.selectedCourse.getValue().getId(), json->{
|
||||
Type type = new TypeToken<NotifPayload<Course>>(){}.getType();
|
||||
NotifPayload<Course> notif = new Gson().fromJson(json, type);
|
||||
Course updatedCourse = notif.getPayload();
|
||||
if(shared.selectedCourse.getValue().getId() == updatedCourse.getId()){
|
||||
shared.setSelectedCourse(updatedCourse);
|
||||
setupNumberGrid(binding.gridNumbers);
|
||||
}
|
||||
});
|
||||
}
|
||||
setSelectedTypeOfBetImage();
|
||||
pariViewModel = new ViewModelProvider(this).get(PariViewModel.class);
|
||||
typeOfBet = shared.typeOfBet.getValue();
|
||||
@@ -266,7 +317,6 @@ public class BetValidation extends Fragment {
|
||||
activity.getSupportActionBar().setTitle("Pari "+shared.selectedCourse.getValue().getNom());
|
||||
}
|
||||
}
|
||||
|
||||
setupNumberGrid(binding.gridNumbers);
|
||||
binding.paymentType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
@@ -323,8 +373,32 @@ public class BetValidation extends Fragment {
|
||||
});
|
||||
|
||||
binding.betValidateBtn.setOnClickListener(v->{
|
||||
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
||||
// TODO: Consider calling
|
||||
// ActivityCompat#requestPermissions
|
||||
// here to request the missing permissions, and then overriding
|
||||
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
||||
// int[] grantResults)
|
||||
// to handle the case where the user grants the permission. See the documentation
|
||||
// for ActivityCompat#requestPermissions for more details.
|
||||
return;
|
||||
}
|
||||
int paperStatus = Printama.with(getContext()).checkPaperStatus();
|
||||
Log.d("PAPER_STATUS", String.valueOf(paperStatus));
|
||||
switch (paperStatus){
|
||||
case 2 :{
|
||||
MessageDialog.showError(getContext(), "Le papier d'impression est vide");
|
||||
return;
|
||||
}
|
||||
case 1:{
|
||||
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()){
|
||||
Toast.makeText(getContext(), "Veuillez entrer un numéro de téléphone", Toast.LENGTH_SHORT).show();
|
||||
MessageDialog.showError(getContext(), "Veuillez saisir le numéro de téléphone");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -444,7 +518,6 @@ public class BetValidation extends Fragment {
|
||||
String formattedDate = dateTime.format(formatter);
|
||||
tspl.append(formattedDate).append("\n");
|
||||
tspl.append("Course ").append(String.valueOf(shared.selectedCourse.getValue().getId())).append("\n");
|
||||
tspl.append(shared.selectedCourse.getValue().getTypesParisOuverts().get(0)).append("\n");
|
||||
tspl.append(printama.lineSeparator()+"\n");
|
||||
boolean isElargie = selectedHorses.getValue().size()>shared.typeOfBet.getValue().getNumberOfHorse();
|
||||
String typePari = pari.getTypesParisMises().get(0).getTypePari();
|
||||
@@ -564,19 +637,44 @@ public class BetValidation extends Fragment {
|
||||
}
|
||||
int typeOfBetHorses = shared.typeOfBet.getValue().getNumberOfHorse();
|
||||
int partants = shared.selectedCourse.getValue().getNombrePartants();
|
||||
Course.TypeParis courseName = shared.typeOfBet.getValue().getName();
|
||||
if(shared.typeOfBet.getValue().getNumberOfHorse() > nombreChevauxSelectionnes){
|
||||
binding.mise.setText(mise+" CFA");
|
||||
return;
|
||||
}
|
||||
if(typeOfBetHorses == 2){
|
||||
mise = 500;
|
||||
}else{
|
||||
if(typeOfBetHorses == 5){
|
||||
mise = 300;
|
||||
}else{
|
||||
mise = 200;
|
||||
MiseInitiale miseModel = misesInitiales.stream()
|
||||
.filter(miseInitiale-> miseInitiale.getTypePari().equals(courseName))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if(miseModel == null){
|
||||
MessageDialog.showError(getContext(), "Erreur lors de l'initialisation de la mise");
|
||||
_initializeToZero();
|
||||
return;
|
||||
}
|
||||
mise = miseModel.getMiseInitialeMin();
|
||||
|
||||
Course.TypeParis typePari = shared.typeOfBet.getValue().getName();
|
||||
boolean estCoupleGagnantOuPlace = typePari.equals(Course.TypeParis.COUPLE_GAGNANT) || typePari.equals(Course.TypeParis.COUPLE_PLACE);
|
||||
Log.d("TYPE_PARI", typePari.toString());
|
||||
|
||||
if (estCoupleGagnantOuPlace) {
|
||||
// Pour COUPLE_GAGNANT ou COUPLE_PLACE: coefficient < 200
|
||||
if (coeff > 200) {
|
||||
// Erreur: coefficient trop élevé
|
||||
MessageDialog.showError(getContext(),"Le coefficient doit être au plus 200 pour "+typePari.toString());
|
||||
_initializeToZero();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// Pour les autres types: coefficient <= 20
|
||||
if (coeff > 20) {
|
||||
// Erreur: coefficient trop élevé
|
||||
MessageDialog.showError(getContext(), "Le coefficient doit être inférieur ou égal à 20 pour "+typePari.toString());
|
||||
_initializeToZero();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
mise = mise * coeff;
|
||||
if(nombreX>0){
|
||||
if(nombreChevauxSelectionnes == typeOfBetHorses){
|
||||
@@ -651,4 +749,10 @@ public class BetValidation extends Fragment {
|
||||
super.onDestroyView();
|
||||
binding = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
stompManager.disconnect();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user