Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
elm
Element Android
Commits
530ce9f9
Commit
530ce9f9
authored
2 years ago
by
Adam Brown
Browse files
Options
Download
Email Patches
Plain Diff
wip
parent
9925cf99
Changes
188
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
681 additions
and
235 deletions
+681
-235
build.gradle
build.gradle
+1
-0
settings.gradle
settings.gradle
+1
-0
vector-app/build.gradle
vector-app/build.gradle
+554
-0
vector-app/proguard-rules.pro
vector-app/proguard-rules.pro
+78
-0
vector-app/signature/README.md
vector-app/signature/README.md
+0
-0
vector-app/signature/debug.keystore
vector-app/signature/debug.keystore
+0
-0
vector-app/src/gplay/AndroidManifest.xml
vector-app/src/gplay/AndroidManifest.xml
+0
-0
vector-app/src/gplay/debug/google-services.json
vector-app/src/gplay/debug/google-services.json
+0
-0
vector-app/src/gplay/release/google-services.json
vector-app/src/gplay/release/google-services.json
+0
-0
vector-app/src/main/AndroidManifest.xml
vector-app/src/main/AndroidManifest.xml
+2
-0
vector-app/src/main/java/im/vector/app/VectorApplication.kt
vector-app/src/main/java/im/vector/app/VectorApplication.kt
+2
-2
vector/build.gradle
vector/build.gradle
+20
-221
vector/src/debug/java/im/vector/app/features/debug/features/BooleanFeatureItem.kt
.../vector/app/features/debug/features/BooleanFeatureItem.kt
+3
-1
vector/src/debug/java/im/vector/app/features/debug/features/EnumFeatureItem.kt
.../im/vector/app/features/debug/features/EnumFeatureItem.kt
+3
-1
vector/src/debug/java/im/vector/app/features/debug/sas/SasEmojiItem.kt
...bug/java/im/vector/app/features/debug/sas/SasEmojiItem.kt
+7
-5
vector/src/main/java/im/vector/app/core/epoxy/BottomSheetDividerItem.kt
...n/java/im/vector/app/core/epoxy/BottomSheetDividerItem.kt
+2
-1
vector/src/main/java/im/vector/app/core/epoxy/CheckBoxItem.kt
...or/src/main/java/im/vector/app/core/epoxy/CheckBoxItem.kt
+2
-1
vector/src/main/java/im/vector/app/core/epoxy/DividerItem.kt
vector/src/main/java/im/vector/app/core/epoxy/DividerItem.kt
+2
-1
vector/src/main/java/im/vector/app/core/epoxy/ErrorWithRetryItem.kt
.../main/java/im/vector/app/core/epoxy/ErrorWithRetryItem.kt
+2
-1
vector/src/main/java/im/vector/app/core/epoxy/ExpandableTextItem.kt
.../main/java/im/vector/app/core/epoxy/ExpandableTextItem.kt
+2
-1
No files found.
build.gradle
View file @
530ce9f9
...
...
@@ -31,6 +31,7 @@ buildscript {
classpath
'org.owasp:dependency-check-gradle:7.1.0.1'
classpath
"org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
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
// in the individual module build.gradle files
}
...
...
This diff is collapsed.
Click to expand it.
settings.gradle
View file @
530ce9f9
include
':vector'
include
':vector-app'
include
':vector-config'
include
':matrix-sdk-android'
include
':library:core-utils'
...
...
This diff is collapsed.
Click to expand it.
vector-app/build.gradle
0 → 100644
View file @
530ce9f9
This diff is collapsed.
Click to expand it.
vector-app/proguard-rules.pro
0 → 100644
View file @
530ce9f9
# 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
.
**
\ No newline at end of file
This diff is collapsed.
Click to expand it.
vector/signature/README.md
→
vector
-app
/signature/README.md
View file @
530ce9f9
File moved
This diff is collapsed.
Click to expand it.
vector/signature/debug.keystore
→
vector
-app
/signature/debug.keystore
View file @
530ce9f9
File moved
This diff is collapsed.
Click to expand it.
vector/src/gplay/AndroidManifest.xml
→
vector
-app
/src/gplay/AndroidManifest.xml
View file @
530ce9f9
File moved
This diff is collapsed.
Click to expand it.
vector/src/gplay/debug/google-services.json
→
vector
-app
/src/gplay/debug/google-services.json
View file @
530ce9f9
File moved
This diff is collapsed.
Click to expand it.
vector/src/gplay/release/google-services.json
→
vector
-app
/src/gplay/release/google-services.json
View file @
530ce9f9
File moved
This diff is collapsed.
Click to expand it.
vector-app/src/main/AndroidManifest.xml
0 → 100644
View file @
530ce9f9
<?xml version="1.0" encoding="utf-8"?>
<manifest
package=
"im.vector.app"
></manifest>
This diff is collapsed.
Click to expand it.
vector/src/main/java/im/vector/app/VectorApplication.kt
→
vector
-app
/src/main/java/im/vector/app/VectorApplication.kt
View file @
530ce9f9
/*
* Copyright
2019
New Vector Ltd
* Copyright
(c) 2022
New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
...
...
This diff is collapsed.
Click to expand it.
vector/build.gradle
View file @
530ce9f9
import
com.android.build.OutputFile
apply
plugin:
'com.android.application'
apply
plugin:
'com.google.android.gms.oss-licenses-plugin'
apply
plugin:
'com.android.library'
apply
plugin:
'kotlin-android'
apply
plugin:
'kotlin-parcelize'
apply
plugin:
'kotlin-kapt'
apply
plugin:
'com.likethesalad.stem'
apply
plugin:
'dagger.hilt.android.plugin'
apply
plugin:
'
kotlinx-
kni
t
'
apply
plugin:
'
com.jakewharton.butter
kni
fe
'
if
(
project
.
hasProperty
(
"coverage"
))
{
apply
plugin:
'jacoco'
...
...
@@ -17,111 +13,6 @@ 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
...
...
@@ -130,87 +21,28 @@ android {
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}\""
// 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'
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\""
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'
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
{
...
...
@@ -221,67 +53,36 @@ android {
// 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
}
buildTypes
.
all
{
buildType
->
buildType
.
javaCompileOptions
.
annotationProcessorOptions
.
arguments
=
[
validateEpoxyModelUsage:
String
.
valueOf
(
buildType
.
name
==
'debug'
)
]
}
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()}"
resValue
"bool"
,
"isGplay"
,
"true"
buildConfigField
"boolean"
,
"ALLOW_FCM_USE"
,
"true"
...
...
@@ -292,8 +93,6 @@ android {
fdroid
{
dimension
"store"
versionName
"${versionMajor}.${versionMinor}.${versionPatch}${getFdroidVersionSuffix()}"
resValue
"bool"
,
"isGplay"
,
"false"
buildConfigField
"boolean"
,
"ALLOW_FCM_USE"
,
"false"
buildConfigField
"String"
,
"SHORT_FLAVOR_DESCRIPTION"
,
"\"F\""
...
...
This diff is collapsed.
Click to expand it.
vector/src/debug/java/im/vector/app/features/debug/features/BooleanFeatureItem.kt
View file @
530ce9f9
...
...
@@ -23,10 +23,12 @@ import android.widget.Spinner
import
android.widget.TextView
import
com.airbnb.epoxy.EpoxyAttribute
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.VectorEpoxyModel
@EpoxyModelClass
(
layout
=
im
.
vector
.
app
.
R
.
layout
.
item_feature
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_feature
)
abstract
class
BooleanFeatureItem
:
VectorEpoxyModel
<
BooleanFeatureItem
.
Holder
>()
{
@EpoxyAttribute
...
...
This diff is collapsed.
Click to expand it.
vector/src/debug/java/im/vector/app/features/debug/features/EnumFeatureItem.kt
View file @
530ce9f9
...
...
@@ -23,10 +23,12 @@ import android.widget.Spinner
import
android.widget.TextView
import
com.airbnb.epoxy.EpoxyAttribute
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.VectorEpoxyModel
@EpoxyModelClass
(
layout
=
im
.
vector
.
app
.
R
.
layout
.
item_feature
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_feature
)
abstract
class
EnumFeatureItem
:
VectorEpoxyModel
<
EnumFeatureItem
.
Holder
>()
{
@EpoxyAttribute
...
...
This diff is collapsed.
Click to expand it.
vector/src/debug/java/im/vector/app/features/debug/sas/SasEmojiItem.kt
View file @
530ce9f9
...
...
@@ -21,13 +21,15 @@ import android.widget.TextView
import
androidx.core.content.ContextCompat
import
com.airbnb.epoxy.EpoxyAttribute
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.VectorEpoxyModel
import
me.gujun.android.span.image
import
me.gujun.android.span.span
import
org.matrix.android.sdk.api.session.crypto.verification.EmojiRepresentation
@EpoxyModelClass
(
layout
=
im
.
vector
.
app
.
R
.
layout
.
item_sas_emoji
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_sas_emoji
)
abstract
class
SasEmojiItem
:
VectorEpoxyModel
<
SasEmojiItem
.
Holder
>()
{
@EpoxyAttribute
...
...
@@ -51,9 +53,9 @@ abstract class SasEmojiItem : VectorEpoxyModel<SasEmojiItem.Holder>() {
}
class
Holder
:
VectorEpoxyHolder
()
{
val
indexView
by
bind
<
TextView
>(
im
.
vector
.
app
.
R
.
id
.
sas_emoji_index
)
val
emojiView
by
bind
<
TextView
>(
im
.
vector
.
app
.
R
.
id
.
sas_emoji
)
val
textView
by
bind
<
TextView
>(
im
.
vector
.
app
.
R
.
id
.
sas_emoji_text
)
val
idView
by
bind
<
TextView
>(
im
.
vector
.
app
.
R
.
id
.
sas_emoji_text_id
)
val
indexView
by
bind
<
TextView
>(
R
.
id
.
sas_emoji_index
)
val
emojiView
by
bind
<
TextView
>(
R
.
id
.
sas_emoji
)
val
textView
by
bind
<
TextView
>(
R
.
id
.
sas_emoji_text
)
val
idView
by
bind
<
TextView
>(
R
.
id
.
sas_emoji_text_id
)
}
}
This diff is collapsed.
Click to expand it.
vector/src/main/java/im/vector/app/core/epoxy/BottomSheetDividerItem.kt
View file @
530ce9f9
...
...
@@ -17,8 +17,9 @@ package im.vector.app.core.epoxy
import
com.airbnb.epoxy.EpoxyModelClass
import
im.vector.app.R
import
im.vector.app.R2
@EpoxyModelClass
(
layout
=
R
.
layout
.
item_divider_on_surface
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_divider_on_surface
)
abstract
class
BottomSheetDividerItem
:
VectorEpoxyModel
<
BottomSheetDividerItem
.
Holder
>()
{
class
Holder
:
VectorEpoxyHolder
()
}
This diff is collapsed.
Click to expand it.
vector/src/main/java/im/vector/app/core/epoxy/CheckBoxItem.kt
View file @
530ce9f9
...
...
@@ -21,8 +21,9 @@ import com.airbnb.epoxy.EpoxyAttribute
import
com.airbnb.epoxy.EpoxyModelClass
import
com.google.android.material.checkbox.MaterialCheckBox
import
im.vector.app.R
import
im.vector.app.R2
@EpoxyModelClass
(
layout
=
R
.
layout
.
item_checkbox
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_checkbox
)
abstract
class
CheckBoxItem
:
VectorEpoxyModel
<
CheckBoxItem
.
Holder
>()
{
@EpoxyAttribute
...
...
This diff is collapsed.
Click to expand it.
vector/src/main/java/im/vector/app/core/epoxy/DividerItem.kt
View file @
530ce9f9
...
...
@@ -17,8 +17,9 @@ package im.vector.app.core.epoxy
import
com.airbnb.epoxy.EpoxyModelClass
import
im.vector.app.R
import
im.vector.app.R2
@EpoxyModelClass
(
layout
=
R
.
layout
.
item_divider
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_divider
)
abstract
class
DividerItem
:
VectorEpoxyModel
<
DividerItem
.
Holder
>()
{
class
Holder
:
VectorEpoxyHolder
()
}
This diff is collapsed.
Click to expand it.
vector/src/main/java/im/vector/app/core/epoxy/ErrorWithRetryItem.kt
View file @
530ce9f9
...
...
@@ -22,8 +22,9 @@ import androidx.core.view.isVisible
import
com.airbnb.epoxy.EpoxyAttribute
import
com.airbnb.epoxy.EpoxyModelClass
import
im.vector.app.R
import
im.vector.app.R2
@EpoxyModelClass
(
layout
=
R
.
layout
.
item_error_retry
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_error_retry
)
abstract
class
ErrorWithRetryItem
:
VectorEpoxyModel
<
ErrorWithRetryItem
.
Holder
>()
{
@EpoxyAttribute
...
...
This diff is collapsed.
Click to expand it.
vector/src/main/java/im/vector/app/core/epoxy/ExpandableTextItem.kt
View file @
530ce9f9
...
...
@@ -26,9 +26,10 @@ import androidx.core.view.isVisible
import
com.airbnb.epoxy.EpoxyAttribute
import
com.airbnb.epoxy.EpoxyModelClass
import
im.vector.app.R
import
im.vector.app.R2
import
im.vector.app.core.extensions.copyOnLongClick
@EpoxyModelClass
(
layout
=
R
.
layout
.
item_expandable_textview
)
@EpoxyModelClass
(
layout
=
R
2
.
layout
.
item_expandable_textview
)
abstract
class
ExpandableTextItem
:
VectorEpoxyModel
<
ExpandableTextItem
.
Holder
>()
{
@EpoxyAttribute
...
...
This diff is collapsed.
Click to expand it.
Prev
1
2
3
4
5
…
10
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment