docs: private void displayNotification(final CTInAppNotification inAppNotification){
  
          if(Looper.myLooper() != Looper.getMainLooper()){
              getHandlerUsingMainLooper().post(new Runnable() {
                  @Override
                  public void run() {
                      displayNotification(inAppNotification);
                  }
              });
              return;
          }
  
          if (!inAppFCManager.canShow(inAppNotification)) {
              getConfigLogger().verbose(getAccountId(),"InApp has been rejected by FC, not showing " + inAppNotification.getCampaignId());
              showInAppNotificationIfAny();
              return;
          }
  
          inAppFCManager.didShow(context, inAppNotification);
  
          final InAppNotificationListener listener = getInAppNotificationListener();
  
          final boolean goFromListener;
  
          if (listener != null) {
              final HashMap<String, Object> kvs;
  
              if(inAppNotification.getCustomExtras()!=null) {
                  kvs = Utils.convertJSONObjectToHashMap(inAppNotification.getCustomExtras());
              }else{
                  kvs = new HashMap<>();
              }
  
              goFromListener = listener.beforeShow(kvs);
          } else {
              goFromListener = true;
          }
  
          if (!goFromListener) {
              getConfigLogger().verbose(getAccountId(),"Application has decided to not show this in-app notification: " + inAppNotification.getCampaignId());
              showInAppNotificationIfAny();
              return;
          }
          showInApp(context,inAppNotification,config);
  
      }