Newer Version Available

This content describes an older version of this product. View Latest

Referral Customization for Android

After you build the Referral Mobile SDK for Android, you can customize the referral UI components, and modify the referral-related configuration in the MyNTORewards sample app.

UI Customization

The referral UI components are available in the /LoyaltyMobileSDK-Android/SampleApps/MyNTORewards/src/main/java/com/salesforce/loyalty/mobile/myntorewards/views/components package.

For example, to include the Gmail icon as one of the sharing options in the app:

  • Add the new Gmail icon in the LoyaltyMobileSDK-Android/SampleApps/MyNTORewards/src/main/res/drawable folder.
  • Open the LoyaltyMobileSDK-Android/SampleApps/MyNTORewards/src/main/java/com/salesforce/loyalty/mobile/myntorewards/utilities/ShareType.kt file in Android Studio, and add an entry for Gmail that contains the new icon ID, the Gmail package name, and the INTENT_TYPE_MAIL constant inside the ShareType enum class.
1* This class holds the all possible social media sharing options
2 * To customise the social media icons, change the iconIds configured below
3 * To add new sharing option, add below with iconId, packageName and Intent share type
4 */
5enum class ShareType(@DrawableRes val iconId: Int, val packageName: String?, val intentShareType: String? = ShareType.INTENT_TYPE_TEXT) {
6    FACEBOOK(R.drawable.ic_facebook, ShareType.FACEBOOK_APP_PACKAGE, ShareType.INTENT_TYPE_IMAGE),
7    INSTAGRAM(R.drawable.ic_instagram, ShareType.INSTAGRAM_APP_PACKAGE),
8    WHATSAPP(R.drawable.ic_whatsapp, ShareType.WHATSAPP_APP_PACKAGE),
9    TWITTER(R.drawable.ic_twitter, ShareType.TWITTER_APP_PACKAGE),
10    GMAIL(R.drawable.ic_gmail, ShareType.GMAIL_APP_PACKAGE, ShareType.INTENT_TYPE_MAIL),
11    SHARE_OTHERS(R.drawable.ic_share, null); // Package name is null as its generic sharing option
12
13    companion object {
14        const val INTENT_TYPE_TEXT = "text/plain"
15        const val INTENT_TYPE_IMAGE = "image/*"
16        const val INTENT_TYPE_MAIL = "message/rfc822"
17        const val FACEBOOK_APP_PACKAGE = "com.facebook.katana"
18        const val WHATSAPP_APP_PACKAGE = "com.whatsapp"
19        const val INSTAGRAM_APP_PACKAGE = "com.instagram.android"
20        const val TWITTER_APP_PACKAGE = "com.twitter.android"
21        const val GMAIL_APP_PACKAGE = "com.google.android.gm"
22    }
23}

Settings Customization

You can modify the referral program details in the LoyaltyMobileSDK-Android/SampleApps/MyNTORewards/src/main/java/com/salesforce/loyalty/mobile/myntorewards/referrals/ReferralConfig.kt file.

Here are all the properties you can modify.

1/**
2 * Referral configuration class
3 */
4object ReferralConfig {
5    // Referral Program Name
6    const val REFERRAL_PROGRAM_NAME = "NTO Insider"
7    // Configure Referral Promotion Details below, where user can also able to enroll and refer from My Referrals screen
8    const val REFERRAL_DEFAULT_PROMOTION_CODE = "TEMPRP7"
9    const val REFERRAL_DEFAULT_PROMOTION_ID = "0c81Q0000004UL4QAM"
10    // Referral duration - By default, showing the last 90days of referrals info
11    const val REFERRAL_DURATION = 90
12    /* Provided random link here instead of actual Terms and Conditions link.
13    Replace with valid terms and conditions link while using the feature */
14    const val REFERRAL_TANDC_LINK = "https://www.google.co.in/"
15}
  • REFERRAL_DEFAULT_PROMOTION_CODE and REFERRAL_DEFAULT_PROMOTION_ID: The default promotion code and ID.
  • REFERRAL_DURATION: The period in days for which the referral details are to be displayed. By default, the sample app shows the referral information of the last 90 days.
  • REFERRAL_PROGRAM_NAME: The default referral program name.
  • REFERRAL_TANDC_LINK: An external Terms and Conditions link.

For a complete walkthrough of the referral feature in the MyNTORewards app, see Walkthrough of the Sample App.

An advocate can refer a friend only once. When an advocate makes repeated attempts to refer a friend, you can show a custom message based on your company’s branding.

Note