Skip to content

Migration Guide: From 9.2 to 9.3

Mobile

Changed a mechanism for UI property customization. Previously, each setting had the dedicated method or field for its modification. Now the values are changed using the common methods with specific enumeration values.

The prior customization mechanism is deprecated and will only be supported for a few upcoming releases before being removed in future versions.

See the details for each platform further.


Set an image within the camera frame:

DocReader.shared.customization.uiConfiguration = DocReader.UIConfiguration {
    $0.setImage(UIImage(named: "border_background")!, forItem: .RGLCustomizationImageBorderBackground)
}
UIImage *borderBackground = [[UIImage imageNamed:@"border_background"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

RGLDocReader.shared.customization.uiConfiguration = [RGLUIConfiguration configurationWithBuilderBlock:^(RGLUIConfigurationBuilder * _Nonnull builder) {
    [builder setImage:borderBackground forItem:RGLCustomizationImageBorderBackground];
}];
DocumentReader.Instance().customization().edit().setImage(CustomizationImage.BORDER_BACKGROUND, getDrawable(R.drawable.border_background)).apply()
DocumentReader.Instance().customization().edit().setImage(CustomizationImage.BORDER_BACKGROUND, getDrawable(R.drawable.border_background)).apply();
DocumentReader.instance.customization.images.borderBackground = image;
DocumentReader.instance.customization.images.borderBackground = base64;
// Android
DocumentReader.Instance().Customization().Edit().SetImage(CustomizationImage.BorderBackground, image).Apply();

// iOS
RGLDocReader.Shared.Customization.UiConfiguration = RGLUIConfiguration.ConfigurationWithBuilderBlock((RGLUIConfigurationBuilder builder) =>
{
    builder.SetImage(image, Constants.RGLCustomizationImageBorderBackground);
});
DocumentReader.setCustomization({
  images: {
    borderBackground: base64
  }
})
DocumentReader.setCustomization({
  images: {
    borderBackground: base64
  }
})
DocumentReader.setCustomization({
  images: {
    borderBackground: base64
  }
}, function (m) { }, function (e) { });
DocReader.shared.customization.borderBackgroundImage = UIImage(named: "icon")
[RGLDocReader shared].customization.borderBackgroundImage = [UIImage imageNamed:@"icon"];
DocumentReader.Instance().customization().edit().setBorderBackgroundImage(getDrawable(R.drawable.icon)).apply()
DocumentReader.Instance().customization().edit().setBorderBackgroundImage(getResources().getDrawable(R.drawable.icon)).apply();
DocumentReader.instance.customization.borderBackgroundImage = await rootBundle.load("icon");
DocumentReader.instance.customization.borderBackgroundImage = "Base64String"
// Android
DocumentReader.Instance().Customization().Edit().SetBorderBackgroundImage(GetDrawable(Resource.Drawable.icon)).Apply();

// iOS
RGLDocReader.Shared.Customization.BorderBackgroundImage = UIImage.FromBundle("icon.png");
DocumentReader.setCustomization({
    borderBackgroundImage: "Base64String",
}, (str) => { console.log(str) }, (error) => { console.log(error) });
DocumentReader.setCustomization({
    borderBackgroundImage: "Base64String"
});
DocumentReader.setCustomization({
    borderBackgroundImage: "Base64String",
}, function (m) { }, function (e) { console.log(e); });

Change the scaling for the front/back image of the ID card animation:

DocReader.shared.customization.uiConfiguration = DocReader.UIConfiguration {
    $0.setContentMode(UIView.ContentMode.scaleAspectFit, forItem: .RGLCustomizationContentModeNextPageIdCardFront)
    $0.setContentMode(UIView.ContentMode.scaleAspectFit, forItem: .RGLCustomizationContentModeNextPageIdCardBack)
}
RGLDocReader.shared.customization.uiConfiguration = [RGLUIConfiguration configurationWithBuilderBlock:^(RGLUIConfigurationBuilder * _Nonnull builder) {
    [builder setContentMode:UIViewContentModeScaleAspectFit forItem:RGLCustomizationContentModeNextPageIdCardFront];
    [builder setContentMode:UIViewContentModeScaleAspectFit forItem:RGLCustomizationContentModeNextPageIdCardBack];
}];
DocumentReader.Instance().customization().edit().setScaleType(CustomizationScaleType.NEXT_PAGE_ID_CARD_FRONT, ImageView.ScaleType.MATRIX).apply()
val matrixFront = Matrix() // define the matrix parameters
DocumentReader.Instance().customization().edit().setMatrix(CustomizationMatrix.NEXT_PAGE_ID_CARD_FRONT, matrixFront).apply()

DocumentReader.Instance().customization().edit().setScaleType(CustomizationScaleType.NEXT_PAGE_ID_CARD_BACK, ImageView.ScaleType.MATRIX).apply()
val matrixBack = Matrix() // define the matrix parameters
DocumentReader.Instance().customization().edit().setMatrix(CustomizationMatrix.NEXT_PAGE_ID_CARD_BACK, matrixBack).apply()
DocumentReader.Instance().customization().edit().setScaleType(CustomizationScaleType.NEXT_PAGE_ID_CARD_FRONT, ImageView.ScaleType.MATRIX).apply();
Matrix matrixFront = new Matrix(); // define the matrix parameters
DocumentReader.Instance().customization().edit().setMatrix(CustomizationMatrix.NEXT_PAGE_ID_CARD_FRONT, matrixFront).apply();

DocumentReader.Instance().customization().edit().setScaleType(CustomizationScaleType.NEXT_PAGE_ID_CARD_BACK, ImageView.ScaleType.MATRIX).apply();
val matrixBack = Matrix(); // define the matrix parameters
DocumentReader.Instance().customization().edit().setMatrix(CustomizationMatrix.NEXT_PAGE_ID_CARD_BACK, matrixBack).apply();
DocumentReader.instance.customization.matrices.nextPageIdCardFront = matrixFront;
DocumentReader.instance.customization.matrices.nextPageIdCardBack = matrixBack;
DocumentReader.instance.customization.matrices.nextPageIdCardFront = matrixFront;
DocumentReader.instance.customization.matrices.nextPageIdCardBack = matrixBack;
// Android
DocumentReader.Instance().Customization().Edit().SetScaleType(CustomizationScaleType.NextPageIdCardFront, ImageView.ScaleType.Matrix).Apply();
Matrix matrixFront = new Matrix(); // define the matrix parameters
DocumentReader.Instance().Customization().Edit().SetMatrix(CustomizationMatrix.NextPageIdCardFront, matrixFront).Apply();

DocumentReader.Instance().Customization().Edit().SetScaleType(CustomizationScaleType.NextPageIdCardBack, ImageView.ScaleType.Matrix).Apply();
var matrixBack = new Matrix(); // define the matrix parameters
DocumentReader.Instance().Customization().Edit().SetMatrix(CustomizationMatrix.NextPageIdCardBack, matrixBack).Apply();

// iOS
RGLDocReader.Shared.Customization.UiConfiguration = RGLUIConfiguration.ConfigurationWithBuilderBlock((RGLUIConfigurationBuilder builder) =>
{
    builder.SetContentMode(UIViewContentMode.ScaleAspectFit, RGLCustomizationContentMode.Front);
    builder.SetContentMode(UIViewContentMode.ScaleAspectFit, RGLCustomizationContentMode.Back);
});
DocumentReader.setCustomization({
  matrices: {
    nextPageIdCardFront: matrixFront,
    nextPageIdCardBack: matrixBack,
  }
}, _ => { }, _ => { });
DocumentReader.setCustomization({
  matrices: {
    nextPageIdCardFront: matrixFront,
    nextPageIdCardBack: matrixBack,
  }
})
DocumentReader.setCustomization({
  matrices: {
    nextPageIdCardFront: matrixFront,
    nextPageIdCardBack: matrixBack,
  }
}, function (m) { }, function (e) { });
DocReader.shared.customization.multipageAnimationFrontImageContentMode = UIView.ContentMode.scaleAspectFit
DocReader.shared.customization.multipageAnimationBackImageContentMode = UIView.ContentMode.scaleAspectFit
[RGLDocReader shared].customization.multipageAnimationFrontImageContentMode = UIViewContentModeScaleAspectFit;
[RGLDocReader shared].customization.multipageAnimationBackImageContentMode = UIViewContentModeScaleAspectFit;
DocumentReader.Instance().customization().edit().setMultipageAnimationFrontImageScaleType(ImageView.ScaleType.MATRIX).apply()
val matrix = Matrix()
DocumentReader.Instance().customization().edit().setMultipageAnimationFrontImageMatrix(matrix).apply()

DocumentReader.Instance().customization().edit().setMultipageAnimationBackImageScaleType(ImageView.ScaleType.MATRIX).apply()
val matrix = Matrix()
DocumentReader.Instance().customization().edit().setMultipageAnimationBackImageMatrix(matrix).apply()
DocumentReader.Instance().customization().edit().setMultipageAnimationFrontImageScaleType(ImageView.ScaleType.MATRIX).apply();
Matrix matrix = new Matrix();
DocumentReader.Instance().customization().edit().setMultipageAnimationFrontImageMatrix(matrix).apply();

DocumentReader.Instance().customization().edit().setMultipageAnimationBackImageScaleType(ImageView.ScaleType.MATRIX).apply();
Matrix matrix = new Matrix();
DocumentReader.Instance().customization().edit().setMultipageAnimationBackImageMatrix(matrix).apply();
DocumentReader.instance.customization.multipageAnimationFrontImageTransformsIOS =ViewContentMode.SCALE_ASPECT_FIT;
DocumentReader.instance.customization.multipageAnimationFrontImageTransformsAndroid = [];

DocumentReader.instance.customization.multipageAnimationBackImageTransformsIOS =ViewContentMode.SCALE_ASPECT_FIT;
DocumentReader.instance.customization.multipageAnimationBackImageTransformsAndroid = [];
DocumentReader.instance.customization.multipageAnimationFrontImageTransformsIOS = ViewContentMode.SCALE_ASPECT_FIT
DocumentReader.instance.customization.multipageAnimationFrontImageTransformsAndroid = []

DocumentReader.instance.customization.multipageAnimationBackImageTransformsIOS = ViewContentMode.SCALE_ASPECT_FIT
DocumentReader.instance.customization.multipageAnimationBackImageTransformsAndroid = []
// Android
DocumentReader.Instance().Customization().Edit().SetMultipageAnimationFrontImageScaleType(ImageView.ScaleType.Matrix).Apply();
Matrix matrix = new Matrix();
DocumentReader.Instance().Customization().Edit().SetMultipageAnimationFrontImageMatrix(matrix).Apply();

DocumentReader.Instance().Customization().Edit().SetMultipageAnimationBackImageScaleType(ImageView.ScaleType.Matrix).Apply();
Matrix matrix = new Matrix();
DocumentReader.Instance().Customization().Edit().SetMultipageAnimationBackImageMatrix(matrix).Apply();

// iOS
RGLDocReader.Shared.Customization.MultipageAnimationFrontImageContentMode = UIViewContentMode.ScaleAspectFit;
RGLDocReader.Shared.Customization.MultipageAnimationBackImageContentMode = UIViewContentMode.ScaleAspectFit;
DocumentReader.setCustomization({
    multipageAnimationFrontImageContentMode: Enum.UIViewContentMode.ScaleAspectFit,
    multipageAnimationFrontImageMatrix: [],
    multipageAnimationBackImageContentMode: Enum.UIViewContentMode.ScaleAspectFit,
    multipageAnimationBackImageMatrix: []
}, (str) => { console.log(str) }, (error) => { console.log(error) });
DocumentReader.setCustomization({
    multipageAnimationFrontImageContentMode: Enum.UIViewContentMode.ScaleAspectFit,
    multipageAnimationFrontImageMatrix: [],
    multipageAnimationBackImageContentMode: Enum.UIViewContentMode.ScaleAspectFit,
    multipageAnimationBackImageMatrix: []
});
DocumentReader.setCustomization({
    multipageAnimationFrontImageContentMode: Enum.UIViewContentMode.ScaleAspectFit,
    multipageAnimationFrontImageMatrix: [],
    multipageAnimationBackImageContentMode: Enum.UIViewContentMode.ScaleAspectFit,
    multipageAnimationBackImageMatrix: [],
}, function (m) { }, function (e) { console.log(e); });

Set custom delays before the start/end of the multipage animations. By default, no delay is applied:

DocReader.shared.customization.uiConfiguration = DocReader.UIConfiguration {
    $0.setTiming(1.5, forItem: .RGLCustomizationTimingNextPagePassportShiftStartDelay)
    $0.setTiming(1.5, forItem: .RGLCustomizationTimingNextPagePassportShiftEndDelay)
    $0.setTiming(1.5, forItem: .RGLCustomizationTimingNextPagePassportFlipStartDelay)
    $0.setTiming(1.5, forItem: .RGLCustomizationTimingNextPagePassportFlipEndDelay)
}
RGLDocReader.shared.customization.uiConfiguration = [RGLUIConfiguration configurationWithBuilderBlock:^(RGLUIConfigurationBuilder * _Nonnull builder) {
    [builder setTiming:1.5 forItem:RGLCustomizationTimingNextPagePassportShiftStartDelay];
    [builder setTiming:1.5 forItem:RGLCustomizationTimingNextPagePassportShiftEndDelay];
    [builder setTiming:1.5 forItem:RGLCustomizationTimingNextPagePassportFlipStartDelay];
    [builder setTiming:1.5 forItem:RGLCustomizationTimingNextPagePassportFlipEndDelay];
}];
DocumentReader.Instance().customization().edit()
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_FLIP_START_DELAY, 1500)
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_FLIP_END_DELAY, 1500)
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_SHIFT_START_DELAY, 1500)
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_SHIFT_END_DELAY, 1500)
    .apply()
DocumentReader.Instance().customization().edit()
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_FLIP_START_DELAY, 1500)
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_FLIP_END_DELAY, 1500)
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_SHIFT_START_DELAY, 1500)
    .setTiming(CustomizationTiming.NEXT_PAGE_PASSPORT_SHIFT_END_DELAY, 1500)
    .apply();
DocumentReader.instance.customization.timings.nextPagePassportFlipStartDelay = 1500;
DocumentReader.instance.customization.timings.nextPagePassportFlipEndDelay = 1500;
DocumentReader.instance.customization.timings.nextPagePassportShiftStartDelay = 1500;
DocumentReader.instance.customization.timings.nextPagePassportShiftEndDelay = 1500;
DocumentReader.instance.customization.timings.nextPagePassportFlipStartDelay = 1500;
DocumentReader.instance.customization.timings.nextPagePassportFlipEndDelay = 1500;
DocumentReader.instance.customization.timings.nextPagePassportShiftStartDelay = 1500;
DocumentReader.instance.customization.timings.nextPagePassportShiftEndDelay = 1500;
// Android
DocumentReader.Instance().Customization().Edit().SetTiming(CustomizationTiming.NextPagePassportFlipStartDelay, 1500).Apply();
DocumentReader.Instance().Customization().Edit().SetTiming(CustomizationTiming.NextPagePassportFlipEndDelay, 1500).Apply();
DocumentReader.Instance().Customization().Edit().SetTiming(CustomizationTiming.NextPagePassportShiftStartDelay, 1500).Apply();
DocumentReader.Instance().Customization().Edit().SetTiming(CustomizationTiming.NextPagePassportShiftEndDelay, 1500).Apply();

// iOS
RGLDocReader.Shared.Customization.UiConfiguration = RGLUIConfiguration.ConfigurationWithBuilderBlock((RGLUIConfigurationBuilder builder) =>
{
    builder.SetTiming(1.5, RGLCustomizationTiming.PassportFlipStartDelay);
    builder.SetTiming(1.5, RGLCustomizationTiming.PassportFlipEndDelay);
    builder.SetTiming(1.5, RGLCustomizationTiming.PassportShiftStartDelay);
    builder.SetTiming(1.5, RGLCustomizationTiming.PassportShiftEndDelay);
});
DocumentReader.setCustomization({
  timings: {
    nextPagePassportFlipStartDelay: 1500,
    nextPagePassportFlipEndDelay: 1500,
    nextPagePassportShiftStartDelay: 1500,
    nextPagePassportShiftEndDelay: 1500,
  }
}, _ => { }, _ => { });
DocumentReader.setCustomization({
  timings: {
    nextPagePassportFlipStartDelay: 1500,
    nextPagePassportFlipEndDelay: 1500,
    nextPagePassportShiftStartDelay: 1500,
    nextPagePassportShiftEndDelay: 1500,
  }
})
DocumentReader.setCustomization({
  timings: {
    nextPagePassportFlipStartDelay: 1500,
    nextPagePassportFlipEndDelay: 1500,
    nextPagePassportShiftStartDelay: 1500,
    nextPagePassportShiftEndDelay: 1500,
  }
}, function (m) { }, function (e) { });
DocReader.shared.customization.nextPageAnimationStartDelay = 1.5
DocReader.shared.customization.nextPageAnimationEndDelay = 1.5
[RGLDocReader shared].customization.nextPageAnimationStartDelay = 1.5;
[RGLDocReader shared].customization.nextPageAnimationEndDelay = 1.5;
DocumentReader.Instance().customization().edit()
    .setNextPageAnimationStartDelay(1.5F)
    .setNextPageAnimationEndDelay(1.5F)
    .apply()
DocumentReader.Instance().customization().edit()
    .setNextPageAnimationStartDelay(1.5F)
    .setNextPageAnimationEndDelay(1.5F)
    .apply();
DocumentReader.instance.customization.nextPageAnimationStartDelay = 1.5;
DocumentReader.instance.customization.nextPageAnimationEndDelay = 1.5;
DocumentReader.instance.customization.nextPageAnimationStartDelay = 1.5
DocumentReader.instance.customization.nextPageAnimationEndDelay = 1.5
DocumentReader.setCustomization({
    nextPageAnimationStartDelay: 1.5,
    nextPageAnimationEndDelay: 1.5
}, (str) => { console.log(str) }, (error) => { console.log(error) });
DocumentReader.setCustomization({
    nextPageAnimationStartDelay: 1.5,
    nextPageAnimationEndDelay: 1.5
});
DocumentReader.setCustomization({
    nextPageAnimationStartDelay: 1.5,
    nextPageAnimationEndDelay: 1.5
}, function (m) { }, function (e) { console.log(e); });
// Android
DocumentReader.Instance().Customization().Edit().SetNextPageAnimationStartDelay((Java.Lang.Float)1.5F).Apply();
DocumentReader.Instance().Customization().Edit().SetNextPageAnimationEndDelay((Java.Lang.Float)1.5F).Apply();

// iOS
RGLDocReader.Shared.Customization.NextPageAnimationStartDelay = 1.5F;
RGLDocReader.Shared.Customization.NextPageAnimationEndDelay = 1.5F;

Android

Properties are now customized via common methods with enumeration values as parameters. See the detailed information about changed methods and properties further.


Added new CustomizationImage enum members:

  • RFID_DISABLE_NFC_IMAGE("rfidDisableNfcImage")
  • MDL_DISABLE_NFC_IMAGE("mdlDisableNfcImage")
  • HELP_ANIMATION("help_animation")
  • LIVENESS_ANIMATION("liveness_animation")
  • BORDER_BACKGROUND("border_background")
  • TORCH_BUTTON_ON("torch_button_on")
  • TORCH_BUTTON_OFF("torch_button_off")
  • CAPTURE_BUTTON("capture_button")
  • SWITCH_BUTTON("switch_button")
  • CLOSE_BUTTON("close_button")
  • MULTIPAGE_BUTTON("multipage_button")

Added new ParamsCustomization class methods:

  • public CustomizationEditor setImage(CustomizationImage image, @Nullable Drawable drawable)
  • public CustomizationEditor setScaleType(CustomizationScaleType item, @Nullable ImageView.ScaleType scaleType)
  • public CustomizationEditor setTiming(CustomizationTiming item, int ms)

Deprecated the following ParamsCustomization class methods:

  • public Drawable getLivenessAnimationImage()
  • public Drawable getHelpAnimationImageDrawable()
  • public Drawable getBorderBackgroundImage()
  • public Drawable getTorchImageOnDrawable()
  • public Drawable getTorchImageOffDrawable()
  • public Drawable getCloseButtonDrawable()
  • public Drawable getMultipageButtonDrawable()
  • public Drawable getCaptureButtonDrawable()
  • public Drawable getCameraSwitchButtonDrawable()
  • public Float getNextPageAnimationStartDelay()
  • public Float getNextPageAnimationEndDelay()
  • public Drawable getMultipageAnimationFrontImage()
  • public ImageView.ScaleType getMultipageAnimationFrontImageScaleType()
  • public Matrix getMultipageAnimationFrontImageMatrix()
  • public Drawable getMultipageAnimationBackImage()
  • public ImageView.ScaleType getMultipageAnimationBackImageScaleType()
  • public Matrix getMultipageAnimationBackImageMatrix()
  • public CustomizationEditor setBorderBackgroundImage(@Nullable Drawable borderBackgroundImage)
  • public CustomizationEditor setLivenessAnimationImage(@Nullable Drawable helpAnimationImage)
  • public CustomizationEditor setTorchImageOn(@Nullable Drawable torchImageOn)
  • public CustomizationEditor setTorchImageOff(@Nullable Drawable torchImageOff)
  • public CustomizationEditor setCloseButtonImage(@Nullable Drawable closeButton)
  • public CustomizationEditor setMultipageButtonImage(@Nullable Drawable multipageButton)
  • public CustomizationEditor setCaptureButtonImage(@Nullable Drawable captureButtonImage)
  • public CustomizationEditor setCameraSwitchButtonImage(@Nullable Drawable cameraSwitchButtonImage)
  • public CustomizationEditor setMultipageAnimationBackImageMatrix(@Nullable Matrix matrix)
  • public CustomizationEditor setMultipageAnimationBackImageScaleType(ImageView.ScaleType scaleType)
  • public CustomizationEditor setMultipageAnimationBackImage(@Nullable Drawable multipageAnimationBackImage)
  • public CustomizationEditor setMultipageAnimationFrontImageMatrix(@Nullable Matrix matrix)
  • public CustomizationEditor setMultipageAnimationFrontImageScaleType(ImageView.ScaleType scaleType)
  • public CustomizationEditor setMultipageAnimationFrontImage(@Nullable Drawable multipageAnimationFrontImage)
  • public CustomizationEditor setNextPageAnimationStartDelay(float delay)
  • public CustomizationEditor setNextPageAnimationEndDelay(float delay)

For the information about the most current functionality, see Android API Reference Documentation.

iOS

Properties are now customized via common methods with enumeration values as parameters. Several enum cases were renamed. See details in the following tables.


RGLCustomizationColor class:

9.2 9.3
RFIDProcessingScreenBackground RGLCustomizationColorRFIDProcessingScreenBackground
RFIDProcessingScreenHintLabelText RGLCustomizationColorRFIDProcessingScreenHintLabelText
RFIDProcessingScreenHintLabelBackground RGLCustomizationColorRFIDProcessingScreenHintLabelBackground
RFIDProcessingScreenProgressLabelText RGLCustomizationColorRFIDProcessingScreenProgressLabelText
RFIDProcessingScreenProgressBar RGLCustomizationColorRFIDProcessingScreenProgressBar
RFIDProcessingScreenProgressBarBackground RGLCustomizationColorRFIDProcessingScreenProgressBarBackground
RFIDProcessingScreenResultLabelText RGLCustomizationColorRFIDProcessingScreenResultLabelText
RFIDProcessingScreenLoadingBar RGLCustomizationColorRFIDProcessingScreenLoadingBar
MDLProcessingScreenBackground RGLCustomizationColorMDLProcessingScreenBackground
MDLProcessingScreenHintLabelText RGLCustomizationColorMDLProcessingScreenHintLabelText
MDLProcessingScreenHintLabelBackground RGLCustomizationColorMDLProcessingScreenHintLabelBackground
MDLProcessingScreenProgressLabelText RGLCustomizationColorMDLProcessingScreenProgressLabelText
MDLProcessingScreenResultLabelText RGLCustomizationColorMDLProcessingScreenResultLabelText
MDLProcessingScreenLoadingBar RGLCustomizationColorMDLProcessingScreenLoadingBar

RGLCustomizationImage class:

9.2 9.3
RFIDProcessingScreenFailureImage RGLCustomizationImageRFIDProcessingScreenFailure
MDLProcessingScreenFailureImage RGLCustomizationImageMDLProcessingScreenFailure

For the information about the most current functionality, see iOS API Reference Documentation.