Compare commits

..

No commits in common. 'development' and 'video-stream-crash_fixes' have entirely different histories.

@ -28,14 +28,14 @@ apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion 30 compileSdkVersion 30
signingConfigs { // signingConfigs {
release { // release {
storeFile file('/Users/nextwo/Desktop/Elham/keys/doctor app key') // storeFile file('C:\\Users\\admin\\Downloads\\DQKey.jks')
storePassword 'Hmgdoctor1234' // storePassword 'HmGsa123'
keyAlias 'hmgdoctor' // keyAlias 'key'
keyPassword 'Hmgdoctor1234' // keyPassword 'HmGsa123'
} // }
} // }
sourceSets { sourceSets {
main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/kotlin'
@ -59,8 +59,7 @@ android {
buildTypes { buildTypes {
release { release {
// TODO: Add your own signing config for the release build. // TODO: Add your own signing config for the release build.
signingConfig signingConfigs.release signingConfig signingConfigs.debug
} }
debug { debug {
// Signing with the debug keys for now, so `flutter run --release` works. // Signing with the debug keys for now, so `flutter run --release` works.
@ -111,6 +110,5 @@ dependencies {
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1' implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0' implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
implementation 'com.google.firebase:firebase-analytics:17.4.1'
} }
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'

@ -1,77 +1,34 @@
{ {
"project_info": { "project_info": {
"project_number": "934365232760", "project_number": "157373154094",
"project_id": "hmg-dr-app", "project_id": "hmg-doctor-app-1553688619744",
"storage_bucket": "hmg-dr-app.appspot.com" "storage_bucket": "hmg-doctor-app-1553688619744.appspot.com"
}, },
"client": [ "client": [
{ {
"client_info": { "client_info": {
"mobilesdk_app_id": "1:934365232760:android:024b3569972f1c09f9778d", "mobilesdk_app_id": "1:157373154094:android:daeea3a4e1f4462a1bf0bf",
"android_client_info": {
"package_name": "COM.HMG.HMGDR"
}
},
"oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:934365232760:android:e0e185e68c0d7690f9778d",
"android_client_info": { "android_client_info": {
"package_name": "com.hmg.hmgDr" "package_name": "com.hmg.hmgDr"
} }
}, },
"oauth_client": [ "oauth_client": [
{ {
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", "client_id": "157373154094-egrhbfr861l7k722g3v2gd4a0opi3r1u.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
} }
], ],
"api_key": [ "api_key": [
{ {
"current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I" "current_key": "AIzaSyDX8RPwu00MyrpqC-T2zXtrUQvTQGRv1mM"
} }
], ],
"services": { "services": {
"appinvite_service": { "appinvite_service": {
"other_platform_oauth_client": [ "other_platform_oauth_client": [
{ {
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", "client_id": "157373154094-egrhbfr861l7k722g3v2gd4a0opi3r1u.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
} }
] ]
} }

@ -30,7 +30,7 @@
<uses-feature android:name="android.hardware.camera.autofocus" /> <uses-feature android:name="android.hardware.camera.autofocus" />
<application <application
android:name=".AppApplication" android:name="AppApplication"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
tools:replace="android:name" tools:replace="android:name"

@ -31,7 +31,7 @@ import pub.devrel.easypermissions.EasyPermissions
class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler, class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
VideoCallResponseListener { VideoCallResponseListener, EasyPermissions.PermissionCallbacks {
/* Permission request code to draw over other apps */ /* Permission request code to draw over other apps */
private val DRAW_OVER_OTHER_APP_PERMISSION_REQUEST_CODE = 1222 private val DRAW_OVER_OTHER_APP_PERMISSION_REQUEST_CODE = 1222
@ -131,6 +131,8 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
} }
private fun checkFloatingWidgetPermission() { private fun checkFloatingWidgetPermission() {
// requestPermissions()
// Check if the application has draw over other apps permission or not? // Check if the application has draw over other apps permission or not?
// This permission is by default available for API<23. But for API > 23 // This permission is by default available for API<23. But for API > 23
// you have to ask for the permission in runtime. // you have to ask for the permission in runtime.
@ -160,7 +162,27 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == DRAW_OVER_OTHER_APP_PERMISSION_REQUEST_CODE) { /*if (requestCode == LAUNCH_VIDEO) {
if (resultCode == Activity.RESULT_OK) {
val result : SessionStatusModel? = data?.getParcelableExtra("sessionStatusNotRespond")
val callResponse : HashMap<String, String> = HashMap()
val sessionStatus : HashMap<String, String> = HashMap()
val gson = GsonBuilder().serializeNulls().create()
callResponse["callResponse"] = "CallNotRespond"
val jsonRes = gson.toJson(result)
callResponse["sessionStatus"] = jsonRes
this.result?.success(callResponse)
}
if (resultCode == Activity.RESULT_CANCELED) {
val callResponse : HashMap<String, String> = HashMap()
callResponse["callResponse"] = "CallEnd"
result?.success(callResponse)
}
} else*/ if (requestCode == DRAW_OVER_OTHER_APP_PERMISSION_REQUEST_CODE) {
//Check if the permission is granted or not. //Check if the permission is granted or not.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Settings.canDrawOverlays(this)) { if (Settings.canDrawOverlays(this)) {
@ -281,4 +303,67 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
} }
} }
@AfterPermissionGranted(RC_READ_WRITE)
private fun requestPermissions() {
val perms = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
)
var havePermission = false
for (requiredPermission: String in perms) {
val checkVal: Int = checkCallingOrSelfPermission(requiredPermission)
if (checkVal == PackageManager.PERMISSION_GRANTED) {
havePermission = true
}
}
if (!havePermission) {
EasyPermissions.requestPermissions(
this,
getString(R.string.remaining_ar),
RC_READ_WRITE,
*perms
)
}
/* if (EasyPermissions.hasPermissions(this, *perms)) {
} else {
EasyPermissions.requestPermissions(
this,
getString(R.string.remaining_ar),
RC_READ_WRITE,
*perms
)
}*/
}
override fun onPermissionsGranted(requestCode: Int, perms: MutableList<String>?) {
}
override fun onPermissionsDenied(requestCode: Int, perms: MutableList<String>) {
if (EasyPermissions.somePermissionPermanentlyDenied(this@MainActivity, perms)) {
AppSettingsDialog.Builder(this)
.setTitle(getString(R.string.title_settings_dialog))
.setRationale(getString(R.string.rationale_ask_again))
.setPositiveButton(getString(R.string.setting))
.setNegativeButton(getString(R.string.cancel))
.setRequestCode(RC_SETTINGS_SCREEN_PERM)
.build()
.show()
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String?>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this)
}
companion object {
private const val RC_READ_WRITE = 1
private const val RC_SETTINGS_SCREEN_PERM = 123
}
} }

@ -1,234 +0,0 @@
package com.hmg.hmgDr.Service
import android.annotation.SuppressLint
import android.app.Service
import android.content.Context
import android.graphics.PixelFormat
import android.graphics.Point
import android.os.Build
import android.os.CountDownTimer
import android.util.Log
import android.view.*
import androidx.core.view.GestureDetectorCompat
import com.hmg.hmgDr.R
import com.hmg.hmgDr.util.ViewsUtil
abstract class BaseMovingFloatingWidget : Service() {
val szWindow = Point()
lateinit var windowManagerParams: WindowManager.LayoutParams
var mWindowManager: WindowManager? = null
var floatingWidgetView: View? = null
lateinit var floatingViewContainer: View
lateinit var mDetector: GestureDetectorCompat
private var xInitCord = 0
private var yInitCord: Int = 0
private var xInitMargin: Int = 0
private var yInitMargin: Int = 0
/* Add Floating Widget View to Window Manager */
open fun addFloatingWidgetView() {
mWindowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
//Init LayoutInflater
val inflater = getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater
//Inflate the removing view layout we created
floatingWidgetView = inflater.inflate(R.layout.activity_video_call, null)
//Add the view to the window.
windowManagerParams =
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
)
} else {
WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
)
}
//Specify the view position
windowManagerParams.gravity = Gravity.TOP or Gravity.START
}
@SuppressLint("ClickableViewAccessibility")
val dragListener: View.OnTouchListener = View.OnTouchListener { _, event ->
mDetector.onTouchEvent(event)
//Get Floating widget view params
val layoutParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
//get the touch location coordinates
val x_cord = event.rawX.toInt()
val y_cord = event.rawY.toInt()
val x_cord_Destination: Int
var y_cord_Destination: Int
when (event.action) {
MotionEvent.ACTION_DOWN -> {
xInitCord = x_cord
yInitCord = y_cord
//remember the initial position.
xInitMargin = layoutParams.x
yInitMargin = layoutParams.y
}
MotionEvent.ACTION_UP -> {
//Get the difference between initial coordinate and current coordinate
val x_diff: Int = x_cord - xInitCord
val y_diff: Int = y_cord - yInitCord
y_cord_Destination = yInitMargin + y_diff
val barHeight: Int = ViewsUtil.getStatusBarHeight(applicationContext)
if (y_cord_Destination < 0) {
y_cord_Destination = 0
// y_cord_Destination =
// -(szWindow.y - (videoCallContainer.height /*+ barHeight*/))
// y_cord_Destination = -(szWindow.y / 2)
} else if (y_cord_Destination + (floatingViewContainer.height + barHeight) > szWindow.y) {
y_cord_Destination = szWindow.y - (floatingViewContainer.height + barHeight)
// y_cord_Destination = (szWindow.y / 2)
}
layoutParams.y = y_cord_Destination
//reset position if user drags the floating view
resetPosition(x_cord)
}
MotionEvent.ACTION_MOVE -> {
val x_diff_move: Int = x_cord - xInitCord
val y_diff_move: Int = y_cord - yInitCord
x_cord_Destination = xInitMargin + x_diff_move
y_cord_Destination = yInitMargin + y_diff_move
layoutParams.x = x_cord_Destination
layoutParams.y = y_cord_Destination
//Update the layout with new X & Y coordinate
mWindowManager?.updateViewLayout(floatingWidgetView, layoutParams)
}
}
true
}
/**
* OnTouch actions
*/
class MyGestureListener(
val onTabCall: () -> Unit,
val miniCircleDoubleTap: () -> Unit
) : GestureDetector.SimpleOnGestureListener() {
override fun onSingleTapConfirmed(event: MotionEvent): Boolean {
// onTabCall()
return true
}
override fun onDoubleTap(e: MotionEvent?): Boolean {
miniCircleDoubleTap()
return super.onDoubleTap(e)
}
}
/* Reset position of Floating Widget view on dragging */
fun resetPosition(x_cord_now: Int) {
if (x_cord_now <= szWindow.x / 2) {
moveToLeft(x_cord_now)
} else {
moveToRight(x_cord_now)
}
}
/* Method to move the Floating widget view to Left */
private fun moveToLeft(current_x_cord: Int) {
val mParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
mParams.x =
(szWindow.x - current_x_cord * current_x_cord - floatingViewContainer.width).toInt()
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
val x = szWindow.x - current_x_cord
object : CountDownTimer(500, 5) {
//get params of Floating Widget view
val mParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
override fun onTick(t: Long) {
val step = (500 - t) / 5
// mParams.x = 0 - (current_x_cord * current_x_cord * step).toInt()
mParams.x =
(szWindow.x - current_x_cord * current_x_cord * step - floatingViewContainer.width).toInt()
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
}
override fun onFinish() {
mParams.x = -(szWindow.x - floatingViewContainer.width)
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
}
}.start()
}
/* Method to move the Floating widget view to Right */
private fun moveToRight(current_x_cord: Int) {
object : CountDownTimer(500, 5) {
//get params of Floating Widget view
val mParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
override fun onTick(t: Long) {
val step = (500 - t) / 5
mParams.x =
(szWindow.x + current_x_cord * current_x_cord * step - floatingViewContainer.width).toInt()
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
}
override fun onFinish() {
mParams.x = szWindow.x - floatingViewContainer.width
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
}
}.start()
}
/***
* Utils
*/
fun getWindowManagerDefaultDisplay() {
val w = mWindowManager!!.defaultDisplay.width
val h = mWindowManager!!.defaultDisplay.height
szWindow[w] = h
}
}

@ -17,13 +17,14 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.GestureDetectorCompat import androidx.core.view.GestureDetectorCompat
import com.hmg.hmgDr.MainActivity
import com.hmg.hmgDr.R import com.hmg.hmgDr.R
import com.hmg.hmgDr.model.* import com.hmg.hmgDr.model.*
import com.hmg.hmgDr.ui.VideoCallContract import com.hmg.hmgDr.ui.VideoCallContract
import com.hmg.hmgDr.ui.VideoCallPresenterImpl import com.hmg.hmgDr.ui.VideoCallPresenterImpl
import com.hmg.hmgDr.ui.VideoCallResponseListener import com.hmg.hmgDr.ui.VideoCallResponseListener
import com.hmg.hmgDr.util.DateUtils import com.hmg.hmgDr.util.DateUtils
import com.hmg.hmgDr.util.opentok.DynamicVideoRenderer import com.hmg.hmgDr.util.DynamicVideoRenderer
import com.hmg.hmgDr.util.NotificationUtil import com.hmg.hmgDr.util.NotificationUtil
import com.hmg.hmgDr.util.ViewsUtil import com.hmg.hmgDr.util.ViewsUtil
import com.hmg.hmgDr.util.audio.CustomAudioDevice import com.hmg.hmgDr.util.audio.CustomAudioDevice
@ -32,7 +33,7 @@ import java.util.*
import kotlin.math.ceil import kotlin.math.ceil
class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.SessionListener, class VideoStreamFloatingWidgetService : Service(), Session.SessionListener,
PublisherKit.PublisherListener, PublisherKit.PublisherListener,
SubscriberKit.VideoListener, VideoCallContract.VideoCallView { SubscriberKit.VideoListener, VideoCallContract.VideoCallView {
@ -41,10 +42,17 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
private val TAG = VideoStreamFloatingWidgetService::class.java.simpleName private val TAG = VideoStreamFloatingWidgetService::class.java.simpleName
private const val RC_SETTINGS_SCREEN_PERM = 123
private const val RC_VIDEO_APP_PERM = 124
const val CHANNEL_DEFAULT_IMPORTANCE = "Video_stream_channel" const val CHANNEL_DEFAULT_IMPORTANCE = "Video_stream_channel"
const val CHANNEL_DEFAULT_NAME = "Video cAll" const val CHANNEL_DEFAULT_NAME = "Video cAll"
const val ONGOING_NOTIFICATION_ID = 1 const val ONGOING_NOTIFICATION_ID = 1
private const val TEST_DURATION = 20 //test quality duration in seconds
private const val TIME_WINDOW = 3 //3 seconds
private const val TIME_VIDEO_TEST = 15 //time interval to check the video quality in seconds
const val ACTION_START_CALL = "com.hmg.hmgDr.Service.action.startCall" const val ACTION_START_CALL = "com.hmg.hmgDr.Service.action.startCall"
const val ACTION_MINIMIZE_CALL = "com.hmg.hmgDr.Service.action.minimizeCall" const val ACTION_MINIMIZE_CALL = "com.hmg.hmgDr.Service.action.minimizeCall"
const val ACTION_END_CALL = "com.hmg.hmgDr.Service.action.endCall" const val ACTION_END_CALL = "com.hmg.hmgDr.Service.action.endCall"
@ -60,6 +68,16 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
private lateinit var videoCallPresenter: VideoCallContract.VideoCallPresenter private lateinit var videoCallPresenter: VideoCallContract.VideoCallPresenter
var videoCallResponseListener: VideoCallResponseListener? = null var videoCallResponseListener: VideoCallResponseListener? = null
private lateinit var windowManagerParams: WindowManager.LayoutParams
private var mWindowManager: WindowManager? = null
private val szWindow = Point()
private var floatingWidgetView: View? = null
private var x_init_cord = 0
private var y_init_cord: Int = 0
private var x_init_margin: Int = 0
private var y_init_margin: Int = 0
private lateinit var recordContainer: FrameLayout private lateinit var recordContainer: FrameLayout
private lateinit var thumbnail_container: FrameLayout private lateinit var thumbnail_container: FrameLayout
private lateinit var activity_clingo_video_call: RelativeLayout private lateinit var activity_clingo_video_call: RelativeLayout
@ -99,6 +117,7 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
private var mCallFirstTime: Date = Date() private var mCallFirstTime: Date = Date()
private var sessionStatusModel: GetSessionStatusModel? = null private var sessionStatusModel: GetSessionStatusModel? = null
private lateinit var mDetector: GestureDetectorCompat
private var apiKey: String? = null private var apiKey: String? = null
private var sessionId: String? = null private var sessionId: String? = null
@ -115,10 +134,16 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
private var formattedCallTime: String = "00:00" private var formattedCallTime: String = "00:00"
private lateinit var notificationData: NotificationVideoModel private lateinit var notificationData: NotificationVideoModel
private var resume = false
var isFullScreen: Boolean = true var isFullScreen: Boolean = true
private var isCircle: Boolean = false private var isCircle: Boolean = false
lateinit var customAudioDevice: CustomAudioDevice lateinit var customAudioDevice: CustomAudioDevice
// notification's layout
private lateinit var mRemoteViews: RemoteViews
private lateinit var mRemoteViewsExpand: RemoteViews
// Notification variables // Notification variables
private var mNotificationManagerCompat: NotificationManagerCompat? = null private var mNotificationManagerCompat: NotificationManagerCompat? = null
private lateinit var notificationCompatBuilder: NotificationCompat.Builder private lateinit var notificationCompatBuilder: NotificationCompat.Builder
@ -146,8 +171,17 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
isRecording = sessionStatusModel!!.isRecording isRecording = sessionStatusModel!!.isRecording
} }
addFloatingWidgetView() //init WindowManager
mWindowManager = getSystemService(WINDOW_SERVICE) as WindowManager
getWindowManagerDefaultDisplay()
//Init LayoutInflater
val inflater = getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater
addFloatingWidgetView(inflater)
handleDragDialog() handleDragDialog()
addForegroundService() addForegroundService()
} }
} else if (action == ACTION_END_CALL) { } else if (action == ACTION_END_CALL) {
@ -178,6 +212,7 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
} }
} }
// Toast.makeText(this, "Service started by user.", Toast.LENGTH_LONG).show()
return START_STICKY return START_STICKY
} }
@ -196,12 +231,15 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
} catch (e: Exception) { } catch (e: Exception) {
Log.e("onDestroyService", "${e.localizedMessage}.") Log.e("onDestroyService", "${e.localizedMessage}.")
} }
// disconnectSession()
super.onDestroy() super.onDestroy()
} }
private fun stopService() { private fun stopService() {
// customAudioDevice.setRendererMute(false)
AudioDeviceManager.getAudioDevice().onPause() AudioDeviceManager.getAudioDevice().onPause()
// cmTimer.stop()
mCallTimerRunnable?.let { mCallTimerRunnable?.let {
mCallTimerHandler?.removeCallbacks(it) mCallTimerHandler?.removeCallbacks(it)
mCallTimerHandler = null mCallTimerHandler = null
@ -220,8 +258,36 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
} }
} }
override fun addFloatingWidgetView() { /* Add Floating Widget View to Window Manager */
super.addFloatingWidgetView() private fun addFloatingWidgetView(inflater: LayoutInflater) {
//Inflate the removing view layout we created
floatingWidgetView = inflater.inflate(R.layout.activity_video_call, null)
//Add the view to the window.
windowManagerParams =
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
)
} else {
WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
)
}
//Specify the view position
windowManagerParams.gravity = Gravity.TOP or Gravity.START
//Initially the Removing widget view is not visible, so set visibility to GONE
// floatingWidgetView!!.visibility = View.GONE
init(floatingWidgetView!!) init(floatingWidgetView!!)
@ -230,9 +296,33 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
} }
@SuppressLint("ClickableViewAccessibility", "RestrictedApi") @SuppressLint("ClickableViewAccessibility", "RestrictedApi")
private fun init(view: View) { private fun init(view: View) {
initUI(view) initUI(view)
mCallBtn.setOnClickListener {
onCallClicked()
}
btnMinimize.setOnClickListener {
onMinimizedClicked()
}
mCameraBtn.setOnClickListener {
onCameraClicked(it)
}
mSwitchCameraBtn.setOnClickListener {
onSwitchCameraClicked(it)
}
mspeckerBtn.setOnClickListener {
onSpeckerClicked(it)
}
mMicBtn.setOnClickListener {
onMicClicked(it)
}
icMini.setOnClickListener {
onMiniCircleClicked()
}
// hiddenButtons()
patientName.text = sessionStatusModel!!.patientName patientName.text = sessionStatusModel!!.patientName
if (isRecording) { if (isRecording) {
@ -241,6 +331,29 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
recordContainer.visibility = View.GONE recordContainer.visibility = View.GONE
} }
/*
cmTimer.format = "mm:ss"
cmTimer.onChronometerTickListener =
Chronometer.OnChronometerTickListener { arg0: Chronometer ->
// val f: NumberFormat = DecimalFormat("00")
// f.format(minutes)
val minutes: Long
val seconds: Long
if (!resume) {
minutes = (SystemClock.elapsedRealtime() - cmTimer.base) / 1000 / 60
seconds = (SystemClock.elapsedRealtime() - cmTimer.base) / 1000 % 60
elapsedTime = SystemClock.elapsedRealtime()
} else {
minutes = (elapsedTime - cmTimer.base) / 1000 / 60
seconds = (elapsedTime - cmTimer.base) / 1000 % 60
elapsedTime += 1000
}
val format = "%1$02d:%2$02d" // two digits
formattedCallTime = String.format(format, minutes, seconds)
arg0.text = formattedCallTime
}
*/
videoCallPresenter = VideoCallPresenterImpl(this, baseUrl) videoCallPresenter = VideoCallPresenterImpl(this, baseUrl)
checkClientConnected() checkClientConnected()
@ -254,8 +367,7 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
{ miniCircleDoubleTap() }) { miniCircleDoubleTap() })
) )
try { try {
// Add a custom audio device before session initialization, // Add a custom audio device before session initialization
// so when the service is destroyed it will not be errors that receivers is still in memory
customAudioDevice = CustomAudioDevice(this) customAudioDevice = CustomAudioDevice(this)
customAudioDevice.setRendererMute(false) customAudioDevice.setRendererMute(false)
if (AudioDeviceManager.getAudioDevice() == null) { if (AudioDeviceManager.getAudioDevice() == null) {
@ -284,7 +396,6 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
private fun initUI(view: View) { private fun initUI(view: View) {
videoCallContainer = view.findViewById(R.id.video_call_ll) videoCallContainer = view.findViewById(R.id.video_call_ll)
floatingViewContainer = videoCallContainer
layoutName = view.findViewById<View>(R.id.layout_name) as RelativeLayout layoutName = view.findViewById<View>(R.id.layout_name) as RelativeLayout
layoutMini = view.findViewById(R.id.layout_mini) layoutMini = view.findViewById(R.id.layout_mini)
@ -308,28 +419,6 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
mSwitchCameraBtn = view.findViewById(R.id.btn_switch_camera) mSwitchCameraBtn = view.findViewById(R.id.btn_switch_camera)
mspeckerBtn = view.findViewById(R.id.btn_specker) mspeckerBtn = view.findViewById(R.id.btn_specker)
mMicBtn = view.findViewById(R.id.btn_mic) mMicBtn = view.findViewById(R.id.btn_mic)
mCallBtn.setOnClickListener {
onCallClicked()
}
btnMinimize.setOnClickListener {
onMinimizedClicked()
}
mCameraBtn.setOnClickListener {
onCameraClicked(it)
}
mSwitchCameraBtn.setOnClickListener {
onSwitchCameraClicked(it)
}
mspeckerBtn.setOnClickListener {
onSpeckerClicked(it)
}
mMicBtn.setOnClickListener {
onMicClicked(it)
}
icMini.setOnClickListener {
onMiniCircleClicked()
}
} }
private fun checkClientConnected() { private fun checkClientConnected() {
@ -351,10 +440,28 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
formattedCallTime = DateUtils.differentDateTimeBetweenDateAndNow(mCallFirstTime) formattedCallTime = DateUtils.differentDateTimeBetweenDateAndNow(mCallFirstTime)
tvTimer.text = formattedCallTime tvTimer.text = formattedCallTime
/*
// comment it because I deleted remoteView
try {
notificationCompatBuilder.contentView.setChronometer(
R.id.notify_timer,
cmTimer.base,
null,
true
)
notificationCompatBuilder.bigContentView.setChronometer(
R.id.notify_timer,
cmTimer.base,
null,
true
)
} catch (e: Exception) {
print(e)
}*/
// for change notification timer // for change notification timer
if (mNotificationManagerCompat != null) { if (mNotificationManagerCompat != null) {
notificationData.mSummaryText = formattedCallTime val bigTextStyle = setNotificationBigStyle()
val bigTextStyle = NotificationUtil.setNotificationBigStyle(notificationData)
notificationCompatBuilder.setStyle(bigTextStyle) notificationCompatBuilder.setStyle(bigTextStyle)
mNotificationManagerCompat?.notify( mNotificationManagerCompat?.notify(
ONGOING_NOTIFICATION_ID, ONGOING_NOTIFICATION_ID,
@ -387,7 +494,7 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
val panelPaddingMedium: Int = val panelPaddingMedium: Int =
resources.getDimension(R.dimen.padding_space_medium).toInt() resources.getDimension(R.dimen.padding_space_medium).toInt()
val temp = ViewsUtil.getStatusBarHeight(applicationContext) / 2 val temp = getStatusBarHeight() / 2
val screenWidth: Float val screenWidth: Float
val screenHeight: Float val screenHeight: Float
@ -548,13 +655,6 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
handleVideoViewHeight() handleVideoViewHeight()
} }
@SuppressLint("ClickableViewAccessibility")
private fun handleDragDialog() {
getWindowManagerDefaultDisplay()
videoCallContainer.setOnTouchListener(dragListener)
mSubscriberViewContainer.setOnTouchListener(dragListener)
}
/*** /***
* Click Listener * Click Listener
@ -607,6 +707,14 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
mPublisher!!.publishVideo = !isCameraClicked mPublisher!!.publishVideo = !isCameraClicked
val res = if (isCameraClicked) R.drawable.video_disabled else R.drawable.video_enabled val res = if (isCameraClicked) R.drawable.video_disabled else R.drawable.video_enabled
mCameraBtn.setImageResource(res) mCameraBtn.setImageResource(res)
// if (!isCameraClicked) {
// videoCallContainer.background = ContextCompat.getDrawable(requireContext(), R.drawable.circle_shape)
// mSubscriberViewContainer.background = ContextCompat.getDrawable(requireContext(), R.drawable.circle_shape)
// } else {
// videoCallContainer.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.text_color))
// mSubscriberViewContainer.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.remoteBackground))
// }
} }
} }
@ -748,6 +856,9 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
override fun onError(session: Session, opentokError: OpentokError) { override fun onError(session: Session, opentokError: OpentokError) {
Log.d(TAG, "onError: Error (" + opentokError.message + ") in session " + session.sessionId) Log.d(TAG, "onError: Error (" + opentokError.message + ") in session " + session.sessionId)
// videoCallResponseListener?.errorHandle("Error (" + opentokError.message + ") in session ")
// dialog?.dismiss()
} }
override fun onStreamReceived(session: Session, stream: Stream) { override fun onStreamReceived(session: Session, stream: Stream) {
@ -940,7 +1051,7 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
} }
} }
private fun onCallChangeCallStatusSuccessful() { fun onCallChangeCallStatusSuccessful() {
val returnIntent = Intent() val returnIntent = Intent()
returnIntent.putExtra("CallEnd", sessionStatusModel) returnIntent.putExtra("CallEnd", sessionStatusModel)
videoCallResponseListener?.onCallFinished(Activity.RESULT_CANCELED, returnIntent) videoCallResponseListener?.onCallFinished(Activity.RESULT_CANCELED, returnIntent)
@ -952,9 +1063,22 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
override fun onFailure() {} override fun onFailure() {}
/*** /***
* Notification methods * Utils
*/ */
private fun getWindowManagerDefaultDisplay() {
val w = mWindowManager!!.defaultDisplay.width
val h = mWindowManager!!.defaultDisplay.height
szWindow[w] = h
}
/* return status bar height on basis of device display metrics */
private fun getStatusBarHeight(): Int {
return ceil(
(25 * applicationContext.resources.displayMetrics.density).toDouble()
).toInt()
}
private fun addForegroundService() { private fun addForegroundService() {
mNotificationManagerCompat = NotificationManagerCompat.from(applicationContext) mNotificationManagerCompat = NotificationManagerCompat.from(applicationContext)
val areNotificationsEnabled = mNotificationManagerCompat!!.areNotificationsEnabled() val areNotificationsEnabled = mNotificationManagerCompat!!.areNotificationsEnabled()
@ -965,12 +1089,23 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()
// Links to this app's notification settings // Links to this app's notification settings
NotificationUtil.openNotificationSettingsForApp(applicationContext) openNotificationSettingsForApp()
return return
} }
generateBigTextStyleNotification() generateBigTextStyleNotification()
} }
private fun setNotificationBigStyle(): NotificationCompat.BigTextStyle {
notificationData.mSummaryText = formattedCallTime
return NotificationCompat.BigTextStyle() // Overrides ContentText in the big form of the template.
.bigText(notificationData.mBigText) // Overrides ContentTitle in the big form of the template.
.setBigContentTitle(notificationData.mBigContentTitle) // Summary line after the detail section in the big form of the template.
// Note: To improve readability, don't overload the user with info. If Summary Text
// doesn't add critical information, you should skip it.
.setSummaryText(notificationData.mSummaryText)
}
private fun generateBigTextStyleNotification() { private fun generateBigTextStyleNotification() {
notificationData = notificationData =
NotificationVideoModel( NotificationVideoModel(
@ -986,7 +1121,7 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
NotificationUtil.createNotificationChannel(this, notificationData) NotificationUtil.createNotificationChannel(this, notificationData)
// 2. Build the BIG_TEXT_STYLE. // 2. Build the BIG_TEXT_STYLE.
val bigTextStyle = NotificationUtil.setNotificationBigStyle(notificationData) val bigTextStyle = setNotificationBigStyle()
// 3. Set up main Intent for notification. // 3. Set up main Intent for notification.
val pendingIntent: PendingIntent = val pendingIntent: PendingIntent =
@ -1020,6 +1155,58 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
) )
} }
/*
mRemoteViews = RemoteViews(packageName, R.layout.notifi_video_view)
mRemoteViewsExpand = RemoteViews(packageName, R.layout.notifi_video_view_expand)
val changeCollapsedIntent: PendingIntent =
Intent(this, VideoStreamFloatingWidgetService::class.java).apply {
action = ACTION_CHANGE_EXPANDED_COLLAPSED
val extras = Bundle()
extras.putBoolean(NOTIFICATION_IS_EXPANDED, false)
putExtras(extras)
}
.let { notificationIntent ->
PendingIntent.getService(this, 0, notificationIntent, 0)
}
val changeExpandedIntent: PendingIntent =
Intent(this, VideoStreamFloatingWidgetService::class.java).apply {
action = ACTION_CHANGE_EXPANDED_COLLAPSED
val extras = Bundle()
extras.putBoolean(NOTIFICATION_IS_EXPANDED, true)
putExtras(extras)
}
.let { notificationIntent ->
PendingIntent.getService(this, 0, notificationIntent, 0)
}
mRemoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.ic_launcher)
// notification's title
mRemoteViews.setTextViewText(R.id.notify_title, notificationData.mContentTitle)
// notification's content
mRemoteViews.setTextViewText(R.id.notify_content, notificationData.mContentText)
mRemoteViews.setOnClickPendingIntent(R.id.iv_Arrow, changeCollapsedIntent)
mRemoteViews.setChronometer(
R.id.notify_timer,
SystemClock.elapsedRealtime(),
null,
false
)
mRemoteViewsExpand.setImageViewResource(R.id.iv_icon, R.mipmap.ic_launcher)
mRemoteViewsExpand.setTextViewText(R.id.notify_title, notificationData.mContentTitle)
mRemoteViewsExpand.setTextViewText(R.id.notify_content, notificationData.mContentText)
mRemoteViewsExpand.setOnClickPendingIntent(R.id.btn_end, endCallPendingIntent)
mRemoteViewsExpand.setOnClickPendingIntent(R.id.iv_Arrow, changeExpandedIntent)
mRemoteViewsExpand.setChronometer(
R.id.notify_timer,
SystemClock.elapsedRealtime(),
null,
false
)
*/
notificationCompatBuilder notificationCompatBuilder
// BIG_TEXT_STYLE sets title and content for API 16 (4.1 and after). // BIG_TEXT_STYLE sets title and content for API 16 (4.1 and after).
.setStyle(bigTextStyle) .setStyle(bigTextStyle)
@ -1058,6 +1245,217 @@ class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.Ses
mNotificationManagerCompat!!.notify(ONGOING_NOTIFICATION_ID, notification) mNotificationManagerCompat!!.notify(ONGOING_NOTIFICATION_ID, notification)
startForeground(ONGOING_NOTIFICATION_ID, notification) startForeground(ONGOING_NOTIFICATION_ID, notification)
/*val notification: Notification = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Notification.Builder(this, CHANNEL_DEFAULT_IMPORTANCE)
.setContentTitle("")
.setContentText("")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pendingIntent)
.setOngoing(true)
.build()
} else {
Notification.Builder(this)
.setContentTitle("")
.setContentText("")
.setSmallIcon(R.mipmap.ic_launcher)
.setOngoing(true)
.setContentIntent(pendingIntent)
.build()
}
// Notification ID cannot be 0.
*/
}
/**
* IMPORTANT NOTE: You should not do this action unless the user takes an action to see your
* Notifications like this sample demonstrates. Spamming users to re-enable your notifications
* is a bad idea.
*/
private fun openNotificationSettingsForApp() {
// Links to this app's notification settings.
val intent = Intent()
intent.action = "android.settings.APP_NOTIFICATION_SETTINGS"
intent.putExtra("app_package", packageName)
intent.putExtra("app_uid", applicationInfo.uid)
// for Android 8 and above
intent.putExtra("android.provider.extra.APP_PACKAGE", packageName)
startActivity(intent)
}
/**
* OnTouch actions
*/
private class MyGestureListener(
val onTabCall: () -> Unit,
val miniCircleDoubleTap: () -> Unit
) : GestureDetector.SimpleOnGestureListener() {
override fun onSingleTapConfirmed(event: MotionEvent): Boolean {
// onTabCall()
return true
}
override fun onDoubleTap(e: MotionEvent?): Boolean {
miniCircleDoubleTap()
return super.onDoubleTap(e)
}
}
@SuppressLint("ClickableViewAccessibility")
private fun handleDragDialog() {
mWindowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
getWindowManagerDefaultDisplay()
videoCallContainer.setOnTouchListener(dragListener)
mSubscriberViewContainer.setOnTouchListener(dragListener)
}
@SuppressLint("ClickableViewAccessibility")
private val dragListener: View.OnTouchListener = View.OnTouchListener { _, event ->
mDetector.onTouchEvent(event)
//Get Floating widget view params
val layoutParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
//get the touch location coordinates
val x_cord = event.rawX.toInt()
val y_cord = event.rawY.toInt()
val x_cord_Destination: Int
var y_cord_Destination: Int
when (event.action) {
MotionEvent.ACTION_DOWN -> {
x_init_cord = x_cord
y_init_cord = y_cord
//remember the initial position.
x_init_margin = layoutParams.x
y_init_margin = layoutParams.y
}
MotionEvent.ACTION_UP -> {
//Get the difference between initial coordinate and current coordinate
val x_diff: Int = x_cord - x_init_cord
val y_diff: Int = y_cord - y_init_cord
y_cord_Destination = y_init_margin + y_diff
val barHeight: Int = getStatusBarHeight()
if (y_cord_Destination < 0) {
y_cord_Destination = 0
// y_cord_Destination =
// -(szWindow.y - (videoCallContainer.height /*+ barHeight*/))
// y_cord_Destination = -(szWindow.y / 2)
} else if (y_cord_Destination + (videoCallContainer.height + barHeight) > szWindow.y) {
y_cord_Destination = szWindow.y - (videoCallContainer.height + barHeight)
// y_cord_Destination = (szWindow.y / 2)
}
layoutParams.y = y_cord_Destination
//reset position if user drags the floating view
resetPosition(x_cord)
}
MotionEvent.ACTION_MOVE -> {
val x_diff_move: Int = x_cord - x_init_cord
val y_diff_move: Int = y_cord - y_init_cord
x_cord_Destination = x_init_margin + x_diff_move
y_cord_Destination = y_init_margin + y_diff_move
layoutParams.x = x_cord_Destination
layoutParams.y = y_cord_Destination
//Update the layout with new X & Y coordinate
mWindowManager?.updateViewLayout(floatingWidgetView, layoutParams)
}
}
true
}
/* Reset position of Floating Widget view on dragging */
private fun resetPosition(x_cord_now: Int) {
if (x_cord_now <= szWindow.x / 2) {
moveToLeft(x_cord_now)
} else {
moveToRight(x_cord_now)
}
}
/* Method to move the Floating widget view to Left */
private fun moveToLeft(current_x_cord: Int) {
val mParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
mParams.x =
(szWindow.x - current_x_cord * current_x_cord - videoCallContainer.width).toInt()
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
val x = szWindow.x - current_x_cord
object : CountDownTimer(500, 5) {
//get params of Floating Widget view
val mParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
override fun onTick(t: Long) {
val step = (500 - t) / 5
// mParams.x = 0 - (current_x_cord * current_x_cord * step).toInt()
mParams.x =
(szWindow.x - current_x_cord * current_x_cord * step - videoCallContainer.width).toInt()
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
}
override fun onFinish() {
mParams.x = -(szWindow.x - videoCallContainer.width)
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
}
}.start()
} }
/* Method to move the Floating widget view to Right */
private fun moveToRight(current_x_cord: Int) {
// var mParams : WindowManager.LayoutParams = dialog!!.window!!.attributes
// mParams.x =
// (szWindow.x + current_x_cord * current_x_cord - videoCallContainer.width).toInt()
//
// dialog!!.window!!.attributes = mParams
object : CountDownTimer(500, 5) {
//get params of Floating Widget view
val mParams: WindowManager.LayoutParams =
floatingWidgetView!!.layoutParams as WindowManager.LayoutParams
override fun onTick(t: Long) {
val step = (500 - t) / 5
mParams.x =
(szWindow.x + current_x_cord * current_x_cord * step - videoCallContainer.width).toInt()
try {
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
} catch (e: Exception) {
Log.e("windowManagerUpdate", "${e.localizedMessage}.")
}
}
override fun onFinish() {
mParams.x = szWindow.x - videoCallContainer.width
mWindowManager?.updateViewLayout(floatingWidgetView, mParams)
}
}.start()
}
} }

@ -28,7 +28,7 @@ import com.hmg.hmgDr.ui.VideoCallContract.VideoCallPresenter
import com.hmg.hmgDr.ui.VideoCallContract.VideoCallView import com.hmg.hmgDr.ui.VideoCallContract.VideoCallView
import com.hmg.hmgDr.ui.VideoCallPresenterImpl import com.hmg.hmgDr.ui.VideoCallPresenterImpl
import com.hmg.hmgDr.ui.VideoCallResponseListener import com.hmg.hmgDr.ui.VideoCallResponseListener
import com.hmg.hmgDr.util.opentok.DynamicVideoRenderer import com.hmg.hmgDr.util.DynamicVideoRenderer
import com.hmg.hmgDr.util.ViewsUtil import com.hmg.hmgDr.util.ViewsUtil
import com.opentok.android.* import com.opentok.android.*
import com.opentok.android.PublisherKit.PublisherListener import com.opentok.android.PublisherKit.PublisherListener

@ -1,4 +1,4 @@
package com.hmg.hmgDr.util.opentok package com.hmg.hmgDr.util
import android.content.Context import android.content.Context
import android.content.res.Resources import android.content.res.Resources

@ -3,12 +3,9 @@ package com.hmg.hmgDr.util
import android.app.NotificationChannel import android.app.NotificationChannel
import android.app.NotificationManager import android.app.NotificationManager
import android.content.Context import android.content.Context
import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Build import android.os.Build
import androidx.core.app.NotificationCompat
import com.hmg.hmgDr.model.NotificationDataModel import com.hmg.hmgDr.model.NotificationDataModel
import com.hmg.hmgDr.model.NotificationVideoModel
object NotificationUtil { object NotificationUtil {
@ -48,30 +45,4 @@ object NotificationUtil {
} }
return channelId return channelId
} }
fun setNotificationBigStyle(notificationData : NotificationVideoModel): NotificationCompat.BigTextStyle {
return NotificationCompat.BigTextStyle() // Overrides ContentText in the big form of the template.
.bigText(notificationData.mBigText) // Overrides ContentTitle in the big form of the template.
.setBigContentTitle(notificationData.mBigContentTitle) // Summary line after the detail section in the big form of the template.
// Note: To improve readability, don't overload the user with info. If Summary Text
// doesn't add critical information, you should skip it.
.setSummaryText(notificationData.mSummaryText)
}
/**
* IMPORTANT NOTE: You should not do this action unless the user takes an action to see your
* Notifications like this sample demonstrates. Spamming users to re-enable your notifications
* is a bad idea.
*/
fun openNotificationSettingsForApp(context: Context) {
// Links to this app's notification settings.
val intent = Intent()
intent.action = "android.settings.APP_NOTIFICATION_SETTINGS"
intent.putExtra("app_package", context.packageName)
intent.putExtra("app_uid", context.applicationInfo.uid)
// for Android 8 and above
intent.putExtra("android.provider.extra.APP_PACKAGE", context.packageName)
context.startActivity(intent)
}
} }

@ -1,4 +1,4 @@
package com.hmg.hmgDr.util.opentok package com.hmg.hmgDr.util
import android.content.Context import android.content.Context
import android.content.res.Resources import android.content.res.Resources

@ -5,17 +5,9 @@ import android.util.DisplayMetrics
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import android.widget.EditText import android.widget.EditText
import io.flutter.embedding.android.FlutterFragmentActivity import io.flutter.embedding.android.FlutterFragmentActivity
import kotlin.math.ceil
object ViewsUtil { object ViewsUtil {
/* return status bar height on basis of device display metrics */
fun getStatusBarHeight(context: Context): Int {
return ceil(
(25 * context.resources.displayMetrics.density).toDouble()
).toInt()
}
/** /**
* @param context * @param context
* @return the Screen height in DP * @return the Screen height in DP

@ -43,6 +43,16 @@
android:textStyle="bold" android:textStyle="bold"
android:text="00:00" /> android:text="00:00" />
<!-- <Chronometer-->
<!-- android:id="@+id/cmTimer"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:padding="4dp"-->
<!-- android:textColor="@color/white"-->
<!-- android:textSize="16sp"-->
<!-- android:textStyle="bold"-->
<!-- tools:text="25:45" />-->
</FrameLayout> </FrameLayout>
</RelativeLayout> </RelativeLayout>

@ -6,9 +6,9 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:7.0.3' classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.3' classpath 'com.google.gms:google-services:4.3.2'
} }
} }
@ -17,8 +17,7 @@ allprojects {
google() google()
jcenter() jcenter()
mavenCentral() mavenCentral()
maven { url 'https://developer.huawei.com/repo/' } maven { url 'https://tokbox.bintray.com/maven' }
// maven { url 'https://tokbox.bintray.com/maven' }
} }
} }

@ -1,77 +1,34 @@
{ {
"project_info": { "project_info": {
"project_number": "934365232760", "project_number": "1095694324958",
"project_id": "hmg-dr-app", "project_id": "mobapp-bb272",
"storage_bucket": "hmg-dr-app.appspot.com" "storage_bucket": "mobapp-bb272.appspot.com"
}, },
"client": [ "client": [
{ {
"client_info": { "client_info": {
"mobilesdk_app_id": "1:934365232760:android:024b3569972f1c09f9778d", "mobilesdk_app_id": "1:1095694324958:android:70a42e30fcc98ea33fde4f",
"android_client_info": {
"package_name": "COM.HMG.HMGDR"
}
},
"oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:934365232760:android:e0e185e68c0d7690f9778d",
"android_client_info": { "android_client_info": {
"package_name": "com.hmg.hmgDr" "package_name": "com.hmg.hmgDr"
} }
}, },
"oauth_client": [ "oauth_client": [
{ {
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", "client_id": "1095694324958-5psabq8tpbti0uqo8bt46atjtbas9uhr.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
} }
], ],
"api_key": [ "api_key": [
{ {
"current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I" "current_key": "AIzaSyCuPtf1hTikWXrp5OQIVfqO-TJWubI-Vd8"
} }
], ],
"services": { "services": {
"appinvite_service": { "appinvite_service": {
"other_platform_oauth_client": [ "other_platform_oauth_client": [
{ {
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", "client_id": "1095694324958-5psabq8tpbti0uqo8bt46atjtbas9uhr.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
} }
] ]
} }
@ -79,4 +36,4 @@
} }
], ],
"configuration_version": "1" "configuration_version": "1"
} }

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip

@ -1 +0,0 @@
include ':app'

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 KiB

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 73 74" style="enable-background:new 0 0 73 74;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E3E3E3;}
.st1{fill:none;stroke:#CCCCCC;}
.st2{fill:#B4B4B4;}
</style>
<g id="Ellipse_123-2" transform="translate(2933 475)">
<circle class="st0" cx="-2896.5" cy="-437.5" r="35"/>
<circle class="st1" cx="-2896.5" cy="-437.5" r="34.5"/>
</g>
<path class="st2" d="M40.25,43.44c-0.02-0.24-0.04-0.63-0.05-1.04c3.94-0.38,6.7-1.26,6.7-2.29c-0.01,0-0.01-0.04-0.01-0.06
c-2.94-2.48,2.55-20.09-7.68-19.73c-0.64-0.51-1.77-0.96-3.38-0.96c-13.86,0.98-7.73,17.61-10.89,20.75c0,0,0,0-0.01,0
c0,0,0,0,0,0.01c0,0,0,0,0,0s0,0,0,0c0.01,1.01,2.68,1.87,6.51,2.26c-0.01,0.25-0.03,0.55-0.08,1.06
c-1.59,3.99-12.3,2.87-12.8,10.56H53C52.51,46.31,41.84,47.43,40.25,43.44z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,7 @@
<svg id="enter" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42">
<path id="Path_1146" data-name="Path 1146" d="M17.938,210.625H1.313a1.313,1.313,0,1,1,0-2.625H17.938a1.313,1.313,0,1,1,0,2.625Zm0,0" transform="translate(22.749 -190.938)"/>
<path id="Path_1147" data-name="Path 1147" d="M123.984,143.736a1.313,1.313,0,0,1-.928-2.242l5.635-5.635-5.635-5.633a1.313,1.313,0,0,1,1.857-1.857l6.563,6.562a1.313,1.313,0,0,1,0,1.857l-6.562,6.562A1.31,1.31,0,0,1,123.984,143.736Zm0,0" transform="translate(-89.86 -117.486)"/>
<path id="Path_1148" data-name="Path 1148" d="M312.668,42.076a3.5,3.5,0,0,0,3.5-3.5V7.076A3.522,3.522,0,0,0,313.8,3.753L303.284.248a3.537,3.537,0,0,0-4.616,3.329v31.5a3.524,3.524,0,0,0,2.368,3.321L311.553,41.9A3.662,3.662,0,0,0,312.668,42.076ZM302.168,2.7a1.03,1.03,0,0,1,.313.046l10.47,3.491a.9.9,0,0,1,.592.838v31.5a.922.922,0,0,1-1.188.83l-10.47-3.491a.905.905,0,0,1-.591-.838V3.576A.876.876,0,0,1,302.168,2.7Zm0,0" transform="translate(-298.668 -0.076)"/>
<path id="Path_1149" data-name="Path 1149" d="M195.168,8.75a1.313,1.313,0,0,0,1.313-1.312V4.813A4.816,4.816,0,0,0,191.668,0H171.98a1.313,1.313,0,0,0,0,2.625h19.688a2.19,2.19,0,0,1,2.187,2.188V7.438A1.313,1.313,0,0,0,195.168,8.75Zm0,0" transform="translate(-168.48)"/>
<path id="Path_1150" data-name="Path 1150" d="M171.98,350.082h7a4.816,4.816,0,0,0,4.812-4.813v-2.625a1.313,1.313,0,0,0-2.625,0v2.625a2.19,2.19,0,0,1-2.187,2.188h-7a1.313,1.313,0,0,0,0,2.625Zm0,0" transform="translate(-155.793 -313.332)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 987 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 942 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 969 B

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 73 74" style="enable-background:new 0 0 73 74;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E3E3E3;}
.st1{fill:none;stroke:#CCCCCC;}
.st2{fill:#B4B4B4;}
</style>
<g id="Ellipse_123-2" transform="translate(2933 475)">
<circle class="st0" cx="-2896.5" cy="-437.5" r="35"/>
<circle class="st1" cx="-2896.5" cy="-437.5" r="34.5"/>
</g>
<path id="Icon_awesome-user-alt" class="st2" d="M36.5,39.75c5.59,0,10.13-4.53,10.13-10.13S42.09,19.5,36.5,19.5
s-10.13,4.53-10.13,10.13C26.38,35.22,30.91,39.75,36.5,39.75z M45.5,42h-3.87c-3.25,1.5-7,1.5-10.25,0H27.5c-4.97,0-9,4.03-9,9
v1.13c0,1.86,1.51,3.37,3.38,3.38h29.25c1.86,0,3.37-1.51,3.38-3.38V51C54.5,46.03,50.47,42,45.5,42z"/>
</svg>

After

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.123" height="26.245" viewBox="0 0 28.123 26.245">
<path id="XMLID_219_" d="M28.984,15.637A2.077,2.077,0,0,1,27.025,17h-.716V27.309a.938.938,0,0,1-.937.937H19.748V21.685a4.687,4.687,0,0,0-9.374,0v6.562H4.749a.938.938,0,0,1-.937-.937V17H3.095a2.1,2.1,0,0,1-1.378-3.675L12.665,2.955a3.486,3.486,0,0,1,4.792,0L28.431,13.347A2.066,2.066,0,0,1,28.984,15.637Z" transform="translate(-0.999 -2.001)" fill="#2e303a"/>
</svg>

Before

Width:  |  Height:  |  Size: 467 B

@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24.899" height="24.899" viewBox="0 0 24.899 24.899">
<g id="Layer_76" data-name="Layer 76" transform="translate(-2 -2)">
<path id="Path_4380" data-name="Path 4380" d="M3.245,11.96A1.245,1.245,0,0,0,4.49,10.715V5.735A1.245,1.245,0,0,1,5.735,4.49h4.98a1.245,1.245,0,1,0,0-2.49H5.735A3.735,3.735,0,0,0,2,5.735v4.98A1.245,1.245,0,0,0,3.245,11.96Z" transform="translate(0 0)" fill="#2e303a"/>
<path id="Path_4381" data-name="Path 4381" d="M20.225,2h-4.98a1.245,1.245,0,0,0,0,2.49h4.98A1.245,1.245,0,0,1,21.47,5.735v4.98a1.245,1.245,0,1,0,2.49,0V5.735A3.735,3.735,0,0,0,20.225,2Z" transform="translate(2.94 0)" fill="#2e303a"/>
<path id="Path_4382" data-name="Path 4382" d="M22.715,14a1.245,1.245,0,0,0-1.245,1.245v4.98a1.245,1.245,0,0,1-1.245,1.245h-4.98a1.245,1.245,0,0,0,0,2.49h4.98a3.735,3.735,0,0,0,3.735-3.735v-4.98A1.245,1.245,0,0,0,22.715,14Z" transform="translate(2.94 2.94)" fill="#2e303a"/>
<path id="Path_4383" data-name="Path 4383" d="M10.715,21.47H5.735A1.245,1.245,0,0,1,4.49,20.225v-4.98a1.245,1.245,0,0,0-2.49,0v4.98A3.735,3.735,0,0,0,5.735,23.96h4.98a1.245,1.245,0,1,0,0-2.49Z" transform="translate(0 2.94)" fill="#2e303a"/>
<rect id="Rectangle_17370" data-name="Rectangle 17370" width="15" height="15" rx="2" transform="translate(7 6.899)" fill="#2e303a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="26.552" height="20.755" viewBox="0 0 26.552 20.755">
<g id="mail-reply" transform="translate(0 -40.338)">
<path id="Path_4384" data-name="Path 4384" d="M21.236,51.705h.129a1.8,1.8,0,0,1,2.761-2.272l.788.788V42.437a2.1,2.1,0,0,0-2.1-2.1H2.1a2.1,2.1,0,0,0-2.1,2.1V56.921a2.1,2.1,0,0,0,2.1,2.1H16.575a5.14,5.14,0,0,1,4.66-7.314ZM5.213,43.167H19.7l-7.244,5.312Z" fill="#2e303a"/>
<path id="Path_4385" data-name="Path 4385" d="M245.767,175.159l-2.8-2.8a.9.9,0,1,0-1.27,1.27l1.265,1.265h-2.25a4.245,4.245,0,0,0,0,8.489.9.9,0,1,0,0-1.8,2.448,2.448,0,0,1,0-4.9h2.25l-1.265,1.265a.9.9,0,0,0,1.27,1.27l2.8-2.8a.9.9,0,0,0,0-1.27Z" transform="translate(-219.478 -122.292)" fill="#2e303a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 749 B

@ -1,3 +0,0 @@
<svg id="weekly-calendar-page-symbol" xmlns="http://www.w3.org/2000/svg" width="25.034" height="25.034" viewBox="0 0 25.034 25.034">
<path id="Path_4379" data-name="Path 4379" d="M22.53,0H2.5A2.511,2.511,0,0,0,0,2.5V22.53a2.512,2.512,0,0,0,2.5,2.5H22.53a2.512,2.512,0,0,0,2.5-2.5V2.5A2.511,2.511,0,0,0,22.53,0ZM6.756,22.031H2.921V18.62H6.756v3.411Zm0-4.555H2.921v-3.41H6.756v3.41ZM6.467,3.794A1.063,1.063,0,1,1,7.529,2.731,1.062,1.062,0,0,1,6.467,3.794Zm5.406,18.237H8.039V18.62h3.834Zm0-4.555H8.039v-3.41h3.834Zm0-4.552H8.039V9.514h3.834ZM11.455,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,11.455,2.731Zm5.54,14.745H13.159v-3.41H17v3.41Zm0-4.552H13.159V9.514H17v3.41ZM17.5,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,17.5,2.731Zm4.609,14.745H18.278v-3.41h3.835Zm0-4.552H18.278V9.514h3.835Z" fill="#2e303a"/>
</svg>

Before

Width:  |  Height:  |  Size: 838 B

@ -1,57 +0,0 @@
<svg id="woman_2_" data-name="woman (2)" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
<g id="Group_7145" data-name="Group 7145">
<g id="Group_7144" data-name="Group 7144">
<g id="Group_7143" data-name="Group 7143">
<g id="Group_7142" data-name="Group 7142">
<g id="XMLID_2114_">
<g id="XMLID_2115_">
<g id="XMLID_2116_">
<g id="XMLID_2117_">
<g id="XMLID_2118_">
<g id="XMLID_2119_">
<g id="XMLID_2120_">
<g id="XMLID_2121_">
<g id="XMLID_2122_">
<g id="XMLID_2123_">
<g id="XMLID_2124_">
<g id="XMLID_2125_">
<g id="XMLID_2126_">
<g id="XMLID_2127_">
<g id="Group_7141" data-name="Group 7141">
<path id="Path_4450" data-name="Path 4450" d="M48,24a23.928,23.928,0,0,1-6.947,16.887C36.7,45.279,30.669,42.776,24,42.776s-12.7,2.5-17.053-1.889A24,24,0,1,1,48,24Z" fill="#e2e2e2"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<path id="Path_4451" data-name="Path 4451" d="M48,24q0-1.087-.1-2.151L33.541,7.485,14.75,23.632,31.62,40.5l1.688,2.974c2.921.089,5.548-.37,7.745-2.589A23.928,23.928,0,0,0,48,24Z" fill="#c4c4c4"/>
<path id="Path_4452" data-name="Path 4452" d="M24,3.287C20.723,2.9,8.986,6.052,12.5,19.837c.924,3.622,4.646,5.913,6.284,6.51,2.5.913,2.742-.517,5.214-2.007,2.472,1.49,2.71,2.919,5.214,2.007,1.638-.6,5.36-2.888,6.284-6.51C39.014,6.052,27.277,2.9,24,3.287Z" fill="#515151"/>
<path id="Path_4453" data-name="Path 4453" d="M35.5,19.838c-.924,3.622-4.646,5.913-6.284,6.51-2.5.913-2.742-.517-5.213-2.007V3.287C27.277,2.9,39.014,6.052,35.5,19.837Z" fill="#3d3d3d"/>
<path id="Path_4454" data-name="Path 4454" d="M18.747,23.459H29.253V34.6H18.747Z" fill="#eaa678"/>
<path id="Path_4455" data-name="Path 4455" d="M24,23.46h5.253V34.6H24Z" fill="#d38c5b"/>
<path id="Path_4456" data-name="Path 4456" d="M18.747,30.452H29.253V41.593H18.747Z" fill="#ffc397"/>
<path id="Path_4457" data-name="Path 4457" d="M24,30.452h5.253V41.593H24Z" fill="#eaa678"/>
<path id="Path_4458" data-name="Path 4458" d="M41.053,35.918v4.969a24,24,0,0,1-34.106,0V35.918a5.466,5.466,0,0,1,5.466-5.467h6.335L24,37.18l5.253-6.728h6.335A5.466,5.466,0,0,1,41.053,35.918Z" fill="#d02127"/>
<path id="Path_4459" data-name="Path 4459" d="M41.053,35.918v4.969A23.925,23.925,0,0,1,24,48V37.18l5.253-6.728h6.335A5.466,5.466,0,0,1,41.053,35.918Z" fill="#aa191e"/>
<path id="Path_4460" data-name="Path 4460" d="M28.256,39.447a2.908,2.908,0,0,0-1.3,2.649c.172,1.751,2.3,3.292,2.3,3.292s3.4-3.062,2.069-5.94l-1.446-.556Z" fill="#3d3d3d"/>
<path id="Path_4461" data-name="Path 4461" d="M32.274,14.271C31.924,8.965,27.632,7,24,7s-7.924,1.961-8.274,7.267a2.285,2.285,0,0,0-1.5,2.409l.161,2.267a1.875,1.875,0,0,0,2.043,1.7l.175-.019c2.076,5.573,5.33,6.154,7.4,6.48,2.066-.326,5.321-.907,7.4-6.48l.175.019a1.875,1.875,0,0,0,2.043-1.7l.161-2.267A2.285,2.285,0,0,0,32.274,14.271Z" fill="#ffc397"/>
<path id="Path_4462" data-name="Path 4462" d="M33.775,16.681l-.161,2.267a1.875,1.875,0,0,1-2.043,1.7l-.175-.019a11.863,11.863,0,0,1-2.445,4.151A7.942,7.942,0,0,1,24,27.1V7c3.632,0,7.924,1.961,8.274,7.267a2.285,2.285,0,0,1,1.5,2.409Z" fill="#eaa678"/>
<path id="Path_4463" data-name="Path 4463" d="M24,4.977c-5.521-1.2-9.452,2.277-9.539,6.282a10.3,10.3,0,0,0,3.027,6.969c-.053-3.326,1-4.7,3.062-5.438A8.7,8.7,0,0,0,24,9.96a8.7,8.7,0,0,0,3.45,2.83c2.059.739,3.115,2.112,3.062,5.438a10.3,10.3,0,0,0,3.027-6.969C33.452,7.253,29.521,3.772,24,4.977Z" fill="#515151"/>
<path id="Path_4464" data-name="Path 4464" d="M33.539,11.259a10.305,10.305,0,0,1-3.027,6.968c.052-3.326-1-4.7-3.062-5.437A8.7,8.7,0,0,1,24,9.96V4.976C29.521,3.772,33.452,7.253,33.539,11.259Z" fill="#3d3d3d"/>
<path id="Path_4465" data-name="Path 4465" d="M33.389,27.8a6.76,6.76,0,0,0-.026-5.35l-3.618,2.514a2.626,2.626,0,0,0-.524.48,2.882,2.882,0,0,0-.2,3.919,3.365,3.365,0,0,0-.367.422,2.833,2.833,0,0,0,.006,3.69c-.043.042-.085.086-.124.132-2.549,2.97.917,5.083.917,5.083a5.421,5.421,0,0,0,3.554-6.78A6.03,6.03,0,0,0,33.389,27.8Z" fill="#3d3d3d"/>
<path id="Path_4466" data-name="Path 4466" d="M31.27,39.657H28.377a.7.7,0,0,1-.7-.7V37.87a.7.7,0,0,1,.7-.7H31.27a.7.7,0,0,1,.7.7v1.087A.7.7,0,0,1,31.27,39.657Z" fill="#d02127"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12.179" height="12.188" viewBox="0 0 12.179 12.188">
<path id="Path_4406" data-name="Path 4406" d="M12.039,10.586c1.24-1.24,1.644-1.48,1.348-1.776L12.38,7.8a.3.3,0,0,0-.427,0L10.6,9.152l-.976-.976A4.378,4.378,0,1,0,8.2,9.615l.973.972c-1.24,1.24-1.644,1.48-1.348,1.776L8.828,13.37a.3.3,0,0,0,.427,0L10.6,12.022c1.457,1.457,1.679,1.847,1.977,1.55.97-.97,1.1-1.02,1.1-1.222s-.058-.183-1.638-1.764ZM5.892,8.77a2.9,2.9,0,1,1,2.9-2.9A2.9,2.9,0,0,1,5.892,8.77Z" transform="translate(-1.498 -1.476)" fill="#f0448d"/>
</svg>

Before

Width:  |  Height:  |  Size: 565 B

@ -1,4 +0,0 @@
<svg id="hospital_3_" data-name="hospital (3)" xmlns="http://www.w3.org/2000/svg" width="20.5" height="20.5" viewBox="0 0 20.5 20.5">
<path id="Path_4585" data-name="Path 4585" d="M19.9,182.442a.6.6,0,0,0-.6.6v3H18a2.982,2.982,0,0,0-2.921-2.4H8.648v.578L7.413,184.2a3.059,3.059,0,0,0-2.577-.643,1.8,1.8,0,1,0-3.512-.652l-.123-.077V180.6a.6.6,0,0,0-1.2,0v12.092a.6.6,0,0,0,1.2,0v-3H19.3v3a.6.6,0,0,0,1.2,0v-9.649A.6.6,0,0,0,19.9,182.442Zm-18.7,3.6v-1.8l2.853,1.8Z" transform="translate(0 -172.793)" fill="#28323a"/>
<path id="Path_4586" data-name="Path 4586" d="M136.6,1.842h1.2v1.2h-.6a.6.6,0,0,0-.6.6v1.2a1.8,1.8,0,0,0,3.6,0v-1.2a.6.6,0,0,0-.6-.6H139v-1.2h2.4V9.649h1.2V.6a.6.6,0,1,0-1.2.04h-4.8a.6.6,0,0,0,0,1.2Z" transform="translate(-130.555)" fill="#28323a"/>
</svg>

Before

Width:  |  Height:  |  Size: 776 B

@ -1,56 +0,0 @@
<svg id="man_5_" data-name="man (5)" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
<g id="Group_7139" data-name="Group 7139">
<g id="Group_7138" data-name="Group 7138">
<g id="Group_7137" data-name="Group 7137">
<g id="Group_7136" data-name="Group 7136">
<g id="XMLID_2211_">
<g id="XMLID_2212_">
<g id="XMLID_2213_">
<g id="XMLID_2214_">
<g id="XMLID_2215_">
<g id="XMLID_2216_">
<g id="XMLID_2217_">
<g id="XMLID_2218_">
<g id="XMLID_2219_">
<g id="XMLID_2220_">
<g id="XMLID_2221_">
<g id="XMLID_2222_">
<g id="XMLID_2223_">
<g id="XMLID_2224_">
<g id="XMLID_2225_">
<path id="Path_4436" data-name="Path 4436" d="M0,24A24,24,0,1,1,42.887,38.81c-4.394,5.6-11.221,3.983-18.887,3.983S9.507,44.405,5.113,38.81A23.9,23.9,0,0,1,0,24Z" fill="#e2e2e2"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<path id="Path_4437" data-name="Path 4437" d="M42.887,38.81A23.9,23.9,0,0,0,48,24q0-.493-.02-.982L34.651,9.689C26.856,6.362,15.212,20.337,15.212,20.337l9.778,9.778,4.217,12.829C34.718,43.153,39.518,43.1,42.887,38.81Z" fill="#c4c4c4"/>
<g id="Group_7140" data-name="Group 7140">
<path id="Path_4438" data-name="Path 4438" d="M18.747,23.459H29.253V34.6H18.747Z" fill="#eaa678"/>
<path id="Path_4439" data-name="Path 4439" d="M24,23.46h5.253V34.6H24Z" fill="#d38c5b"/>
<path id="Path_4440" data-name="Path 4440" d="M32.43,46.477a23.683,23.683,0,0,1-3.177.946,24.178,24.178,0,0,1-10.506,0,23.683,23.683,0,0,1-3.177-.946l3.177-16.024L24,33.857l5.253-3.4Z" fill="#d02127"/>
<path id="Path_4441" data-name="Path 4441" d="M32.43,46.477a23.683,23.683,0,0,1-3.177.946A24,24,0,0,1,24,48V33.857l5.253-3.4Z" fill="#aa191e"/>
<path id="Path_4442" data-name="Path 4442" d="M18.747,30.452V47.423A24,24,0,0,1,5.113,38.81V35.741A5.289,5.289,0,0,1,10.4,30.452Z" fill="#2b353e"/>
<path id="Path_4443" data-name="Path 4443" d="M42.887,35.741V38.81a24,24,0,0,1-13.634,8.613V30.452H37.6A5.289,5.289,0,0,1,42.887,35.741Z" fill="#2b353e"/>
<path id="Path_4444" data-name="Path 4444" d="M13.7,39.923v5.761a23.726,23.726,0,0,1-3.023-1.717V39.923Z" fill="#989898"/>
<path id="Path_4445" data-name="Path 4445" d="M37.362,39.923v4.016a23.888,23.888,0,0,1-3.023,1.725V39.923Z" fill="#989898"/>
<path id="Path_4446" data-name="Path 4446" d="M32.274,14.271C31.924,8.965,27.632,7,24,7s-7.924,1.961-8.274,7.267a2.285,2.285,0,0,0-1.5,2.409l.161,2.267a1.875,1.875,0,0,0,2.043,1.7l.175-.019c2.075,5.573,5.33,6.154,7.4,6.48,2.066-.326,5.321-.907,7.4-6.48l.175.019a1.875,1.875,0,0,0,2.043-1.7l.161-2.267A2.285,2.285,0,0,0,32.274,14.271Z" fill="#ffc397"/>
<path id="Path_4447" data-name="Path 4447" d="M33.775,16.681l-.161,2.267a1.875,1.875,0,0,1-2.043,1.7l-.175-.019a11.863,11.863,0,0,1-2.445,4.151A7.942,7.942,0,0,1,24,27.1V7c3.632,0,7.924,1.961,8.274,7.267a2.285,2.285,0,0,1,1.5,2.409Z" fill="#eaa678"/>
<path id="Path_4448" data-name="Path 4448" d="M34.651,9.689A13.957,13.957,0,0,0,24,4.41a8.424,8.424,0,0,0-4.772,1.436c-.026,0-3.178-.265-4.44,1.943s-.107,6.613,1.16,8.619L17.426,17.7l.68-4.473a17.48,17.48,0,0,0,11.514-.762l.8,5.234,1.478-1.294A12.875,12.875,0,0,0,33.6,10.422C34.277,9.986,34.651,9.689,34.651,9.689Z" fill="#515151"/>
<path id="Path_4449" data-name="Path 4449" d="M29.619,12.467l.8,5.234,1.478-1.294A12.875,12.875,0,0,0,33.6,10.422c.677-.436,1.051-.733,1.051-.733A13.956,13.956,0,0,0,24,4.41v9.415A19.77,19.77,0,0,0,29.619,12.467Z" fill="#3d3d3d"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

@ -1,3 +0,0 @@
<svg id="_14._Men_sign" data-name="14. Men sign" xmlns="http://www.w3.org/2000/svg" width="12.739" height="12.739" viewBox="0 0 12.739 12.739">
<path id="Path_4403" data-name="Path 4403" d="M13.928,1.5H8.757a.313.313,0,0,0-.313.313V3.2a.313.313,0,0,0,.313.313h1.988l-2.3,2.3A4.553,4.553,0,1,0,9.93,7.3l2.3-2.3V6.984a.313.313,0,0,0,.313.313h1.383a.313.313,0,0,0,.313-.313V1.813a.313.313,0,0,0-.313-.313ZM6.057,12.687a3,3,0,1,1,3-3,3,3,0,0,1-3,3Z" transform="translate(-1.502 -1.5)" fill="#1474d5"/>
</svg>

Before

Width:  |  Height:  |  Size: 507 B

@ -1,19 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22.631" height="6.466" viewBox="0 0 22.631 6.466">
<g id="more_1_" data-name="more (1)" transform="translate(0 -170.666)">
<g id="Group_7031" data-name="Group 7031" transform="translate(0 170.666)">
<g id="Group_7030" data-name="Group 7030" transform="translate(0 0)">
<circle id="Ellipse_145" data-name="Ellipse 145" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
<g id="Group_7033" data-name="Group 7033" transform="translate(8.082 170.666)">
<g id="Group_7032" data-name="Group 7032" transform="translate(0 0)">
<circle id="Ellipse_146" data-name="Ellipse 146" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
<g id="Group_7035" data-name="Group 7035" transform="translate(16.165 170.666)">
<g id="Group_7034" data-name="Group 7034" transform="translate(0 0)">
<circle id="Ellipse_147" data-name="Ellipse 147" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 996 B

@ -1,69 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="118.141" height="107.644" viewBox="0 0 118.141 107.644">
<g id="content" transform="translate(0 -22.748)">
<g id="Group_7442" data-name="Group 7442" transform="translate(1.731 28.436)">
<g id="Group_7439" data-name="Group 7439" transform="translate(0 8.932)">
<g id="Group_7438" data-name="Group 7438">
<g id="Group_7434" data-name="Group 7434" transform="translate(0 21.014)">
<g id="Group_7430" data-name="Group 7430" transform="translate(63.164)">
<g id="Group_7429" data-name="Group 7429">
<path id="Path_4552" data-name="Path 4552" d="M332.756,179.321v66a2.139,2.139,0,0,1-2.141,2.139H283.381a2.141,2.141,0,0,1-2.141-2.139v-66a2.143,2.143,0,0,1,2.141-2.141h47.233a2.141,2.141,0,0,1,2.141,2.141Z" transform="translate(-281.24 -177.18)" fill="#fff"/>
<g id="Group_7428" data-name="Group 7428">
<path id="Path_4553" data-name="Path 4553" d="M304.644,177.18v63.254a2.475,2.475,0,0,1-2.476,2.476H281.24V179.321a2.143,2.143,0,0,1,2.141-2.141Z" transform="translate(-281.24 -177.18)" fill="#dbdbdb"/>
<path id="Path_4554" data-name="Path 4554" d="M332.758,195.96V179.322a2.141,2.141,0,0,0-2.141-2.141H283.384a2.141,2.141,0,0,0-2.141,2.141V195.96Z" transform="translate(-281.242 -177.18)" fill="#dbdbdb"/>
<path id="Path_4555" data-name="Path 4555" d="M473.157,179.319v66a2.14,2.14,0,0,1-2.141,2.141h-7.26a2.14,2.14,0,0,0,2.141-2.141v-66a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,473.157,179.319Z" transform="translate(-421.642 -177.178)" fill="#dbdbdb"/>
</g>
<path id="Path_4556" data-name="Path 4556" d="M332.756,179.321V189.4H281.24V179.321a2.143,2.143,0,0,1,2.141-2.141h47.233A2.141,2.141,0,0,1,332.756,179.321Z" transform="translate(-281.24 -177.18)" fill="#d02127"/>
<path id="Path_4557" data-name="Path 4557" d="M371.453,179.57a6.171,6.171,0,1,1-11.863-2.391h11.383A6.141,6.141,0,0,1,371.453,179.57Z" transform="translate(-341.142 -177.18)" fill="#d02127"/>
<path id="Path_4558" data-name="Path 4558" d="M473.157,179.319v10.075H465.9V179.319a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,473.157,179.319Z" transform="translate(-421.642 -177.178)" fill="#d02127"/>
</g>
</g>
<g id="Group_7433" data-name="Group 7433">
<g id="Group_7432" data-name="Group 7432">
<path id="Path_4559" data-name="Path 4559" d="M59.016,179.321v66a2.141,2.141,0,0,1-2.141,2.139H9.641A2.139,2.139,0,0,1,7.5,245.319v-66a2.141,2.141,0,0,1,2.141-2.141H56.875a2.143,2.143,0,0,1,2.141,2.141Z" transform="translate(-7.5 -177.18)" fill="#fff"/>
<g id="Group_7431" data-name="Group 7431" transform="translate(0)">
<path id="Path_4560" data-name="Path 4560" d="M148.988,179.321V242.91H126.936a2.476,2.476,0,0,1-2.476-2.476V177.18h22.387a2.143,2.143,0,0,1,2.141,2.141Z" transform="translate(-97.472 -177.18)" fill="#dbdbdb"/>
<path id="Path_4561" data-name="Path 4561" d="M59.015,195.96V179.322a2.141,2.141,0,0,0-2.141-2.141H9.641A2.141,2.141,0,0,0,7.5,179.322V195.96Z" transform="translate(-7.5 -177.18)" fill="#dbdbdb"/>
<path id="Path_4562" data-name="Path 4562" d="M199.413,179.319v66a2.14,2.14,0,0,1-2.141,2.141h-7.26a2.14,2.14,0,0,0,2.141-2.141v-66a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,199.413,179.319Z" transform="translate(-147.898 -177.178)" fill="#dbdbdb"/>
</g>
<path id="Path_4563" data-name="Path 4563" d="M59.015,189.4H7.5V179.323a2.141,2.141,0,0,1,2.141-2.141H56.875a2.141,2.141,0,0,1,2.141,2.141Z" transform="translate(-7.5 -177.181)" fill="#d02127"/>
<path id="Path_4564" data-name="Path 4564" d="M199.413,179.319v10.075h-7.26V179.319a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,199.413,179.319Z" transform="translate(-147.898 -177.178)" fill="#20bfd5"/>
</g>
</g>
</g>
<g id="Group_7437" data-name="Group 7437" transform="translate(26.988)">
<g id="Group_7436" data-name="Group 7436">
<path id="Path_4565" data-name="Path 4565" d="M181.569,167.391H126.94a2.476,2.476,0,0,1-2.476-2.476V88.586a2.476,2.476,0,0,1,2.476-2.476h54.629a2.476,2.476,0,0,1,2.476,2.476v76.329A2.476,2.476,0,0,1,181.569,167.391Z" transform="translate(-124.463 -86.109)" fill="#fff"/>
<path id="Path_4566" data-name="Path 4566" d="M184.044,106.725V88.586a2.476,2.476,0,0,0-2.476-2.476H126.94a2.476,2.476,0,0,0-2.476,2.476v18.14Z" transform="translate(-124.463 -86.109)" fill="#dbdbdb"/>
<path id="Path_4567" data-name="Path 4567" d="M346.423,88.582v76.33a2.475,2.475,0,0,1-2.476,2.476h-8.4a2.475,2.475,0,0,0,2.476-2.476V88.582a2.476,2.476,0,0,0-2.476-2.476h8.4A2.476,2.476,0,0,1,346.423,88.582Z" transform="translate(-286.842 -86.106)" fill="#dbdbdb"/>
<path id="Path_4568" data-name="Path 4568" d="M184.041,88.586v11.653H124.46V88.586a2.476,2.476,0,0,1,2.476-2.476h54.629A2.475,2.475,0,0,1,184.041,88.586Z" transform="translate(-124.46 -86.109)" fill="#d02127"/>
<g id="Group_7435" data-name="Group 7435" transform="translate(37.747)">
<path id="Path_4569" data-name="Path 4569" d="M299.01,88.138a5.48,5.48,0,1,1-10.57-2.028h10.18A5.435,5.435,0,0,1,299.01,88.138Z" transform="translate(-288.05 -86.109)" fill="#d02127"/>
<path id="Path_4570" data-name="Path 4570" d="M346.423,88.582v11.653h-8.4V88.582a2.476,2.476,0,0,0-2.476-2.476h8.4A2.476,2.476,0,0,1,346.423,88.582Z" transform="translate(-324.59 -86.106)" fill="#d02127"/>
</g>
</g>
</g>
</g>
</g>
<g id="Group_7440" data-name="Group 7440" transform="translate(81.132 21.147)">
<path id="Path_4571" data-name="Path 4571" d="M359.11,145.215a6.171,6.171,0,1,1,6.171,6.171,6.171,6.171,0,0,1-6.171-6.171" transform="translate(-359.11 -139.044)" fill="#d02127"/>
<path id="Path_4572" data-name="Path 4572" d="M372.29,150.533a5.46,5.46,0,0,0,0-10.638,6.173,6.173,0,1,1,0,10.638" transform="translate(-369.249 -139.044)" fill="#d02127"/>
</g>
<g id="Group_7441" data-name="Group 7441" transform="translate(64.735)">
<path id="Path_4573" data-name="Path 4573" d="M288.05,52.878a5.48,5.48,0,1,1,5.48,5.48,5.48,5.48,0,0,1-5.48-5.48" transform="translate(-288.05 -47.398)" fill="#d02127"/>
<path id="Path_4574" data-name="Path 4574" d="M299.754,57.6a4.849,4.849,0,0,0,0-9.446,5.481,5.481,0,1,1,0,9.446" transform="translate(-297.053 -47.397)" fill="#d02127"/>
</g>
</g>
<g id="Group_7443" data-name="Group 7443" transform="translate(0 22.748)">
<path id="Path_4575" data-name="Path 4575" d="M114.27,69.844H96.883a7.887,7.887,0,0,0-6.853-8.735V53.036a4.211,4.211,0,0,0-4.206-4.206H78.948a7.211,7.211,0,1,0-14,0H31.2a4.211,4.211,0,0,0-4.206,4.206V69.844H21.93a1.731,1.731,0,0,0,0,3.461h5.058V82.06H3.461V73.716a.411.411,0,0,1,.41-.41h9.515a1.731,1.731,0,0,0,0-3.461H3.871A3.876,3.876,0,0,0,0,73.716v66a3.876,3.876,0,0,0,3.871,3.871H51.105a3.876,3.876,0,0,0,3.871-3.871v-6.14h8.188v6.14a3.876,3.876,0,0,0,3.871,3.871H81.123a1.731,1.731,0,0,0,0-3.461H67.036a.41.41,0,0,1-.41-.41v-6.14h19.2a4.211,4.211,0,0,0,4.206-4.206V85.521h24.65v54.191a.41.41,0,0,1-.41.41h-24.6a1.731,1.731,0,0,0,0,3.461h24.6a3.876,3.876,0,0,0,3.871-3.871v-66a3.876,3.876,0,0,0-3.871-3.871Zm-20.8-.9a4.441,4.441,0,1,1-4.441-4.441A4.446,4.446,0,0,1,93.475,68.946ZM71.946,43.358a3.75,3.75,0,1,1-3.75,3.75A3.754,3.754,0,0,1,71.946,43.358ZM31.2,52.291H66.941a7.192,7.192,0,0,0,10.011,0h8.873a.746.746,0,0,1,.745.745v8.4a7.9,7.9,0,0,0-2.683,1.519H30.45V53.036a.746.746,0,0,1,.745-.745Zm54.629,77.82H31.2a.746.746,0,0,1-.745-.745V109.979a1.731,1.731,0,0,0-3.461,0v19.386a4.211,4.211,0,0,0,4.206,4.206h20.32v6.14a.41.41,0,0,1-.41.41H3.871a.41.41,0,0,1-.41-.41V85.521H26.989v15.915a1.731,1.731,0,1,0,3.461,0V66.419h51.1a7.895,7.895,0,0,0,5.021,10.033v52.913A.746.746,0,0,1,85.824,130.111ZM90.03,82.06V76.783a7.909,7.909,0,0,0,5.59-3.478h18.65a.41.41,0,0,1,.41.41V82.06H90.03Z" transform="translate(0 -35.94)" fill="#2e303a"/>
<path id="Path_4576" data-name="Path 4576" d="M238.224,296.64a8.143,8.143,0,0,0-5.276-1.877h-.027a8.138,8.138,0,0,0-5.261,1.846,1.73,1.73,0,1,0,2.231,2.646,4.746,4.746,0,0,1,3.03-1.03h.015a4.75,4.75,0,0,1,3.04,1.048,1.731,1.731,0,0,0,2.247-2.633Z" transform="translate(-174.656 -231.997)"/>
<path id="Path_4577" data-name="Path 4577" d="M288.664,267.015l-.045,0h-.03a1.73,1.73,0,0,0-.156,3.452l.039,0c.042,0,.085.007.128.007h.01a1.73,1.73,0,0,0,.054-3.459Z" transform="translate(-220.675 -210.65)"/>
<path id="Path_4578" data-name="Path 4578" d="M207.009,267.012h-.03a1.731,1.731,0,0,0,.011,3.461H207a1.731,1.731,0,0,0,.009-3.461Z" transform="translate(-157.897 -210.65)"/>
<path id="Path_4579" data-name="Path 4579" d="M156.674,112.612h.009c.038,0,.077,0,.115.006l.062,0h.009a1.73,1.73,0,0,0,.346-3.426h-.007c-.053-.011-.108-.019-.162-.025-.02,0-.04,0-.06,0-.036,0-.072-.006-.109-.006h-.031a1.721,1.721,0,0,0-1.722,1.731,1.738,1.738,0,0,0,1.549,1.719Z" transform="translate(-119.331 -89.223)"/>
<path id="Path_4580" data-name="Path 4580" d="M179.553,112.623a1.731,1.731,0,0,0,0-3.461h-.021a1.722,1.722,0,0,0-1.72,1.731A1.74,1.74,0,0,0,179.553,112.623Z" transform="translate(-136.783 -89.223)"/>
<path id="Path_4581" data-name="Path 4581" d="M202.243,112.623a1.731,1.731,0,0,0,0-3.461h-.021a1.722,1.722,0,0,0-1.72,1.731A1.74,1.74,0,0,0,202.243,112.623Z" transform="translate(-154.237 -89.223)"/>
<path id="Path_4582" data-name="Path 4582" d="M53.4,116.408a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922A1.73,1.73,0,0,0,57.7,109.67l-.922.922-.922-.922a1.73,1.73,0,0,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,53.4,116.408Z" transform="translate(-40.692 -89.223)"/>
<path id="Path_4583" data-name="Path 4583" d="M428.867,107.109a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922a1.73,1.73,0,0,0-2.447-2.447l-.922.922-.922-.922a1.73,1.73,0,1,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,428.867,107.109Z" transform="translate(-329.518 -82.07)"/>
<path id="Path_4584" data-name="Path 4584" d="M237.941,29.993a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922a1.73,1.73,0,0,0-2.447-2.447l-.922.922-.922-.922a1.73,1.73,0,1,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,237.941,29.993Z" transform="translate(-182.648 -22.748)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.347" height="25.347" viewBox="0 0 25.347 25.347">
<path id="ekg-monitor" d="M.878,0H24.471a.878.878,0,0,1,.877.877V11.77l-7.647,0a.906.906,0,0,0-.845.582l-1.678,4.393L10.98,5.741a.9.9,0,0,0-.846-.583h0a.9.9,0,0,0-.846.582L6.982,11.774,0,11.77V.878A.878.878,0,0,1,.878,0ZM24.471,25.348a.878.878,0,0,0,.877-.877V13.58l-7.023,0-2.3,6.026a.905.905,0,0,1-1.692,0L10.133,8.6,8.451,13a.906.906,0,0,1-.846.582h0l-7.6,0V24.471a.878.878,0,0,0,.877.877H24.471Z" transform="translate(-0.001 -0.001)" fill="#28323a" fill-rule="evenodd"/>
</svg>

Before

Width:  |  Height:  |  Size: 584 B

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="33.043" height="27.106" viewBox="0 0 33.043 27.106">
<path id="process" d="M28.2,19.555,27.042,21.1l1.549,1.162H25.1a3.868,3.868,0,0,0-3.735-2.9H11.681a3.868,3.868,0,0,0-3.735,2.9H5.808a3.872,3.872,0,0,1,0-7.744H7.946a3.868,3.868,0,0,0,3.735,2.9h9.681a3.868,3.868,0,0,0,3.735-2.9h2.138a5.808,5.808,0,1,0,0-11.617H25.1A3.868,3.868,0,0,0,21.362,0H11.681A3.868,3.868,0,0,0,7.946,2.9H7.1L3.485.194,2.324,1.742,3.872,2.9H0V4.84H3.872L2.324,6,3.485,7.551,7.1,4.84h.847a3.868,3.868,0,0,0,3.735,2.9h9.681A3.868,3.868,0,0,0,25.1,4.84h2.138a3.872,3.872,0,1,1,0,7.744H25.1a3.868,3.868,0,0,0-3.735-2.9H11.681a3.868,3.868,0,0,0-3.735,2.9H5.808a5.808,5.808,0,1,0,0,11.617H7.946a3.868,3.868,0,0,0,3.735,2.9h9.681A3.868,3.868,0,0,0,25.1,24.2h3.494l-1.549,1.162L28.2,26.912l4.84-3.678Zm0,0" fill="#28323a"/>
</svg>

Before

Width:  |  Height:  |  Size: 847 B

@ -1,13 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="31.83" height="27.976" viewBox="0 0 31.83 27.976">
<g id="sticky-note" transform="translate(0 -31.001)">
<g id="Group_7171" data-name="Group 7171" transform="translate(11.19 31.001)">
<path id="Path_4476" data-name="Path 4476" d="M180,38.461V31.934a.933.933,0,0,1,1.865,0v6.528Z" transform="translate(-180 -31.001)" fill="#28323a"/>
</g>
<g id="Group_7172" data-name="Group 7172" transform="translate(0 46.403)">
<path id="Path_4477" data-name="Path 4477" d="M8.393,289.46a2.779,2.779,0,0,1-1.978-.819A28.3,28.3,0,0,1,0,278.751v11.641a.933.933,0,0,0,.933.933H23.313a.933.933,0,0,0,.933-.933v-.933Z" transform="translate(0 -278.751)" fill="#28323a"/>
</g>
<g id="Group_7173" data-name="Group 7173" transform="translate(0 34.731)">
<path id="Path_4478" data-name="Path 4478" d="M31.557,109.924a24.777,24.777,0,0,1-7.312-17.351v-.64A.933.933,0,0,0,23.313,91H14.92v4.663a.933.933,0,0,1-.933.933h-3.73a.933.933,0,0,1-.933-.933V91H.933A.933.933,0,0,0,0,91.934v.64a26.393,26.393,0,0,0,7.733,18.67.934.934,0,0,0,.66.273H30.9a.933.933,0,0,0,.66-1.592ZM12.123,98.461h7.46a.933.933,0,0,1,0,1.865h-7.46a.933.933,0,0,1,0-1.865Zm7.46,9.325H10.258a.933.933,0,0,1,0-1.865h9.325a.933.933,0,0,1,0,1.865Zm1.865-3.73H8.393a.933.933,0,1,1,0-1.865H21.448a.933.933,0,1,1,0,1.865Z" transform="translate(0 -91.001)" fill="#28323a"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="35.842" height="28.675" viewBox="0 0 35.842 28.675">
<path id="Path_4336" data-name="Path 4336" d="M38.948,34.883H29.987V31.3c5.825,0,5.771.134,6.12-.4l1.559-2.285A2.688,2.688,0,0,0,38,23.422a5.377,5.377,0,0,0-5.323-4.669H28.956A12.545,12.545,0,0,0,16.545,8C4.3,8-.668,23.843,9.377,30.823v4.059H6.688a.9.9,0,1,0,0,1.792H38.948a.9.9,0,1,0,0-1.792ZM8.561,21.656a8.065,8.065,0,0,1,14.92-5.224,7.832,7.832,0,0,1,.9,2.321c-2.1,0-1.577.806-1.792.054.161.484.09.224-.367.627a3.584,3.584,0,0,0-6.066,3.8,2.689,2.689,0,0,0,.134,5.377,8.065,8.065,0,0,1-7.724-6.954Zm28.594,3.369a.9.9,0,0,1,.618,1.532c-.367.385,1.174.26-21.228.26a.9.9,0,0,1-.618-1.532C16.286,24.9,14.825,25.026,37.155,25.026Zm-16.542,4.48-.6-.9h4.749a2.841,2.841,0,0,0-.152.9Zm-3.172-8.065a1.792,1.792,0,1,1,1.792,1.792A1.792,1.792,0,0,1,17.442,21.441ZM23.714,31.3h.9v3.584h-.9Zm11.165-1.792H29.987a2.688,2.688,0,0,0-.152-.9H35.48Zm1.263-6.273c-12.993,0-12.249.09-12.706-.215a1.335,1.335,0,0,1-.224-2.079c.5-.565.547-.394,9.463-.394a3.584,3.584,0,0,1,3.468,2.688ZM15.649,32.194h1.792v2.688H15.649Z" transform="translate(-4.002 -8)" fill="#28323a"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30">
<path id="Path_4487" data-name="Path 4487" d="M15.879,1.8V0H14.121V1.8C6.047,2.2,0,8.143,0,15.879V17.3l1.27-.629a8.69,8.69,0,0,1,3.182-.787,5.156,5.156,0,0,1,2.9,1.5l.621.615.62-.615a5.156,5.156,0,0,1,2.9-1.5,4.774,4.774,0,0,1,2.637,1.267V27.363a2.637,2.637,0,0,0,5.273,0V25.605H17.637v1.758a.879.879,0,0,1-1.758,0V17.146a4.774,4.774,0,0,1,2.637-1.267,5.156,5.156,0,0,1,2.9,1.5l.621.615.62-.615a5.344,5.344,0,0,1,2.954-1.5,8.222,8.222,0,0,1,3.123.787L30,17.3V15.879C30,8.143,23.953,2.2,15.879,1.8Z" fill="#28323a"/>
</svg>

Before

Width:  |  Height:  |  Size: 609 B

@ -1,11 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="33.112" height="30.051" viewBox="0 0 33.112 30.051">
<g id="reception" transform="translate(0 -23.667)">
<path id="Path_4479" data-name="Path 4479" d="M0,313.745H33.112V301.673H0Zm15.586-9.318h1.94v2.183h2.183v1.94H17.526v2.183h-1.94V308.55H13.4v-1.94h2.183Z" transform="translate(0 -260.027)" fill="#28323a"/>
<path id="Path_4480" data-name="Path 4480" d="M30,236.668H59.234v2.264H30Z" transform="translate(-28.062 -199.226)" fill="#28323a"/>
<path id="Path_4481" data-name="Path 4481" d="M108.058,103.919c0-.057,0-.113-.005-.169h-6.1c0,.056-.005.112-.005.169a3.057,3.057,0,0,0,2.717,3.034h.672A3.057,3.057,0,0,0,108.058,103.919Z" transform="translate(-95.358 -74.904)" fill="#28323a"/>
<path id="Path_4482" data-name="Path 4482" d="M65.158,153.293h-.911a3.888,3.888,0,0,0-3.86,3.452h4.771v-3.452Z" transform="translate(-56.482 -121.243)" fill="#28323a"/>
<path id="Path_4483" data-name="Path 4483" d="M165.076,153.293h-.911v3.452h4.771a3.888,3.888,0,0,0-3.86-3.452Z" transform="translate(-153.548 -121.243)" fill="#28323a"/>
<path id="Path_4484" data-name="Path 4484" d="M98.828,26.906,99.4,24.35a10.351,10.351,0,0,0-7.394,0l.569,2.556Z" transform="translate(-86.054)" fill="#28323a"/>
<path id="Path_4485" data-name="Path 4485" d="M296.991,135.98h10.025v4.572H296.991Z" transform="translate(-277.784 -105.049)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="17.016" height="15.893" viewBox="0 0 17.016 15.893">
<g id="Layer_2" data-name="Layer 2" transform="translate(-1 -1.98)">
<path id="Path_4511" data-name="Path 4511" d="M15.429,21.777H3.586A2.592,2.592,0,0,1,1,19.2V11H18.016v8.2a2.592,2.592,0,0,1-2.586,2.581ZM2.134,12.134V19.2a1.458,1.458,0,0,0,1.452,1.446H15.429A1.458,1.458,0,0,0,16.881,19.2V12.134Z" transform="translate(0 -3.904)" fill="#28323a"/>
<path id="Path_4512" data-name="Path 4512" d="M18.016,9.1H1V6.6A2.592,2.592,0,0,1,3.586,4H15.429a2.592,2.592,0,0,1,2.586,2.6ZM2.134,7.97H16.881V6.6a1.458,1.458,0,0,0-1.452-1.463H3.586A1.458,1.458,0,0,0,2.134,6.6Z" transform="translate(0 -0.874)" fill="#28323a"/>
<rect id="Rectangle_17397" data-name="Rectangle 17397" width="1.134" height="3.437" rx="0.567" transform="translate(4.369 1.98)" fill="#28323a"/>
<rect id="Rectangle_17398" data-name="Rectangle 17398" width="1.134" height="3.437" rx="0.567" transform="translate(13.512 1.98)" fill="#28323a"/>
<rect id="Rectangle_17399" data-name="Rectangle 17399" width="1.134" height="3.437" rx="0.567" transform="translate(8.941 1.98)" fill="#28323a"/>
<path id="Path_4513" data-name="Path 4513" d="M2.31,12v9.217H17.732V12Zm4.929,5.717a.567.567,0,1,1,.567-.567A.567.567,0,0,1,7.239,17.717Zm2.836,0a.567.567,0,1,1,.567-.567A.567.567,0,0,1,10.075,17.717Zm2.836,0a.567.567,0,1,1,.567-.567A.567.567,0,0,1,12.911,17.717Z" transform="translate(-0.567 -4.337)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

@ -1,4 +0,0 @@
<svg id="add_3_" data-name="add (3)" xmlns="http://www.w3.org/2000/svg" width="25.027" height="25.027" viewBox="0 0 25.027 25.027">
<path id="Path_4468" data-name="Path 4468" d="M20.668,2.086A3.128,3.128,0,0,0,17.728,0H3.128A3.138,3.138,0,0,0,0,3.128v14.6a3.128,3.128,0,0,0,2.086,2.941V7.3A5.214,5.214,0,0,1,7.3,2.086Z" fill="#fff"/>
<path id="Path_4469" data-name="Path 4469" d="M21.728,4H7.128A3.138,3.138,0,0,0,4,7.128v14.6a3.138,3.138,0,0,0,3.128,3.128h14.6a3.138,3.138,0,0,0,3.128-3.128V7.128A3.138,3.138,0,0,0,21.728,4ZM18.6,15.471H15.471V18.6a1.043,1.043,0,0,1-2.086,0V15.471H10.257a1.043,1.043,0,1,1,0-2.086h3.128V10.257a1.043,1.043,0,1,1,2.086,0v3.128H18.6a1.043,1.043,0,0,1,0,2.086Z" transform="translate(0.171 0.171)" fill="#fff"/>
</svg>

Before

Width:  |  Height:  |  Size: 754 B

@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="18.824" height="29.092" viewBox="0 0 18.824 29.092">
<g id="sugar-blood-level_1_" data-name="sugar-blood-level (1)" transform="translate(-90)">
<path id="Path_4645" data-name="Path 4645" d="M106.257,0H92.567A2.57,2.57,0,0,0,90,2.567V12.835h18.824V2.567A2.57,2.57,0,0,0,106.257,0ZM99.412,11.123a2.57,2.57,0,0,1-2.567-2.567,5.241,5.241,0,0,1,.971-2.5c.44-.758.873-1.387.892-1.414l.7-1.019.7,1.019c.018.026.452.656.892,1.414a5.241,5.241,0,0,1,.971,2.5,2.57,2.57,0,0,1-2.567,2.567Z" fill="#28323a"/>
<path id="Path_4646" data-name="Path 4646" d="M240,119.644a.856.856,0,0,0,1.711,0,6.4,6.4,0,0,0-.856-1.837,6.393,6.393,0,0,0-.856,1.837Z" transform="translate(-141.444 -111.087)" fill="#28323a"/>
<path id="Path_4647" data-name="Path 4647" d="M195,315h6.845v2.567H195Z" transform="translate(-99.01 -297.031)" fill="#28323a"/>
<path id="Path_4648" data-name="Path 4648" d="M223,390h3.537v1.711H223Z" transform="translate(-125.413 -367.753)" fill="#28323a"/>
<path id="Path_4649" data-name="Path 4649" d="M90,256.711a5.142,5.142,0,0,0,4.278,5.062v-5.062h10.268v5.062a5.142,5.142,0,0,0,4.278-5.062V255H90Z" transform="translate(0 -240.454)" fill="#28323a"/>
<path id="Path_4650" data-name="Path 4650" d="M223,450h3.537v3.423H223Z" transform="translate(-125.413 -424.331)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.47" height="29.309" viewBox="0 0 25.47 29.309">
<path id="diagnose" d="M59.073,10.053a.6.6,0,0,1,.174.123L63.268,14.2a.6.6,0,0,1,.123.174H59.669a.6.6,0,0,1-.6-.6V10.053ZM55.566,20.885A6.3,6.3,0,0,1,60.6,30.972l1.51,1.51a.811.811,0,0,1,.976.128l4.371,4.371a.81.81,0,0,1,0,1.143l-.951.951a.81.81,0,0,1-1.143,0L60.992,34.7a.811.811,0,0,1-.128-.976l-1.51-1.51a6.3,6.3,0,1,1-3.788-11.332Zm0,1.749a4.55,4.55,0,1,0,4.55,4.55A4.55,4.55,0,0,0,55.566,22.634Zm5.91,14.239-1.327-1.327a1.993,1.993,0,0,1-.584-1.433l-.373-.373a7.487,7.487,0,1,1,2.93-2.93l.373.373a2,2,0,0,1,.948.227V15.562H59.669a1.789,1.789,0,0,1-1.787-1.787V10H42.818a.6.6,0,0,0-.6.6v25.68a.6.6,0,0,0,.6.6H61.476ZM49.529,13.8a.3.3,0,0,1,.3.3v1.67H51.5a.3.3,0,0,1,.3.3V18.09a.3.3,0,0,1-.3.3h-1.67v1.67a.3.3,0,0,1-.3.3H47.508a.3.3,0,0,1-.3-.3v-1.67H45.54a.3.3,0,0,1-.3-.3V16.069a.3.3,0,0,1,.3-.3h1.67V14.1a.3.3,0,0,1,.3-.3Z" transform="translate(-42.222 -10.001)" fill="#28323a" fill-rule="evenodd"/>
</svg>

Before

Width:  |  Height:  |  Size: 1013 B

@ -1,7 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="27" height="27.001" viewBox="0 0 27 27.001">
<g id="direction_1_" data-name="direction (1)" transform="translate(-0.007 0)">
<g id="Group_7454" data-name="Group 7454" transform="translate(0.007 0)">
<path id="Path_4587" data-name="Path 4587" d="M26.606,12.545h0L14.456.395a1.344,1.344,0,0,0-1.9,0L.4,12.545a1.353,1.353,0,0,0,0,1.91L12.552,26.6v.007a1.353,1.353,0,0,0,1.91,0l12.15-12.15A1.347,1.347,0,0,0,26.606,12.545ZM16.2,16.872V13.5H10.8v4.05H8.1v-5.4a1.345,1.345,0,0,1,1.35-1.35H16.2V7.422l4.725,4.725Z" transform="translate(-0.007 0)" fill="#28323a"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 639 B

@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="26.278" height="28.04" viewBox="0 0 26.278 28.04">
<g id="report_4_" data-name="report (4)" transform="translate(0.918)">
<path id="Path_4470" data-name="Path 4470" d="M19.105,70.875H3.19A2.721,2.721,0,0,1,.412,68.217V46.281A1.766,1.766,0,0,0-.918,47.911V70.394A1.753,1.753,0,0,0,.895,72.084H17.363A1.774,1.774,0,0,0,19.105,70.875Zm0,0" transform="translate(0 -44.044)" fill="#28323a"/>
<path id="Path_4471" data-name="Path 4471" d="M66.516,24.173V12.207H52.852l-.007.748c0,.007,0-.023,0,.038h5.816a.483.483,0,1,1,0,.967h-5.87a.9.9,0,0,1-.626-.282,1.066,1.066,0,0,1-.289-.745l.007-.725H50.863a.473.473,0,0,1-.483-.473v-.071H48.927a.483.483,0,0,1-.483-.479l-.015-2.1a.5.5,0,0,1,.483-.5h0l1.464.029V8.548a.506.506,0,0,1,.482-.511H66.516V5.862H62.423a1.577,1.577,0,0,1-1.588-1.586V0H48.2a1.769,1.769,0,0,0-1.821,1.629.471.471,0,0,1,.013.063c0,.025,0,.05,0,.075V24.173A1.754,1.754,0,0,0,48.2,25.864H64.672A1.783,1.783,0,0,0,66.516,24.173ZM48.933,15.228h7.948a.483.483,0,1,1,0,.967H48.933a.483.483,0,0,1,0-.967Zm13.833,8.037H48.933a.483.483,0,0,1,0-.967H62.766a.483.483,0,0,1,0,.967Zm0-2.357H48.933a.483.483,0,0,1,0-.967H62.766a.483.483,0,1,1,0,.967Zm0-2.357H48.933a.483.483,0,0,1,0-.967H62.766a.483.483,0,1,1,0,.967Zm0,0" transform="translate(-45.014)" fill="#28323a"/>
<path id="Path_4472" data-name="Path 4472" d="M369.314,20.14l-3.983-4.12v3.5a.61.61,0,0,0,.621.619Zm0,0" transform="translate(-348.543 -15.245)" fill="#28323a"/>
<path id="Path_4473" data-name="Path 4473" d="M520.332,195.25v1.4l1.079-.7Zm0,0" transform="translate(-496.051 -185.811)" fill="#28323a"/>
<path id="Path_4474" data-name="Path 4474" d="M149.082,186.25h16.981v2.236H149.082Zm0,0" transform="translate(-142.748 -177.246)" fill="#28323a"/>
<path id="Path_4475" data-name="Path 4475" d="M109.77,198.986v-1.12l-.981-.011.008,1.131Zm0,0" transform="translate(-104.403 -188.29)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23.812" height="29.735" viewBox="0 0 23.812 29.735">
<g id="insurance_4_" data-name="insurance (4)" transform="translate(-51)">
<path id="Path_4536" data-name="Path 4536" d="M64.94,5.227H60.871a11.918,11.918,0,0,1-4.644,3.251v5.33a11.389,11.389,0,0,0,6.679,10.4,11.389,11.389,0,0,0,6.679-10.4V8.479A11.909,11.909,0,0,1,64.94,5.227Zm2.647,7.494-5.421,5.42a.87.87,0,0,1-1.232,0l-2.71-2.71A.871.871,0,0,1,59.457,14.2l2.094,2.094,4.8-4.8a.871.871,0,0,1,1.232,1.232Zm6.348-8.655a6.734,6.734,0,0,1-5.97-3.6A.871.871,0,0,0,67.195,0H58.617a.872.872,0,0,0-.771.465,6.734,6.734,0,0,1-5.975,3.6A.871.871,0,0,0,51,4.937v8.871A16.66,16.66,0,0,0,62.643,29.695a.868.868,0,0,0,.525,0A16.66,16.66,0,0,0,74.812,13.808V4.937a.876.876,0,0,0-.876-.871Zm-2.608,9.7a13.128,13.128,0,0,1-8.086,12.154.874.874,0,0,1-.67,0,13.128,13.128,0,0,1-8.086-12.154V7.826a.871.871,0,0,1,.6-.828,10.18,10.18,0,0,0,4.709-3.233.871.871,0,0,1,.675-.32h4.876a1.072,1.072,0,0,1,.675.32A10.18,10.18,0,0,0,70.727,7a.869.869,0,0,1,.542.518l0,.008a.881.881,0,0,1,.047.187c0,.006,0,.013,0,.02a.855.855,0,0,1,.006.1Z" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="27.217" height="28.675" viewBox="0 0 27.217 28.675">
<path id="path2299" d="M18.879,280.47l-2.477.665-.665,2.477,1.812,1.813,2.477-.665c.229-.823.444-1.649.665-2.474Zm-12.249.576v.968h.962c.012,2.559,0,5.112,0,7.667-.06.132-4.81,10.572-6.755,16.407a2.947,2.947,0,0,0,.057,1.826,2.166,2.166,0,0,0,.462.815,1.276,1.276,0,0,0,.912.415h16.46a1.276,1.276,0,0,0,.912-.415,2.165,2.165,0,0,0,.462-.815,2.947,2.947,0,0,0,.057-1.826c-1.945-5.835-6.7-16.274-6.755-16.407.01-2.556.007-5.111.007-7.667h.969v-.968Zm17.457.918-2.477.661-.662,2.478,1.813,1.816,2.477-.665c.217-.827.442-1.652.665-2.478Zm-11.65.05v4.844l-3.875.011,0-4.841Zm7.9,3.531-2.477.665-.665,2.477,1.816,1.813,2.477-.665q.331-1.239.661-2.478Zm.819,6.152v.968h.968v12.106a10.237,10.237,0,0,0,.183,2.884,2.009,2.009,0,0,0,.754,1.084,2.554,2.554,0,0,0,1.484.389,2.552,2.552,0,0,0,1.483-.389,2,2,0,0,0,.751-1.084,10.232,10.232,0,0,0,.185-2.884V292.666h.968V291.7Zm1.933.968H26v3.875H23.09Zm-9.053,5.342a1.321,1.321,0,0,1-.883,1.654,1.305,1.305,0,0,1-.484.05l-.532,1.228a1.877,1.877,0,0,1,.595,1.923l1.211.682a1.3,1.3,0,0,1,.43-.229,1.328,1.328,0,1,1-.886,1.655,1.3,1.3,0,0,1-.034-.591l-1.193-.672a1.908,1.908,0,0,1-.832.526,1.936,1.936,0,0,1-2.408-1.285,1.912,1.912,0,0,1-.009-1.072l-.831-.468a1.3,1.3,0,0,1-.5.29,1.326,1.326,0,1,1,.882-1.655,1.3,1.3,0,0,1,.049.5l.887.5a1.843,1.843,0,0,1,1.769-.531l.528-1.216a1.3,1.3,0,0,1-.3-.51,1.4,1.4,0,0,1,1.226-1.692,1.236,1.236,0,0,1,1.315.919Z" transform="translate(-0.716 -280.47)" fill="#28323a"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

@ -1,10 +0,0 @@
<svg id="Group_765" data-name="Group 765" xmlns="http://www.w3.org/2000/svg" width="24.871" height="13.655" viewBox="0 0 24.871 13.655">
<g id="Group_767" data-name="Group 767">
<path id="Subtraction_64" data-name="Subtraction 64" d="M805.3,951.152h-2.162a2.708,2.708,0,0,1-1.066-.217,2.775,2.775,0,0,1-1.464-1.462,2.692,2.692,0,0,1-.217-1.063v-8.171a2.7,2.7,0,0,1,.217-1.065,2.772,2.772,0,0,1,1.462-1.46,2.7,2.7,0,0,1,1.063-.216h10.134a2.7,2.7,0,0,1,1.065.217,2.771,2.771,0,0,1,1.46,1.462A2.7,2.7,0,0,1,816,940.24v2.015a2.26,2.26,0,0,0,0,4.229v1.922a2.708,2.708,0,0,1-.213,1.066,2.762,2.762,0,0,1-1.459,1.464,2.7,2.7,0,0,1-1.064.217H810.9a7.147,7.147,0,0,0,.772-.766.713.713,0,0,0,.157-.564,10.413,10.413,0,0,0,1.47-2.765,10.044,10.044,0,0,0,.4-1.457,7.294,7.294,0,0,0,.139-1.367,4.83,4.83,0,0,0-.216-1.582,2.067,2.067,0,0,0-.623-.93,2.962,2.962,0,0,0-.991-.518c-.39-.132-.841-.235-1.318-.344h0l0,0a.737.737,0,0,0-.66-.419.749.749,0,1,0,0,1.5.72.72,0,0,0,.441-.165l.018.006h0l.012,0c.477.11.853.2,1.166.3a2.039,2.039,0,0,1,.743.379,1.27,1.27,0,0,1,.385.654,4.37,4.37,0,0,1,.11,1.126,6.294,6.294,0,0,1-.129,1.211,9.1,9.1,0,0,1-.365,1.3,10.147,10.147,0,0,1-.57,1.293,8.958,8.958,0,0,1-.743,1.183.716.716,0,0,0-.493.239,5.065,5.065,0,0,1-1.066.952,2.451,2.451,0,0,1-2.873,0,5.025,5.025,0,0,1-1.065-.947.715.715,0,0,0-.492-.239,9,9,0,0,1-.745-1.186,10.2,10.2,0,0,1-.571-1.3,9.07,9.07,0,0,1-.366-1.3,6.325,6.325,0,0,1-.129-1.213,4.42,4.42,0,0,1,.109-1.127,1.266,1.266,0,0,1,.384-.654,2.032,2.032,0,0,1,.743-.379c.316-.1.714-.193,1.174-.3l.01,0h0l.007-.006a.739.739,0,0,0,.45.166.748.748,0,1,0,0-1.5.725.725,0,0,0-.4.118.813.813,0,0,0-.272.3h0l-.009,0c-1.961.453-3.145.726-3.145,3.377a7.293,7.293,0,0,0,.14,1.369,10.075,10.075,0,0,0,.4,1.459,10.343,10.343,0,0,0,1.481,2.77.71.71,0,0,0,.158.563,7.234,7.234,0,0,0,.763.757h0Zm19.5-1.428h-1.109a.956.956,0,0,1-.5-.144l-4.614-2.912a.456.456,0,0,1-.213-.384V946a2.257,2.257,0,0,0,0-3.252v-.512a.456.456,0,0,1,.213-.384l4.614-2.912a.913.913,0,0,1,.5-.144h1.11a.457.457,0,0,1,.459.453v10.028a.449.449,0,0,1-.133.32.458.458,0,0,1-.325.132Z" transform="translate(-800.388 -937.498)" fill="#d02127"/>
<g id="Group_766" data-name="Group 766" transform="translate(5.809 5.879)">
<path id="Path_673" data-name="Path 673" d="M495.37,3.328h.237l.741,0c.088,0,.162-.094.166-.23V2.482c0-.132.059-.235.151-.241l.227,0c.092.006.155.11.155.241V3.1c0,.136.066.224.155.224l1,0,0-.766c0-.132-.063-.234-.155-.24l-.4,0c-.089,0-.158-.094-.162-.23l0-.207c0-.136.074-.229.163-.229h.4c.092-.006.151-.114.151-.245V.457a.407.407,0,0,1-.309.193h-.678c-.088,0-.162.1-.166.232V1.5c0,.136-.073.231-.162.231l-.2,0c-.089,0-.16-.093-.164-.228V.877c0-.136-.074-.227-.163-.227h-.984v.763c0,.132.062.237.154.244l.4,0c.091.006.156.115.156.246v.177c0,.132-.062.237-.154.243h-.4c-.092.006-.154.111-.154.242ZM498.758.4V3.595a.406.406,0,0,1-.41.386H495.2a.4.4,0,0,1-.408-.386V.4A.406.406,0,0,1,495.2.01h3.147A.413.413,0,0,1,498.758.4Z" transform="translate(-494.79 -0.01)" fill="#fff"/>
<path id="Path_929" data-name="Path 929" d="M502.5,8.838h.237l.741,0c.088,0,.162-.094.166-.23V7.992c0-.132.059-.235.151-.241l.227,0c.091.006.154.11.154.241v.623c0,.136.066.224.155.224l1,0,0-.766c0-.132-.063-.234-.155-.24l-.4,0c-.089,0-.158-.094-.162-.23l0-.207c0-.136.074-.229.163-.229h.4c.092-.006.151-.114.151-.245V5.967a.407.407,0,0,1-.309.193h-.678c-.088,0-.162.1-.166.232v.614c0,.136-.074.231-.162.231l-.205,0c-.089,0-.16-.093-.164-.228v-.62c0-.136-.074-.227-.163-.227H502.5v.763c0,.132.062.237.154.244l.4,0c.091.006.156.115.156.246v.177c0,.132-.062.237-.154.243h-.4c-.092.006-.154.111-.154.242Z" transform="translate(-501.917 -5.52)" fill="#d02127"/>
</g>
<path id="Path_663" data-name="Path 663" d="M969.6,998.3a1.313,1.313,0,1,1-1.312,1.313h0A1.313,1.313,0,0,1,969.6,998.3Z" transform="translate(-953.186 -992.832)" fill="#d02127"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23.272" height="28.26" viewBox="0 0 23.272 28.26">
<path id="Subtraction_2" data-name="Subtraction 2" d="M20.261-4078.007H.314a1.665,1.665,0,0,1-1.662-1.663V-4104.6a1.664,1.664,0,0,1,1.662-1.663H20.261a1.664,1.664,0,0,1,1.662,1.663v24.934A1.665,1.665,0,0,1,20.261-4078.007ZM16.1-4086.74a3.183,3.183,0,0,0-3.179,3.179,3.183,3.183,0,0,0,3.179,3.179,3.183,3.183,0,0,0,3.179-3.179v-.212H16.309v-2.967Zm.665-.877v3.392h3.39v-.212a3.183,3.183,0,0,0-3.179-3.179Zm-13.123-6.857a.833.833,0,0,0-.832.832.833.833,0,0,0,.832.832h13.3a.832.832,0,0,0,.831-.832.832.832,0,0,0-.831-.832Zm0-3.986a.832.832,0,0,0-.832.831.833.833,0,0,0,.832.832h13.3a.832.832,0,0,0,.831-.832.832.832,0,0,0-.831-.831Zm0-3.649a.832.832,0,0,0-.832.831.833.833,0,0,0,.832.832H9.456a.833.833,0,0,0,.832-.832.832.832,0,0,0-.832-.831Z" transform="translate(1.348 4106.266)" fill="#2e303a"/>
</svg>

Before

Width:  |  Height:  |  Size: 905 B

@ -1,4 +0,0 @@
<svg id="add_3_" data-name="add (3)" xmlns="http://www.w3.org/2000/svg" width="25.029" height="25.028" viewBox="0 0 25.029 25.028">
<path id="Path_4468" data-name="Path 4468" d="M20.668,2.086A3.128,3.128,0,0,0,17.728,0H3.128A3.138,3.138,0,0,0,0,3.128v14.6a3.128,3.128,0,0,0,2.086,2.941V7.3A5.214,5.214,0,0,1,7.3,2.086Z" fill="#fff"/>
<path id="Subtraction_1" data-name="Subtraction 1" d="M-11473.738-3740.409h-14.6a3.148,3.148,0,0,1-3.129-3.129v-14.6a3.147,3.147,0,0,1,3.129-3.129h14.6a3.146,3.146,0,0,1,3.129,3.129v14.6A3.146,3.146,0,0,1-11473.738-3740.409Zm-5.609-14.3h0l-7.017,7.017a.549.549,0,0,0-.136.219l-.8,2.385a.558.558,0,0,0,.136.574.566.566,0,0,0,.4.164.536.536,0,0,0,.179-.029l2.382-.793a.563.563,0,0,0,.219-.135l7.018-7.02-2.383-2.382Zm2.384-1.994a.935.935,0,0,0-.662.273l-.926.928,2.383,2.382.926-.926a.929.929,0,0,0,.274-.665.921.921,0,0,0-.274-.659l-1.059-1.061A.935.935,0,0,0-11476.964-3756.7Z" transform="translate(11495.638 3765.437)" fill="#fff"/>
</svg>

Before

Width:  |  Height:  |  Size: 979 B

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.561" height="28.306" viewBox="0 0 21.561 28.306">
<g id="medical-report" transform="translate(-61)">
<path id="Path_4648" data-name="Path 4648" d="M325,12.236a.277.277,0,0,0,.276.276h6.32a3.033,3.033,0,0,0-.581-.759L325.684,6.71A3.047,3.047,0,0,0,325,6.222Z" transform="translate(-249.405 -5.878)" fill="#28323a"/>
<path id="Path_4649" data-name="Path 4649" d="M75.872,8.293a1.937,1.937,0,0,1-1.935-1.935V0h-9.9A3.044,3.044,0,0,0,61,3.041V25.265a3.044,3.044,0,0,0,3.041,3.041h15.48a3.044,3.044,0,0,0,3.041-3.041V8.293ZM70.122,5.8a.829.829,0,1,1,0,1.659H68.464V9.122a.829.829,0,1,1-1.659,0V7.464H65.146a.829.829,0,1,1,0-1.659H66.8V4.146a.829.829,0,1,1,1.659,0V5.8ZM65.533,18.8a.829.829,0,1,1,0-1.659H77.7a.829.829,0,0,1,0,1.659Zm4.85,3.594a.829.829,0,0,1-.829.829h-4.02a.829.829,0,1,1,0-1.659h4.02A.829.829,0,0,1,70.383,22.391ZM77.7,12.716a.829.829,0,0,1,0,1.659H65.533a.829.829,0,1,1,0-1.659Z" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 985 B

@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23.92" height="35.546" viewBox="0 0 23.92 35.546">
<g id="prescription_4_" data-name="prescription (4)" transform="translate(0 0)">
<path id="Path_4337" data-name="Path 4337" d="M213.666,6.838a1.025,1.025,0,0,0-.279-.7L207.917.323A1.027,1.027,0,0,0,207.17,0h-.342V7.18h6.838Zm0,0" transform="translate(-192.469)" fill="#28323a"/>
<path id="Path_4338" data-name="Path 4338" d="M20.161,20.171a5.859,5.859,0,0,1,1.036.093V9.231H13.334a1.026,1.026,0,0,1-1.026-1.026V0H1.026A1.026,1.026,0,0,0,0,1.026V27.351a1.026,1.026,0,0,0,1.026,1.026H9.652a5.817,5.817,0,0,1,.6-.7l5.8-5.8A5.774,5.774,0,0,1,20.161,20.171ZM8.547,11.966H9.573V10.94a1.026,1.026,0,1,1,2.051,0v1.026H12.65a1.026,1.026,0,1,1,0,2.051H11.624v1.026a1.026,1.026,0,0,1-2.051,0V14.017H8.547a1.026,1.026,0,0,1,0-2.051ZM5.128,18.12h10.94a1.026,1.026,0,1,1,0,2.051H5.128a1.026,1.026,0,0,1,0-2.051Zm6.838,6.154H5.128a1.026,1.026,0,1,1,0-2.051h6.838a1.026,1.026,0,1,1,0,2.051Zm0,0" transform="translate(0 0)" fill="#28323a"/>
<path id="Path_4339" data-name="Path 4339" d="M153.782,390.363a3.761,3.761,0,1,0,5.319,5.318l2.176-2.176-5.318-5.319Zm0,0" transform="translate(-142.083 -361.237)" fill="#28323a"/>
<path id="Path_4340" data-name="Path 4340" d="M228.252,321.191a3.76,3.76,0,0,0-5.318,0l-2.176,2.176,5.318,5.318,2.176-2.176A3.765,3.765,0,0,0,228.252,321.191Zm0,0" transform="translate(-205.432 -297.867)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.098" height="29.309" viewBox="0 0 21.098 29.309">
<path id="google-sheets" d="M49.083,29.309a.645.645,0,0,0,.645-.645V8.8H42.307a1.954,1.954,0,0,1-1.951-1.952V0H29.275a.645.645,0,0,0-.645.645V28.664a.645.645,0,0,0,.645.645ZM32.109,12.566h14.3V24.039h-14.3Zm7.724,8.079h5.429v2.247H39.833Zm-6.576-3.537h5.429V19.5H33.257Zm0,3.537h5.429v2.247H33.257Zm6.576-6.931h5.429v2.247H39.833Zm0,3.394h5.429V19.5H39.833Zm-6.576-3.394h5.429v2.247H33.257ZM41.79,6.846V1.491l6.282,5.873H42.307A.518.518,0,0,1,41.79,6.846Z" transform="translate(-28.63)" fill="#28323a"/>
</svg>

Before

Width:  |  Height:  |  Size: 613 B

@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.879" height="28.906" viewBox="0 0 21.879 28.906">
<g id="medical-report_9_" data-name="medical-report (9)" transform="translate(-5.834 0)">
<path id="Path_4486" data-name="Path 4486" d="M25.038,0H8.511A2.68,2.68,0,0,0,5.834,2.677V26.23a2.679,2.679,0,0,0,2.677,2.676H25.037a2.679,2.679,0,0,0,2.676-2.676V2.677A2.679,2.679,0,0,0,25.038,0ZM9.266,4.849l1.666-2.868a.6.6,0,1,1,1.042.6l-1.14,1.964H22.827l-.911-2.019a.6.6,0,1,1,1.1-.5L24.308,4.9a.6.6,0,0,1-.548.85H9.787a.6.6,0,0,1-.521-.9Zm15.2,12.742h-4.4a.6.6,0,0,1-.568-.4l-.416-1.174-1,7.5a.6.6,0,0,1-.58.522h-.017a.6.6,0,0,1-.59-.488L14.866,13.068l-1.328,4.451a.6.6,0,0,1-.576.431H9.081a.6.6,0,1,1,0-1.2h3.432l1.9-6.377a.6.6,0,0,1,1.168.058l1.79,9.276.845-6.317a.6.6,0,0,1,.534-.519.615.615,0,0,1,.631.4l1.108,3.122h3.976a.6.6,0,1,1,0,1.2Z" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 878 B

@ -1,7 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.196" height="28.306" viewBox="0 0 28.196 28.306">
<g id="file_1_" data-name="file (1)" transform="translate(-1)">
<path id="Path_4645" data-name="Path 4645" d="M411,8.782v5.043h5.043Z" transform="translate(-387.333 -8.296)" fill="#28323a"/>
<path id="Path_4646" data-name="Path 4646" d="M136.2,7.187a.829.829,0,0,1-.829-.829V0H123.488A2.491,2.491,0,0,0,121,2.488v9.271c.273-.025.55-.038.829-.038a9.107,9.107,0,0,1,7.032,3.317h9a.829.829,0,0,1,0,1.659h-7.909a9.053,9.053,0,0,1,.96,3.317h6.949a.829.829,0,0,1,0,1.659h-6.949a9.125,9.125,0,0,1-3.845,6.634h13.005a2.491,2.491,0,0,0,2.488-2.488V7.187Zm1.659,4.533H125.7a.829.829,0,1,1,0-1.659h12.163a.829.829,0,0,1,0,1.659Z" transform="translate(-113.366)" fill="#28323a"/>
<path id="Path_4647" data-name="Path 4647" d="M8.464,242a7.464,7.464,0,1,0,7.464,7.464A7.472,7.472,0,0,0,8.464,242Zm2.211,8.293H8.464a.829.829,0,0,1-.829-.829v-3.317a.829.829,0,0,1,1.659,0v2.488h1.382a.829.829,0,1,1,0,1.659Z" transform="translate(0 -228.621)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="27.838" height="27.821" viewBox="0 0 27.838 27.821">
<g id="referral_4_" data-name="referral (4)" transform="translate(-3 -3)">
<path id="Path_4361" data-name="Path 4361" d="M10.356,21.547l2.427,3.034L10.43,26.935,9.358,21.577c.2-.017.4-.03.6-.03Zm4.946,0L13.819,23.4l-1.483-1.854Zm1.98,0h.4c.2,0,.4.013.6.03l-1.072,5.358-2.354-2.354Zm3.492-6.182h-.046a6.9,6.9,0,0,0,.046-.773V12.274a1.546,1.546,0,0,1,0,3.091ZM6.864,7.637A4.641,4.641,0,0,1,11.5,3h4.637a4.641,4.641,0,0,1,4.637,4.637v3.091H17.683a1.547,1.547,0,0,1-1.546-1.546V6.091H14.592v.773a3.868,3.868,0,0,1-3.864,3.864H6.864Zm0,7.728a1.546,1.546,0,1,1,0-3.091v2.318a6.9,6.9,0,0,0,.046.773Zm1.546-.773V12.274h2.318a5.4,5.4,0,0,0,4.105-1.9,3.1,3.1,0,0,0,2.85,1.9h1.546v2.318a5.41,5.41,0,0,1-10.819,0ZM24.638,30.821H3V28.5a6.966,6.966,0,0,1,4.842-6.624L9.2,28.654a.773.773,0,0,0,.534.588.789.789,0,0,0,.223.032.774.774,0,0,0,.546-.226l3.318-3.318,3.318,3.318a.773.773,0,0,0,1.3-.395L19.8,21.877A6.968,6.968,0,0,1,24.638,28.5Z" fill="#2e303a"/>
<path id="Path_4362" data-name="Path 4362" d="M16.135,48.835a.612.612,0,0,1,.612-.612h.971L14.91,45.414,12.1,48.223h.971a.612.612,0,0,1,.613.612,7.35,7.35,0,0,1-3.271,6.112A6.133,6.133,0,0,0,16.135,48.835Z" transform="translate(13.119 -42.414)" fill="#2e303a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.425" height="28.306" viewBox="0 0 21.425 28.306">
<g id="medical-report_1_" data-name="medical-report (1)" transform="translate(-5.834)">
<path id="Path_4650" data-name="Path 4650" d="M24.639,0H8.455A2.624,2.624,0,0,0,5.834,2.621V25.685a2.624,2.624,0,0,0,2.621,2.621H24.639a2.623,2.623,0,0,0,2.62-2.621V2.621A2.623,2.623,0,0,0,24.639,0ZM9.195,4.748,10.826,1.94a.59.59,0,0,1,1.02.592L10.73,4.455H22.474l-.892-1.977a.589.589,0,1,1,1.074-.485L23.924,4.8a.589.589,0,0,1-.537.833H9.7a.591.591,0,0,1-.51-.886ZM24.08,17.225H19.771a.59.59,0,0,1-.556-.392l-.407-1.15-.984,7.347a.59.59,0,0,1-.568.511h-.017a.588.588,0,0,1-.578-.478L14.678,12.8l-1.3,4.359a.589.589,0,0,1-.564.422h-3.8a.59.59,0,1,1,0-1.179h3.361l1.863-6.244a.59.59,0,0,1,1.144.057l1.753,9.083.827-6.185a.589.589,0,0,1,.523-.508.6.6,0,0,1,.617.389l1.085,3.057h3.893a.59.59,0,1,1,0,1.179Z" transform="translate(0)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 955 B

@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32.909" height="25.379" viewBox="0 0 32.909 25.379">
<g id="heart-beat_1_" data-name="heart-beat (1)" transform="translate(0 -58.573)">
<path id="Path_4341" data-name="Path 4341" d="M0,268.681v1.928H5.221A17.508,17.508,0,0,1,3.7,268.681Z" transform="translate(0 -196.604)" fill="#28323a"/>
<path id="Path_4342" data-name="Path 4342" d="M432.3,268.681a17.515,17.515,0,0,1-1.522,1.928H436v-1.928Z" transform="translate(-403.09 -196.604)" fill="#28323a"/>
<path id="Path_4343" data-name="Path 4343" d="M39.677,64.208l3.184,9.551,1.12-1.682h2.766L49.365,65.8l2.826,6.281h6.026A9.29,9.29,0,0,0,59.924,66.8a8.075,8.075,0,0,0-6.254-8.1c-3.246-.636-6.216,1.044-8.208,4.54-1.989-3.484-4.945-5.153-8.186-4.526A8.178,8.178,0,0,0,31,66.8a9.29,9.29,0,0,0,1.706,5.274h4.348Z" transform="translate(-29.007 0)" fill="#28323a"/>
<path id="Path_4344" data-name="Path 4344" d="M96.427,241.453l-1.4,3.36H92.008l-2.736,4.1-2.6-7.8-1.233,3.7H81.222a69.042,69.042,0,0,0,7.116,6.47c1.1.915,4.118,3.476,4.118,3.476s3.02-2.561,4.118-3.476a69.048,69.048,0,0,0,7.116-6.47h-5.75Z" transform="translate(-76.001 -170.808)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12.288" height="25" viewBox="0 0 12.288 25">
<g id="walking_1_" data-name="walking (1)" transform="translate(-17 -3)">
<path id="Path_4507" data-name="Path 4507" d="M28.966,5.966h.847a1.26,1.26,0,0,0,.729,1.144,2.541,2.541,0,1,0-2,.975,2.5,2.5,0,0,0,1.331-.377A2.129,2.129,0,0,1,28.966,5.966Z" transform="translate(-5.186)" fill="#28323a"/>
<path id="Path_4508" data-name="Path 4508" d="M22.353,40.722l-.811,3.508L19,48.043l2.119,1.695,3.39-4.661.507-1.685-2.585-2.585c-.028-.027-.051-.057-.078-.085Z" transform="translate(-1.153 -21.738)" fill="#28323a"/>
<path id="Path_4509" data-name="Path 4509" d="M19.707,29.337a5.951,5.951,0,0,1-.164-1.369V25.717L17,28.8,18.695,30.5Z" transform="translate(0 -13.091)" fill="#28323a"/>
<path id="Path_4510" data-name="Path 4510" d="M31.2,24.513l-3.894-2.127L25.5,18.309l.775-.343,1.695,3.814L30.932,23.4l1.695.924L33.9,22.2l-2.966-1.78V16.695A1.694,1.694,0,0,0,29.237,15H26.695A1.694,1.694,0,0,0,25,16.695v5.1a5.08,5.08,0,0,0,1.487,3.593l3.6,3.6,1.271,5.508H33.9l-1.271-6.78Z" transform="translate(-4.61 -6.915)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@ -1,7 +0,0 @@
<svg id="Group_7426" data-name="Group 7426" xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<path id="Path_4539" data-name="Path 4539" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32)" fill="#28323a"/>
<path id="Path_4540" data-name="Path 4540" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32 -165.003)" fill="#28323a"/>
<path id="Path_4541" data-name="Path 4541" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-353.676)" fill="#28323a"/>
<path id="Path_4542" data-name="Path 4542" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-353.676 -165.003)" fill="#28323a"/>
<path id="Path_4551" data-name="Path 4551" d="M13.343,0A13.343,13.343,0,1,0,26.686,13.343,13.343,13.343,0,0,0,13.343,0Zm4.924,8.9a1.911,1.911,0,1,1-1.911,1.911A1.912,1.912,0,0,1,18.267,8.9Zm-9.849,0a1.911,1.911,0,1,1-1.911,1.911A1.912,1.912,0,0,1,8.418,8.9Zm12.124,9.083a8.733,8.733,0,0,1-14.4,0A1.169,1.169,0,1,1,8.07,16.657a6.4,6.4,0,0,0,10.55,0,1.168,1.168,0,1,1,1.923,1.325Z" transform="translate(5.954 5.509)" fill="#28323a"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<g id="fingerprint-scan" transform="translate(0.342 0.655)">
<path id="Path_4535" data-name="Path 4535" d="M24,0H2.909A2.913,2.913,0,0,0,0,2.909V24a2.913,2.913,0,0,0,2.909,2.909H24A2.913,2.913,0,0,0,26.913,24V2.909A2.913,2.913,0,0,0,24,0ZM5,5.182c5.592-4.061,11.49-4.018,17,.072a.789.789,0,0,1-.47,1.422c-.894,0-6.986-6.478-15.607-.218A.788.788,0,0,1,5,5.182Zm7.349,20.277a.788.788,0,0,1-1.1-.2c-1.111-1.606-3.634-3.4-3.634-6.757a6.063,6.063,0,0,1,5.835-6.255A6.063,6.063,0,0,1,19.291,18.5v.841a.788.788,0,0,1-1.577,0V18.5a4.488,4.488,0,0,0-4.258-4.678A4.488,4.488,0,0,0,9.2,18.5C9.2,22.3,14.037,24.294,12.353,25.459Zm9.8-4.08a4.132,4.132,0,0,1-7.8-2.035c0-3.4-2.327-2.255-1.811-.191a.788.788,0,0,1-1.53.383c-1.074-4.295,4.917-6.037,4.917-.191A2.544,2.544,0,0,0,17.9,21.971c3.65.861,4.733-5.161,1.093-9.037-5.033-5.363-13.16-1.227-13.16,5.148A6.378,6.378,0,0,0,6.95,22.25a.788.788,0,0,1-1.284.916,8.033,8.033,0,0,1-1.408-5.084,9.351,9.351,0,0,1,9.2-9.2c6.8,0,11.128,7.628,8.7,12.5Zm.527-9.761a.788.788,0,0,1-1.075-.293C20.033,8.578,16.234,7.1,13.457,7.1a11.282,11.282,0,0,0-8.175,4.275A.788.788,0,0,1,3.97,10.5a12.781,12.781,0,0,1,9.487-4.977c5.841,0,11.056,5.05,9.222,6.1Z" transform="translate(5.793 4.943)" fill="#28323a"/>
<path id="Path_4539" data-name="Path 4539" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.342 -0.655)" fill="#28323a"/>
<path id="Path_4540" data-name="Path 4540" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.342 -165.658)" fill="#28323a"/>
<path id="Path_4541" data-name="Path 4541" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-354.018 -0.655)" fill="#28323a"/>
<path id="Path_4542" data-name="Path 4542" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-354.018 -165.658)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

@ -1,11 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<g id="sms-speech-bubble" transform="translate(-1 1.645)">
<g id="textsms">
<path id="Path_4529" data-name="Path 4529" d="M21.992,0H2.444A2.451,2.451,0,0,0,0,2.444V24.436l4.887-4.887h17.1A2.451,2.451,0,0,0,24.436,17.1V2.444A2.451,2.451,0,0,0,21.992,0ZM8.552,11H6.109V8.552H8.552Zm4.887,0H11V8.552H13.44Zm4.887,0H15.883V8.552h2.444Z" transform="translate(8.144 5.013)" fill="#28323a"/>
<path id="Path_4543" data-name="Path 4543" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-31 -1.645)" fill="#28323a"/>
<path id="Path_4544" data-name="Path 4544" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-31 -166.648)" fill="#28323a"/>
<path id="Path_4545" data-name="Path 4545" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-352.676 -1.645)" fill="#28323a"/>
<path id="Path_4546" data-name="Path 4546" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-352.676 -166.648)" fill="#28323a"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,12 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<g id="whatsapp_1_" data-name="whatsapp (1)" transform="translate(0.233 -4.309)">
<g id="Group_7424" data-name="Group 7424" transform="translate(4.808 8.729)">
<path id="Path_4537" data-name="Path 4537" d="M0,28.186l2.424-7.271a13.848,13.848,0,1,1,5.468,5.195Z" fill="#2cb742"/>
<path id="Path_4538" data-name="Path 4538" d="M29.341,23.6c-.64-1.209-3-2.591-3-2.591-.534-.3-1.177-.338-1.482.2a12.215,12.215,0,0,1-.961,1.051,1.791,1.791,0,0,1-2.547-.253l-1.935-1.935-1.935-1.935A1.791,1.791,0,0,1,17.23,15.6a12.216,12.216,0,0,1,1.051-.961c.542-.3.508-.948.2-1.482,0,0-1.382-2.358-2.591-3a1.325,1.325,0,0,0-1.557.234l-.854.854c-2.71,2.71-1.376,5.77,1.334,8.48L17.3,22.2l2.477,2.477c2.71,2.71,5.77,4.045,8.48,1.334l.854-.854A1.326,1.326,0,0,0,29.341,23.6Z" transform="translate(-6.169 -5.141)" fill="#fff"/>
</g>
<path id="Path_4547" data-name="Path 4547" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.233 4.309)" fill="#28323a"/>
<path id="Path_4548" data-name="Path 4548" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.233 -160.693)" fill="#28323a"/>
<path id="Path_4549" data-name="Path 4549" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-353.909 4.309)" fill="#28323a"/>
<path id="Path_4550" data-name="Path 4550" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-353.909 -160.693)" fill="#28323a"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save