From 03c49d13912d9c6d123b68a31e0b9a10c9f2cbca Mon Sep 17 00:00:00 2001 From: rahul bhat Date: Wed, 21 Sep 2022 13:01:50 +0530 Subject: [PATCH] Working Compose View in Android View XML --- app/build.gradle | 11 +- app/src/main/AndroidManifest.xml | 143 +++++++++++++++++- .../activities/AboutUsActivity.kt | 35 +++-- .../fragment/HlDocumentPickerBottomSheet.kt | 2 +- app/src/main/res/layout/activity_about_us.xml | 8 +- dependencies.gradle | 1 + navi-amc/src/main/AndroidManifest.xml | 6 + navi-analytics/src/main/AndroidManifest.xml | 3 +- navi-common/src/main/AndroidManifest.xml | 11 ++ navi-design/build.gradle | 26 +++- .../com/navi/design/common/CommonViewData.kt | 14 ++ .../navi/design/common/CommonViewProperty.kt | 41 +++++ .../navi/design/imageview/NaviImageData.kt | 20 +++ .../design/imageview/NaviImageUiProperty.kt | 15 ++ .../design/imageview/NaviImageViewProperty.kt | 45 ++++++ .../main/java/com/navi/design/utils/Ext.kt | 3 + navi-design/src/main/res/values/integers.xml | 2 + navi-insurance/src/main/AndroidManifest.xml | 60 ++------ .../common/widgets/NaviWidgetViewDataExt.kt | 2 +- 19 files changed, 371 insertions(+), 77 deletions(-) create mode 100644 navi-design/src/main/java/com/navi/design/common/CommonViewData.kt create mode 100644 navi-design/src/main/java/com/navi/design/common/CommonViewProperty.kt create mode 100644 navi-design/src/main/java/com/navi/design/imageview/NaviImageData.kt create mode 100644 navi-design/src/main/java/com/navi/design/imageview/NaviImageUiProperty.kt create mode 100644 navi-design/src/main/java/com/navi/design/imageview/NaviImageViewProperty.kt diff --git a/app/build.gradle b/app/build.gradle index 06145bc3b2..8f4a2c2a70 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,7 +27,7 @@ def VERSION_NAME = "2.8.7" android { - compileSdkVersion 30 + compileSdk 32 buildToolsVersion "30.0.3" compileOptions { sourceCompatibility = 1.8 @@ -46,7 +46,7 @@ android { defaultConfig { applicationId "com.naviapp" minSdkVersion 21 - targetSdkVersion 30 + targetSdk 30 versionCode 265 versionName VERSION_NAME multiDexEnabled true @@ -100,6 +100,7 @@ android { } buildFeatures { dataBinding true + compose true } bundle { language { @@ -115,6 +116,9 @@ android { newrelic { excludeVariantInstrumentation("devDebug", "qaDebug") } + composeOptions { + kotlinCompilerExtensionVersion compose_version + } flavorDimensions "app" productFlavors { qa { @@ -273,8 +277,7 @@ dependencies { implementation 'com.google.android.material:material:1.4.0' implementation 'com.android.support:multidex:1.0.3' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1' - implementation 'com.android.support:cardview-v7:30.0.2' - implementation 'com.android.support:design:30.0.2' + implementation 'androidx.cardview:cardview:1.0.0' implementation 'android.arch.work:work-runtime-ktx:1.0.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2' implementation glideLibs.implementation diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a69d28d4f3..059f7db75e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,6 +60,7 @@ android:screenOrientation="portrait" /> @@ -91,11 +92,13 @@ + android:configChanges="keyboard|keyboardHidden|orientation|screenSize" + android:exported="false" + tools:node="merge" /> + android:configChanges="keyboard|keyboardHidden|orientation|screenSize" + android:exported="false" + tools:node="merge" /> @@ -303,7 +338,9 @@ - + @@ -322,43 +360,51 @@ + android:windowSoftInputMode="adjustNothing" /> + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/com/naviapp/dashboard/menu/customersupport/activities/AboutUsActivity.kt b/app/src/main/java/com/naviapp/dashboard/menu/customersupport/activities/AboutUsActivity.kt index b4665c1572..6fbd192a57 100644 --- a/app/src/main/java/com/naviapp/dashboard/menu/customersupport/activities/AboutUsActivity.kt +++ b/app/src/main/java/com/naviapp/dashboard/menu/customersupport/activities/AboutUsActivity.kt @@ -8,15 +8,18 @@ package com.naviapp.dashboard.menu.customersupport.activities import android.os.Bundle -import android.view.View import androidx.databinding.DataBindingUtil +import com.navi.common.model.ModuleNameV2 +import com.navi.common.ui.activity.BaseActivity +import com.navi.design.common.Padding +import com.navi.design.imageview.NaviImageData +import com.navi.design.imageview.NaviImageView +import com.navi.design.imageview.NaviImageViewProperty import com.naviapp.R import com.naviapp.analytics.utils.NaviAnalytics -import com.navi.common.ui.activity.BaseActivity import com.naviapp.databinding.ActivityAboutUsBinding -import com.navi.common.model.ModuleNameV2 -class AboutUsActivity : BaseActivity(), View.OnClickListener { +class AboutUsActivity : BaseActivity() { private lateinit var binding: ActivityAboutUsBinding private val naviAnalyticsEventTracker = NaviAnalytics.naviAnalytics.AboutUs() @@ -24,7 +27,20 @@ class AboutUsActivity : BaseActivity(), View.OnClickListener { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.activity_about_us) super.setContentView(binding.root) - binding.backIv.setOnClickListener(this) + binding.backIv.setContent { + val naviImageViewProperty = NaviImageViewProperty() + naviImageViewProperty.padding = + Padding(start = 30, end = 30, top = 30) + val naviImageData = NaviImageData(iconResource = R.drawable.ic_back_arrow_svg) + naviImageData.onCommonClick = { + naviAnalyticsEventTracker.onBackButtonTap() + finish() + } + NaviImageView( + naviImageData = naviImageData, + naviImageViewProperty = naviImageViewProperty + ) + } } override val screenName: String @@ -36,13 +52,4 @@ class AboutUsActivity : BaseActivity(), View.OnClickListener { companion object { const val TAG = "ABOUT_US_ACTIVITY" } - - override fun onClick(view: View?) { - when (view?.id) { - R.id.back_iv -> { - naviAnalyticsEventTracker.onBackButtonTap() - finish() - } - } - } } \ No newline at end of file diff --git a/app/src/main/java/com/naviapp/homeloandigital/common/ui/fragment/HlDocumentPickerBottomSheet.kt b/app/src/main/java/com/naviapp/homeloandigital/common/ui/fragment/HlDocumentPickerBottomSheet.kt index e41f3ee175..fb1763d443 100644 --- a/app/src/main/java/com/naviapp/homeloandigital/common/ui/fragment/HlDocumentPickerBottomSheet.kt +++ b/app/src/main/java/com/naviapp/homeloandigital/common/ui/fragment/HlDocumentPickerBottomSheet.kt @@ -116,7 +116,7 @@ class HlDocumentPickerBottomSheet : BaseBottomSheet() { ).show() } else { documentPickerVM.setImagePickerData( - it, + it.toMutableList(), arguments?.getString(DocumentPickerBottomSheet.ARG_ID, DOCUMENT_KEY_SOMETHING) ) safelyDismissDialogAfterDelay() diff --git a/app/src/main/res/layout/activity_about_us.xml b/app/src/main/res/layout/activity_about_us.xml index 824e8025b6..eea8f81fef 100644 --- a/app/src/main/res/layout/activity_about_us.xml +++ b/app/src/main/res/layout/activity_about_us.xml @@ -15,13 +15,10 @@ android:layout_height="match_parent" android:orientation="vertical"> - @@ -32,7 +29,8 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/layout_dp_30" android:text="@string/about_us" - app:layout_constraintStart_toStartOf="@id/back_iv" + android:layout_marginStart="@dimen/dp_30" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/back_iv" /> diff --git a/navi-analytics/src/main/AndroidManifest.xml b/navi-analytics/src/main/AndroidManifest.xml index 942335b00d..e8cbab6634 100644 --- a/navi-analytics/src/main/AndroidManifest.xml +++ b/navi-analytics/src/main/AndroidManifest.xml @@ -12,7 +12,6 @@ - @@ -26,6 +25,7 @@ + + + + Unit) { }) } } + +typealias onCommonClick = (CommonViewData) -> Unit \ No newline at end of file diff --git a/navi-design/src/main/res/values/integers.xml b/navi-design/src/main/res/values/integers.xml index f7ea00af94..0b918b9a04 100644 --- a/navi-design/src/main/res/values/integers.xml +++ b/navi-design/src/main/res/values/integers.xml @@ -17,6 +17,8 @@ 5 6 1 + 30 + 40 100 200 300 diff --git a/navi-insurance/src/main/AndroidManifest.xml b/navi-insurance/src/main/AndroidManifest.xml index 10e057ad4e..1f2d89b573 100644 --- a/navi-insurance/src/main/AndroidManifest.xml +++ b/navi-insurance/src/main/AndroidManifest.xml @@ -127,85 +127,95 @@ android:name=".health.activity.SupportActivity" android:screenOrientation="portrait" android:theme="@style/GiAppTheme" + android:exported="false" android:windowSoftInputMode="adjustResize" /> - - - - - - - - - - - - - diff --git a/navi-insurance/src/main/java/com/navi/insurance/common/widgets/NaviWidgetViewDataExt.kt b/navi-insurance/src/main/java/com/navi/insurance/common/widgets/NaviWidgetViewDataExt.kt index fcbd403d35..ff52078bcf 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/common/widgets/NaviWidgetViewDataExt.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/common/widgets/NaviWidgetViewDataExt.kt @@ -303,7 +303,7 @@ fun EditText.textChanges(): Flow { return callbackFlow { val textWatcher = object : TextWatcher { override fun afterTextChanged(editable: Editable?) { - editable?.toString()?.let { offer(it) } + editable?.toString()?.let { trySend(it) } } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}