Working Compose View in Android View XML

This commit is contained in:
rahul bhat
2022-09-21 13:01:50 +05:30
parent 5af891068f
commit 03c49d1391
19 changed files with 371 additions and 77 deletions

View File

@@ -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

View File

@@ -60,6 +60,7 @@
android:screenOrientation="portrait" />
<activity
android:name=".registration.SplashActivity"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@style/SplashTheme">
@@ -91,11 +92,13 @@
</activity>
<activity
android:name="com.naviapp.personalloan.getloan.activities.GetLoanActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.naviapp.personalloan.useridentification.activities.UserIdentificationActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
@@ -113,135 +116,167 @@
</activity>
<activity
android:name=".registration.RegistrationActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/RegistrationTheme" />
<activity
android:name=".rewards.ui.RewardInfoActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".rewards.ui.RewardSummaryActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".permission.activities.PermissionActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.getloan.kyc.activities.SelfieCaptureActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.naviapp.personalloan.getloan.kyc.activities.KycDocumentCaptureActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.naviapp.personalloan.useridentification.activities.LoanEligibilityLoaderActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.getloan.activities.LoanDisbursementLoaderActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.getloan.activities.LoanDisbursementProductPlacementActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.getloan.activities.BankAccountVerificationLoaderActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".home.activity.NewDashboardActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".usernotification.activities.UserNotificationActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".errors.activities.ErrorActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".appupdate.activities.UpdateAppActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".dashboard.menu.customersupport.activities.AboutUsActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".dashboard.menu.customersupport.activities.CustomerSupportActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".payment.activities.NaviPaymentActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".dashboard.loanapplicationdetails.activities.LoanApplicationDetailActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<!-- For Digio, Adhaar verification -->
<activity
android:name="in.digio.sdk.kyc.DigioMainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" /> <!-- For Digio, Adhaar verification END -->
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:exported="false"
tools:node="merge" /> <!-- For Digio, Adhaar verification END -->
<!-- For Digio, e-nach -->
<activity
android:name="com.digio.in.esign2sdk.DigioEsignActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" /> <!-- For Digio, e-nach END -->
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:exported="false"
tools:node="merge" /> <!-- For Digio, e-nach END -->
<activity
android:name=".dashboard.rating.RatingActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".dashboard.menu.notificationsettings.NotificationSettingsActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".home.activity.StoryActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.getloan.bankdetailsautodebit.view.activities.EnachTutorialActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.getloan.activities.FaqsActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.getloan.summary.activities.LoanAgreementActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".dashboard.menu.loans.activity.AllLoanDetailsActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".dashboard.newloan.NewLoanConsentActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.insurance.activity.InsuranceDetailActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name="com.naviapp.personalloan.insurance.activity.InsuranceAddOnActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
@@ -303,7 +338,9 @@
</intent-filter>
</receiver>
<receiver android:name=".receiver.LocationReceiver" />
<receiver
android:name=".receiver.LocationReceiver"
android:exported="false" />
<provider
android:name="com.facebook.FacebookContentProvider"
@@ -312,6 +349,7 @@
<activity
android:name=".homeloandigital.eligibility.activity.HomeLoanEligibilityV2Activity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustPan" />
@@ -322,43 +360,51 @@
<activity
android:name=".personalloan.intermediate.activity.IntermediateActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".common.activity.NaviWebViewActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".email.activity.EmailActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".homeloandigital.ipa.activity.HomeLoanIPAActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".homeloandigital.tracker.ui.activity.HomeLoanTrackerActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".homeloandigital.loandetails.activity.HomeLoanDetailsV2Activity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".homeloandigital.posteligibility.activity.HomeLoanPostEligibilityV2Activity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".homeloandigital.ipagenerate.ui.HomeLoanIpaLoaderActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
@@ -366,46 +412,135 @@
<activity
android:name=".homeloandigital.slgenerate.ui.HomeLoanSanctionLoaderActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".homeloandigital.pennydrop.ui.HomeLoanPennyDropLoaderActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".home.dashboard.ui.ClosedLoansActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".part_prepayment.PartPrePaymentActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".dashboard.loanapplicationdetails.activities.TrancheDisbursalActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".status_tracker.StatusTrackerActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle"
android:windowSoftInputMode="adjustNothing"/>
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".crosssell.ui.CrossSellActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<service
android:name=".services.KillAppInBackgroundService"
android:exported="false"
android:stopWithTask="false" />
<activity
android:name="co.hyperverge.hypersnapsdk.activities.HVRetakeActivity"
android:exported="false"
tools:node="merge" />
<activity
android:name="co.hyperverge.hypersnapsdk.activities.HVDocInstructionActivity"
android:exported="false"
tools:node="merge" />
<activity
android:name="co.hyperverge.hypersnapsdk.activities.HVDocsActivity"
android:exported="false"
tools:node="merge" />
<activity
android:name="co.hyperverge.hypersnapsdk.activities.HVFaceInstructionActivity"
android:exported="false"
tools:node="merge" />
<activity
android:name="co.hyperverge.hypersnapsdk.activities.HVFaceActivity"
android:exported="false"
tools:node="merge" />
<activity
android:name="co.hyperverge.hypersnapsdk.activities.HVDocReviewActivity"
android:exported="false"
tools:node="merge" />
<activity
android:name="com.digitap.dtokyc.ui.DTOkycActivity"
android:exported="false"
tools:node="merge" />
<provider
android:name="com.rudderstack.android.sdk.core.EventContentProvider"
android:authorities="${applicationId}.EventContentProvider"
android:exported="false"
tools:node="merge" />
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:exported="false"
android:theme="@android:style/Theme.Translucent"
tools:node="merge" />
<activity
android:name="com.google.android.gms.ads.purchase.InAppPurchaseActivity"
android:exported="false"
android:theme="@style/Theme.IAPTheme"
tools:node="merge" />
<activity
android:name="com.chuckerteam.chucker.internal.ui.MainActivity"
android:exported="false"
android:label="@string/chucker_name"
android:launchMode="singleTask"
android:taskAffinity="com.chuckerteam.chucker.task"
android:theme="@style/Chucker.Theme"
tools:node="merge" />
<activity
android:name="com.chuckerteam.chucker.internal.ui.transaction.TransactionActivity"
android:exported="false"
android:parentActivityName="com.chuckerteam.chucker.internal.ui.MainActivity"
android:theme="@style/Chucker.Theme"
tools:node="merge" />
<activity
android:name="com.chuckerteam.chucker.internal.ui.throwable.ThrowableActivity"
android:exported="false"
android:parentActivityName="com.chuckerteam.chucker.internal.ui.MainActivity"
android:theme="@style/Chucker.Theme"
tools:node="merge" />
<activity
android:name="in.juspay.juspayppsafemode.JuspaySafeModeActivity"
android:exported="false"
tools:node="merge" />
<activity
android:name="com.figg.sdk.android.FinoramicSignInClient"
android:exported="false"
tools:node="merge" />
<activity
android:name="com.figg.sdk.android.RequestSender"
android:exported="false"
tools:node="merge" />
</application>
</manifest>

View File

@@ -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()
}
}
}
}

View File

@@ -116,7 +116,7 @@ class HlDocumentPickerBottomSheet : BaseBottomSheet() {
).show()
} else {
documentPickerVM.setImagePickerData(
it,
it.toMutableList(),
arguments?.getString(DocumentPickerBottomSheet.ARG_ID, DOCUMENT_KEY_SOMETHING)
)
safelyDismissDialogAfterDelay()

View File

@@ -15,13 +15,10 @@
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
<androidx.compose.ui.platform.ComposeView
android:id="@+id/back_iv"
style="@style/ContainerStyle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_40"
android:src="@drawable/ic_back_arrow_svg"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -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" />
<ScrollView

View File

@@ -1,6 +1,7 @@
ext {
hiltVersion = "2.38.1"
compose_version = '1.2.0-beta03'
hiltLibs = [
implementation : "com.google.dagger:hilt-android:$hiltVersion",

View File

@@ -20,30 +20,36 @@
android:supportsRtl="true">
<activity
android:name=".ui.help_support.HelpSupportActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/HomeBaseThemeStyle" />
<activity
android:name=".ui.redeem.RedemptionOrderActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".ui.home.HomeActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/HomeBaseThemeStyle"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.investment.MyInvestmentActivity"
android:exported="false"
android:parentActivityName=".ui.home.HomeActivity"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".ui.mutual_fund.MFListingActivity"
android:exported="false"
android:parentActivityName=".ui.home.HomeActivity"
android:screenOrientation="portrait"
android:theme="@style/BaseThemeStyle" />
<activity
android:name=".ui.mutual_fund.MutualFundActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/HomeBaseThemeStyle" />
</application>

View File

@@ -12,7 +12,6 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
@@ -26,6 +25,7 @@
<service
android:name="com.xiaomi.push.service.XMPushService"
android:enabled="true"
android:exported="false"
android:process=":pushservice" />
<service
@@ -42,6 +42,7 @@
<service
android:name="com.xiaomi.mipush.sdk.MessageHandleService"
android:exported="false"
android:enabled="true" />
<receiver

View File

@@ -22,8 +22,19 @@
<activity
android:name=".video.NaviYoutubeActivity"
android:exported="false"
tools:node="merge"
android:screenOrientation="portrait" />
<activity
android:name="com.razorpay.CheckoutActivity"
android:exported="false"
tools:node="merge" />
<receiver
android:name="com.razorpay.RzpTokenReceiver"
android:exported="false"
tools:node="merge" />
<provider
android:name=".utils.NaviFileProvider"
android:authorities="${applicationId}.fileprovider"

View File

@@ -6,11 +6,11 @@ plugins {
}
android {
compileSdkVersion 30
compileSdk 31
defaultConfig {
minSdkVersion 21
targetSdkVersion 30
targetSdk 31
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
@@ -32,6 +32,10 @@ android {
}
buildFeatures {
dataBinding true
compose true
}
composeOptions {
kotlinCompilerExtensionVersion compose_version
}
}
@@ -41,6 +45,24 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
testImplementation 'junit:junit:4.+'
api "androidx.compose.ui:ui:$compose_version"
api "androidx.compose.material:material:$compose_version"
api "androidx.compose.ui:ui-tooling-preview:$compose_version"
api "androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha02"
debugApi "androidx.compose.ui:ui-tooling:1.1.1"
api "androidx.compose.ui:ui-tooling-preview:1.1.1"
androidTestApi "androidx.compose.ui:ui-test-junit4:$compose_version"
debugApi "androidx.compose.ui:ui-tooling:$compose_version"
debugApi "androidx.compose.ui:ui-test-manifest:$compose_version"
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.0-rc02'
api 'androidx.activity:activity-compose:1.4.0'
api 'androidx.core:core-ktx:1.8.0'
api 'com.google.code.gson:gson:2.8.9'
api 'androidx.hilt:hilt-navigation-compose:1.0.0'
implementation 'androidx.appcompat:appcompat:1.6.0-alpha04'
implementation 'com.google.android.material:material:1.6.1'
api 'androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1'
implementation "com.google.accompanist:accompanist-appcompat-theme:0.25.1"
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

View File

@@ -0,0 +1,14 @@
/*
*
* * Copyright © 2022 by Navi Technologies Private Limited
* * All rights reserved. Strictly confidential
*
*/
package com.navi.design.common
import com.navi.design.utils.onCommonClick
open class CommonViewData {
var onCommonClick: onCommonClick? = null
}

View File

@@ -0,0 +1,41 @@
/*
*
* * Copyright © 2019 by Navi Technologies Private Limited
* * All rights reserved. Strictly confidential
*
*/
package com.navi.design.common
/**
* Copyright © 2021 by Navi Technologies Private Limited
* All rights reserved. Strictly confidential
*/
open class CommonViewProperty(
var layoutId: String? = null,
var width: String? = null,
var height: String? = null,
var padding: Padding? = null,
var clipData: Shape? = null
)
data class Shape(
val shapeType: String? = null,
val size: Int? = null
)
/**
* Value in DPs
*/
data class Padding(
var start: Int? = null,
var end: Int? = null,
var top: Int? = null,
var bottom: Int? = null
)
enum class ComposeSize {
WRAP_CONTENT,
MATCH_PARENT,
FILL_TO_CONSTRAINTS
}

View File

@@ -0,0 +1,20 @@
/*
*
* * Copyright © 2019 by Navi Technologies Private Limited
* * All rights reserved. Strictly confidential
*
*/
package com.navi.design.imageview
import com.navi.design.common.CommonViewData
/**
* Copyright © 2021 by Navi Technologies Private Limited
* All rights reserved. Strictly confidential
*/
data class NaviImageData(
val iconResource: Int? = null,
val url: String? = null,
val contentDescription: String? = null
) : CommonViewData()

View File

@@ -0,0 +1,15 @@
/*
*
* * Copyright © 2022 by Navi Technologies Private Limited
* * All rights reserved. Strictly confidential
*
*/
package com.navi.design.imageview
import androidx.compose.foundation.Indication
import com.navi.design.common.CommonViewProperty
class NaviImageViewProperty(
val indicator: Indication? = null,
) : CommonViewProperty()

View File

@@ -0,0 +1,45 @@
/*
*
* * Copyright © 2022 by Navi Technologies Private Limited
* * All rights reserved. Strictly confidential
*
*/
package com.navi.design.imageview
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.layoutId
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
@Composable
fun NaviImageView(naviImageData: NaviImageData, naviImageViewProperty: NaviImageViewProperty) {
val interactionSource = remember { MutableInteractionSource() }
naviImageData.iconResource?.let {
Image(
painter = painterResource(id = naviImageData.iconResource),
contentDescription = naviImageData.contentDescription,
modifier = Modifier
.padding(
start = naviImageViewProperty.padding?.start?.dp ?: 0.dp,
end = naviImageViewProperty.padding?.end?.dp ?: 0.dp,
top = naviImageViewProperty.padding?.top?.dp ?: 0.dp,
bottom = naviImageViewProperty.padding?.bottom?.dp ?: 0.dp
)
.layoutId(naviImageViewProperty.layoutId.orEmpty())
.clickable(
interactionSource = interactionSource,
indication = naviImageViewProperty.indicator
) { naviImageData.onCommonClick?.invoke(naviImageData) }
)
} ?: run {
// TODO Add load image using Glide
}
}

View File

@@ -23,6 +23,7 @@ import android.widget.TextView
import androidx.core.content.res.ResourcesCompat
import com.navi.base.utils.isNotNull
import com.navi.base.utils.isNotNullAndNotEmpty
import com.navi.design.common.CommonViewData
import com.navi.design.textview.model.SpanInterface
import com.navi.design.utils.Constants.INPUT_TYPE_NONE
import com.navi.design.utils.Constants.INPUT_TYPE_NUMBER
@@ -148,3 +149,5 @@ inline fun View.ifMeasured(crossinline block: () -> Unit) {
})
}
}
typealias onCommonClick = (CommonViewData) -> Unit

View File

@@ -17,6 +17,8 @@
<integer name="integer_5">5</integer>
<integer name="integer_6">6</integer>
<integer name="integer_1">1</integer>
<integer name="integer_30">30</integer>
<integer name="integer_40">40</integer>
<integer name="integer_100">100</integer>
<integer name="integer_200">200</integer>
<integer name="integer_300">300</integer>

View File

@@ -127,85 +127,95 @@
android:name=".health.activity.SupportActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.GiAboutUsActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.IntroActivityV3"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".registration.RegisterActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.DashboardActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.BuyInsuranceActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.ChatActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".quoteredesign.QuoteActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.PaymentActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.HospitalsActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".common.activity.WebViewActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health.activity.FaqActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".health_risk_score.activity.HealthRiskScoreActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".common.activity.UpdateAppActivity"
android:screenOrientation="portrait"
android:theme="@style/GiAppTheme"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<!-- <activity
android:name="com.moe.pushlibrary.activities.MoEActivity"
android:label="Notification"
android:parentActivityName=".registration.SplashActivity"></activity> -->
<activity
android:name=".notifications.DeepLinkActivity"
android:screenOrientation="portrait"
android:exported="true"
android:theme="@style/GiAppTheme">
<intent-filter android:autoVerify="true">
<data
@@ -234,46 +244,6 @@
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<!-- <meta-data
android:name="com.truecaller.android.sdk.PartnerKey"
android:value="@string/truecaller_key"/>-->
<!--<service
android:name=".services.NaviFireBaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>-->
<!--<service android:name="com.moengage.firebase.MoEFireBaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>-->
<!-- <receiver android:name=".receiver.AppUpgradeReceiver">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>-->
<!--<receiver
android:name="com.appsflyer.SingleInstallBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>-->
<!--<receiver
android:name=".receiver.SMSBroadcastReceiver"
android:exported="true"
android:permission="com.google.android.gms.auth.api.phone.permission.SEND">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED" />
</intent-filter>
</receiver>-->
</application>

View File

@@ -303,7 +303,7 @@ fun EditText.textChanges(): Flow<String> {
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) {}