diff --git a/core/src/main/java/in/testpress/core/SessionLogoutListener.kt b/core/src/main/java/in/testpress/core/SessionLogoutListener.kt new file mode 100644 index 000000000..098fc05e6 --- /dev/null +++ b/core/src/main/java/in/testpress/core/SessionLogoutListener.kt @@ -0,0 +1,5 @@ +package `in`.testpress.core + +interface SessionLogoutListener { + fun logOut() +} \ No newline at end of file diff --git a/core/src/main/java/in/testpress/core/TestpressSdk.java b/core/src/main/java/in/testpress/core/TestpressSdk.java index 75b1baf5e..70a8242a4 100644 --- a/core/src/main/java/in/testpress/core/TestpressSdk.java +++ b/core/src/main/java/in/testpress/core/TestpressSdk.java @@ -341,4 +341,14 @@ public static void initSentry(Context context,String androidSentryDns) { options.setEnableAutoSessionTracking(true); }); } + + private static SessionLogoutListener sessionLogoutListener; + + public static SessionLogoutListener getSessionLogoutListener(){ + return sessionLogoutListener; + } + + public static void setSessionLogoutListener(SessionLogoutListener sessionLogoutListener){ + TestpressSdk.sessionLogoutListener = sessionLogoutListener; + } } diff --git a/core/src/main/java/in/testpress/network/TestpressApiClient.java b/core/src/main/java/in/testpress/network/TestpressApiClient.java index 14754e172..588c4777c 100644 --- a/core/src/main/java/in/testpress/network/TestpressApiClient.java +++ b/core/src/main/java/in/testpress/network/TestpressApiClient.java @@ -1,6 +1,7 @@ package in.testpress.network; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.os.Looper; import androidx.appcompat.app.AlertDialog; @@ -21,6 +22,7 @@ import java.util.concurrent.TimeUnit; import in.testpress.R; +import in.testpress.core.TestpressSdk; import in.testpress.core.TestpressSession; import in.testpress.models.AccountActivity; import in.testpress.models.FileDetails; @@ -146,7 +148,13 @@ public Response intercept(Chain chain) throws IOException { @Override public void run() { try { - UIUtils.showAlert(context, "Session Cleared", context.getString(R.string.session_cleared_message)); + UIUtils.showAlert(context, "Session Cleared", context.getString(R.string.session_cleared_message), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + Log.d("TAG", "onClick: "+(TestpressSdk.getSessionLogoutListener() == null)); + TestpressSdk.getSessionLogoutListener().logOut(); + } + }); } catch (Exception ignore) {} } }); diff --git a/core/src/main/java/in/testpress/util/UIUtils.java b/core/src/main/java/in/testpress/util/UIUtils.java index a4034cdab..ae2449e5b 100644 --- a/core/src/main/java/in/testpress/util/UIUtils.java +++ b/core/src/main/java/in/testpress/util/UIUtils.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; import androidx.appcompat.app.AlertDialog; +import android.content.DialogInterface; import android.view.View; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; @@ -91,12 +92,16 @@ public static void showSnackBar(View view, @StringRes int message) { } public static void showAlert(Context context, String title, String message) { + showAlert(context, title, message, null); + } + + public static void showAlert(Context context, String title, String message, DialogInterface.OnClickListener listener) { AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.TestpressAppCompatAlertDialogStyle); builder.setTitle(title); builder.setMessage(message); - builder.setPositiveButton(R.string.testpress_ok, null); + builder.setPositiveButton(R.string.testpress_ok, listener); builder.show(); }