wip
This commit is contained in:
		
							parent
							
								
									9925cf9996
								
							
						
					
					
						commit
						530ce9f906
					
				@ -31,6 +31,7 @@ buildscript {
 | 
				
			|||||||
        classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
 | 
					        classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
 | 
				
			||||||
        classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
 | 
					        classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
 | 
				
			||||||
        classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
 | 
					        classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
 | 
				
			||||||
 | 
					        classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
 | 
				
			||||||
        // NOTE: Do not place your application dependencies here; they belong
 | 
					        // NOTE: Do not place your application dependencies here; they belong
 | 
				
			||||||
        // in the individual module build.gradle files
 | 
					        // in the individual module build.gradle files
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
include ':vector'
 | 
					include ':vector'
 | 
				
			||||||
 | 
					include ':vector-app'
 | 
				
			||||||
include ':vector-config'
 | 
					include ':vector-config'
 | 
				
			||||||
include ':matrix-sdk-android'
 | 
					include ':matrix-sdk-android'
 | 
				
			||||||
include ':library:core-utils'
 | 
					include ':library:core-utils'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										554
									
								
								vector-app/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										554
									
								
								vector-app/build.gradle
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,554 @@
 | 
				
			|||||||
 | 
					import com.android.build.OutputFile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'com.android.application'
 | 
				
			||||||
 | 
					apply plugin: 'com.google.android.gms.oss-licenses-plugin'
 | 
				
			||||||
 | 
					apply plugin: 'kotlin-android'
 | 
				
			||||||
 | 
					apply plugin: 'kotlin-parcelize'
 | 
				
			||||||
 | 
					apply plugin: 'kotlin-kapt'
 | 
				
			||||||
 | 
					apply plugin: 'dagger.hilt.android.plugin'
 | 
				
			||||||
 | 
					apply plugin: 'kotlinx-knit'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (project.hasProperty("coverage")) {
 | 
				
			||||||
 | 
					    apply plugin: 'jacoco'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					kapt {
 | 
				
			||||||
 | 
					    correctErrorTypes = true
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					knit {
 | 
				
			||||||
 | 
					    files = fileTree(project.rootDir) {
 | 
				
			||||||
 | 
					        include '**/*.md'
 | 
				
			||||||
 | 
					        include '**/*.kt'
 | 
				
			||||||
 | 
					        include '**/*.kts'
 | 
				
			||||||
 | 
					        exclude '**/build/**'
 | 
				
			||||||
 | 
					        exclude '**/.gradle/**'
 | 
				
			||||||
 | 
					        exclude '**/towncrier/template.md'
 | 
				
			||||||
 | 
					        exclude '**/CHANGES.md'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Note: 2 digits max for each value
 | 
				
			||||||
 | 
					ext.versionMajor = 1
 | 
				
			||||||
 | 
					ext.versionMinor = 4
 | 
				
			||||||
 | 
					// Note: even values are reserved for regular release, odd values for hotfix release.
 | 
				
			||||||
 | 
					// When creating a hotfix, you should decrease the value, since the current value
 | 
				
			||||||
 | 
					// is the value for the next regular release.
 | 
				
			||||||
 | 
					ext.versionPatch = 26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static def getGitTimestamp() {
 | 
				
			||||||
 | 
					    def cmd = 'git show -s --format=%ct'
 | 
				
			||||||
 | 
					    return cmd.execute().text.trim() as Long
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static def generateVersionCodeFromTimestamp() {
 | 
				
			||||||
 | 
					    // It's unix timestamp, minus timestamp of October 3rd 2018 (first commit date) divided by 100: It's incremented by one every 100 seconds.
 | 
				
			||||||
 | 
					    // plus 20_000_000 for compatibility reason with the previous way the Version Code was computed
 | 
				
			||||||
 | 
					    // Note that the result will be multiplied by 10 when adding the digit for the arch
 | 
				
			||||||
 | 
					    return ((getGitTimestamp() - 1_538_524_800) / 100).toInteger() + 20_000_000
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def generateVersionCodeFromVersionName() {
 | 
				
			||||||
 | 
					    // plus 4_000_000 for compatibility reason with the previous way the Version Code was computed
 | 
				
			||||||
 | 
					    // Note that the result will be multiplied by 10 when adding the digit for the arch
 | 
				
			||||||
 | 
					    return (versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch) + 4_000_000
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def getVersionCode() {
 | 
				
			||||||
 | 
					    if (gitBranchName() == "develop") {
 | 
				
			||||||
 | 
					        return generateVersionCodeFromTimestamp()
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        return generateVersionCodeFromVersionName()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static def gitRevision() {
 | 
				
			||||||
 | 
					    def cmd = "git rev-parse --short=8 HEAD"
 | 
				
			||||||
 | 
					    return cmd.execute().text.trim()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static def gitRevisionDate() {
 | 
				
			||||||
 | 
					    def cmd = "git show -s --format=%ci HEAD^{commit}"
 | 
				
			||||||
 | 
					    return cmd.execute().text.trim()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static def gitBranchName() {
 | 
				
			||||||
 | 
					    def fromEnv = System.env.BUILDKITE_BRANCH as String ?: ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!fromEnv.isEmpty()) {
 | 
				
			||||||
 | 
					        return fromEnv
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        // Note: this command return "HEAD" on Buildkite, so use the system env 'BUILDKITE_BRANCH' content first
 | 
				
			||||||
 | 
					        def cmd = "git rev-parse --abbrev-ref HEAD"
 | 
				
			||||||
 | 
					        return cmd.execute().text.trim()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// For Google Play build, build on any other branch than main will have a "-dev" suffix
 | 
				
			||||||
 | 
					static def getGplayVersionSuffix() {
 | 
				
			||||||
 | 
					    if (gitBranchName() == "main") {
 | 
				
			||||||
 | 
					        return ""
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        return "-dev"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static def gitTag() {
 | 
				
			||||||
 | 
					    def cmd = "git describe --exact-match --tags"
 | 
				
			||||||
 | 
					    return cmd.execute().text.trim()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// For F-Droid build, build on a not tagged commit will have a "-dev" suffix
 | 
				
			||||||
 | 
					static def getFdroidVersionSuffix() {
 | 
				
			||||||
 | 
					    if (gitTag() == "") {
 | 
				
			||||||
 | 
					        return "-dev"
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        return ""
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					project.android.buildTypes.all { buildType ->
 | 
				
			||||||
 | 
					    buildType.javaCompileOptions.annotationProcessorOptions.arguments =
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					                    validateEpoxyModelUsage: String.valueOf(buildType.name == 'debug')
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// map for the version codes last digit
 | 
				
			||||||
 | 
					// x86 must have greater values than arm
 | 
				
			||||||
 | 
					// 64 bits have greater value than 32 bits
 | 
				
			||||||
 | 
					ext.abiVersionCodes = ["armeabi-v7a": 1, "arm64-v8a": 2, "x86": 3, "x86_64": 4].withDefault { 0 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def buildNumber = System.env.BUILDKITE_BUILD_NUMBER as Integer ?: 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					android {
 | 
				
			||||||
 | 
					    // Due to a bug introduced in Android gradle plugin 3.6.0, we have to specify the ndk version to use
 | 
				
			||||||
 | 
					    // Ref: https://issuetracker.google.com/issues/144111441
 | 
				
			||||||
 | 
					    ndkVersion "21.3.6528147"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    compileSdk versions.compileSdk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    defaultConfig {
 | 
				
			||||||
 | 
					        applicationId "im.vector.app"
 | 
				
			||||||
 | 
					        // Set to API 21: see #405
 | 
				
			||||||
 | 
					        minSdk versions.minSdk
 | 
				
			||||||
 | 
					        targetSdk versions.targetSdk
 | 
				
			||||||
 | 
					        multiDexEnabled true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        renderscriptTargetApi 24
 | 
				
			||||||
 | 
					        renderscriptSupportModeEnabled true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // `develop` branch will have version code from timestamp, to ensure each build from CI has a incremented versionCode.
 | 
				
			||||||
 | 
					        // Other branches (main, features, etc.) will have version code based on application version.
 | 
				
			||||||
 | 
					        versionCode project.getVersionCode()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Required for sonar analysis
 | 
				
			||||||
 | 
					        versionName "${versionMajor}.${versionMinor}.${versionPatch}-sonar"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Generate a random app task affinity
 | 
				
			||||||
 | 
					        manifestPlaceholders = [appTaskAffinitySuffix: "H_${gitRevision()}"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        buildConfigField "String", "GIT_REVISION", "\"${gitRevision()}\""
 | 
				
			||||||
 | 
					        buildConfigField "String", "GIT_REVISION_DATE", "\"${gitRevisionDate()}\""
 | 
				
			||||||
 | 
					        buildConfigField "String", "GIT_BRANCH_NAME", "\"${gitBranchName()}\""
 | 
				
			||||||
 | 
					        buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        buildConfigField "im.vector.app.features.VectorFeatures.OnboardingVariant", "ONBOARDING_VARIANT", "im.vector.app.features.VectorFeatures.OnboardingVariant.FTUE_AUTH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        buildConfigField "im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy", "outboundSessionKeySharingStrategy", "im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy.WhenTyping"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        buildConfigField "Long", "VOICE_MESSAGE_DURATION_LIMIT_MS", "120_000L"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //  If set, MSC3086 asserted identity messages sent on VoIP calls will cause the call to appear in the room corresponding to the asserted identity.
 | 
				
			||||||
 | 
					        //  This *must* only be set in trusted environments.
 | 
				
			||||||
 | 
					        buildConfigField "Boolean", "handleCallAssertedIdentityEvents", "false"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        buildConfigField "Boolean", "enableLocationSharing", "true"
 | 
				
			||||||
 | 
					        buildConfigField "String", "mapTilerKey", "\"fU3vlMsMn4Jb6dnEIFsx\""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Keep abiFilter for the universalApk
 | 
				
			||||||
 | 
					        ndk {
 | 
				
			||||||
 | 
					            abiFilters "armeabi-v7a", "x86", 'arm64-v8a', 'x86_64'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Ref: https://developer.android.com/studio/build/configure-apk-splits.html
 | 
				
			||||||
 | 
					        splits {
 | 
				
			||||||
 | 
					            // Configures multiple APKs based on ABI.
 | 
				
			||||||
 | 
					            abi {
 | 
				
			||||||
 | 
					                // Enables building multiple APKs per ABI.
 | 
				
			||||||
 | 
					                enable true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // By default all ABIs are included, so use reset() and include to specify that we only
 | 
				
			||||||
 | 
					                // want APKs for armeabi-v7a, x86, arm64-v8a and x86_64.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Resets the list of ABIs that Gradle should create APKs for to none.
 | 
				
			||||||
 | 
					                reset()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Specifies a list of ABIs that Gradle should create APKs for.
 | 
				
			||||||
 | 
					                include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Generate a universal APK that includes all ABIs, so user who install from CI tool can use this one by default.
 | 
				
			||||||
 | 
					                universalApk true
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        applicationVariants.all { variant ->
 | 
				
			||||||
 | 
					            // assign different version code for each output
 | 
				
			||||||
 | 
					            def baseVariantVersion = variant.versionCode * 10
 | 
				
			||||||
 | 
					            variant.outputs.each { output ->
 | 
				
			||||||
 | 
					                def baseAbiVersionCode = project.ext.abiVersionCodes.get(output.getFilter(OutputFile.ABI))
 | 
				
			||||||
 | 
					                // Known limitation: it does not modify the value in the BuildConfig.java generated file
 | 
				
			||||||
 | 
					                // See https://issuetracker.google.com/issues/171133218
 | 
				
			||||||
 | 
					                output.versionCodeOverride = baseVariantVersion + baseAbiVersionCode
 | 
				
			||||||
 | 
					                print "ABI " + output.getFilter(OutputFile.ABI) + " \t-> VersionCode = " + output.versionCodeOverride + "\n"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // The following argument makes the Android Test Orchestrator run its
 | 
				
			||||||
 | 
					        // "pm clear" command after each test invocation. This command ensures
 | 
				
			||||||
 | 
					        // that the app's state is completely cleared between tests.
 | 
				
			||||||
 | 
					        testInstrumentationRunnerArguments clearPackageData: 'true'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testOptions {
 | 
				
			||||||
 | 
					        // Disables animations during instrumented tests you run from the command line…
 | 
				
			||||||
 | 
					        // This property does not affect tests that you run using Android Studio.”
 | 
				
			||||||
 | 
					        animationsDisabled = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Comment to run on Android 12
 | 
				
			||||||
 | 
					//        execution 'ANDROIDX_TEST_ORCHESTRATOR'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    signingConfigs {
 | 
				
			||||||
 | 
					        debug {
 | 
				
			||||||
 | 
					            keyAlias 'androiddebugkey'
 | 
				
			||||||
 | 
					            keyPassword 'android'
 | 
				
			||||||
 | 
					            storeFile file('./signature/debug.keystore')
 | 
				
			||||||
 | 
					            storePassword 'android'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        release {
 | 
				
			||||||
 | 
					            keyAlias project.property("signing.element.keyId")
 | 
				
			||||||
 | 
					            keyPassword project.property("signing.element.keyPassword")
 | 
				
			||||||
 | 
					            storeFile file(project.property("signing.element.storePath"))
 | 
				
			||||||
 | 
					            storePassword project.property("signing.element.storePassword")
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    buildTypes {
 | 
				
			||||||
 | 
					        debug {
 | 
				
			||||||
 | 
					            applicationIdSuffix ".debug"
 | 
				
			||||||
 | 
					            resValue "string", "app_name", "Element dbg"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
 | 
				
			||||||
 | 
					            // Set to true if you want to enable strict mode in debug
 | 
				
			||||||
 | 
					            buildConfigField "boolean", "ENABLE_STRICT_MODE_LOGS", "false"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            signingConfig signingConfigs.debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (project.hasProperty("coverage")) {
 | 
				
			||||||
 | 
					                testCoverageEnabled = coverage.enableTestCoverage
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        release {
 | 
				
			||||||
 | 
					            resValue "string", "app_name", "Element"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
 | 
				
			||||||
 | 
					            buildConfigField "boolean", "ENABLE_STRICT_MODE_LOGS", "false"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            postprocessing {
 | 
				
			||||||
 | 
					                removeUnusedCode true
 | 
				
			||||||
 | 
					                removeUnusedResources true
 | 
				
			||||||
 | 
					                // We do not activate obfuscation as it makes it hard then to read crash reports, and it's a bit useless on an open source project :)
 | 
				
			||||||
 | 
					                obfuscate false
 | 
				
			||||||
 | 
					                optimizeCode true
 | 
				
			||||||
 | 
					                proguardFiles 'proguard-rules.pro'
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // signingConfig signingConfigs.release
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    flavorDimensions "store"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    productFlavors {
 | 
				
			||||||
 | 
					        gplay {
 | 
				
			||||||
 | 
					            apply plugin: 'com.google.gms.google-services'
 | 
				
			||||||
 | 
					            afterEvaluate {
 | 
				
			||||||
 | 
					                tasks.matching { it.name.contains("GoogleServices") && !it.name.contains("Gplay") }*.enabled = false
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            dimension "store"
 | 
				
			||||||
 | 
					            isDefault = true
 | 
				
			||||||
 | 
					            versionName "${versionMajor}.${versionMinor}.${versionPatch}${getGplayVersionSuffix()}"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        fdroid {
 | 
				
			||||||
 | 
					            dimension "store"
 | 
				
			||||||
 | 
					            versionName "${versionMajor}.${versionMinor}.${versionPatch}${getFdroidVersionSuffix()}"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    lintOptions {
 | 
				
			||||||
 | 
					        lintConfig file("lint.xml")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        checkDependencies true
 | 
				
			||||||
 | 
					        abortOnError true
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    compileOptions {
 | 
				
			||||||
 | 
					        sourceCompatibility versions.sourceCompat
 | 
				
			||||||
 | 
					        targetCompatibility versions.targetCompat
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    kotlinOptions {
 | 
				
			||||||
 | 
					        jvmTarget = "11"
 | 
				
			||||||
 | 
					        freeCompilerArgs += [
 | 
				
			||||||
 | 
					                "-opt-in=kotlin.RequiresOptIn",
 | 
				
			||||||
 | 
					                // Fixes false positive "This is an internal Mavericks API. It is not intended for external use."
 | 
				
			||||||
 | 
					                // of MvRx `by viewModel()` calls. Maybe due to the inlining of code... This is a temporary fix...
 | 
				
			||||||
 | 
					                "-opt-in=com.airbnb.mvrx.InternalMavericksApi",
 | 
				
			||||||
 | 
					                // Opt in for kotlinx.coroutines.FlowPreview too
 | 
				
			||||||
 | 
					                "-opt-in=kotlinx.coroutines.FlowPreview",
 | 
				
			||||||
 | 
					                // Opt in for kotlinx.coroutines.ExperimentalCoroutinesApi too
 | 
				
			||||||
 | 
					                "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    buildFeatures {
 | 
				
			||||||
 | 
					        viewBinding true
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    implementation project(':vector')
 | 
				
			||||||
 | 
					    implementation libs.dagger.hilt
 | 
				
			||||||
 | 
					    kapt libs.dagger.hiltCompiler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation project(':library:opusencoder')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation project(":vector-config")
 | 
				
			||||||
 | 
					    implementation project(":matrix-sdk-android")
 | 
				
			||||||
 | 
					    implementation project(":matrix-sdk-android-flow")
 | 
				
			||||||
 | 
					    implementation project(":library:jsonviewer")
 | 
				
			||||||
 | 
					    implementation project(":library:ui-styles")
 | 
				
			||||||
 | 
					    implementation project(":library:core-utils")
 | 
				
			||||||
 | 
					    implementation project(":library:attachment-viewer")
 | 
				
			||||||
 | 
					    implementation project(":library:diff-match-patch")
 | 
				
			||||||
 | 
					    implementation project(":library:multipicker")
 | 
				
			||||||
 | 
					    implementation 'androidx.multidex:multidex:2.0.1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation libs.jetbrains.coroutinesCore
 | 
				
			||||||
 | 
					    implementation libs.jetbrains.coroutinesAndroid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation libs.androidx.recyclerview
 | 
				
			||||||
 | 
					    implementation libs.androidx.appCompat
 | 
				
			||||||
 | 
					    implementation libs.androidx.fragmentKtx
 | 
				
			||||||
 | 
					    implementation libs.androidx.constraintLayout
 | 
				
			||||||
 | 
					    implementation "androidx.sharetarget:sharetarget:1.1.0"
 | 
				
			||||||
 | 
					    implementation libs.androidx.core
 | 
				
			||||||
 | 
					    implementation "androidx.media:media:1.6.0"
 | 
				
			||||||
 | 
					    implementation "androidx.transition:transition:1.4.1"
 | 
				
			||||||
 | 
					    implementation libs.androidx.biometric
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation "org.threeten:threetenbp:1.4.0:no-tzdb"
 | 
				
			||||||
 | 
					    implementation "com.gabrielittner.threetenbp:lazythreetenbp:0.10.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation libs.squareup.moshi
 | 
				
			||||||
 | 
					    implementation libs.squareup.moshiKt
 | 
				
			||||||
 | 
					    kapt libs.squareup.moshiKotlin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Lifecycle
 | 
				
			||||||
 | 
					    implementation libs.androidx.lifecycleLivedata
 | 
				
			||||||
 | 
					    implementation libs.androidx.lifecycleProcess
 | 
				
			||||||
 | 
					    implementation libs.androidx.lifecycleRuntimeKtx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation libs.androidx.datastorepreferences
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Log
 | 
				
			||||||
 | 
					    implementation libs.jakewharton.timber
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Debug
 | 
				
			||||||
 | 
					    implementation 'com.facebook.stetho:stetho:1.6.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Phone number https://github.com/google/libphonenumber
 | 
				
			||||||
 | 
					    implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.50'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // FlowBinding
 | 
				
			||||||
 | 
					    implementation libs.github.flowBinding
 | 
				
			||||||
 | 
					    implementation libs.github.flowBindingAppcompat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation libs.airbnb.epoxy
 | 
				
			||||||
 | 
					    implementation libs.airbnb.epoxyGlide
 | 
				
			||||||
 | 
					    kapt libs.airbnb.epoxyProcessor
 | 
				
			||||||
 | 
					    implementation libs.airbnb.epoxyPaging
 | 
				
			||||||
 | 
					    implementation libs.airbnb.mavericks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Work
 | 
				
			||||||
 | 
					    implementation libs.androidx.work
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Paging
 | 
				
			||||||
 | 
					    implementation libs.androidx.pagingRuntimeKtx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Functional Programming
 | 
				
			||||||
 | 
					    implementation libs.arrow.core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Pref
 | 
				
			||||||
 | 
					    implementation libs.androidx.preferenceKtx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // UI
 | 
				
			||||||
 | 
					    implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
 | 
				
			||||||
 | 
					    implementation libs.google.material
 | 
				
			||||||
 | 
					    implementation 'me.gujun.android:span:1.7'
 | 
				
			||||||
 | 
					    implementation libs.markwon.core
 | 
				
			||||||
 | 
					    implementation libs.markwon.extLatex
 | 
				
			||||||
 | 
					    implementation libs.markwon.inlineParser
 | 
				
			||||||
 | 
					    implementation libs.markwon.html
 | 
				
			||||||
 | 
					    implementation 'com.googlecode.htmlcompressor:htmlcompressor:1.5.2'
 | 
				
			||||||
 | 
					    implementation 'me.saket:better-link-movement-method:2.2.0'
 | 
				
			||||||
 | 
					    implementation 'com.google.android.flexbox:flexbox:3.0.0'
 | 
				
			||||||
 | 
					    implementation libs.androidx.autoFill
 | 
				
			||||||
 | 
					    implementation 'jp.wasabeef:glide-transformations:4.3.0'
 | 
				
			||||||
 | 
					    implementation 'com.github.hyuwah:DraggableView:1.0.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Custom Tab
 | 
				
			||||||
 | 
					    implementation 'androidx.browser:browser:1.4.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Passphrase strength helper
 | 
				
			||||||
 | 
					    implementation 'com.nulab-inc:zxcvbn:1.7.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Alerter
 | 
				
			||||||
 | 
					    implementation 'com.github.tapadoo:alerter:7.2.4'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation 'com.otaliastudios:autocomplete:1.1.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Shake detection
 | 
				
			||||||
 | 
					    implementation 'com.squareup:seismic:1.0.3'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Image Loading
 | 
				
			||||||
 | 
					    implementation libs.github.bigImageViewer
 | 
				
			||||||
 | 
					    implementation libs.github.glideImageLoader
 | 
				
			||||||
 | 
					    implementation libs.github.progressPieIndicator
 | 
				
			||||||
 | 
					    implementation libs.github.glideImageViewFactory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // implementation 'com.github.MikeOrtiz:TouchImageView:3.0.2'
 | 
				
			||||||
 | 
					    implementation 'com.github.chrisbanes:PhotoView:2.3.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation libs.github.glide
 | 
				
			||||||
 | 
					    kapt libs.github.glideCompiler
 | 
				
			||||||
 | 
					    implementation 'com.github.yalantis:ucrop:2.2.8'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Chat effects
 | 
				
			||||||
 | 
					    implementation 'nl.dionsegijn:konfetti-xml:2.0.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation 'com.github.jetradarmobile:android-snowfall:1.2.1'
 | 
				
			||||||
 | 
					    // DI
 | 
				
			||||||
 | 
					    implementation libs.dagger.hilt
 | 
				
			||||||
 | 
					    kapt libs.dagger.hiltCompiler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Analytics
 | 
				
			||||||
 | 
					    implementation 'com.posthog.android:posthog:1.1.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // UnifiedPush
 | 
				
			||||||
 | 
					    implementation 'com.github.UnifiedPush:android-connector:2.0.0'
 | 
				
			||||||
 | 
					    // UnifiedPush gplay flavor only
 | 
				
			||||||
 | 
					    gplayImplementation('com.github.UnifiedPush:android-embedded_fcm_distributor:2.0.0') {
 | 
				
			||||||
 | 
					        exclude group: 'com.google.firebase', module: 'firebase-core'
 | 
				
			||||||
 | 
					        exclude group: 'com.google.firebase', module: 'firebase-analytics'
 | 
				
			||||||
 | 
					        exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // OSS License, gplay flavor only
 | 
				
			||||||
 | 
					    gplayImplementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation "androidx.emoji2:emoji2:1.1.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // WebRTC
 | 
				
			||||||
 | 
					    // org.webrtc:google-webrtc is for development purposes only
 | 
				
			||||||
 | 
					    // implementation 'org.webrtc:google-webrtc:1.0.+'
 | 
				
			||||||
 | 
					    implementation('com.facebook.react:react-native-webrtc:1.94.2-jitsi-10227332@aar')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Jitsi
 | 
				
			||||||
 | 
					    implementation('org.jitsi.react:jitsi-meet-sdk:5.0.2') {
 | 
				
			||||||
 | 
					        exclude group: 'com.google.firebase'
 | 
				
			||||||
 | 
					        exclude group: 'com.google.android.gms'
 | 
				
			||||||
 | 
					        exclude group: 'com.android.installreferrer'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // QR-code
 | 
				
			||||||
 | 
					    // Stick to 3.3.3 because of https://github.com/zxing/zxing/issues/1170
 | 
				
			||||||
 | 
					    implementation 'com.google.zxing:core:3.3.3'
 | 
				
			||||||
 | 
					    implementation 'me.dm7.barcodescanner:zxing:1.9.13'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Emoji Keyboard
 | 
				
			||||||
 | 
					    implementation libs.vanniktech.emojiMaterial
 | 
				
			||||||
 | 
					    implementation libs.vanniktech.emojiGoogle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    implementation 'im.dlg:android-dialer:1.2.5'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // JWT
 | 
				
			||||||
 | 
					    api libs.jsonwebtoken.jjwtApi
 | 
				
			||||||
 | 
					    runtimeOnly libs.jsonwebtoken.jjwtImpl
 | 
				
			||||||
 | 
					    runtimeOnly(libs.jsonwebtoken.jjwtOrgjson) {
 | 
				
			||||||
 | 
					        exclude group: 'org.json', module: 'json' //provided by Android natively
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    implementation 'commons-codec:commons-codec:1.15'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // MapTiler
 | 
				
			||||||
 | 
					    fdroidImplementation(libs.maplibre.androidSdk) {
 | 
				
			||||||
 | 
					        exclude group: 'com.google.android.gms', module: 'play-services-location'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    fdroidImplementation(libs.maplibre.pluginAnnotation) {
 | 
				
			||||||
 | 
					        exclude group: 'com.google.android.gms', module: 'play-services-location'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    gplayImplementation libs.maplibre.androidSdk
 | 
				
			||||||
 | 
					    gplayImplementation libs.maplibre.pluginAnnotation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TESTS
 | 
				
			||||||
 | 
					    testImplementation libs.tests.junit
 | 
				
			||||||
 | 
					    testImplementation libs.tests.kluent
 | 
				
			||||||
 | 
					    testImplementation libs.mockk.mockk
 | 
				
			||||||
 | 
					    // Plant Timber tree for test
 | 
				
			||||||
 | 
					    testImplementation libs.tests.timberJunitRule
 | 
				
			||||||
 | 
					    testImplementation libs.airbnb.mavericksTesting
 | 
				
			||||||
 | 
					    testImplementation(libs.jetbrains.coroutinesTest) {
 | 
				
			||||||
 | 
					        exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Flipper, debug builds only
 | 
				
			||||||
 | 
					    debugImplementation('com.facebook.flipper:flipper:0.149.0') {
 | 
				
			||||||
 | 
					        exclude group: 'com.facebook.fbjni', module: 'fbjni'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    debugImplementation('com.facebook.flipper:flipper-network-plugin:0.149.0') {
 | 
				
			||||||
 | 
					        exclude group: 'com.facebook.fbjni', module: 'fbjni'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    debugImplementation 'com.facebook.soloader:soloader:0.10.3'
 | 
				
			||||||
 | 
					    debugImplementation "com.kgurgul.flipper:flipper-realm-android:2.2.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Activate when you want to check for leaks, from time to time.
 | 
				
			||||||
 | 
					    //debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.testCore
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.testRunner
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.testRules
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.junit
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.espressoCore
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.espressoContrib
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.espressoIntents
 | 
				
			||||||
 | 
					    androidTestImplementation libs.tests.kluent
 | 
				
			||||||
 | 
					    androidTestImplementation libs.androidx.coreTesting
 | 
				
			||||||
 | 
					    androidTestImplementation(libs.jetbrains.coroutinesTest) {
 | 
				
			||||||
 | 
					        exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // Plant Timber tree for test
 | 
				
			||||||
 | 
					    androidTestImplementation libs.tests.timberJunitRule
 | 
				
			||||||
 | 
					    // "The one who serves a great Espresso"
 | 
				
			||||||
 | 
					    androidTestImplementation('com.adevinta.android:barista:4.2.0') {
 | 
				
			||||||
 | 
					        exclude group: 'org.jetbrains.kotlin'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    androidTestImplementation libs.mockk.mockkAndroid
 | 
				
			||||||
 | 
					    androidTestUtil libs.androidx.orchestrator
 | 
				
			||||||
 | 
					    debugImplementation libs.androidx.fragmentTesting
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										78
									
								
								vector-app/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								vector-app/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					# Add project specific ProGuard rules here.
 | 
				
			||||||
 | 
					# You can control the set of applied configuration files using the
 | 
				
			||||||
 | 
					# proguardFiles setting in build.gradle.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# For more details, see
 | 
				
			||||||
 | 
					#   http://developer.android.com/guide/developing/tools/proguard.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If your project uses WebView with JS, uncomment the following
 | 
				
			||||||
 | 
					# and specify the fully qualified class name to the JavaScript interface
 | 
				
			||||||
 | 
					# class:
 | 
				
			||||||
 | 
					#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
 | 
				
			||||||
 | 
					#   public *;
 | 
				
			||||||
 | 
					#}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Uncomment this to preserve the line number information for
 | 
				
			||||||
 | 
					# debugging stack traces.
 | 
				
			||||||
 | 
					#-keepattributes SourceFile,LineNumberTable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If you keep the line number information, uncomment this to
 | 
				
			||||||
 | 
					# hide the original source file name.
 | 
				
			||||||
 | 
					#-renamesourcefileattribute SourceFile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keep class im.vector.app.features.** { *; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## print all the rules in a file
 | 
				
			||||||
 | 
					# -printconfiguration ../proguard_files/full-r8-config.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# WebRTC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keep class org.webrtc.** { *; }
 | 
				
			||||||
 | 
					-dontwarn org.chromium.build.BuildHooksAndroid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Jitsi (else callbacks are not called)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keep class org.jitsi.meet.** { *; }
 | 
				
			||||||
 | 
					-keep class org.jitsi.meet.sdk.** { *; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# React Native
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Keep our interfaces so they can be used by other ProGuard rules.
 | 
				
			||||||
 | 
					# See http://sourceforge.net/p/proguard/bugs/466/
 | 
				
			||||||
 | 
					-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
 | 
				
			||||||
 | 
					-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
 | 
				
			||||||
 | 
					-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Do not strip any method/class that is annotated with @DoNotStrip
 | 
				
			||||||
 | 
					-keep @com.facebook.proguard.annotations.DoNotStrip class *
 | 
				
			||||||
 | 
					-keep @com.facebook.common.internal.DoNotStrip class *
 | 
				
			||||||
 | 
					-keepclassmembers class * {
 | 
				
			||||||
 | 
					    @com.facebook.proguard.annotations.DoNotStrip *;
 | 
				
			||||||
 | 
					    @com.facebook.common.internal.DoNotStrip *;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
 | 
				
			||||||
 | 
					  void set*(***);
 | 
				
			||||||
 | 
					  *** get*();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
 | 
				
			||||||
 | 
					-keep class * extends com.facebook.react.bridge.NativeModule { *; }
 | 
				
			||||||
 | 
					-keepclassmembers,includedescriptorclasses class * { native <methods>; }
 | 
				
			||||||
 | 
					-keepclassmembers class *  { @com.facebook.react.uimanager.UIProp <fields>; }
 | 
				
			||||||
 | 
					-keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
 | 
				
			||||||
 | 
					-keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-dontwarn com.facebook.react.**
 | 
				
			||||||
 | 
					-keep,includedescriptorclasses class com.facebook.react.bridge.** { *; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keepattributes InnerClasses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# JWT dependencies
 | 
				
			||||||
 | 
					-keep class io.jsonwebtoken.** { *; }
 | 
				
			||||||
 | 
					-keepnames class io.jsonwebtoken.* { *; }
 | 
				
			||||||
 | 
					-keepnames interface io.jsonwebtoken.* { *; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keep class org.bouncycastle.** { *; }
 | 
				
			||||||
 | 
					-keepnames class org.bouncycastle.** { *; }
 | 
				
			||||||
 | 
					-dontwarn org.bouncycastle.**
 | 
				
			||||||
							
								
								
									
										2
									
								
								vector-app/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								vector-app/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<manifest package="im.vector.app"></manifest>
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2019 New Vector Ltd
 | 
					 * Copyright (c) 2022 New Vector Ltd
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
@ -1,13 +1,9 @@
 | 
				
			|||||||
import com.android.build.OutputFile
 | 
					apply plugin: 'com.android.library'
 | 
				
			||||||
 | 
					 | 
				
			||||||
apply plugin: 'com.android.application'
 | 
					 | 
				
			||||||
apply plugin: 'com.google.android.gms.oss-licenses-plugin'
 | 
					 | 
				
			||||||
apply plugin: 'kotlin-android'
 | 
					apply plugin: 'kotlin-android'
 | 
				
			||||||
apply plugin: 'kotlin-parcelize'
 | 
					apply plugin: 'kotlin-parcelize'
 | 
				
			||||||
apply plugin: 'kotlin-kapt'
 | 
					apply plugin: 'kotlin-kapt'
 | 
				
			||||||
apply plugin: 'com.likethesalad.stem'
 | 
					 | 
				
			||||||
apply plugin: 'dagger.hilt.android.plugin'
 | 
					apply plugin: 'dagger.hilt.android.plugin'
 | 
				
			||||||
apply plugin: 'kotlinx-knit'
 | 
					apply plugin: 'com.jakewharton.butterknife'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (project.hasProperty("coverage")) {
 | 
					if (project.hasProperty("coverage")) {
 | 
				
			||||||
    apply plugin: 'jacoco'
 | 
					    apply plugin: 'jacoco'
 | 
				
			||||||
@ -17,111 +13,6 @@ kapt {
 | 
				
			|||||||
    correctErrorTypes = true
 | 
					    correctErrorTypes = true
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
knit {
 | 
					 | 
				
			||||||
    files = fileTree(project.rootDir) {
 | 
					 | 
				
			||||||
        include '**/*.md'
 | 
					 | 
				
			||||||
        include '**/*.kt'
 | 
					 | 
				
			||||||
        include '**/*.kts'
 | 
					 | 
				
			||||||
        exclude '**/build/**'
 | 
					 | 
				
			||||||
        exclude '**/.gradle/**'
 | 
					 | 
				
			||||||
        exclude '**/towncrier/template.md'
 | 
					 | 
				
			||||||
        exclude '**/CHANGES.md'
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Note: 2 digits max for each value
 | 
					 | 
				
			||||||
ext.versionMajor = 1
 | 
					 | 
				
			||||||
ext.versionMinor = 4
 | 
					 | 
				
			||||||
// Note: even values are reserved for regular release, odd values for hotfix release.
 | 
					 | 
				
			||||||
// When creating a hotfix, you should decrease the value, since the current value
 | 
					 | 
				
			||||||
// is the value for the next regular release.
 | 
					 | 
				
			||||||
ext.versionPatch = 26
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static def getGitTimestamp() {
 | 
					 | 
				
			||||||
    def cmd = 'git show -s --format=%ct'
 | 
					 | 
				
			||||||
    return cmd.execute().text.trim() as Long
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static def generateVersionCodeFromTimestamp() {
 | 
					 | 
				
			||||||
    // It's unix timestamp, minus timestamp of October 3rd 2018 (first commit date) divided by 100: It's incremented by one every 100 seconds.
 | 
					 | 
				
			||||||
    // plus 20_000_000 for compatibility reason with the previous way the Version Code was computed
 | 
					 | 
				
			||||||
    // Note that the result will be multiplied by 10 when adding the digit for the arch
 | 
					 | 
				
			||||||
    return ((getGitTimestamp() - 1_538_524_800) / 100).toInteger() + 20_000_000
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def generateVersionCodeFromVersionName() {
 | 
					 | 
				
			||||||
    // plus 4_000_000 for compatibility reason with the previous way the Version Code was computed
 | 
					 | 
				
			||||||
    // Note that the result will be multiplied by 10 when adding the digit for the arch
 | 
					 | 
				
			||||||
    return (versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch) + 4_000_000
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def getVersionCode() {
 | 
					 | 
				
			||||||
    if (gitBranchName() == "develop") {
 | 
					 | 
				
			||||||
        return generateVersionCodeFromTimestamp()
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        return generateVersionCodeFromVersionName()
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static def gitRevision() {
 | 
					 | 
				
			||||||
    def cmd = "git rev-parse --short=8 HEAD"
 | 
					 | 
				
			||||||
    return cmd.execute().text.trim()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static def gitRevisionDate() {
 | 
					 | 
				
			||||||
    def cmd = "git show -s --format=%ci HEAD^{commit}"
 | 
					 | 
				
			||||||
    return cmd.execute().text.trim()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static def gitBranchName() {
 | 
					 | 
				
			||||||
    def fromEnv = System.env.BUILDKITE_BRANCH as String ?: ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!fromEnv.isEmpty()) {
 | 
					 | 
				
			||||||
        return fromEnv
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        // Note: this command return "HEAD" on Buildkite, so use the system env 'BUILDKITE_BRANCH' content first
 | 
					 | 
				
			||||||
        def cmd = "git rev-parse --abbrev-ref HEAD"
 | 
					 | 
				
			||||||
        return cmd.execute().text.trim()
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// For Google Play build, build on any other branch than main will have a "-dev" suffix
 | 
					 | 
				
			||||||
static def getGplayVersionSuffix() {
 | 
					 | 
				
			||||||
    if (gitBranchName() == "main") {
 | 
					 | 
				
			||||||
        return ""
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        return "-dev"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static def gitTag() {
 | 
					 | 
				
			||||||
    def cmd = "git describe --exact-match --tags"
 | 
					 | 
				
			||||||
    return cmd.execute().text.trim()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// For F-Droid build, build on a not tagged commit will have a "-dev" suffix
 | 
					 | 
				
			||||||
static def getFdroidVersionSuffix() {
 | 
					 | 
				
			||||||
    if (gitTag() == "") {
 | 
					 | 
				
			||||||
        return "-dev"
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        return ""
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
project.android.buildTypes.all { buildType ->
 | 
					 | 
				
			||||||
    buildType.javaCompileOptions.annotationProcessorOptions.arguments =
 | 
					 | 
				
			||||||
            [
 | 
					 | 
				
			||||||
                    validateEpoxyModelUsage: String.valueOf(buildType.name == 'debug')
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// map for the version codes last digit
 | 
					 | 
				
			||||||
// x86 must have greater values than arm
 | 
					 | 
				
			||||||
// 64 bits have greater value than 32 bits
 | 
					 | 
				
			||||||
ext.abiVersionCodes = ["armeabi-v7a": 1, "arm64-v8a": 2, "x86": 3, "x86_64": 4].withDefault { 0 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def buildNumber = System.env.BUILDKITE_BUILD_NUMBER as Integer ?: 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
android {
 | 
					android {
 | 
				
			||||||
    // Due to a bug introduced in Android gradle plugin 3.6.0, we have to specify the ndk version to use
 | 
					    // Due to a bug introduced in Android gradle plugin 3.6.0, we have to specify the ndk version to use
 | 
				
			||||||
    // Ref: https://issuetracker.google.com/issues/144111441
 | 
					    // Ref: https://issuetracker.google.com/issues/144111441
 | 
				
			||||||
@ -130,87 +21,28 @@ android {
 | 
				
			|||||||
    compileSdk versions.compileSdk
 | 
					    compileSdk versions.compileSdk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    defaultConfig {
 | 
					    defaultConfig {
 | 
				
			||||||
        applicationId "im.vector.app"
 | 
					 | 
				
			||||||
        // Set to API 21: see #405
 | 
					        // Set to API 21: see #405
 | 
				
			||||||
        minSdk versions.minSdk
 | 
					        minSdk versions.minSdk
 | 
				
			||||||
        targetSdk versions.targetSdk
 | 
					        targetSdk versions.targetSdk
 | 
				
			||||||
        multiDexEnabled true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        renderscriptTargetApi 24
 | 
					 | 
				
			||||||
        renderscriptSupportModeEnabled true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // `develop` branch will have version code from timestamp, to ensure each build from CI has a incremented versionCode.
 | 
					 | 
				
			||||||
        // Other branches (main, features, etc.) will have version code based on application version.
 | 
					 | 
				
			||||||
        versionCode project.getVersionCode()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Required for sonar analysis
 | 
					 | 
				
			||||||
        versionName "${versionMajor}.${versionMinor}.${versionPatch}-sonar"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Generate a random app task affinity
 | 
					 | 
				
			||||||
        manifestPlaceholders = [appTaskAffinitySuffix: "H_${gitRevision()}"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        buildConfigField "String", "GIT_REVISION", "\"${gitRevision()}\""
 | 
					 | 
				
			||||||
        buildConfigField "String", "GIT_REVISION_DATE", "\"${gitRevisionDate()}\""
 | 
					 | 
				
			||||||
        buildConfigField "String", "GIT_BRANCH_NAME", "\"${gitBranchName()}\""
 | 
					 | 
				
			||||||
        buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        buildConfigField "im.vector.app.features.VectorFeatures.OnboardingVariant", "ONBOARDING_VARIANT", "im.vector.app.features.VectorFeatures.OnboardingVariant.FTUE_AUTH"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        buildConfigField "im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy", "outboundSessionKeySharingStrategy", "im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy.WhenTyping"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        buildConfigField "Long", "VOICE_MESSAGE_DURATION_LIMIT_MS", "120_000L"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //  If set, MSC3086 asserted identity messages sent on VoIP calls will cause the call to appear in the room corresponding to the asserted identity.
 | 
					 | 
				
			||||||
        //  This *must* only be set in trusted environments.
 | 
					 | 
				
			||||||
        buildConfigField "Boolean", "handleCallAssertedIdentityEvents", "false"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        buildConfigField "Boolean", "enableLocationSharing", "true"
 | 
					 | 
				
			||||||
        buildConfigField "String", "mapTilerKey", "\"fU3vlMsMn4Jb6dnEIFsx\""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Keep abiFilter for the universalApk
 | 
					 | 
				
			||||||
        ndk {
 | 
					 | 
				
			||||||
            abiFilters "armeabi-v7a", "x86", 'arm64-v8a', 'x86_64'
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Ref: https://developer.android.com/studio/build/configure-apk-splits.html
 | 
					 | 
				
			||||||
        splits {
 | 
					 | 
				
			||||||
            // Configures multiple APKs based on ABI.
 | 
					 | 
				
			||||||
            abi {
 | 
					 | 
				
			||||||
                // Enables building multiple APKs per ABI.
 | 
					 | 
				
			||||||
                enable true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // By default all ABIs are included, so use reset() and include to specify that we only
 | 
					 | 
				
			||||||
                // want APKs for armeabi-v7a, x86, arm64-v8a and x86_64.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // Resets the list of ABIs that Gradle should create APKs for to none.
 | 
					 | 
				
			||||||
                reset()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // Specifies a list of ABIs that Gradle should create APKs for.
 | 
					 | 
				
			||||||
                include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // Generate a universal APK that includes all ABIs, so user who install from CI tool can use this one by default.
 | 
					 | 
				
			||||||
                universalApk true
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        applicationVariants.all { variant ->
 | 
					 | 
				
			||||||
            // assign different version code for each output
 | 
					 | 
				
			||||||
            def baseVariantVersion = variant.versionCode * 10
 | 
					 | 
				
			||||||
            variant.outputs.each { output ->
 | 
					 | 
				
			||||||
                def baseAbiVersionCode = project.ext.abiVersionCodes.get(output.getFilter(OutputFile.ABI))
 | 
					 | 
				
			||||||
                // Known limitation: it does not modify the value in the BuildConfig.java generated file
 | 
					 | 
				
			||||||
                // See https://issuetracker.google.com/issues/171133218
 | 
					 | 
				
			||||||
                output.versionCodeOverride = baseVariantVersion + baseAbiVersionCode
 | 
					 | 
				
			||||||
                print "ABI " + output.getFilter(OutputFile.ABI) + " \t-> VersionCode = " + output.versionCodeOverride + "\n"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // The following argument makes the Android Test Orchestrator run its
 | 
					        // The following argument makes the Android Test Orchestrator run its
 | 
				
			||||||
        // "pm clear" command after each test invocation. This command ensures
 | 
					        // "pm clear" command after each test invocation. This command ensures
 | 
				
			||||||
        // that the app's state is completely cleared between tests.
 | 
					        // that the app's state is completely cleared between tests.
 | 
				
			||||||
        testInstrumentationRunnerArguments clearPackageData: 'true'
 | 
					        testInstrumentationRunnerArguments clearPackageData: 'true'
 | 
				
			||||||
 | 
					        buildConfigField "String", "APPLICATION_ID", "\"im.vector.app\""
 | 
				
			||||||
 | 
					        buildConfigField "im.vector.app.features.VectorFeatures.OnboardingVariant", "ONBOARDING_VARIANT", "im.vector.app.features.VectorFeatures.OnboardingVariant.FTUE_AUTH"
 | 
				
			||||||
 | 
					        buildConfigField "im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy", "outboundSessionKeySharingStrategy", "im.vector.app.features.crypto.keysrequest.OutboundSessionKeySharingStrategy.WhenTyping"
 | 
				
			||||||
 | 
					        buildConfigField "Long", "VOICE_MESSAGE_DURATION_LIMIT_MS", "120_000L"
 | 
				
			||||||
 | 
					        //  If set, MSC3086 asserted identity messages sent on VoIP calls will cause the call to appear in the room corresponding to the asserted identity.
 | 
				
			||||||
 | 
					        //  This *must* only be set in trusted environments.
 | 
				
			||||||
 | 
					        buildConfigField "Boolean", "handleCallAssertedIdentityEvents", "false"
 | 
				
			||||||
 | 
					        buildConfigField "Boolean", "enableLocationSharing", "true"
 | 
				
			||||||
 | 
					        buildConfigField "String", "mapTilerKey", "\"fU3vlMsMn4Jb6dnEIFsx\""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        buildConfigField "String", "GIT_REVISION", "\"1\""
 | 
				
			||||||
 | 
					        buildConfigField "String", "GIT_REVISION_DATE", "\"2\""
 | 
				
			||||||
 | 
					        buildConfigField "String", "GIT_BRANCH_NAME", "\"3\""
 | 
				
			||||||
 | 
					        buildConfigField "String", "BUILD_NUMBER", "\"4\""
 | 
				
			||||||
 | 
					        buildConfigField "String", "VERSION_NAME", "\"5\""
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    testOptions {
 | 
					    testOptions {
 | 
				
			||||||
@ -221,67 +53,36 @@ android {
 | 
				
			|||||||
        // Comment to run on Android 12
 | 
					        // Comment to run on Android 12
 | 
				
			||||||
//        execution 'ANDROIDX_TEST_ORCHESTRATOR'
 | 
					//        execution 'ANDROIDX_TEST_ORCHESTRATOR'
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    signingConfigs {
 | 
					
 | 
				
			||||||
        debug {
 | 
					 | 
				
			||||||
            keyAlias 'androiddebugkey'
 | 
					 | 
				
			||||||
            keyPassword 'android'
 | 
					 | 
				
			||||||
            storeFile file('./signature/debug.keystore')
 | 
					 | 
				
			||||||
            storePassword 'android'
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        release {
 | 
					 | 
				
			||||||
            keyAlias project.property("signing.element.keyId")
 | 
					 | 
				
			||||||
            keyPassword project.property("signing.element.keyPassword")
 | 
					 | 
				
			||||||
            storeFile file(project.property("signing.element.storePath"))
 | 
					 | 
				
			||||||
            storePassword project.property("signing.element.storePassword")
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    buildTypes {
 | 
					    buildTypes {
 | 
				
			||||||
        debug {
 | 
					        debug {
 | 
				
			||||||
            applicationIdSuffix ".debug"
 | 
					 | 
				
			||||||
            resValue "string", "app_name", "Element dbg"
 | 
					            resValue "string", "app_name", "Element dbg"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
 | 
					            buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
 | 
				
			||||||
            // Set to true if you want to enable strict mode in debug
 | 
					            // Set to true if you want to enable strict mode in debug
 | 
				
			||||||
            buildConfigField "boolean", "ENABLE_STRICT_MODE_LOGS", "false"
 | 
					            buildConfigField "boolean", "ENABLE_STRICT_MODE_LOGS", "false"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            signingConfig signingConfigs.debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (project.hasProperty("coverage")) {
 | 
					            if (project.hasProperty("coverage")) {
 | 
				
			||||||
                testCoverageEnabled = coverage.enableTestCoverage
 | 
					                testCoverageEnabled = coverage.enableTestCoverage
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        release {
 | 
					 | 
				
			||||||
            resValue "string", "app_name", "Element"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
 | 
					 | 
				
			||||||
            buildConfigField "boolean", "ENABLE_STRICT_MODE_LOGS", "false"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            postprocessing {
 | 
					 | 
				
			||||||
                removeUnusedCode true
 | 
					 | 
				
			||||||
                removeUnusedResources true
 | 
					 | 
				
			||||||
                // We do not activate obfuscation as it makes it hard then to read crash reports, and it's a bit useless on an open source project :)
 | 
					 | 
				
			||||||
                obfuscate false
 | 
					 | 
				
			||||||
                optimizeCode true
 | 
					 | 
				
			||||||
                proguardFiles 'proguard-rules.pro'
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            // signingConfig signingConfigs.release
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    buildTypes.all { buildType ->
 | 
				
			||||||
 | 
					        buildType.javaCompileOptions.annotationProcessorOptions.arguments =
 | 
				
			||||||
 | 
					                [
 | 
				
			||||||
 | 
					                        validateEpoxyModelUsage: String.valueOf(buildType.name == 'debug')
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    flavorDimensions "store"
 | 
					    flavorDimensions "store"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    productFlavors {
 | 
					    productFlavors {
 | 
				
			||||||
        gplay {
 | 
					        gplay {
 | 
				
			||||||
            apply plugin: 'com.google.gms.google-services'
 | 
					 | 
				
			||||||
            afterEvaluate {
 | 
					 | 
				
			||||||
                tasks.matching { it.name.contains("GoogleServices") && !it.name.contains("Gplay") }*.enabled = false
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            dimension "store"
 | 
					            dimension "store"
 | 
				
			||||||
            isDefault = true
 | 
					            isDefault = true
 | 
				
			||||||
            versionName "${versionMajor}.${versionMinor}.${versionPatch}${getGplayVersionSuffix()}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            resValue "bool", "isGplay", "true"
 | 
					            resValue "bool", "isGplay", "true"
 | 
				
			||||||
            buildConfigField "boolean", "ALLOW_FCM_USE", "true"
 | 
					            buildConfigField "boolean", "ALLOW_FCM_USE", "true"
 | 
				
			||||||
@ -292,8 +93,6 @@ android {
 | 
				
			|||||||
        fdroid {
 | 
					        fdroid {
 | 
				
			||||||
            dimension "store"
 | 
					            dimension "store"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            versionName "${versionMajor}.${versionMinor}.${versionPatch}${getFdroidVersionSuffix()}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            resValue "bool", "isGplay", "false"
 | 
					            resValue "bool", "isGplay", "false"
 | 
				
			||||||
            buildConfigField "boolean", "ALLOW_FCM_USE", "false"
 | 
					            buildConfigField "boolean", "ALLOW_FCM_USE", "false"
 | 
				
			||||||
            buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"F\""
 | 
					            buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"F\""
 | 
				
			||||||
 | 
				
			|||||||
@ -23,10 +23,12 @@ import android.widget.Spinner
 | 
				
			|||||||
import android.widget.TextView
 | 
					import android.widget.TextView
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = im.vector.app.R.layout.item_feature)
 | 
					@EpoxyModelClass(layout = R2.layout.item_feature)
 | 
				
			||||||
abstract class BooleanFeatureItem : VectorEpoxyModel<BooleanFeatureItem.Holder>() {
 | 
					abstract class BooleanFeatureItem : VectorEpoxyModel<BooleanFeatureItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,10 +23,12 @@ import android.widget.Spinner
 | 
				
			|||||||
import android.widget.TextView
 | 
					import android.widget.TextView
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = im.vector.app.R.layout.item_feature)
 | 
					@EpoxyModelClass(layout = R2.layout.item_feature)
 | 
				
			||||||
abstract class EnumFeatureItem : VectorEpoxyModel<EnumFeatureItem.Holder>() {
 | 
					abstract class EnumFeatureItem : VectorEpoxyModel<EnumFeatureItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,13 +21,15 @@ import android.widget.TextView
 | 
				
			|||||||
import androidx.core.content.ContextCompat
 | 
					import androidx.core.content.ContextCompat
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import me.gujun.android.span.image
 | 
					import me.gujun.android.span.image
 | 
				
			||||||
import me.gujun.android.span.span
 | 
					import me.gujun.android.span.span
 | 
				
			||||||
import org.matrix.android.sdk.api.session.crypto.verification.EmojiRepresentation
 | 
					import org.matrix.android.sdk.api.session.crypto.verification.EmojiRepresentation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = im.vector.app.R.layout.item_sas_emoji)
 | 
					@EpoxyModelClass(layout = R2.layout.item_sas_emoji)
 | 
				
			||||||
abstract class SasEmojiItem : VectorEpoxyModel<SasEmojiItem.Holder>() {
 | 
					abstract class SasEmojiItem : VectorEpoxyModel<SasEmojiItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
@ -51,9 +53,9 @@ abstract class SasEmojiItem : VectorEpoxyModel<SasEmojiItem.Holder>() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Holder : VectorEpoxyHolder() {
 | 
					    class Holder : VectorEpoxyHolder() {
 | 
				
			||||||
        val indexView by bind<TextView>(im.vector.app.R.id.sas_emoji_index)
 | 
					        val indexView by bind<TextView>(R.id.sas_emoji_index)
 | 
				
			||||||
        val emojiView by bind<TextView>(im.vector.app.R.id.sas_emoji)
 | 
					        val emojiView by bind<TextView>(R.id.sas_emoji)
 | 
				
			||||||
        val textView by bind<TextView>(im.vector.app.R.id.sas_emoji_text)
 | 
					        val textView by bind<TextView>(R.id.sas_emoji_text)
 | 
				
			||||||
        val idView by bind<TextView>(im.vector.app.R.id.sas_emoji_text_id)
 | 
					        val idView by bind<TextView>(R.id.sas_emoji_text_id)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@ package im.vector.app.core.epoxy
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_divider_on_surface)
 | 
					@EpoxyModelClass(layout = R2.layout.item_divider_on_surface)
 | 
				
			||||||
abstract class BottomSheetDividerItem : VectorEpoxyModel<BottomSheetDividerItem.Holder>() {
 | 
					abstract class BottomSheetDividerItem : VectorEpoxyModel<BottomSheetDividerItem.Holder>() {
 | 
				
			||||||
    class Holder : VectorEpoxyHolder()
 | 
					    class Holder : VectorEpoxyHolder()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -21,8 +21,9 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.google.android.material.checkbox.MaterialCheckBox
 | 
					import com.google.android.material.checkbox.MaterialCheckBox
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_checkbox)
 | 
					@EpoxyModelClass(layout = R2.layout.item_checkbox)
 | 
				
			||||||
abstract class CheckBoxItem : VectorEpoxyModel<CheckBoxItem.Holder>() {
 | 
					abstract class CheckBoxItem : VectorEpoxyModel<CheckBoxItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@ package im.vector.app.core.epoxy
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_divider)
 | 
					@EpoxyModelClass(layout = R2.layout.item_divider)
 | 
				
			||||||
abstract class DividerItem : VectorEpoxyModel<DividerItem.Holder>() {
 | 
					abstract class DividerItem : VectorEpoxyModel<DividerItem.Holder>() {
 | 
				
			||||||
    class Holder : VectorEpoxyHolder()
 | 
					    class Holder : VectorEpoxyHolder()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -22,8 +22,9 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_error_retry)
 | 
					@EpoxyModelClass(layout = R2.layout.item_error_retry)
 | 
				
			||||||
abstract class ErrorWithRetryItem : VectorEpoxyModel<ErrorWithRetryItem.Holder>() {
 | 
					abstract class ErrorWithRetryItem : VectorEpoxyModel<ErrorWithRetryItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -26,9 +26,10 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.extensions.copyOnLongClick
 | 
					import im.vector.app.core.extensions.copyOnLongClick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_expandable_textview)
 | 
					@EpoxyModelClass(layout = R2.layout.item_expandable_textview)
 | 
				
			||||||
abstract class ExpandableTextItem : VectorEpoxyModel<ExpandableTextItem.Holder>() {
 | 
					abstract class ExpandableTextItem : VectorEpoxyModel<ExpandableTextItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -20,8 +20,9 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_help_footer)
 | 
					@EpoxyModelClass(layout = R2.layout.item_help_footer)
 | 
				
			||||||
abstract class HelpFooterItem : VectorEpoxyModel<HelpFooterItem.Holder>() {
 | 
					abstract class HelpFooterItem : VectorEpoxyModel<HelpFooterItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -22,9 +22,10 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_loading)
 | 
					@EpoxyModelClass(layout = R2.layout.item_loading)
 | 
				
			||||||
abstract class LoadingItem : VectorEpoxyModel<LoadingItem.Holder>() {
 | 
					abstract class LoadingItem : VectorEpoxyModel<LoadingItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var loadingText: String? = null
 | 
					    @EpoxyAttribute var loadingText: String? = null
 | 
				
			||||||
 | 
				
			|||||||
@ -20,8 +20,9 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_no_result)
 | 
					@EpoxyModelClass(layout = R2.layout.item_no_result)
 | 
				
			||||||
abstract class NoResultItem : VectorEpoxyModel<NoResultItem.Holder>() {
 | 
					abstract class NoResultItem : VectorEpoxyModel<NoResultItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -18,8 +18,9 @@ package im.vector.app.core.epoxy
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_loading_square)
 | 
					@EpoxyModelClass(layout = R2.layout.item_loading_square)
 | 
				
			||||||
abstract class SquareLoadingItem : VectorEpoxyModel<SquareLoadingItem.Holder>() {
 | 
					abstract class SquareLoadingItem : VectorEpoxyModel<SquareLoadingItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Holder : VectorEpoxyHolder()
 | 
					    class Holder : VectorEpoxyHolder()
 | 
				
			||||||
 | 
				
			|||||||
@ -20,9 +20,10 @@ import androidx.core.view.updateLayoutParams
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.features.home.room.detail.timeline.item.ItemWithEvents
 | 
					import im.vector.app.features.home.room.detail.timeline.item.ItemWithEvents
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_timeline_empty)
 | 
					@EpoxyModelClass(layout = R2.layout.item_timeline_empty)
 | 
				
			||||||
abstract class TimelineEmptyItem : VectorEpoxyModel<TimelineEmptyItem.Holder>(), ItemWithEvents {
 | 
					abstract class TimelineEmptyItem : VectorEpoxyModel<TimelineEmptyItem.Holder>(), ItemWithEvents {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var eventId: String
 | 
					    @EpoxyAttribute lateinit var eventId: String
 | 
				
			||||||
 | 
				
			|||||||
@ -18,12 +18,13 @@ package im.vector.app.core.epoxy
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Item of size (0, 0).
 | 
					 * Item of size (0, 0).
 | 
				
			||||||
 * It can be useful to avoid automatic scroll of RecyclerView with Epoxy controller, when the first valuable item changes.
 | 
					 * It can be useful to avoid automatic scroll of RecyclerView with Epoxy controller, when the first valuable item changes.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_zero)
 | 
					@EpoxyModelClass(layout = R2.layout.item_zero)
 | 
				
			||||||
abstract class ZeroItem : VectorEpoxyModel<ZeroItem.Holder>() {
 | 
					abstract class ZeroItem : VectorEpoxyModel<ZeroItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Holder : VectorEpoxyHolder()
 | 
					    class Holder : VectorEpoxyHolder()
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,7 @@ import androidx.core.widget.ImageViewCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -39,7 +40,7 @@ import im.vector.app.features.themes.ThemeUtils
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_bottom_sheet_action)
 | 
					@EpoxyModelClass(layout = R2.layout.item_bottom_sheet_action)
 | 
				
			||||||
abstract class BottomSheetActionItem : VectorEpoxyModel<BottomSheetActionItem.Holder>() {
 | 
					abstract class BottomSheetActionItem : VectorEpoxyModel<BottomSheetActionItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,7 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.bumptech.glide.request.RequestOptions
 | 
					import com.bumptech.glide.request.RequestOptions
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -43,7 +44,7 @@ import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A message preview for bottom sheet.
 | 
					 * A message preview for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_bottom_sheet_message_preview)
 | 
					@EpoxyModelClass(layout = R2.layout.item_bottom_sheet_message_preview)
 | 
				
			||||||
abstract class BottomSheetMessagePreviewItem : VectorEpoxyModel<BottomSheetMessagePreviewItem.Holder>() {
 | 
					abstract class BottomSheetMessagePreviewItem : VectorEpoxyModel<BottomSheetMessagePreviewItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -22,6 +22,7 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.EmojiCompatFontProvider
 | 
					import im.vector.app.EmojiCompatFontProvider
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
@ -29,7 +30,7 @@ import im.vector.app.core.epoxy.onClick
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A quick reaction list for bottom sheet.
 | 
					 * A quick reaction list for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_bottom_sheet_quick_reaction)
 | 
					@EpoxyModelClass(layout = R2.layout.item_bottom_sheet_quick_reaction)
 | 
				
			||||||
abstract class BottomSheetQuickReactionsItem : VectorEpoxyModel<BottomSheetQuickReactionsItem.Holder>() {
 | 
					abstract class BottomSheetQuickReactionsItem : VectorEpoxyModel<BottomSheetQuickReactionsItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import androidx.core.content.ContextCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -33,7 +34,7 @@ import im.vector.app.core.extensions.setTextOrHide
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_bottom_sheet_radio)
 | 
					@EpoxyModelClass(layout = R2.layout.item_bottom_sheet_radio)
 | 
				
			||||||
abstract class BottomSheetRadioActionItem : VectorEpoxyModel<BottomSheetRadioActionItem.Holder>() {
 | 
					abstract class BottomSheetRadioActionItem : VectorEpoxyModel<BottomSheetRadioActionItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,7 @@ import androidx.core.widget.ImageViewCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -39,7 +40,7 @@ import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A room preview for bottom sheet.
 | 
					 * A room preview for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_bottom_sheet_room_preview)
 | 
					@EpoxyModelClass(layout = R2.layout.item_bottom_sheet_room_preview)
 | 
				
			||||||
abstract class BottomSheetRoomPreviewItem : VectorEpoxyModel<BottomSheetRoomPreviewItem.Holder>() {
 | 
					abstract class BottomSheetRoomPreviewItem : VectorEpoxyModel<BottomSheetRoomPreviewItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
					    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
				
			||||||
 | 
				
			|||||||
@ -23,13 +23,14 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A send state for bottom sheet.
 | 
					 * A send state for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_bottom_sheet_message_status)
 | 
					@EpoxyModelClass(layout = R2.layout.item_bottom_sheet_message_status)
 | 
				
			||||||
abstract class BottomSheetSendStateItem : VectorEpoxyModel<BottomSheetSendStateItem.Holder>() {
 | 
					abstract class BottomSheetSendStateItem : VectorEpoxyModel<BottomSheetSendStateItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -24,6 +24,7 @@ import androidx.core.widget.ImageViewCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -33,7 +34,7 @@ import im.vector.app.features.home.AvatarRenderer
 | 
				
			|||||||
import im.vector.app.features.themes.ThemeUtils
 | 
					import im.vector.app.features.themes.ThemeUtils
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_profile_action)
 | 
					@EpoxyModelClass(layout = R2.layout.item_profile_action)
 | 
				
			||||||
abstract class ProfileActionItem : VectorEpoxyModel<ProfileActionItem.Holder>() {
 | 
					abstract class ProfileActionItem : VectorEpoxyModel<ProfileActionItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -22,11 +22,12 @@ import android.widget.ImageView
 | 
				
			|||||||
import android.widget.TextView
 | 
					import android.widget.TextView
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.ui.views.PresenceStateImageView
 | 
					import im.vector.app.core.ui.views.PresenceStateImageView
 | 
				
			||||||
import im.vector.app.core.ui.views.ShieldImageView
 | 
					import im.vector.app.core.ui.views.ShieldImageView
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_profile_matrix_item)
 | 
					@EpoxyModelClass(layout = R2.layout.item_profile_matrix_item)
 | 
				
			||||||
abstract class ProfileMatrixItem : BaseProfileMatrixItem<ProfileMatrixItem.Holder>() {
 | 
					abstract class ProfileMatrixItem : BaseProfileMatrixItem<ProfileMatrixItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    open class Holder : VectorEpoxyHolder() {
 | 
					    open class Holder : VectorEpoxyHolder() {
 | 
				
			||||||
 | 
				
			|||||||
@ -20,10 +20,10 @@ package im.vector.app.core.epoxy.profiles
 | 
				
			|||||||
import androidx.core.view.isVisible
 | 
					import androidx.core.view.isVisible
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_profile_matrix_item)
 | 
					@EpoxyModelClass(layout = R2.layout.item_profile_matrix_item)
 | 
				
			||||||
abstract class ProfileMatrixItemWithPowerLevel : ProfileMatrixItem() {
 | 
					abstract class ProfileMatrixItemWithPowerLevel : ProfileMatrixItem() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var ignoredUser: Boolean = false
 | 
					    @EpoxyAttribute var ignoredUser: Boolean = false
 | 
				
			||||||
 | 
				
			|||||||
@ -19,10 +19,10 @@ package im.vector.app.core.epoxy.profiles
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R2
 | 
				
			||||||
import org.matrix.android.sdk.api.session.presence.model.UserPresence
 | 
					import org.matrix.android.sdk.api.session.presence.model.UserPresence
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_profile_matrix_item)
 | 
					@EpoxyModelClass(layout = R2.layout.item_profile_matrix_item)
 | 
				
			||||||
abstract class ProfileMatrixItemWithPowerLevelWithPresence : ProfileMatrixItemWithPowerLevel() {
 | 
					abstract class ProfileMatrixItemWithPowerLevelWithPresence : ProfileMatrixItemWithPowerLevel() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var showPresence: Boolean = true
 | 
					    @EpoxyAttribute var showPresence: Boolean = true
 | 
				
			||||||
 | 
				
			|||||||
@ -21,9 +21,9 @@ import android.widget.ProgressBar
 | 
				
			|||||||
import androidx.core.view.isVisible
 | 
					import androidx.core.view.isVisible
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_profile_matrix_item_progress)
 | 
					@EpoxyModelClass(layout = R2.layout.item_profile_matrix_item_progress)
 | 
				
			||||||
abstract class ProfileMatrixItemWithProgress : BaseProfileMatrixItem<ProfileMatrixItemWithProgress.Holder>() {
 | 
					abstract class ProfileMatrixItemWithProgress : BaseProfileMatrixItem<ProfileMatrixItemWithProgress.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var inProgress: Boolean = true
 | 
					    @EpoxyAttribute var inProgress: Boolean = true
 | 
				
			||||||
@ -34,6 +34,6 @@ abstract class ProfileMatrixItemWithProgress : BaseProfileMatrixItem<ProfileMatr
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Holder : ProfileMatrixItem.Holder() {
 | 
					    class Holder : ProfileMatrixItem.Holder() {
 | 
				
			||||||
        val progress by bind<ProgressBar>(R.id.matrixItemProgress)
 | 
					        val progress by bind<ProgressBar>(R2.id.matrixItemProgress)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -20,10 +20,11 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_profile_section)
 | 
					@EpoxyModelClass(layout = R2.layout.item_profile_section)
 | 
				
			||||||
abstract class ProfileSectionItem : VectorEpoxyModel<ProfileSectionItem.Holder>() {
 | 
					abstract class ProfileSectionItem : VectorEpoxyModel<ProfileSectionItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -20,12 +20,13 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.extensions.setTextWithColoredPart
 | 
					import im.vector.app.core.extensions.setTextWithColoredPart
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_notifications_footer)
 | 
					@EpoxyModelClass(layout = R2.layout.item_notifications_footer)
 | 
				
			||||||
abstract class NotificationSettingsFooterItem : VectorEpoxyModel<NotificationSettingsFooterItem.Holder>() {
 | 
					abstract class NotificationSettingsFooterItem : VectorEpoxyModel<NotificationSettingsFooterItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,13 +23,14 @@ import androidx.core.content.ContextCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.setAttributeTintedImageResource
 | 
					import im.vector.app.core.extensions.setAttributeTintedImageResource
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_radio)
 | 
					@EpoxyModelClass(layout = R2.layout.item_radio)
 | 
				
			||||||
abstract class RadioButtonItem : VectorEpoxyModel<RadioButtonItem.Holder>() {
 | 
					abstract class RadioButtonItem : VectorEpoxyModel<RadioButtonItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,10 +21,11 @@ import androidx.annotation.StringRes
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_text_header)
 | 
					@EpoxyModelClass(layout = R2.layout.item_text_header)
 | 
				
			||||||
abstract class TextHeaderItem : VectorEpoxyModel<TextHeaderItem.Holder>() {
 | 
					abstract class TextHeaderItem : VectorEpoxyModel<TextHeaderItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -24,6 +24,7 @@ import android.widget.FrameLayout
 | 
				
			|||||||
import androidx.core.view.isInvisible
 | 
					import androidx.core.view.isInvisible
 | 
				
			||||||
import androidx.core.view.isVisible
 | 
					import androidx.core.view.isVisible
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.databinding.ViewButtonStateBinding
 | 
					import im.vector.app.databinding.ViewButtonStateBinding
 | 
				
			||||||
@ -48,7 +49,7 @@ class ButtonStateView @JvmOverloads constructor(context: Context, attrs: Attribu
 | 
				
			|||||||
    private val views: ViewButtonStateBinding
 | 
					    private val views: ViewButtonStateBinding
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    init {
 | 
					    init {
 | 
				
			||||||
        inflate(context, R.layout.view_button_state, this)
 | 
					        inflate(context, R2.layout.view_button_state, this)
 | 
				
			||||||
        views = ViewButtonStateBinding.bind(this)
 | 
					        views = ViewButtonStateBinding.bind(this)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        layoutParams = LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
 | 
					        layoutParams = LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
 | 
				
			||||||
@ -66,7 +67,7 @@ class ButtonStateView @JvmOverloads constructor(context: Context, attrs: Attribu
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
                .apply {
 | 
					                .apply {
 | 
				
			||||||
                    try {
 | 
					                    try {
 | 
				
			||||||
                        if (getBoolean(R.styleable.ButtonStateView_bsv_use_flat_button, true)) {
 | 
					                        if (getBoolean(R2.styleable.ButtonStateView_bsv_use_flat_button, true)) {
 | 
				
			||||||
                            button = views.buttonStateButtonFlat
 | 
					                            button = views.buttonStateButtonFlat
 | 
				
			||||||
                            views.buttonStateButtonBig.isVisible = false
 | 
					                            views.buttonStateButtonBig.isVisible = false
 | 
				
			||||||
                        } else {
 | 
					                        } else {
 | 
				
			||||||
@ -74,8 +75,8 @@ class ButtonStateView @JvmOverloads constructor(context: Context, attrs: Attribu
 | 
				
			|||||||
                            views.buttonStateButtonFlat.isVisible = false
 | 
					                            views.buttonStateButtonFlat.isVisible = false
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        button.text = getString(R.styleable.ButtonStateView_bsv_button_text)
 | 
					                        button.text = getString(R2.styleable.ButtonStateView_bsv_button_text)
 | 
				
			||||||
                        views.buttonStateLoaded.setImageDrawable(getDrawable(R.styleable.ButtonStateView_bsv_loaded_image_src))
 | 
					                        views.buttonStateLoaded.setImageDrawable(getDrawable(R2.styleable.ButtonStateView_bsv_loaded_image_src))
 | 
				
			||||||
                    } finally {
 | 
					                    } finally {
 | 
				
			||||||
                        recycle()
 | 
					                        recycle()
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,7 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
@ -27,7 +28,7 @@ import im.vector.app.core.extensions.setTextOrHide
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A title for bottom sheet, with an optional subtitle. It does not include the bottom separator.
 | 
					 * A title for bottom sheet, with an optional subtitle. It does not include the bottom separator.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_bottom_sheet_title)
 | 
					@EpoxyModelClass(layout = R2.layout.item_bottom_sheet_title)
 | 
				
			||||||
abstract class BottomSheetTitleItem : VectorEpoxyModel<BottomSheetTitleItem.Holder>() {
 | 
					abstract class BottomSheetTitleItem : VectorEpoxyModel<BottomSheetTitleItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -24,6 +24,7 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.google.android.material.button.MaterialButton
 | 
					import com.google.android.material.button.MaterialButton
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -33,7 +34,7 @@ import im.vector.app.features.themes.ThemeUtils
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic button list item.
 | 
					 * A generic button list item.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_button)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_button)
 | 
				
			||||||
abstract class GenericButtonItem : VectorEpoxyModel<GenericButtonItem.Holder>() {
 | 
					abstract class GenericButtonItem : VectorEpoxyModel<GenericButtonItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ import androidx.core.widget.ImageViewCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
@ -35,7 +36,7 @@ import im.vector.app.core.extensions.setTextOrHide
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic list item to display when there is no results, with an optional CTA.
 | 
					 * A generic list item to display when there is no results, with an optional CTA.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_empty_state)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_empty_state)
 | 
				
			||||||
abstract class GenericEmptyWithActionItem : VectorEpoxyModel<GenericEmptyWithActionItem.Holder>() {
 | 
					abstract class GenericEmptyWithActionItem : VectorEpoxyModel<GenericEmptyWithActionItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,7 @@ import androidx.annotation.ColorInt
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -35,7 +36,7 @@ import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
				
			|||||||
 * Can display an accessory on the right, that can be an image or an indeterminate progress.
 | 
					 * Can display an accessory on the right, that can be an image or an indeterminate progress.
 | 
				
			||||||
 * If provided with an action, will display a button at the bottom of the list item.
 | 
					 * If provided with an action, will display a button at the bottom of the list item.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_footer)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_footer)
 | 
				
			||||||
abstract class GenericFooterItem : VectorEpoxyModel<GenericFooterItem.Holder>() {
 | 
					abstract class GenericFooterItem : VectorEpoxyModel<GenericFooterItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,7 @@ import androidx.annotation.ColorInt
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
@ -28,7 +29,7 @@ import im.vector.app.features.themes.ThemeUtils
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic list item header left aligned with notice color.
 | 
					 * A generic list item header left aligned with notice color.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_header)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_header)
 | 
				
			||||||
abstract class GenericHeaderItem : VectorEpoxyModel<GenericHeaderItem.Holder>() {
 | 
					abstract class GenericHeaderItem : VectorEpoxyModel<GenericHeaderItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,7 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -38,7 +39,7 @@ import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
				
			|||||||
 * Can display an accessory on the right, that can be an image or an indeterminate progress.
 | 
					 * Can display an accessory on the right, that can be an image or an indeterminate progress.
 | 
				
			||||||
 * If provided with an action, will display a button at the bottom of the list item.
 | 
					 * If provided with an action, will display a button at the bottom of the list item.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_list)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_list)
 | 
				
			||||||
abstract class GenericItem : VectorEpoxyModel<GenericItem.Holder>() {
 | 
					abstract class GenericItem : VectorEpoxyModel<GenericItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -18,13 +18,14 @@ package im.vector.app.core.ui.list
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic list item header left aligned with notice color.
 | 
					 * A generic list item header left aligned with notice color.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_loader)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_loader)
 | 
				
			||||||
abstract class GenericLoaderItem : VectorEpoxyModel<GenericLoaderItem.Holder>() {
 | 
					abstract class GenericLoaderItem : VectorEpoxyModel<GenericLoaderItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Maybe/Later add some style configuration, SMALL/BIG ?
 | 
					    // Maybe/Later add some style configuration, SMALL/BIG ?
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,7 @@ import androidx.core.widget.ImageViewCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -36,7 +37,7 @@ import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic list item with a rounded corner background and an optional icon.
 | 
					 * A generic list item with a rounded corner background and an optional icon.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_pill_footer)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_pill_footer)
 | 
				
			||||||
abstract class GenericPillItem : VectorEpoxyModel<GenericPillItem.Holder>() {
 | 
					abstract class GenericPillItem : VectorEpoxyModel<GenericPillItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,7 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.google.android.material.button.MaterialButton
 | 
					import com.google.android.material.button.MaterialButton
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -29,7 +30,7 @@ import im.vector.app.core.epoxy.onClick
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic button list item.
 | 
					 * A generic button list item.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_positive_button)
 | 
					@EpoxyModelClass(layout = R2.layout.item_positive_button)
 | 
				
			||||||
abstract class GenericPositiveButtonItem : VectorEpoxyModel<GenericPositiveButtonItem.Holder>() {
 | 
					abstract class GenericPositiveButtonItem : VectorEpoxyModel<GenericPositiveButtonItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -19,13 +19,14 @@ import android.widget.ProgressBar
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic progress bar item.
 | 
					 * A generic progress bar item.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_progress)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_progress)
 | 
				
			||||||
abstract class GenericProgressBarItem : VectorEpoxyModel<GenericProgressBarItem.Holder>() {
 | 
					abstract class GenericProgressBarItem : VectorEpoxyModel<GenericProgressBarItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -24,6 +24,7 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -38,7 +39,7 @@ import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
				
			|||||||
 * Can display an accessory on the right, that can be an image or an indeterminate progress.
 | 
					 * Can display an accessory on the right, that can be an image or an indeterminate progress.
 | 
				
			||||||
 * If provided with an action, will display a button at the bottom of the list item.
 | 
					 * If provided with an action, will display a button at the bottom of the list item.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_generic_with_value)
 | 
					@EpoxyModelClass(layout = R2.layout.item_generic_with_value)
 | 
				
			||||||
abstract class GenericWithValueItem : VectorEpoxyModel<GenericWithValueItem.Holder>() {
 | 
					abstract class GenericWithValueItem : VectorEpoxyModel<GenericWithValueItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -20,13 +20,14 @@ import androidx.core.view.updateLayoutParams
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A generic item with empty space.
 | 
					 * A generic item with empty space.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_vertical_margin)
 | 
					@EpoxyModelClass(layout = R2.layout.item_vertical_margin)
 | 
				
			||||||
abstract class VerticalMarginItem : VectorEpoxyModel<VerticalMarginItem.Holder>() {
 | 
					abstract class VerticalMarginItem : VectorEpoxyModel<VerticalMarginItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.bumptech.glide.Glide
 | 
					import com.bumptech.glide.Glide
 | 
				
			||||||
import com.bumptech.glide.request.RequestOptions
 | 
					import com.bumptech.glide.request.RequestOptions
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.platform.CheckableImageView
 | 
					import im.vector.app.core.platform.CheckableImageView
 | 
				
			||||||
@ -42,7 +42,7 @@ abstract class AttachmentPreviewItem<H : AttachmentPreviewItem.Holder> : VectorE
 | 
				
			|||||||
                    .apply(RequestOptions().frame(0))
 | 
					                    .apply(RequestOptions().frame(0))
 | 
				
			||||||
                    .into(holder.imageView)
 | 
					                    .into(holder.imageView)
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            holder.imageView.setImageResource(R.drawable.filetype_attachment)
 | 
					            holder.imageView.setImageResource(R2.drawable.filetype_attachment)
 | 
				
			||||||
            holder.imageView.scaleType = ImageView.ScaleType.FIT_CENTER
 | 
					            holder.imageView.scaleType = ImageView.ScaleType.FIT_CENTER
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -52,7 +52,7 @@ abstract class AttachmentPreviewItem<H : AttachmentPreviewItem.Holder> : VectorE
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_attachment_miniature_preview)
 | 
					@EpoxyModelClass(layout = R2.layout.item_attachment_miniature_preview)
 | 
				
			||||||
abstract class AttachmentMiniaturePreviewItem : AttachmentPreviewItem<AttachmentMiniaturePreviewItem.Holder>() {
 | 
					abstract class AttachmentMiniaturePreviewItem : AttachmentPreviewItem<AttachmentMiniaturePreviewItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute override lateinit var attachment: ContentAttachmentData
 | 
					    @EpoxyAttribute override lateinit var attachment: ContentAttachmentData
 | 
				
			||||||
@ -73,12 +73,12 @@ abstract class AttachmentMiniaturePreviewItem : AttachmentPreviewItem<Attachment
 | 
				
			|||||||
    class Holder : AttachmentPreviewItem.Holder() {
 | 
					    class Holder : AttachmentPreviewItem.Holder() {
 | 
				
			||||||
        override val imageView: CheckableImageView
 | 
					        override val imageView: CheckableImageView
 | 
				
			||||||
            get() = miniatureImageView
 | 
					            get() = miniatureImageView
 | 
				
			||||||
        private val miniatureImageView by bind<CheckableImageView>(R.id.attachmentMiniatureImageView)
 | 
					        private val miniatureImageView by bind<CheckableImageView>(R2.id.attachmentMiniatureImageView)
 | 
				
			||||||
        val miniatureVideoIndicator by bind<ImageView>(R.id.attachmentMiniatureVideoIndicator)
 | 
					        val miniatureVideoIndicator by bind<ImageView>(R2.id.attachmentMiniatureVideoIndicator)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_attachment_big_preview)
 | 
					@EpoxyModelClass(layout = R2.layout.item_attachment_big_preview)
 | 
				
			||||||
abstract class AttachmentBigPreviewItem : AttachmentPreviewItem<AttachmentBigPreviewItem.Holder>() {
 | 
					abstract class AttachmentBigPreviewItem : AttachmentPreviewItem<AttachmentBigPreviewItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute override lateinit var attachment: ContentAttachmentData
 | 
					    @EpoxyAttribute override lateinit var attachment: ContentAttachmentData
 | 
				
			||||||
@ -86,6 +86,6 @@ abstract class AttachmentBigPreviewItem : AttachmentPreviewItem<AttachmentBigPre
 | 
				
			|||||||
    class Holder : AttachmentPreviewItem.Holder() {
 | 
					    class Holder : AttachmentPreviewItem.Holder() {
 | 
				
			||||||
        override val imageView: ImageView
 | 
					        override val imageView: ImageView
 | 
				
			||||||
            get() = bigImageView
 | 
					            get() = bigImageView
 | 
				
			||||||
        private val bigImageView by bind<ImageView>(R.id.attachmentBigImageView)
 | 
					        private val bigImageView by bind<ImageView>(R2.id.attachmentBigImageView)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -20,10 +20,11 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_autocomplete_header_item)
 | 
					@EpoxyModelClass(layout = R2.layout.item_autocomplete_header_item)
 | 
				
			||||||
abstract class AutocompleteHeaderItem : VectorEpoxyModel<AutocompleteHeaderItem.Holder>() {
 | 
					abstract class AutocompleteHeaderItem : VectorEpoxyModel<AutocompleteHeaderItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var title: String? = null
 | 
					    @EpoxyAttribute var title: String? = null
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,7 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -30,7 +31,7 @@ import im.vector.app.features.displayname.getBestName
 | 
				
			|||||||
import im.vector.app.features.home.AvatarRenderer
 | 
					import im.vector.app.features.home.AvatarRenderer
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_autocomplete_matrix_item)
 | 
					@EpoxyModelClass(layout = R2.layout.item_autocomplete_matrix_item)
 | 
				
			||||||
abstract class AutocompleteMatrixItem : VectorEpoxyModel<AutocompleteMatrixItem.Holder>() {
 | 
					abstract class AutocompleteMatrixItem : VectorEpoxyModel<AutocompleteMatrixItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
					    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
				
			||||||
 | 
				
			|||||||
@ -20,12 +20,13 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_autocomplete_command)
 | 
					@EpoxyModelClass(layout = R2.layout.item_autocomplete_command)
 | 
				
			||||||
abstract class AutocompleteCommandItem : VectorEpoxyModel<AutocompleteCommandItem.Holder>() {
 | 
					abstract class AutocompleteCommandItem : VectorEpoxyModel<AutocompleteCommandItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,7 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -28,7 +29,7 @@ import im.vector.app.core.epoxy.onClick
 | 
				
			|||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
import im.vector.app.features.reactions.data.EmojiItem
 | 
					import im.vector.app.features.reactions.data.EmojiItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_autocomplete_emoji)
 | 
					@EpoxyModelClass(layout = R2.layout.item_autocomplete_emoji)
 | 
				
			||||||
abstract class AutocompleteEmojiItem : VectorEpoxyModel<AutocompleteEmojiItem.Holder>() {
 | 
					abstract class AutocompleteEmojiItem : VectorEpoxyModel<AutocompleteEmojiItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -18,10 +18,11 @@ package im.vector.app.features.autocomplete.emoji
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_autocomplete_more_result)
 | 
					@EpoxyModelClass(layout = R2.layout.item_autocomplete_more_result)
 | 
				
			||||||
abstract class AutocompleteMoreResultItem : VectorEpoxyModel<AutocompleteMoreResultItem.Holder>() {
 | 
					abstract class AutocompleteMoreResultItem : VectorEpoxyModel<AutocompleteMoreResultItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Holder : VectorEpoxyHolder()
 | 
					    class Holder : VectorEpoxyHolder()
 | 
				
			||||||
 | 
				
			|||||||
@ -20,13 +20,14 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_contact_detail)
 | 
					@EpoxyModelClass(layout = R2.layout.item_contact_detail)
 | 
				
			||||||
abstract class ContactDetailItem : VectorEpoxyModel<ContactDetailItem.Holder>() {
 | 
					abstract class ContactDetailItem : VectorEpoxyModel<ContactDetailItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var threePid: String
 | 
					    @EpoxyAttribute lateinit var threePid: String
 | 
				
			||||||
 | 
				
			|||||||
@ -21,12 +21,13 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.contacts.MappedContact
 | 
					import im.vector.app.core.contacts.MappedContact
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.features.home.AvatarRenderer
 | 
					import im.vector.app.features.home.AvatarRenderer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_contact_main)
 | 
					@EpoxyModelClass(layout = R2.layout.item_contact_main)
 | 
				
			||||||
abstract class ContactItem : VectorEpoxyModel<ContactItem.Holder>() {
 | 
					abstract class ContactItem : VectorEpoxyModel<ContactItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
					    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
				
			||||||
 | 
				
			|||||||
@ -21,13 +21,14 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_keys_backup_settings_button_footer)
 | 
					@EpoxyModelClass(layout = R2.layout.item_keys_backup_settings_button_footer)
 | 
				
			||||||
abstract class KeysBackupSettingFooterItem : VectorEpoxyModel<KeysBackupSettingFooterItem.Holder>() {
 | 
					abstract class KeysBackupSettingFooterItem : VectorEpoxyModel<KeysBackupSettingFooterItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -18,13 +18,14 @@ package im.vector.app.features.crypto.verification.epoxy
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_wait)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_wait)
 | 
				
			||||||
abstract class BottomSheetSelfWaitItem : VectorEpoxyModel<BottomSheetSelfWaitItem.Holder>() {
 | 
					abstract class BottomSheetSelfWaitItem : VectorEpoxyModel<BottomSheetSelfWaitItem.Holder>() {
 | 
				
			||||||
    class Holder : VectorEpoxyHolder()
 | 
					    class Holder : VectorEpoxyHolder()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,7 @@ import androidx.core.widget.ImageViewCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -34,7 +35,7 @@ import im.vector.app.core.extensions.setTextOrHide
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_action)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_action)
 | 
				
			||||||
abstract class BottomSheetVerificationActionItem : VectorEpoxyModel<BottomSheetVerificationActionItem.Holder>() {
 | 
					abstract class BottomSheetVerificationActionItem : VectorEpoxyModel<BottomSheetVerificationActionItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@ package im.vector.app.features.crypto.verification.epoxy
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.ui.views.ShieldImageView
 | 
					import im.vector.app.core.ui.views.ShieldImageView
 | 
				
			||||||
@ -27,7 +28,7 @@ import org.matrix.android.sdk.api.session.crypto.model.RoomEncryptionTrustLevel
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_big_image)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_big_image)
 | 
				
			||||||
abstract class BottomSheetVerificationBigImageItem : VectorEpoxyModel<BottomSheetVerificationBigImageItem.Holder>() {
 | 
					abstract class BottomSheetVerificationBigImageItem : VectorEpoxyModel<BottomSheetVerificationBigImageItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -20,13 +20,14 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_decimal_code)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_decimal_code)
 | 
				
			||||||
abstract class BottomSheetVerificationDecimalCodeItem : VectorEpoxyModel<BottomSheetVerificationDecimalCodeItem.Holder>() {
 | 
					abstract class BottomSheetVerificationDecimalCodeItem : VectorEpoxyModel<BottomSheetVerificationDecimalCodeItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.databinding.ItemEmojiVerifBinding
 | 
					import im.vector.app.databinding.ItemEmojiVerifBinding
 | 
				
			||||||
@ -34,7 +35,7 @@ import org.matrix.android.sdk.api.session.crypto.verification.EmojiRepresentatio
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A emoji list for bottom sheet.
 | 
					 * A emoji list for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_emojis)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_emojis)
 | 
				
			||||||
abstract class BottomSheetVerificationEmojisItem : VectorEpoxyModel<BottomSheetVerificationEmojisItem.Holder>() {
 | 
					abstract class BottomSheetVerificationEmojisItem : VectorEpoxyModel<BottomSheetVerificationEmojisItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var emojiRepresentation0: EmojiRepresentation
 | 
					    @EpoxyAttribute lateinit var emojiRepresentation0: EmojiRepresentation
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,7 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
					import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
				
			||||||
@ -27,7 +28,7 @@ import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_notice)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_notice)
 | 
				
			||||||
abstract class BottomSheetVerificationNoticeItem : VectorEpoxyModel<BottomSheetVerificationNoticeItem.Holder>() {
 | 
					abstract class BottomSheetVerificationNoticeItem : VectorEpoxyModel<BottomSheetVerificationNoticeItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@ package im.vector.app.features.crypto.verification.epoxy
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.ui.views.QrCodeImageView
 | 
					import im.vector.app.core.ui.views.QrCodeImageView
 | 
				
			||||||
@ -26,7 +27,7 @@ import im.vector.app.core.ui.views.QrCodeImageView
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * An Epoxy item displaying a QR code.
 | 
					 * An Epoxy item displaying a QR code.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_qr_code)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_qr_code)
 | 
				
			||||||
abstract class BottomSheetVerificationQrCodeItem : VectorEpoxyModel<BottomSheetVerificationQrCodeItem.Holder>() {
 | 
					abstract class BottomSheetVerificationQrCodeItem : VectorEpoxyModel<BottomSheetVerificationQrCodeItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -20,13 +20,14 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A action for bottom sheet.
 | 
					 * A action for bottom sheet.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_verification_waiting)
 | 
					@EpoxyModelClass(layout = R2.layout.item_verification_waiting)
 | 
				
			||||||
abstract class BottomSheetVerificationWaitingItem : VectorEpoxyModel<BottomSheetVerificationWaitingItem.Holder>() {
 | 
					abstract class BottomSheetVerificationWaitingItem : VectorEpoxyModel<BottomSheetVerificationWaitingItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,12 +21,13 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_discovery_policy)
 | 
					@EpoxyModelClass(layout = R2.layout.item_discovery_policy)
 | 
				
			||||||
abstract class DiscoveryPolicyItem : EpoxyModelWithHolder<DiscoveryPolicyItem.Holder>() {
 | 
					abstract class DiscoveryPolicyItem : EpoxyModelWithHolder<DiscoveryPolicyItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,7 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.attributes.ButtonStyle
 | 
					import im.vector.app.core.epoxy.attributes.ButtonStyle
 | 
				
			||||||
@ -28,7 +29,7 @@ import im.vector.app.core.epoxy.onClick
 | 
				
			|||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
import im.vector.app.core.resources.ColorProvider
 | 
					import im.vector.app.core.resources.ColorProvider
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_button)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_button)
 | 
				
			||||||
abstract class SettingsButtonItem : EpoxyModelWithHolder<SettingsButtonItem.Holder>() {
 | 
					abstract class SettingsButtonItem : EpoxyModelWithHolder<SettingsButtonItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,9 +21,10 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_centered_image)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_centered_image)
 | 
				
			||||||
abstract class SettingsCenteredImageItem : EpoxyModelWithHolder<SettingsCenteredImageItem.Holder>() {
 | 
					abstract class SettingsCenteredImageItem : EpoxyModelWithHolder<SettingsCenteredImageItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -20,11 +20,12 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_continue_cancel)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_continue_cancel)
 | 
				
			||||||
abstract class SettingsContinueCancelItem : EpoxyModelWithHolder<SettingsContinueCancelItem.Holder>() {
 | 
					abstract class SettingsContinueCancelItem : EpoxyModelWithHolder<SettingsContinueCancelItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -25,11 +25,12 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import com.google.android.material.textfield.TextInputLayout
 | 
					import com.google.android.material.textfield.TextInputLayout
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
import im.vector.app.core.extensions.showKeyboard
 | 
					import im.vector.app.core.extensions.showKeyboard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_edit_text)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_edit_text)
 | 
				
			||||||
abstract class SettingsEditTextItem : EpoxyModelWithHolder<SettingsEditTextItem.Holder>() {
 | 
					abstract class SettingsEditTextItem : EpoxyModelWithHolder<SettingsEditTextItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var hint: String? = null
 | 
					    @EpoxyAttribute var hint: String? = null
 | 
				
			||||||
 | 
				
			|||||||
@ -22,12 +22,13 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_helper_info)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_helper_info)
 | 
				
			||||||
abstract class SettingsInfoItem : EpoxyModelWithHolder<SettingsInfoItem.Holder>() {
 | 
					abstract class SettingsInfoItem : EpoxyModelWithHolder<SettingsInfoItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,9 +21,10 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_information)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_information)
 | 
				
			||||||
abstract class SettingsInformationItem : EpoxyModelWithHolder<SettingsInformationItem.Holder>() {
 | 
					abstract class SettingsInformationItem : EpoxyModelWithHolder<SettingsInformationItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,12 +23,13 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import com.google.android.material.switchmaterial.SwitchMaterial
 | 
					import com.google.android.material.switchmaterial.SwitchMaterial
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_simple_item)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_simple_item)
 | 
				
			||||||
abstract class SettingsItem : EpoxyModelWithHolder<SettingsItem.Holder>() {
 | 
					abstract class SettingsItem : EpoxyModelWithHolder<SettingsItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -18,9 +18,10 @@ package im.vector.app.features.discovery
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_progress)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_progress)
 | 
				
			||||||
abstract class SettingsProgressItem : EpoxyModelWithHolder<SettingsProgressItem.Holder>() {
 | 
					abstract class SettingsProgressItem : EpoxyModelWithHolder<SettingsProgressItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Holder : VectorEpoxyHolder()
 | 
					    class Holder : VectorEpoxyHolder()
 | 
				
			||||||
 | 
				
			|||||||
@ -21,10 +21,11 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_section_title)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_section_title)
 | 
				
			||||||
abstract class SettingsSectionTitleItem : EpoxyModelWithHolder<SettingsSectionTitleItem.Holder>() {
 | 
					abstract class SettingsSectionTitleItem : EpoxyModelWithHolder<SettingsSectionTitleItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -28,6 +28,7 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import com.google.android.material.switchmaterial.SwitchMaterial
 | 
					import com.google.android.material.switchmaterial.SwitchMaterial
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.attributes.ButtonStyle
 | 
					import im.vector.app.core.epoxy.attributes.ButtonStyle
 | 
				
			||||||
@ -39,7 +40,7 @@ import im.vector.app.core.resources.ColorProvider
 | 
				
			|||||||
import im.vector.app.core.resources.StringProvider
 | 
					import im.vector.app.core.resources.StringProvider
 | 
				
			||||||
import im.vector.app.features.themes.ThemeUtils
 | 
					import im.vector.app.features.themes.ThemeUtils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_settings_button_single_line)
 | 
					@EpoxyModelClass(layout = R2.layout.item_settings_button_single_line)
 | 
				
			||||||
abstract class SettingsTextButtonSingleLineItem : EpoxyModelWithHolder<SettingsTextButtonSingleLineItem.Holder>() {
 | 
					abstract class SettingsTextButtonSingleLineItem : EpoxyModelWithHolder<SettingsTextButtonSingleLineItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -22,13 +22,14 @@ import androidx.core.graphics.drawable.DrawableCompat
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.features.themes.ThemeUtils
 | 
					import im.vector.app.features.themes.ThemeUtils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_form_advanced_toggle)
 | 
					@EpoxyModelClass(layout = R2.layout.item_form_advanced_toggle)
 | 
				
			||||||
abstract class FormAdvancedToggleItem : VectorEpoxyModel<FormAdvancedToggleItem.Holder>() {
 | 
					abstract class FormAdvancedToggleItem : VectorEpoxyModel<FormAdvancedToggleItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var title: String
 | 
					    @EpoxyAttribute lateinit var title: String
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.google.android.material.textfield.TextInputEditText
 | 
					import com.google.android.material.textfield.TextInputEditText
 | 
				
			||||||
import com.google.android.material.textfield.TextInputLayout
 | 
					import com.google.android.material.textfield.TextInputLayout
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.TextListener
 | 
					import im.vector.app.core.epoxy.TextListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -34,7 +35,7 @@ import im.vector.app.core.epoxy.addTextChangedListenerOnce
 | 
				
			|||||||
import im.vector.app.core.epoxy.setValueOnce
 | 
					import im.vector.app.core.epoxy.setValueOnce
 | 
				
			||||||
import im.vector.app.core.platform.SimpleTextWatcher
 | 
					import im.vector.app.core.platform.SimpleTextWatcher
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_form_text_input)
 | 
					@EpoxyModelClass(layout = R2.layout.item_form_text_input)
 | 
				
			||||||
abstract class FormEditTextItem : VectorEpoxyModel<FormEditTextItem.Holder>() {
 | 
					abstract class FormEditTextItem : VectorEpoxyModel<FormEditTextItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.google.android.material.textfield.TextInputEditText
 | 
					import com.google.android.material.textfield.TextInputEditText
 | 
				
			||||||
import com.google.android.material.textfield.TextInputLayout
 | 
					import com.google.android.material.textfield.TextInputLayout
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.TextListener
 | 
					import im.vector.app.core.epoxy.TextListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
@ -32,7 +33,7 @@ import im.vector.app.core.epoxy.onClick
 | 
				
			|||||||
import im.vector.app.core.epoxy.setValueOnce
 | 
					import im.vector.app.core.epoxy.setValueOnce
 | 
				
			||||||
import im.vector.app.core.platform.SimpleTextWatcher
 | 
					import im.vector.app.core.platform.SimpleTextWatcher
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_form_text_input_with_button)
 | 
					@EpoxyModelClass(layout = R2.layout.item_form_text_input_with_button)
 | 
				
			||||||
abstract class FormEditTextWithButtonItem : VectorEpoxyModel<FormEditTextWithButtonItem.Holder>() {
 | 
					abstract class FormEditTextWithButtonItem : VectorEpoxyModel<FormEditTextWithButtonItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,7 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.google.android.material.textfield.TextInputEditText
 | 
					import com.google.android.material.textfield.TextInputEditText
 | 
				
			||||||
import com.google.android.material.textfield.TextInputLayout
 | 
					import com.google.android.material.textfield.TextInputLayout
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.TextListener
 | 
					import im.vector.app.core.epoxy.TextListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
@ -34,7 +35,7 @@ import im.vector.app.core.epoxy.onClick
 | 
				
			|||||||
import im.vector.app.core.extensions.setTextIfDifferent
 | 
					import im.vector.app.core.extensions.setTextIfDifferent
 | 
				
			||||||
import im.vector.app.core.platform.SimpleTextWatcher
 | 
					import im.vector.app.core.platform.SimpleTextWatcher
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_form_text_input_with_delete)
 | 
					@EpoxyModelClass(layout = R2.layout.item_form_text_input_with_delete)
 | 
				
			||||||
abstract class FormEditTextWithDeleteItem : VectorEpoxyModel<FormEditTextWithDeleteItem.Holder>() {
 | 
					abstract class FormEditTextWithDeleteItem : VectorEpoxyModel<FormEditTextWithDeleteItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -24,6 +24,7 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import com.bumptech.glide.request.RequestOptions
 | 
					import com.bumptech.glide.request.RequestOptions
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
@ -31,7 +32,7 @@ import im.vector.app.core.glide.GlideApp
 | 
				
			|||||||
import im.vector.app.features.home.AvatarRenderer
 | 
					import im.vector.app.features.home.AvatarRenderer
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_editable_avatar)
 | 
					@EpoxyModelClass(layout = R2.layout.item_editable_avatar)
 | 
				
			||||||
abstract class FormEditableAvatarItem : EpoxyModelWithHolder<FormEditableAvatarItem.Holder>() {
 | 
					abstract class FormEditableAvatarItem : EpoxyModelWithHolder<FormEditableAvatarItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ import com.bumptech.glide.load.MultiTransformation
 | 
				
			|||||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop
 | 
					import com.bumptech.glide.load.resource.bitmap.CenterCrop
 | 
				
			||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
 | 
					import com.bumptech.glide.load.resource.bitmap.RoundedCorners
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
@ -34,7 +35,7 @@ import im.vector.app.core.glide.GlideApp
 | 
				
			|||||||
import im.vector.app.features.home.AvatarRenderer
 | 
					import im.vector.app.features.home.AvatarRenderer
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_editable_square_avatar)
 | 
					@EpoxyModelClass(layout = R2.layout.item_editable_square_avatar)
 | 
				
			||||||
abstract class FormEditableSquareAvatarItem : EpoxyModelWithHolder<FormEditableSquareAvatarItem.Holder>() {
 | 
					abstract class FormEditableSquareAvatarItem : EpoxyModelWithHolder<FormEditableSquareAvatarItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			|||||||
import com.google.android.material.textfield.TextInputEditText
 | 
					import com.google.android.material.textfield.TextInputEditText
 | 
				
			||||||
import com.google.android.material.textfield.TextInputLayout
 | 
					import com.google.android.material.textfield.TextInputLayout
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.TextListener
 | 
					import im.vector.app.core.epoxy.TextListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -30,7 +31,7 @@ import im.vector.app.core.epoxy.addTextChangedListenerOnce
 | 
				
			|||||||
import im.vector.app.core.epoxy.setValueOnce
 | 
					import im.vector.app.core.epoxy.setValueOnce
 | 
				
			||||||
import im.vector.app.core.platform.SimpleTextWatcher
 | 
					import im.vector.app.core.platform.SimpleTextWatcher
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_form_multiline_text_input)
 | 
					@EpoxyModelClass(layout = R2.layout.item_form_multiline_text_input)
 | 
				
			||||||
abstract class FormMultiLineEditTextItem : VectorEpoxyModel<FormMultiLineEditTextItem.Holder>() {
 | 
					abstract class FormMultiLineEditTextItem : VectorEpoxyModel<FormMultiLineEditTextItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,12 +21,13 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_form_submit_button)
 | 
					@EpoxyModelClass(layout = R2.layout.item_form_submit_button)
 | 
				
			||||||
abstract class FormSubmitButtonItem : EpoxyModelWithHolder<FormSubmitButtonItem.Holder>() {
 | 
					abstract class FormSubmitButtonItem : EpoxyModelWithHolder<FormSubmitButtonItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -21,12 +21,13 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.google.android.material.switchmaterial.SwitchMaterial
 | 
					import com.google.android.material.switchmaterial.SwitchMaterial
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.epoxy.setValueOnce
 | 
					import im.vector.app.core.epoxy.setValueOnce
 | 
				
			||||||
import im.vector.app.core.extensions.setTextOrHide
 | 
					import im.vector.app.core.extensions.setTextOrHide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_form_switch)
 | 
					@EpoxyModelClass(layout = R2.layout.item_form_switch)
 | 
				
			||||||
abstract class FormSwitchItem : VectorEpoxyModel<FormSwitchItem.Holder>() {
 | 
					abstract class FormSwitchItem : VectorEpoxyModel<FormSwitchItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute
 | 
					    @EpoxyAttribute
 | 
				
			||||||
 | 
				
			|||||||
@ -22,6 +22,7 @@ import android.widget.TextView
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -30,7 +31,7 @@ import im.vector.app.core.platform.CheckableConstraintLayout
 | 
				
			|||||||
import im.vector.app.features.home.AvatarRenderer
 | 
					import im.vector.app.features.home.AvatarRenderer
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_group)
 | 
					@EpoxyModelClass(layout = R2.layout.item_group)
 | 
				
			||||||
abstract class GroupSummaryItem : VectorEpoxyModel<GroupSummaryItem.Holder>() {
 | 
					abstract class GroupSummaryItem : VectorEpoxyModel<GroupSummaryItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
					    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
				
			||||||
 | 
				
			|||||||
@ -26,6 +26,7 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -34,7 +35,7 @@ import im.vector.app.core.platform.CheckableConstraintLayout
 | 
				
			|||||||
import im.vector.app.features.home.room.list.UnreadCounterBadgeView
 | 
					import im.vector.app.features.home.room.list.UnreadCounterBadgeView
 | 
				
			||||||
import im.vector.app.features.themes.ThemeUtils
 | 
					import im.vector.app.features.themes.ThemeUtils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_space)
 | 
					@EpoxyModelClass(layout = R2.layout.item_space)
 | 
				
			||||||
abstract class HomeSpaceSummaryItem : VectorEpoxyModel<HomeSpaceSummaryItem.Holder>() {
 | 
					abstract class HomeSpaceSummaryItem : VectorEpoxyModel<HomeSpaceSummaryItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var selected: Boolean = false
 | 
					    @EpoxyAttribute var selected: Boolean = false
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@ import javax.inject.Inject
 | 
				
			|||||||
private val useAdaptiveIcon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
 | 
					private val useAdaptiveIcon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
 | 
				
			||||||
private const val adaptiveIconSizeDp = 108
 | 
					private const val adaptiveIconSizeDp = 108
 | 
				
			||||||
private const val adaptiveIconOuterSidesDp = 18
 | 
					private const val adaptiveIconOuterSidesDp = 18
 | 
				
			||||||
private const val directShareCategory = BuildConfig.APPLICATION_ID + ".SHORTCUT_SHARE"
 | 
					private val directShareCategory = BuildConfig.APPLICATION_ID + ".SHORTCUT_SHARE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ShortcutCreator @Inject constructor(
 | 
					class ShortcutCreator @Inject constructor(
 | 
				
			||||||
        private val context: Context,
 | 
					        private val context: Context,
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -32,7 +33,7 @@ import im.vector.app.features.home.AvatarRenderer
 | 
				
			|||||||
import im.vector.app.features.home.room.list.UnreadCounterBadgeView
 | 
					import im.vector.app.features.home.room.list.UnreadCounterBadgeView
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_breadcrumbs)
 | 
					@EpoxyModelClass(layout = R2.layout.item_breadcrumbs)
 | 
				
			||||||
abstract class BreadcrumbsItem : VectorEpoxyModel<BreadcrumbsItem.Holder>() {
 | 
					abstract class BreadcrumbsItem : VectorEpoxyModel<BreadcrumbsItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute var hasTypingUsers: Boolean = false
 | 
					    @EpoxyAttribute var hasTypingUsers: Boolean = false
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ import com.airbnb.mvrx.Success
 | 
				
			|||||||
import com.airbnb.mvrx.Uninitialized
 | 
					import com.airbnb.mvrx.Uninitialized
 | 
				
			||||||
import com.airbnb.mvrx.parentFragmentViewModel
 | 
					import com.airbnb.mvrx.parentFragmentViewModel
 | 
				
			||||||
import dagger.hilt.android.AndroidEntryPoint
 | 
					import dagger.hilt.android.AndroidEntryPoint
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.error.ErrorFormatter
 | 
					import im.vector.app.core.error.ErrorFormatter
 | 
				
			||||||
import im.vector.app.core.platform.ButtonStateView
 | 
					import im.vector.app.core.platform.ButtonStateView
 | 
				
			||||||
@ -64,7 +64,7 @@ class JoinReplacementRoomBottomSheet :
 | 
				
			|||||||
                Uninitialized,
 | 
					                Uninitialized,
 | 
				
			||||||
                is Loading -> {
 | 
					                is Loading -> {
 | 
				
			||||||
                    views.roomUpgradeButton.render(ButtonStateView.State.Loading)
 | 
					                    views.roomUpgradeButton.render(ButtonStateView.State.Loading)
 | 
				
			||||||
                    views.descriptionText.setText(R.string.it_may_take_some_time)
 | 
					                    views.descriptionText.setText(R2.string.it_may_take_some_time)
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                is Success -> {
 | 
					                is Success -> {
 | 
				
			||||||
                    views.roomUpgradeButton.render(ButtonStateView.State.Loaded)
 | 
					                    views.roomUpgradeButton.render(ButtonStateView.State.Loaded)
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
					import com.airbnb.epoxy.EpoxyModelWithHolder
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
@ -30,7 +31,7 @@ import im.vector.app.features.displayname.getBestName
 | 
				
			|||||||
import im.vector.app.features.home.AvatarRenderer
 | 
					import im.vector.app.features.home.AvatarRenderer
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_display_read_receipt)
 | 
					@EpoxyModelClass(layout = R2.layout.item_display_read_receipt)
 | 
				
			||||||
abstract class DisplayReadReceiptItem : EpoxyModelWithHolder<DisplayReadReceiptItem.Holder>() {
 | 
					abstract class DisplayReadReceiptItem : EpoxyModelWithHolder<DisplayReadReceiptItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var matrixItem: MatrixItem
 | 
					    @EpoxyAttribute lateinit var matrixItem: MatrixItem
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import androidx.core.view.isVisible
 | 
				
			|||||||
import com.airbnb.epoxy.EpoxyAttribute
 | 
					import com.airbnb.epoxy.EpoxyAttribute
 | 
				
			||||||
import com.airbnb.epoxy.EpoxyModelClass
 | 
					import com.airbnb.epoxy.EpoxyModelClass
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
					import im.vector.app.core.epoxy.VectorEpoxyHolder
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
@ -34,7 +35,7 @@ import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
 | 
				
			|||||||
import org.matrix.android.sdk.api.session.threads.ThreadDetails
 | 
					import org.matrix.android.sdk.api.session.threads.ThreadDetails
 | 
				
			||||||
import org.matrix.android.sdk.api.util.MatrixItem
 | 
					import org.matrix.android.sdk.api.util.MatrixItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EpoxyModelClass(layout = R.layout.item_search_result)
 | 
					@EpoxyModelClass(layout = R2.layout.item_search_result)
 | 
				
			||||||
abstract class SearchResultItem : VectorEpoxyModel<SearchResultItem.Holder>() {
 | 
					abstract class SearchResultItem : VectorEpoxyModel<SearchResultItem.Holder>() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
					    @EpoxyAttribute lateinit var avatarRenderer: AvatarRenderer
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ import android.text.style.ClickableSpan
 | 
				
			|||||||
import android.text.style.ForegroundColorSpan
 | 
					import android.text.style.ForegroundColorSpan
 | 
				
			||||||
import android.view.View
 | 
					import android.view.View
 | 
				
			||||||
import dagger.Lazy
 | 
					import dagger.Lazy
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
					import im.vector.app.core.epoxy.VectorEpoxyModel
 | 
				
			||||||
import im.vector.app.core.files.LocalFilesHelper
 | 
					import im.vector.app.core.files.LocalFilesHelper
 | 
				
			||||||
@ -179,7 +179,7 @@ class MessageItemFactory @Inject constructor(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        val messageContent = event.getLastMessageContent()
 | 
					        val messageContent = event.getLastMessageContent()
 | 
				
			||||||
        if (messageContent == null) {
 | 
					        if (messageContent == null) {
 | 
				
			||||||
            val malformedText = stringProvider.getString(R.string.malformed_message)
 | 
					            val malformedText = stringProvider.getString(R2.string.malformed_message)
 | 
				
			||||||
            return defaultItemFactory.create(malformedText, informationData, highlight, callback)
 | 
					            return defaultItemFactory.create(malformedText, informationData, highlight, callback)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (messageContent.relatesTo?.type == RelationType.REPLACE ||
 | 
					        if (messageContent.relatesTo?.type == RelationType.REPLACE ||
 | 
				
			||||||
@ -323,11 +323,11 @@ class MessageItemFactory @Inject constructor(
 | 
				
			|||||||
    ): String {
 | 
					    ): String {
 | 
				
			||||||
        val votes = pollResponseSummary?.totalVotes ?: 0
 | 
					        val votes = pollResponseSummary?.totalVotes ?: 0
 | 
				
			||||||
        return when {
 | 
					        return when {
 | 
				
			||||||
            pollState is Ended -> stringProvider.getQuantityString(R.plurals.poll_total_vote_count_after_ended, votes, votes)
 | 
					            pollState is Ended -> stringProvider.getQuantityString(R2.plurals.poll_total_vote_count_after_ended, votes, votes)
 | 
				
			||||||
            pollState is Undisclosed -> ""
 | 
					            pollState is Undisclosed -> ""
 | 
				
			||||||
            pollState is Voted -> stringProvider.getQuantityString(R.plurals.poll_total_vote_count_before_ended_and_voted, votes, votes)
 | 
					            pollState is Voted -> stringProvider.getQuantityString(R2.plurals.poll_total_vote_count_before_ended_and_voted, votes, votes)
 | 
				
			||||||
            votes == 0 -> stringProvider.getString(R.string.poll_no_votes_cast)
 | 
					            votes == 0 -> stringProvider.getString(R2.string.poll_no_votes_cast)
 | 
				
			||||||
            else -> stringProvider.getQuantityString(R.plurals.poll_total_vote_count_before_ended_and_not_voted, votes, votes)
 | 
					            else -> stringProvider.getQuantityString(R2.plurals.poll_total_vote_count_before_ended_and_not_voted, votes, votes)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -475,7 +475,7 @@ class MessageItemFactory @Inject constructor(
 | 
				
			|||||||
                .contentDownloadStateTrackerBinder(contentDownloadStateTrackerBinder)
 | 
					                .contentDownloadStateTrackerBinder(contentDownloadStateTrackerBinder)
 | 
				
			||||||
                .highlighted(highlight)
 | 
					                .highlighted(highlight)
 | 
				
			||||||
                .filename(messageContent.body)
 | 
					                .filename(messageContent.body)
 | 
				
			||||||
                .iconRes(R.drawable.ic_paperclip)
 | 
					                .iconRes(R2.drawable.ic_paperclip)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun buildAudioContent(
 | 
					    private fun buildAudioContent(
 | 
				
			||||||
@ -582,7 +582,7 @@ class MessageItemFactory @Inject constructor(
 | 
				
			|||||||
                .playable(true)
 | 
					                .playable(true)
 | 
				
			||||||
                .highlighted(highlight)
 | 
					                .highlighted(highlight)
 | 
				
			||||||
                .mediaData(thumbnailData)
 | 
					                .mediaData(thumbnailData)
 | 
				
			||||||
                .clickListener { view -> callback?.onVideoMessageClicked(messageContent, videoData, view.findViewById(R.id.messageThumbnailView)) }
 | 
					                .clickListener { view -> callback?.onVideoMessageClicked(messageContent, videoData, view.findViewById(R2.id.messageThumbnailView)) }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun buildItemForTextContent(
 | 
					    private fun buildItemForTextContent(
 | 
				
			||||||
@ -652,9 +652,9 @@ class MessageItemFactory @Inject constructor(
 | 
				
			|||||||
    ): Spannable {
 | 
					    ): Spannable {
 | 
				
			||||||
        val spannable = SpannableStringBuilder()
 | 
					        val spannable = SpannableStringBuilder()
 | 
				
			||||||
        spannable.append(linkifiedBody)
 | 
					        spannable.append(linkifiedBody)
 | 
				
			||||||
        val editedSuffix = stringProvider.getString(R.string.edited_suffix)
 | 
					        val editedSuffix = stringProvider.getString(R2.string.edited_suffix)
 | 
				
			||||||
        spannable.append(" ").append(editedSuffix)
 | 
					        spannable.append(" ").append(editedSuffix)
 | 
				
			||||||
        val color = colorProvider.getColorFromAttribute(R.attr.vctr_content_secondary)
 | 
					        val color = colorProvider.getColorFromAttribute(R2.attr.vctr_content_secondary)
 | 
				
			||||||
        val editStart = spannable.lastIndexOf(editedSuffix)
 | 
					        val editStart = spannable.lastIndexOf(editedSuffix)
 | 
				
			||||||
        val editEnd = editStart + editedSuffix.length
 | 
					        val editEnd = editStart + editedSuffix.length
 | 
				
			||||||
        spannable.setSpan(
 | 
					        spannable.setSpan(
 | 
				
			||||||
@ -700,7 +700,7 @@ class MessageItemFactory @Inject constructor(
 | 
				
			|||||||
        val htmlBody = messageContent.getHtmlBody()
 | 
					        val htmlBody = messageContent.getHtmlBody()
 | 
				
			||||||
        val formattedBody = span {
 | 
					        val formattedBody = span {
 | 
				
			||||||
            text = htmlBody
 | 
					            text = htmlBody
 | 
				
			||||||
            textColor = colorProvider.getColorFromAttribute(R.attr.vctr_content_secondary)
 | 
					            textColor = colorProvider.getColorFromAttribute(R2.attr.vctr_content_secondary)
 | 
				
			||||||
            textStyle = "italic"
 | 
					            textStyle = "italic"
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -28,6 +28,7 @@ import androidx.core.content.ContextCompat.getDrawable
 | 
				
			|||||||
import androidx.core.view.isVisible
 | 
					import androidx.core.view.isVisible
 | 
				
			||||||
import androidx.core.widget.TextViewCompat
 | 
					import androidx.core.widget.TextViewCompat
 | 
				
			||||||
import im.vector.app.R
 | 
					import im.vector.app.R
 | 
				
			||||||
 | 
					import im.vector.app.R2
 | 
				
			||||||
import im.vector.app.core.epoxy.ClickListener
 | 
					import im.vector.app.core.epoxy.ClickListener
 | 
				
			||||||
import im.vector.app.core.epoxy.onClick
 | 
					import im.vector.app.core.epoxy.onClick
 | 
				
			||||||
import im.vector.app.core.extensions.getDrawableAsSpannable
 | 
					import im.vector.app.core.extensions.getDrawableAsSpannable
 | 
				
			||||||
@ -145,9 +146,9 @@ abstract class AbsBaseMessageItem<H : AbsBaseMessageItem.Holder> : BaseEventItem
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun createReactionTextView(holder: H): TextView {
 | 
					    private fun createReactionTextView(holder: H): TextView {
 | 
				
			||||||
        return TextView(ContextThemeWrapper(holder.view.context, R.style.TimelineReactionView)).apply {
 | 
					        return TextView(ContextThemeWrapper(holder.view.context, R2.style.TimelineReactionView)).apply {
 | 
				
			||||||
            background = getDrawable(context, R.drawable.reaction_rounded_rect_shape_off)
 | 
					            background = getDrawable(context, R.drawable.reaction_rounded_rect_shape_off)
 | 
				
			||||||
            TextViewCompat.setTextAppearance(this, R.style.TextAppearance_Vector_Micro)
 | 
					            TextViewCompat.setTextAppearance(this, R2.style.TextAppearance_Vector_Micro)
 | 
				
			||||||
            setTypeface(typeface, Typeface.BOLD)
 | 
					            setTypeface(typeface, Typeface.BOLD)
 | 
				
			||||||
            setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_secondary))
 | 
					            setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_secondary))
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user