Bonjour team.
Je souhaite réaliser dans Windev Mobile, un systeme de verrouillage de l'application après une certaine durée d'inactivité de l'utilisateur.
merci de me faire part de vos idées et si possible les codes pouvant me permetre de solutionner mon problème.
j'ai un code qui fonctionne correctement dans Android Studio mais je ne sais pas comment m'y prendre pour l'intégrer dans Windev Mobile.
En effet j'affiche juste une alerte après un période inactivité d'une (1) minutes.
voici le code:
1) - InactivityDetector.java
package com.dikens.verroullage_ecran;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Looper;
import android.view.MotionEvent;
import android.view.View;
public class InactivityDetector implements View.OnTouchListener {
private static final long INACTIVITY_DELAY = 60 * 1000; // 5 minutes en millisecondes
private Handler inactivityHandler;
private Runnable inactivityRunnable;
private AlertDialog.Builder alertDialogBuilder;
private AlertDialog alertDialog;
public InactivityDetector(final View rootView) {
inactivityHandler = new Handler(Looper.getMainLooper());
inactivityRunnable = new Runnable() {
@Override
public void run() {
// Afficher l'alerte ici
alertDialog.show();
}
};
alertDialogBuilder = new AlertDialog.Builder(rootView.getContext());
alertDialogBuilder.setMessage("Votre session va expirer.");
alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// Réinitialiser le délai d'inactivité lorsque l'utilisateur répond à l'alerte
resetInactivityTimer();
}
});
alertDialog = alertDialogBuilder.create();
rootView.setOnTouchListener(this);
// Démarre le minuteur pour la première fois
resetInactivityTimer();
}
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
// Réinitialise le minuteur lorsque l'utilisateur interagit avec l'écran
resetInactivityTimer();
return false;
}
private void resetInactivityTimer() {
inactivityHandler.removeCallbacks(inactivityRunnable);
inactivityHandler.postDelayed(inactivityRunnable, INACTIVITY_DELAY);
}
}
2) - MainActivity.java
package com.dikens.verroullage_ecran;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View rootView = findViewById(android.R.id.content);
InactivityDetector inactivityDetector = new InactivityDetector(rootView);
}
}
Merci d'avance pour votre aide
|