docs: private static void showInApp(Context context, final CTInAppNotification inAppNotification, CleverTapInstanceConfig config){
  
          Logger.v(config.getAccountId(), "Attempting to show next In-App");
  
          if (!appForeground) {
              pendingNotifications.add(inAppNotification);
              Logger.v(config.getAccountId(),"Not in foreground, queueing this In App");
              return;
          }
  
          if(currentlyDisplayingInApp != null){
              pendingNotifications.add(inAppNotification);
              Logger.v(config.getAccountId(),"In App already displaying, queueing this In App");
              return;
          }
  
          currentlyDisplayingInApp = inAppNotification;
  
          CTInAppBaseFragment inAppFragment = null;
          CTInAppType type = inAppNotification.getInAppType();
          switch(type){
              case CTInAppTypeCoverHTML:
              case CTInAppTypeInterstitialHTML:
              case CTInAppTypeHalfInterstitialHTML:
              case CTInAppTypeCover:
              case CTInAppTypeHalfInterstitial:
              case CTInAppTypeInterstitial:
              case CTInAppTypeAlert:
              case CTInAppTypeInterstitialImageOnly:
              case CTInAppTypeHalfInterstitialImageOnly:
              case CTInAppTypeCoverImageOnly:
  
                  Intent intent = new Intent(context,InAppNotificationActivity.class);
                  intent.putExtra("inApp",inAppNotification);
                  intent.putExtra("config",config);
                  try {
                      Activity currentActivity = getCurrentActivity();
                      if (currentActivity == null) {
                          throw new IllegalStateException("Current activity reference not found");
                      }
                      config.getLogger().verbose(config.getAccountId(),"calling InAppActivity for notification: " + inAppNotification.getJsonDescription());
                      currentActivity.startActivity(intent);
                      Logger.d("Displaying In-App: "+inAppNotification.getJsonDescription());
  
                  } catch (Throwable t) {
                      Logger.v("Please verify the integration of your app." +
                              " It is not setup to support in-app notifications yet.", t);
                  }
                  break;
              case CTInAppTypeFooterHTML:
                  inAppFragment = new CTInAppHtmlFooterFragment();
                  break;
              case CTInAppTypeHeaderHTML:
                  inAppFragment = new CTInAppHtmlHeaderFragment();
                  break;
              case CTInAppTypeFooter:
                  inAppFragment = new CTInAppNativeFooterFragment();
                  break;
              case CTInAppTypeHeader:
                  inAppFragment = new CTInAppNativeHeaderFragment();
                  break;
              default:
                  Logger.d(config.getAccountId(),"Unknown InApp Type found: " + type);
                  currentlyDisplayingInApp = null;
                  return;
          }
  
          if (inAppFragment != null) {
              Logger.d("Displaying In-App: "+inAppNotification.getJsonDescription());
              try {
                  //noinspection ConstantConditions
                  FragmentTransaction fragmentTransaction = getCurrentActivity().getFragmentManager().beginTransaction();
                  Bundle bundle = new Bundle();
                  bundle.putParcelable("inApp",inAppNotification);
                  bundle.putParcelable("config",config);
                  inAppFragment.setArguments(bundle);
                  fragmentTransaction.setCustomAnimations(android.R.animator.fade_in,android.R.animator.fade_out);
                  fragmentTransaction.add(android.R.id.content,inAppFragment);
                  Logger.v(config.getAccountId(),"calling InAppFragment " + inAppNotification.getCampaignId());
                  fragmentTransaction.commit();
  
              } catch (Throwable t) {
                  Logger.v(config.getAccountId(),"Fragment not able to render", t);
              }
          }
      }