Skip to content

RFID Chip Processing Customization

On this page, explore the customization capabilities available for the RFID chip processing.

The following elements are customizable:

Ready to Scan Screen

When the application is ready to scan the RFID chip, the corresponding screen is displayed.

In iOS, this screen is complemented by the native modal sheet with the info message and controls. This sheet cannot be hidden or customized as Apple doesn't provide such functionality.

In Android, there is no such a modal sheet.

Background

The processing screen background color can be adjusted in the following way.

For example:

DocReader.shared.customization.uiConfiguration = DocReader.UIConfiguration { 
    $0.setColor(.blue, forItem: .RFIDProcessingScreenBackground)
}
RGLDocReader.shared.customization.uiConfiguration = [RGLUIConfiguration configurationWithBuilderBlock:^(RGLUIConfigurationBuilder * _Nonnull builder) {
    [builder setColor:[UIColor blueColor] forItem:RFIDProcessingScreenBackground];
}];
DocumentReader.Instance().customization().edit()
    .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_BACKGROUND, R.color.colorPrimary)
    .apply()
DocumentReader.Instance().customization().edit()
        .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_BACKGROUND, R.color.colorPrimary)
        .apply();
DocumentReader.instance.customization.colors.rfidProcessingScreenBackground = Colors.blue;
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenBackground: 0xff0000ff
  }
}, _ => { }, _ => { })
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenBackground: 0xff0000ff
  }
})
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenBackground: 0xff0000ff
  }
}, function (m) { }, function (e) { })
// Android
DocumentReader.Instance().Customization().Edit().SetColor(CustomizationColor.RfidProcessingScreenBackground, 0xff0000ff).Apply();

// iOS
RGLDocReader.Shared.Customization.UiConfiguration = RGLUIConfiguration.ConfigurationWithBuilderBlock((RGLUIConfigurationBuilder builder) =>
{
    builder.SetColor(UIColor.Blue, RGLCustomizationColor.Background);
});

Hint Messages

Messages displayed during the processing are customizable. You can adjust:

  • Text color
  • Text font
  • Background color

For example:

DocReader.shared.customization.uiConfiguration = DocReader.UIConfiguration { 
    $0.setColor(.purple, forItem: .RFIDProcessingScreenHintLabelText)
    $0.setColor(.blue, forItem: .RFIDProcessingScreenHintLabelBackground)
    $0.setFont(.italicSystemFont(ofSize: 16), forItem: .RFIDProcessingScreenHintLabel)
}
RGLDocReader.shared.customization.uiConfiguration = [RGLUIConfiguration configurationWithBuilderBlock:^(RGLUIConfigurationBuilder * _Nonnull builder) {
    [builder setColor:[UIColor purpleColor] forItem:RFIDProcessingScreenHintLabelText];
    [builder setColor:[UIColor blueColor] forItem:RFIDProcessingScreenHintLabelBackground];
    [builder setFont:[UIFont italicSystemFontOfSize:16] forItem:RFIDProcessingScreenHintLabel];
}];
val typeface = Typeface.SERIF
DocumentReader.Instance().customization().edit()
    .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_HINT_LABEL_TEXT, R.color.colorPrimary)
    .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_HINT_LABEL_BACKGROUND, R.color.colorAccent)
    .setFont(CustomizationFont.RFID_PROCESSING_SCREEN_HINT_LABEL, typeface)
    .apply()
Typeface typeface = Typeface.SERIF;
DocumentReader.Instance().customization().edit()
        .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_HINT_LABEL_TEXT, R.color.colorPrimary)
        .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_HINT_LABEL_BACKGROUND, R.color.colorAccent)
        .setFont(CustomizationFont.RFID_PROCESSING_SCREEN_HINT_LABEL, typeface)
        .apply();
DocumentReader.instance.customization.colors.rfidProcessingScreenHintLabelText = Colors.purple;
DocumentReader.instance.customization.colors.rfidProcessingScreenHintLabelBackground = Colors.blue;
DocumentReader.instance.customization.fonts.rfidProcessingScreenHintLabel = Font(
  "sans-serif-thin",
  style: FontStyle.BOLD_ITALIC,
  size: 14,
);
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenHintLabelText: 0xff00ff00,
    rfidProcessingScreenHintLabelBackground: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenHintLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 14,
    }
  }
}, _ => { }, _ => { })
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenHintLabelText: 0xff00ff00,
    rfidProcessingScreenHintLabelBackground: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenHintLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 14,
    }
  }
})
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenHintLabelText: 0xff00ff00,
    rfidProcessingScreenHintLabelBackground: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenHintLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 14,
    }
  }
}, function (m) { }, function (e) { })
// Android
DocumentReader.Instance().Customization().Edit()
    .SetColor(CustomizationColor.RfidProcessingScreenHintLabelText, 0xff00ff00)
    .SetColor(CustomizationColor.RfidProcessingScreenHintLabelBackground, 0xff0000ff)
    .SetFont(CustomizationFont.RfidProcessingScreenHintLabel, Typeface.Serif)
    .Apply();

// iOS
RGLDocReader.Shared.Customization.UiConfiguration = RGLUIConfiguration.ConfigurationWithBuilderBlock((RGLUIConfigurationBuilder builder) =>
{
    builder.SetColor(UIColor.Purple, RGLCustomizationColor.HintLabelText);
    builder.SetColor(UIColor.Blue, RGLCustomizationColor.HintLabelBackground);
    builder.SetFont(UIFont.ItalicSystemFontOfSize(16), RGLCustomizationFont.HintLabel);
});

Progress Bar

When the processing begins, a progress bar and a message above it appear. You can customize the following elements:

  • Text color
  • Text font
  • Progress color
  • Background color

For example:

DocReader.shared.customization.uiConfiguration = DocReader.UIConfiguration {
    $0.setColor(.purple, forItem: .RFIDProcessingScreenProgressLabelText)
    $0.setColor(.blue, forItem: .RFIDProcessingScreenProgressBar)
    $0.setColor(.yellow, forItem: .RFIDProcessingScreenProgressBarBackground)
    $0.setFont(.italicSystemFont(ofSize: 16), forItem: .RFIDProcessingScreenProgressLabel)
}
RGLDocReader.shared.customization.uiConfiguration = [RGLUIConfiguration configurationWithBuilderBlock:^(RGLUIConfigurationBuilder * _Nonnull builder) {
    [builder setColor:[UIColor purpleColor] forItem:RFIDProcessingScreenProgressLabelText];
    [builder setColor:[UIColor blueColor] forItem:RFIDProcessingScreenProgressBar];
    [builder setColor:[UIColor yellowColor] forItem:RFIDProcessingScreenProgressBarBackground];
    [builder setFont:[UIFont italicSystemFontOfSize:16] forItem:RFIDProcessingScreenProgressLabel];
}];
val typeface = Typeface.SERIF
DocumentReader.Instance().customization().edit()
    .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_PROGRESS_LABEL_TEXT, R.color.colorPrimary)
    .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_PROGRESS_BAR, R.color.colorAccent)
    .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_PROGRESS_BAR_BACKGROUND, R.color.orange)
    .setFont(CustomizationFont.RFID_PROCESSING_SCREEN_PROGRESS_LABEL, typeface)
    .apply()
Typeface typeface = Typeface.SERIF;
DocumentReader.Instance().customization().edit()
        .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_PROGRESS_LABEL_TEXT, R.color.colorPrimary)
        .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_PROGRESS_BAR, R.color.colorAccent)
        .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_PROGRESS_BAR_BACKGROUND, R.color.orange)
        .setFont(CustomizationFont.RFID_PROCESSING_SCREEN_PROGRESS_LABEL, typeface)
        .apply();
DocumentReader.instance.customization.colors.rfidProcessingScreenProgressLabelText = Colors.purple;
DocumentReader.instance.customization.colors.rfidProcessingScreenProgressBar = Colors.blue;
DocumentReader.instance.customization.colors.rfidProcessingScreenProgressBarBackground = Colors.yellow;
DocumentReader.instance.customization.fonts.rfidProcessingScreenProgressLabel = Font(
  "sans-serif-thin",
  style: FontStyle.BOLD_ITALIC,
  size: 14,
);
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenProgressLabelText: 0xffff0000,
    rfidProcessingScreenProgressBar: 0xff00ff00,
    rfidProcessingScreenProgressBarBackground: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenProgressLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 14,
    }
  }
}, _ => { }, _ => { })
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenProgressLabelText: 0xffff0000,
    rfidProcessingScreenProgressBar: 0xff00ff00,
    rfidProcessingScreenProgressBarBackground: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenProgressLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 14,
    }
  }
})
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenProgressLabelText: 0xffff0000,
    rfidProcessingScreenProgressBar: 0xff00ff00,
    rfidProcessingScreenProgressBarBackground: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenProgressLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 14,
    }
  }
}, function (m) { }, function (e) { })
// Android
DocumentReader.Instance().Customization().Edit()
    .SetColor(CustomizationColor.RfidProcessingScreenProgressLabelText, 0xffff0000)
    .SetColor(CustomizationColor.RfidProcessingScreenProgressBar, 0xff00ff00)
    .SetColor(CustomizationColor.RfidProcessingScreenProgressBarBackground, 0xff0000ff)
    .SetFont(CustomizationFont.RfidProcessingScreenProgressLabel, Typeface.Serif)
    .Apply();

// iOS
    RGLDocReader.Shared.Customization.UiConfiguration = RGLUIConfiguration.ConfigurationWithBuilderBlock((RGLUIConfigurationBuilder builder) =>
    {
        builder.SetColor(UIColor.Purple, RGLCustomizationColor.ProgressLabelText);
        builder.SetColor(UIColor.Blue, RGLCustomizationColor.ProgressBar);
        builder.SetColor(UIColor.Yellow, RGLCustomizationColor.ProgressBarBackground);
        builder.SetFont(UIFont.ItalicSystemFontOfSize(16), RGLCustomizationFont.ProgressLabel);
    });

Error Screen

On the error screen, you can adjust:

  • Text color
  • Text font
  • Image

For example:

DocReader.shared.customization.uiConfiguration = DocReader.UIConfiguration { 
    $0.setColor(.blue, forItem: .RFIDProcessingScreenResultLabelText)
    $0.setFont(.italicSystemFont(ofSize: 16), forItem: .RFIDProcessingScreenResultLabel)
    $0.setImage(UIImage(named: "custom_image_rfid_failure")!, forItem: .RFIDProcessingScreenFailureImage)
}
RGLDocReader.shared.customization.uiConfiguration = [RGLUIConfiguration configurationWithBuilderBlock:^(RGLUIConfigurationBuilder * _Nonnull builder) {
    [builder setColor:[UIColor blueColor] forItem:RFIDProcessingScreenResultLabelText];
    [builder setFont:[UIFont italicSystemFontOfSize:16] forItem:RFIDProcessingScreenResultLabel];
    [builder setImage:[UIImage imageNamed:@"custom_image_rfid_failure"] forItem:RFIDProcessingScreenFailureImage];
}];
val typeface = Typeface.SERIF
DocumentReader.Instance().customization().edit()
    .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_RESULT_LABEL_TEXT, R.color.colorPrimary)
    .setFont(CustomizationFont.RFID_PROCESSING_SCREEN_RESULT_LABEL, typeface)
    .setImage(CustomizationImage.RFID_PROCESSING_SCREEN_FAILURE_IMAGE, getDrawable(R.drawable.image))
    .apply()
Typeface typeface = Typeface.SERIF;
DocumentReader.Instance().customization().edit()
        .setColor(CustomizationColor.RFID_PROCESSING_SCREEN_RESULT_LABEL_TEXT, R.color.colorPrimary)
        .setFont(CustomizationFont.RFID_PROCESSING_SCREEN_RESULT_LABEL, typeface)
        .setImage(CustomizationImage.RFID_PROCESSING_SCREEN_FAILURE_IMAGE, getResources().getDrawable(R.drawable.image))
        .apply();
DocumentReader.instance.customization.colors.rfidProcessingScreenResultLabelText = Colors.blue;
DocumentReader.instance.customization.fonts.rfidProcessingScreenResultLabel = Font(
  "sans-serif-thin",
  style: FontStyle.BOLD_ITALIC,
  size: 16,
);
DocumentReader.instance.customization.images.rfidProcessingScreenFailureImage = await rootBundle.load("custom_image_rfid_failure");
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenResultLabelText: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenResultLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 16,
    }
  },
  images: {
    rfidProcessingScreenFailureImage: "base64Image"
  }
}, _ => { }, _ => { })
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenResultLabelText: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenResultLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 16,
    }
  }
  images: {
    rfidProcessingScreenFailureImage: "base64Image"
  }
})
DocumentReader.setCustomization({
  colors: {
    rfidProcessingScreenResultLabelText: 0xff0000ff,
  },
  fonts: {
    rfidProcessingScreenResultLabel: {
      name: "sans-serif-thin",
      style: FontStyle.BOLD_ITALIC,
      size: 16,
    }
  },
  images: {
    rfidProcessingScreenFailureImage: "base64Image"
  }
}, function (m) { }, function (e) { })
// Android
DocumentReader.Instance().Customization().Edit()
    .SetColor(CustomizationColor.RfidProcessingScreenResultLabelText, 0xff0000ff)
    .SetFont(CustomizationFont.RfidProcessingScreenResultLabel, Typeface.Serif)
    .SetImage(CustomizationImage.RfidProcessingScreenFailureImage, Platform.AppContext.Resources.GetDrawable(Resource.Drawable.image))
    .Apply();

// iOS
RGLDocReader.Shared.Customization.UiConfiguration = RGLUIConfiguration.ConfigurationWithBuilderBlock((RGLUIConfigurationBuilder builder) =>
{
    builder.SetColor(UIColor.Blue, RGLCustomizationColor.ResultLabelText);
    builder.SetFont(UIFont.ItalicSystemFontOfSize(16), RGLCustomizationFont.ResultLabel);
    builder.SetImage(UIImage.FromFile("custom_image_rfid_failure.png"), RGLCustomizationImage.RFIDProcessingScreenFailureImage);
});

Examples

See the sample projects, demonstraring how to customize the RFID chip processing:

Next Steps