Skip to content

Commit

Permalink
feat(capture-sdk): Add no results screen events
Browse files Browse the repository at this point in the history
PP-354
  • Loading branch information
abolfazlimahdi committed May 15, 2024
1 parent 056b960 commit feca151
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
package net.gini.android.capture.noresults;

import static android.view.View.GONE;
import static net.gini.android.capture.internal.util.ActivityHelper.forcePortraitOrientationOnPhones;
import static net.gini.android.capture.tracking.EventTrackingHelper.trackAnalysisScreenEvent;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
Expand All @@ -14,7 +19,6 @@
import net.gini.android.capture.Document;
import net.gini.android.capture.EnterManuallyButtonListener;
import net.gini.android.capture.GiniCapture;
import net.gini.android.capture.GiniCaptureFragment;
import net.gini.android.capture.R;
import net.gini.android.capture.document.ImageMultiPageDocument;
import net.gini.android.capture.help.PhotoTipsAdapter;
Expand All @@ -23,15 +27,15 @@
import net.gini.android.capture.internal.ui.FragmentImplCallback;
import net.gini.android.capture.internal.ui.IntervalClickListener;
import net.gini.android.capture.tracking.AnalysisScreenEvent;
import net.gini.android.capture.tracking.useranalytics.UserAnalyticsEvent;
import net.gini.android.capture.tracking.useranalytics.UserAnalyticsEventTracker;
import net.gini.android.capture.tracking.useranalytics.UserAnalyticsEventTrackerBuilder;
import net.gini.android.capture.tracking.useranalytics.UserAnalyticsScreen;
import net.gini.android.capture.view.InjectedViewAdapterHolder;
import net.gini.android.capture.view.InjectedViewContainer;
import net.gini.android.capture.view.NavButtonType;
import net.gini.android.capture.view.NavigationBarTopAdapter;

import static android.view.View.GONE;
import static net.gini.android.capture.internal.util.ActivityHelper.forcePortraitOrientationOnPhones;
import static net.gini.android.capture.tracking.EventTrackingHelper.trackAnalysisScreenEvent;

/**
* Main logic implementation for no results UI presented by {@link NoResultsFragment}.
* Internal use only.
Expand All @@ -46,6 +50,7 @@ class NoResultsFragmentImpl {
private final Document mDocument;
private EnterManuallyButtonListener mListener;
private TextView mTitleTextView;
private UserAnalyticsEventTracker mUserAnalyticsEventTracker;

private InjectedViewContainer<NavigationBarTopAdapter> topAdapterInjectedViewContainer;

Expand Down Expand Up @@ -76,8 +81,12 @@ View onCreateView(final LayoutInflater inflater, final ViewGroup container,
final Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.gc_fragment_noresults, container, false);
final View retakeImagesButton = view.findViewById(R.id.gc_button_no_results_retake_images);
handleOnBackPressed();
mUserAnalyticsEventTracker = UserAnalyticsEventTrackerBuilder.INSTANCE.getAnalyticsEventTracker();
mUserAnalyticsEventTracker.trackEvent(UserAnalyticsEvent.SCREEN_SHOWN, UserAnalyticsScreen.NO_RESULTS);
if (shouldAllowRetakeImages()) {
ClickListenerExtKt.setIntervalClickListener(retakeImagesButton, v -> {
mUserAnalyticsEventTracker.trackEvent(UserAnalyticsEvent.RETAKE_IMAGES_TAPPED, UserAnalyticsScreen.NO_RESULTS);
trackAnalysisScreenEvent(AnalysisScreenEvent.RETRY);
mFragment.findNavController().navigate(NoResultsFragmentDirections.toCameraFragment());

Expand All @@ -88,6 +97,7 @@ View onCreateView(final LayoutInflater inflater, final ViewGroup container,

final View enterManuallyButton = view.findViewById(R.id.gc_button_no_results_enter_manually);
ClickListenerExtKt.setIntervalClickListener(enterManuallyButton, v -> {
mUserAnalyticsEventTracker.trackEvent(UserAnalyticsEvent.ENTER_MANUALLY_TAPPED, UserAnalyticsScreen.NO_RESULTS);
mListener.onEnterManuallyPressed();
});

Expand All @@ -103,6 +113,17 @@ View onCreateView(final LayoutInflater inflater, final ViewGroup container,
return view;
}

private void handleOnBackPressed() {
mFragment.getActivity().getOnBackPressedDispatcher().addCallback(mFragment.getViewLifecycleOwner(), new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
mUserAnalyticsEventTracker.trackEvent(UserAnalyticsEvent.CLOSE_TAPPED, UserAnalyticsScreen.NO_RESULTS);
remove();
mFragment.getActivity().getOnBackPressedDispatcher().onBackPressed();
}
});
}

private boolean isDocumentFromCameraScreen(Document document) {
return document.getImportMethod() != Document.ImportMethod.OPEN_WITH && document.getSource().getName().equals("camera");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ enum class UserAnalyticsScreen(val screenName: String) {
REVIEW("review"),
REVIEW_ZOOM("review_zoom"),
ANALYSIS("analysis"),
NO_RESULTS("no_results"),
HELP("help"),
ERROR("error")
}

0 comments on commit feca151

Please sign in to comment.