Skip to content

IDScanNet/DIVE-ONLINE-SDK-Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DIVE Online SDK

Setup

  1. Add the following to the module build.gradle.kts file:
    dependencies {
        ...
        implementation("net.idscan.components.android:dvsonline:1.14.0")
        ...
    }
    

Using

Configuration of the DIVE Online Fragment


DvsOnlineConfig.Builder is used for configuration of the DvsOnlineFragment object. DvsOnlineConfig.Builder accepts the required Authorization Token, Integration Id, Applicant Id and Company Prefix parameters and provides additional methods for configuration of the DIVE Online fragment. Authenticating requests to the DIVE API are done using the public key / secret key as a Bearer token in the Authorization Header. This key should be defined by the authorizationToken parameter. applicantId is a unique ID generated on each request creation.

DvsOnlineConfig config = new DvsOnlineConfig
        .Builder(authorizationToken, integrationToken, applicantId, companyPrefix)
        .withCustomUserAgent(-- CutstomUserAgent --)
        .withCustomUrl(-- CutomUrl --)
        .build();

Configuration Methods:

DvsOnlineConfig.Builder.withCustomUserAgent(String userAgent)

Allows you to configure the user-agent header in an HTTP request.

Default value is CompanyPrefix.AppName/AppVersion (Android; DeviceModel, OS Name).

DvsOnlineConfig.Builder.withCustomUrl(String url)

Allows you to redefine a DIVE API endpoint.

Default value is https://api-diveonline.idscan.net/api/v2.

Show DIVE Online fragment


DvsOnlineFragment.newInstance(config) accepts the DvsOnlineConfig parameter and returns the instance of DIVE Online fragment that can be used with android FragmentManager in a typical way.

Fragment fragment = DvsOnlineFragment.newInstance(config);
getSupportFragmentManager()
        .beginTransaction()
        .setPrimaryNavigationFragment(fragment)
        .replace(R.id.fragment_container_view, fragment, "DvsOnlineFragment")
        .addToBackStack("DvsOnlineFragment")
        .commit();

Note that we use .setPrimaryNavigationFragment(fragment) here to give DvsOnlineFragment a chance to process back stack navigation before the parent fragment manager.

Processing result


DvsOnlineFragment provides a useful setFragmentResultListener method that allows you get the result of the verification in a convenient way.

DvsOnlineFragment {
    ...
    public interface SuccessCallback {
        void onSuccess(@NonNull ValidationResult result);
    }

    public interface ErrorCallback {
        void onError(@NonNull DvsOnlineException error);
    }
    ...
    
    public static void setFragmentResultListener(
            @NonNull FragmentManager fragmentManager,
            @NonNull LifecycleOwner lifecycleOwner,
            @NonNull SuccessCallback successCallback,
            @NonNull ErrorCallback errorCallback
    ) {
       ...
    }
}

Under the hood setFragmentResultListener uses Fragment Result API and accepts SuccessCallback and ErrorCallback callbacks to process the result of the verification.

Example of using the DIVE Online fragment:

public class MainActivity extends AppCompatActivity {
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);

        // Setup result listener.
        DvsOnlineFragment.setFragmentResultListener(
                getSupportFragmentManager(),
                this,
                this::showDvsOnlineResultFragment,
                this::showDvsOnlineErrorFragment
        );
        
        // Prepare config.
       DvsOnlineConfig config = new DvsOnlineConfig
               .Builder(**authorizationToken**, **integrationToken**, **applicantId**, **companyPrefix**)
               .build();
        
        // Show fragment.
        showDvsOnlineFragment(config);
    }
    
    private void showDvsOnlineFragment(@NonNull DvsOnlineConfig config) {
        FragmentManager fm = getSupportFragmentManager();
        if (fm.findFragmentByTag("DvsOnlineFragment") == null) {
            Fragment fragment = DvsOnlineFragment.newInstance(config);
            getSupportFragmentManager()
                    .beginTransaction()
                    .setPrimaryNavigationFragment(fragment)
                    .replace(R.id.fragment_container_view, fragment, "DvsOnlineFragment")
                    .addToBackStack("DvsOnlineFragment")
                    .commit();
        }
    }

    private void showDvsOnlineResultFragment(@NonNull ValidationResult result) {
        // Process the result.
    }

    private void showDvsOnlineErrorFragment(@NonNull DvsOnlineException error) {
        // Process the error.
    }
}

Customization

UI representation of the DIVE Online fragment is based on the Material Design 2 and can be customized using a theme. The DIVE SDK provides a basic Theme.DVS theme that can be extended to customize the UI.

Typography


DIVE SDK typography is based on the Material Design.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TextAppearance.DVS.Headline1" parent="TextAppearance.MaterialComponents.Headline1">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_bold</item>
        <item name="fontFamily">@font/inter_bold</item>
        <item name="android:textSize">32sp</item>
    </style>

    <style name="TextAppearance.DVS.Headline2" parent="TextAppearance.MaterialComponents.Headline2">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_bold</item>
        <item name="fontFamily">@font/inter_bold</item>
        <item name="android:textSize">32sp</item>
    </style>

    <style name="TextAppearance.DVS.Headline3" parent="TextAppearance.MaterialComponents.Headline3">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_bold</item>
        <item name="fontFamily">@font/inter_bold</item>
        <item name="android:textSize">28sp</item>
    </style>

    <style name="TextAppearance.DVS.Headline4" parent="TextAppearance.MaterialComponents.Headline4">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_bold</item>
        <item name="fontFamily">@font/inter_bold</item>
        <item name="android:textSize">24sp</item>
    </style>

    <style name="TextAppearance.DVS.Headline5" parent="TextAppearance.MaterialComponents.Headline5">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_semi_bold</item>
        <item name="fontFamily">@font/inter_semi_bold</item>
        <item name="android:textSize">18sp</item>
    </style>

    <style name="TextAppearance.DVS.Headline6" parent="TextAppearance.MaterialComponents.Headline6">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_semi_bold</item>
        <item name="fontFamily">@font/inter_semi_bold</item>
        <item name="android:textSize">16sp</item>
    </style>

    <style name="TextAppearance.DVS.Body1" parent="TextAppearance.MaterialComponents.Body1">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_regular</item>
        <item name="fontFamily">@font/inter_regular</item>
        <item name="android:textSize">14sp</item>
    </style>

    <style name="TextAppearance.DVS.Button" parent="TextAppearance.MaterialComponents.Button">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_regular</item>
        <item name="fontFamily">@font/inter_regular</item>
        <item name="android:textSize">14sp</item>
    </style>

    <style name="TextAppearance.DVS.Caption" parent="TextAppearance.MaterialComponents.Caption">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_regular</item>
        <item name="fontFamily">@font/inter_regular</item>
        <item name="android:textSize">12sp</item>
    </style>

    <style name="TextAppearance.DVS.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:fontFamily">@font/inter_semi_bold</item>
        <item name="fontFamily">@font/inter_semi_bold</item>
        <item name="android:textSize">16sp</item>
    </style>

    <style name="TextAppearance.DVS.Body2" parent="TextAppearance.MaterialComponents.Body2">
        <item name="android:fontFamily">@font/inter_regular</item>
        <item name="fontFamily">@font/inter_regular</item>
        <item name="android:textSize">14sp</item>
    </style>


    <style name="TextAppearance.DVS.Subtitle2" parent="TextAppearance.MaterialComponents.Subtitle2">
        <item name="android:fontFamily">@font/inter</item>
        <item name="fontFamily">@font/inter</item>
    </style>

    <style name="TextAppearance.DVS.Overline" parent="TextAppearance.MaterialComponents.Overline">
        <item name="android:fontFamily">@font/inter</item>
        <item name="fontFamily">@font/inter</item>
    </style>

    <style name="Theme.DVS" parent="Theme.MaterialComponents.Light.NoActionBar">
        ...
        <item name="textAppearanceHeadline1">@style/TextAppearance.DVS.Headline1</item>
        <item name="textAppearanceHeadline2">@style/TextAppearance.DVS.Headline2</item>
        <item name="textAppearanceHeadline3">@style/TextAppearance.DVS.Headline3</item>
        <item name="textAppearanceHeadline4">@style/TextAppearance.DVS.Headline4</item>
        <item name="textAppearanceHeadline5">@style/TextAppearance.DVS.Headline5</item>
        <item name="textAppearanceHeadline6">@style/TextAppearance.DVS.Headline6</item>
        <item name="textAppearanceSubtitle1">@style/TextAppearance.DVS.Subtitle1</item>
        <item name="textAppearanceSubtitle2">@style/TextAppearance.DVS.Subtitle2</item>
        <item name="textAppearanceBody1">@style/TextAppearance.DVS.Body1</item>
        <item name="textAppearanceBody2">@style/TextAppearance.DVS.Body2</item>
        <item name="textAppearanceButton">@style/TextAppearance.DVS.Button</item>
        <item name="textAppearanceCaption">@style/TextAppearance.DVS.Caption</item>
        <item name="textAppearanceOverline">@style/TextAppearance.DVS.Overline</item>
        ...
    </style>
</resources>

These styles can be redefined in the custom theme or can be used in your application theme.

Example of a redefined text style

<resources xmlns:tools="http://schemas.android.com/tools">
    ...
    <style name="TextAppearance.CustomDiveTheme.Headline1" parent="TextAppearance.DVS.Headline1">
        <item name="android:textColor">?colorPrimary</item>
        <item name="android:textSize">48sp</item>
    </style>
    ...
    <style name="Theme.CustomDiveTheme" parent="Theme.DVS">
        ...
        <item name="textAppearanceHeadline1">@style/TextAppearance.CustomDiveTheme.Headline1</item>
        ...
    </style>
    ...
</resources>

Typography example

Shapes


DIVE SDK shapes are based on the Material Design.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    ...
    <style name="ShapeAppearance.DVS.SmallComponent" parent="ShapeAppearance.MaterialComponents.SmallComponent">
        <item name="cornerSize">6dp</item>
    </style>

    <style name="ShapeAppearance.DVS.MediumComponent" parent="ShapeAppearance.MaterialComponents.MediumComponent">
        <item name="cornerSize">8dp</item>
    </style>

    <style name="ShapeAppearance.DVS.LargeComponent" parent="ShapeAppearance.MaterialComponents.LargeComponent">
        <item name="cornerSize">12dp</item>
    </style>
    ...
    <style name="Theme.DVS" parent="Theme.MaterialComponents.Light.NoActionBar">
        ...
        <item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.DVS.SmallComponent</item>
        <item name="shapeAppearanceMediumComponent">@style/ShapeAppearance.DVS.MediumComponent</item>
        <item name="shapeAppearanceLargeComponent">@style/ShapeAppearance.DVS.LargeComponent</item>
        ...
    </style>
</resources>

These styles can be redefined in the custom theme or can be used in your application theme.

Example of redefining shapes

<resources xmlns:tools="http://schemas.android.com/tools">
    ...
    <style name="ShapeAppearance.CustomDiveTheme.SmallComponent" parent="ShapeAppearance.DVS.SmallComponent">
        <item name="cornerSize">12dp</item>
        <item name="cornerFamily">cut</item>
    </style>
    ...
    <style name="Theme.CustomDiveTheme" parent="Theme.DVS">
        <item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.CustomDiveTheme.SmallComponent</item>
    </style>
    ...
</resources>

Shapes example

Colors


DIVE SDK colors are based on Material Design colors. You can redefine them in the custom theme to adapt the UI to your branding.

Example of redefining colors

<resources xmlns:tools="http://schemas.android.com/tools">
    ...
    <style name="Theme.CustomDiveTheme" parent="Theme.DVS">
        ...
        <item name="colorPrimary">#F500BC</item>
        ...
    </style>
    ...
</resources>

Colors example

Buttons


Style of DIVE SDK buttons is based on Material Button and Outlined Material Button.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    ...
    <style name="Widget.DVS.MaterialButton" parent="Widget.MaterialComponents.Button">
        <item name="android:insetTop">0dp</item>
        <item name="android:insetBottom">0dp</item>
        <item name="android:insetLeft">0dp</item>
        <item name="android:insetRight">0dp</item>
        <item name="iconPadding">8dp</item>
        <item name="iconSize">12dp</item>
        <item name="android:textAllCaps">false</item>
    </style>

    <style name="Widget.DVS.OutlinedMaterialButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
        <item name="android:insetTop">0dp</item>
        <item name="android:insetBottom">0dp</item>
        <item name="android:insetLeft">0dp</item>
        <item name="android:insetRight">0dp</item>
        <item name="iconPadding">8dp</item>
        <item name="iconSize">12dp</item>
        <item name="android:textAllCaps">false</item>
        <item name="android:textColor">?colorOnSurface</item>
        <item name="iconTint">?colorOnSurface</item>
    </style>
    ...
    <style name="Theme.DVS" parent="Theme.MaterialComponents.Light.NoActionBar">
        ...
        <item name="materialButtonStyle">@style/Widget.DVS.MaterialButton</item>
        <item name="materialButtonOutlinedStyle">@style/Widget.DVS.OutlinedMaterialButton</item>
        ...
    </style>
    ...
</resources>

You can redefine this styles in custom theme or use them in your application theme.

Example of redefining the style of buttons

<resources xmlns:tools="http://schemas.android.com/tools">
    ...
    <style name="Widget.CustomDiveTheme.MaterialButton" parent="Widget.DVS.MaterialButton">
        <item name="android:textAllCaps">true</item>
        <item name="android:textAppearance">?attr/textAppearanceSubtitle1</item>
    </style>
    
    <style name="Widget.CustomDiveTheme.OutlinedMaterialButton" parent="Widget.DVS.OutlinedMaterialButton">
        <item name="android:textAllCaps">true</item>
        <item name="android:textColor">?colorPrimary</item>
        <item name="iconTint">?colorPrimary</item>
        <item name="android:textAppearance">?attr/textAppearanceSubtitle1</item>
    </style>
    ...
    <style name="Theme.CustomDiveTheme" parent="Theme.DVS">
        ...
        <item name="materialButtonStyle">@style/Widget.CustomDiveTheme.MaterialButton</item>
        <item name="materialButtonOutlinedStyle">@style/Widget.CustomDiveTheme.OutlinedMaterialButton</item>
        ...
    </style>
    ...
</resources>

Buttons example

Dialogs


The Style of the DIVE SDK Dialogs is based on MaterialAlertDialog

<resources>
    <style name="Theme.DVS" parent="Theme.MaterialComponents.Light.NoActionBar">
        ...
        <item name="dialogCornerRadius">8dp</item>
        <item name="materialAlertDialogTheme">@style/ThemeOverlay.DVS.AlertDialog</item>
        <item name="dialogTheme">@style/ThemeOverlay.DVS.AlertDialog</item>
        ...
    </style>
    ...
    <style name="ThemeOverlay.DVS.AlertDialog" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
        <item name="materialAlertDialogTitlePanelStyle">@style/Widget.DVS.AlertDialog.Title.Panel</item>
        <item name="materialAlertDialogTitleTextStyle">@style/Widget.DVS.AlertDialog.Title.Text</item>
        <item name="materialAlertDialogBodyTextStyle">@style/Widget.DVS.AlertDialog.Body.Text</item>
        <item name="buttonBarPositiveButtonStyle">@style/Widget.DVS.AlertDialog.Button.Positive</item>
        <item name="buttonBarNeutralButtonStyle">@style/Widget.DVS.AlertDialog.Button.Positive</item>
        <item name="buttonBarNegativeButtonStyle">@style/Widget.DVS.AlertDialog.Button.Negative</item>
        <item name="android:dividerHeight">1dp</item>
        <item name="listDividerAlertDialog">@drawable/dvs_common_divider</item>
        <item name="android:listDivider">@drawable/dvs_common_divider</item>
        <item name="shapeAppearanceOverlay">@style/ShapeAppearance.DVS.Dialog</item>
        <item name="listPreferredItemHeightSmall">48dp</item>
        <item name="textAppearanceListItem">?textAppearanceBody1</item>
        <item name="textAppearanceListItemSecondary">?textAppearanceBody1</item>
        <item name="textAppearanceListItemSmall">?textAppearanceBody1</item>
    </style>
    ...
    <style name="Widget.DVS.Dialog.Title" parent="">
        <item name="android:textAppearance">?textAppearanceHeadline4</item>
        <item name="android:textColor">?colorOnPrimary</item>
        <item name="android:background">?colorPrimary</item>
        <item name="android:paddingLeft">16dp</item>
        <item name="android:paddingRight">16dp</item>
        <item name="android:paddingTop">24dp</item>
        <item name="android:paddingBottom">24dp</item>
    </style>

    <style name="Widget.DVS.Dialog.Button" parent="Widget.MaterialComponents.Button.OutlinedButton">
        <item name="android:insetTop">0dp</item>
        <item name="android:insetBottom">0dp</item>
        <item name="android:insetRight">0dp</item>
        <item name="android:insetLeft">0dp</item>
        <item name="strokeWidth">0dp</item>
        <item name="android:maxLines">1</item>
        <item name="android:textAppearance">?textAppearanceButton</item>
    </style>

    <style name="Widget.DVS.Dialog.Button.Positive">
        <item name="shapeAppearanceOverlay">@style/ShapeAppearance.DVS.Dialog.Button.Positive</item>
    </style>

    <style name="Widget.DVS.Dialog.Button.Negative">
        <item name="shapeAppearanceOverlay">@style/ShapeAppearance.DVS.Dialog.Button.Negative</item>
    </style>

    <style name="Widget.DVS.AlertDialog.Title.Panel" parent="MaterialAlertDialog.MaterialComponents.Title.Panel">
        <item name="android:background">@null</item>
        <item name="android:paddingLeft">16dp</item>
        <item name="android:paddingRight">16dp</item>
        <item name="android:paddingTop">12dp</item>
        <item name="android:paddingBottom">12dp</item>
    </style>

    <style name="Widget.DVS.AlertDialog.Title.Text" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:textAppearance">?textAppearanceSubtitle1</item>
        <item name="android:textColor">?colorOnSurface</item>
        <item name="android:textStyle">bold</item>
    </style>

    <style name="Widget.DVS.AlertDialog.Body.Text" parent="">
        <item name="android:textAppearance">?textAppearanceBody1</item>
        <item name="android:textColor">?colorOnSurface</item>
    </style>

    <style name="Widget.DVS.AlertDialog.Button" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
        <item name="shapeAppearance">@style/ShapeAppearance.DVS.SmallComponent</item>
        <item name="android:textStyle">bold</item>
    </style>

    <style name="Widget.DVS.AlertDialog.Button.Positive">
        <item name="android:textColor">?colorPrimary</item>
    </style>

    <style name="Widget.DVS.AlertDialog.Button.Negative">
        <item name="android:textColor">?colorError</item>
    </style>
</resources>

You can redefine these styles within the custom theme or use them in your application theme.

Example of redefining the style of Dialogs

<resources xmlns:tools="http://schemas.android.com/tools">
    ...
    <style name="Widget.CustomDiveTheme.AlertDialog.Title.Panel" parent="Widget.DVS.AlertDialog.Title.Panel">
        <item name="android:background">?colorPrimary</item>
    </style>

    <style name="Widget.CustomDiveTheme.AlertDialog.Title.Text" parent="Widget.DVS.AlertDialog.Title.Text">
        <item name="android:textAppearance">?textAppearanceHeadline3</item>
        <item name="android:textColor">?colorOnPrimary</item>
    </style>

    <style name="Widget.CustomDiveTheme.AlertDialog.Body.Text" parent="Widget.DVS.AlertDialog.Body.Text">
        <item name="android:textAppearance">?textAppearanceBody2</item>
        <item name="android:textColor">?colorAccent</item>
    </style>

    <style name="ThemeOverlay.CustomDiveTheme.AlertDialog" parent="ThemeOverlay.DVS.AlertDialog">
        <item name="materialAlertDialogTitlePanelStyle">@style/Widget.CustomDiveTheme.AlertDialog.Title.Panel</item>
        <item name="materialAlertDialogTitleTextStyle">@style/Widget.CustomDiveTheme.AlertDialog.Title.Text</item>
        <item name="materialAlertDialogBodyTextStyle">@style/Widget.CustomDiveTheme.AlertDialog.Body.Text</item>
    </style>
    ...
    <style name="Theme.CustomDiveTheme" parent="Theme.DVS">
        ...
        <item name="dialogCornerRadius">16dp</item>
        <item name="materialAlertDialogTheme">@style/ThemeOverlay.CustomDiveTheme.AlertDialog</item>
        <item name="dialogTheme">@style/ThemeOverlay.CustomDiveTheme.AlertDialog</item>
        ...
    </style>

</resources>

Dialogs example

Anatomy of Views

Select the Document Type Screen


Select Document Type

  1. Title
  2. Background
  3. Subtitle
  4. List of document types
1. Title
Parameter Expanded State Collapsed State
Text Appearance ?textAppearanceHeadline1 ?textAppearanceSubtitle1
Background ?android:colorBackground ?android:colorBackground
2. Background
Parameter Value
Background ?android:windowBackground
3. Subtitle
Parameter Value
Text Appearance ?textAppearanceHeadline4
Text Color ?colorOnSurface
4. List of document types
Parameter Value
Background ?colorSurface
Item Text Appearance ?textAppearanceBody1
Item Text Color ?colorOnSurface

 

Summary Screen


Summary Screen

  1. Title
  2. Background
  3. Subtitle
  4. Type Selector
  5. Step View
1. Title
Parameter Expanded State Collapsed State
Text Appearance ?textAppearanceHeadline1 ?textAppearanceSubtitle1
Background ?android:colorBackground ?android:colorBackground
2. Background
Parameter Value
Background ?android:windowBackground
3. Subtitle
Parameter Value
Text Appearance ?textAppearanceHeadline4
Text Color ?colorOnSurface
4. Type Selector
Parameter Value
Text Appearance ?textAppearanceBody1
Text Color ?colorOnSurface
Background ?colorSurface
5. Step View
Parameter Value
Step Title Text Appearance ?textAppearanceBody1
Step Title Text Color ?colorPrimary
Step Description Text Appearance ?textAppearanceHeadline5
Step Description Text Color ?colorOnSurface
Background ?colorSurface

 

Capture Screen


Capture Screen

  1. Source Selector
  2. Camera Scan Hint
  3. Manual Upload Title
  4. Manual Upload Subtitle
  5. Step Indicator
1. Source Selector
Parameter Active State Inactive State
Text Appearance ?textAppearanceBody1 ?textAppearanceBody1
Text Color ?colorOnSurface #59595F
Background ?colorSurface Transparent
2. Camera Scan Hint

The style of the hint is defined by the ?dvsInstructionTextViewStyle theme attribute.

<style name="Theme.DVS">
    ...
    <item name="dvsInstructionTextViewStyle">@style/Widget.DVS.TextView.Instruction</item>
    ...
</style>

The default value of this attribute is @style/Widget.DVS.TextView.Instruction that is defined as follows:

For default form factor.
<style name="Widget.DVS.TextView.Instruction" parent="Widget.MaterialComponents.TextView">
    <item name="android:textAlignment">center</item>
    <item name="android:textAppearance">?textAppearanceHeadline4</item>
    <item name="android:textColor">?colorOnPrimary</item>
</style>
For w720dp form factor.
<style name="Widget.DVS.TextView.Instruction" parent="Widget.MaterialComponents.TextView">
    <item name="android:textAlignment">center</item>
    <item name="android:textAppearance">?textAppearanceHeadline4</item>
    <item name="android:textColor">?colorOnSurface</item>
</style>
Parameter Default w720dp
Text Appearance ?textAppearanceHeadline4 ?textAppearanceHeadline4
Text Color ?colorOnPrimary ?colorOnSurface
3. Manual Upload Title
Parameter Value
Text Appearance ?textAppearanceSubtitle1
Text Color ?colorOnSurface
4. Manual Upload Subtitle
Parameter Value
Text Appearance ?textAppearanceCaption
5. Step Indicator
Parameter Active State Inactive State Completed State
Text Appearance ?textAppearanceBody1 ?textAppearanceBody1 ?textAppearanceBody1
Text Color ?colorOnSurface #FFB5B5B5 ?colorAccent
Border Color ?colorPrimary @null @null

 

Loading Screen


Loading Screen

  1. Title
  2. Loading Indicator
1. Title
Parameter Value
Text Appearance ?textAppearanceHeadline1
2. Loading Indicator
Parameter Value
Indicator Color ?colorPrimary
Indicator Track Color #22000000
Text Appearance ?textAppearanceSubtitle1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages