From 0d04d4583af468e5268f1bc236a50bcb39e1df3e Mon Sep 17 00:00:00 2001 From: ShriPrakashBajpai Date: Mon, 9 Oct 2023 23:39:18 +0530 Subject: [PATCH 1/3] Whatsapp Business share implemented --- src/screens/caseDetails/feedback/FeedbackDetailItem.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx b/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx index 1846d506..6d63f3d4 100644 --- a/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx +++ b/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx @@ -114,7 +114,7 @@ const FeedbackDetailItem = ({ feedbackItem, isExpanded, caseId }: IFeedbackDetai agentId: agentId, }); - var message = `*Visit Feedback* for ${sanitizeString(caseDetails?.customerName)} + let message = `*Visit Feedback* for ${sanitizeString(caseDetails?.customerName)} _${sanitizeString(dateFormat(new Date(feedbackItem?.createdAt), 'DD MMM, YYYY | HH:mm a.'))}_\n *LAN*: ${sanitizeString(caseDetails?.loanAccountNumber)} *DPD Bucket*: ${sanitizeString(caseDetails?.dpdBucket)} @@ -162,10 +162,10 @@ _${sanitizeString(dateFormat(new Date(feedbackItem?.createdAt), 'DD MMM, YYYY | const imagesList = feedbackItem?.answerViews.filter( (answer) => answer.questionTag === OPTION_TAG.IMAGE_UPLOAD ); - var imageUrl = ''; + let imageUrl = ''; const mimeType = 'image/*'; if (imagesList.length > 0) { - var imageUri = ''; + let imageUri = ''; imageUri = imagesList[0]?.inputText ? imagesList[0].inputText : ''; let imagePath = ''; ReactNativeBlobUtil.config({ From 5d061629f083a779e7d56b2723dbb14c84c0b5f7 Mon Sep 17 00:00:00 2001 From: Varnit Goyal Date: Tue, 10 Oct 2023 14:42:45 +0530 Subject: [PATCH 2/3] TP-00000 | merged to master --- RN-UI-LIB | 2 +- src/screens/caseDetails/feedback/FeedbackDetailItem.tsx | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/RN-UI-LIB b/RN-UI-LIB index 4c7f4f68..b10108d9 160000 --- a/RN-UI-LIB +++ b/RN-UI-LIB @@ -1 +1 @@ -Subproject commit 4c7f4f6880d96bffa856e04d7b2b4d383e42c5cf +Subproject commit b10108d97c70125e17d9781654f7a4cf01b3f2da diff --git a/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx b/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx index d72207b1..967f4a51 100644 --- a/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx +++ b/src/screens/caseDetails/feedback/FeedbackDetailItem.tsx @@ -20,7 +20,6 @@ import { IFeedback, OPTION_TAG, } from '../../../types/feedback.types'; -import { CaseDetail, Address as IAddress } from '../interface'; import MapIcon from '../../../../RN-UI-LIB/src/Icons/MapIcon'; import { FEEDBACK_TYPE } from '../../../types/feedback.types'; import CallIcon from '../../../../RN-UI-LIB/src/Icons/CallIcon'; From 20f989e51edefd539d41d23ecf4cf9e30b7514a0 Mon Sep 17 00:00:00 2001 From: ShriPrakashBajpai Date: Tue, 10 Oct 2023 18:25:14 +0530 Subject: [PATCH 3/3] Whatsapp business implemented with EMI amount --- android/app/src/main/AndroidManifest.xml | 1 + .../java/com/avapp/DeviceUtilsModule.java | 95 +++++++++++++------ src/components/utlis/commonFunctions.ts | 7 -- 3 files changed, 68 insertions(+), 35 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b6c2906d..463e9f52 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -35,6 +35,7 @@ + isWhatsAppInstalled() { PackageManager packageManager = RNContext.getPackageManager(); List packages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA); + ArrayList appsInstalled = new ArrayList(); for (PackageInfo packageInfo : packages) { String packageName = packageInfo.packageName; - if(packageName.equals("com.whatsapp")){ - return true; + if(packageName.equals("com.whatsapp") || packageName.equals("com.whatsapp.w4b")){ + appsInstalled.add(packageName); } } - return false; + return appsInstalled; + } + + public Intent getWhatsappShareIntent(String message, String imageUrl, String mimeType, String packageName) { + Intent sendIntent = new Intent(); + sendIntent.setAction(Intent.ACTION_SEND); + sendIntent.putExtra(Intent.EXTRA_TEXT, message); + + if (imageUrl.equals("")) { + sendIntent.setType("text/plain"); + sendIntent.setPackage(packageName); + } else { + sendIntent.setType(mimeType); + sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + imageFile = convertBase64ToFile(getReactApplicationContext(), imageUrl); + Uri fileUri = FileProvider.getUriForFile(getReactApplicationContext(), BuildConfig.APPLICATION_ID + ".provider", new File( + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), + imageFile.getName() + ) + ); + sendIntent.putExtra(Intent.EXTRA_STREAM, fileUri); + sendIntent.setPackage(packageName); + } + + return sendIntent; } @ReactMethod public void sendFeedbackToWhatsapp(String message, String imageUrl, String mimeType, Promise promise) { try{ - if(!isWhatsAppInstalled()){ + ArrayList appsInstalled = isWhatsAppInstalled(); + int numberOfAppsInstalled = appsInstalled.size(); + + if(numberOfAppsInstalled == 0){ promise.reject("errorCode", "1"); return; } - Intent sendIntent = new Intent(); - sendIntent.setAction(Intent.ACTION_SEND); - sendIntent.putExtra(Intent.EXTRA_TEXT, message); - - if(imageUrl.equals("")) { - sendIntent.setType("text/plain"); - sendIntent.setPackage("com.whatsapp"); - getCurrentActivity().startActivity(sendIntent); - } else { - sendIntent.setType(mimeType); - sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - imageFile = convertBase64ToFile(getReactApplicationContext(), imageUrl); - Uri fileUri = FileProvider.getUriForFile(getReactApplicationContext(), BuildConfig.APPLICATION_ID + ".provider", new File( - Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), - imageFile.getName() - ) - ); - sendIntent.putExtra(Intent.EXTRA_STREAM, fileUri); - sendIntent.setPackage("com.whatsapp"); - getCurrentActivity().startActivityForResult(sendIntent, WHATSAPP_SHARE_REQUEST_CODE); + else if(numberOfAppsInstalled == 1) { + String packageName = appsInstalled.get(0); + Intent sendIntent = getWhatsappShareIntent(message, imageUrl, mimeType, packageName); + if(getCurrentActivity()!=null) { + getCurrentActivity().startActivityForResult(sendIntent, WHATSAPP_SHARE_REQUEST_CODE); + } + promise.resolve(true); + return; + } + + else { + String packageName1 = appsInstalled.get(0); + String packageName2 = appsInstalled.get(1); + //Firing two intents, one for WhatsApp, another for WhatsApp business + Intent sendIntent1 = getWhatsappShareIntent(message, imageUrl, mimeType, packageName1); + Intent sendIntent2 = getWhatsappShareIntent(message, imageUrl, mimeType, packageName2); + ArrayList appIntents = new ArrayList<>(); + appIntents.add(sendIntent1); + appIntents.add(sendIntent2); + + Intent defaultIntent = new Intent(android.content.Intent.ACTION_SEND); + defaultIntent.setType("text/plain"); + defaultIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Sharing to WhatsApp"); + + Intent chooserIntent = Intent.createChooser(defaultIntent, "Share via"); + chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, appIntents.toArray(new Parcelable[appIntents.size()])); + if (getCurrentActivity() != null) { + getCurrentActivity().startActivityForResult(chooserIntent, WHATSAPP_SHARE_REQUEST_CODE); + } + promise.resolve(true); + return; } - promise.resolve(true); - return; } catch (Error e){ promise.reject("errorCode","2"); diff --git a/src/components/utlis/commonFunctions.ts b/src/components/utlis/commonFunctions.ts index 993f96cd..caf22894 100644 --- a/src/components/utlis/commonFunctions.ts +++ b/src/components/utlis/commonFunctions.ts @@ -368,10 +368,3 @@ export function getDistanceFromLatLonInKm( const distance = 2 * Math.atan2(Math.sqrt(intermediateResult), Math.sqrt(1 - intermediateResult)); return EARTH_RADIUS * distance; } - -export function insertCommasinAmount(amount: number | undefined) { - const reversedAmount = amount?.toString().split('').reverse().join(''); - const groups = reversedAmount?.match(/.{1,3}/g); - const result = groups?.join(',').split('').reverse().join(''); - return result; -}