Unverified Commit c6bf21fa authored by Filipe de Lima Brito's avatar Filipe de Lima Brito Committed by GitHub

Merge branch 'develop' into n_1715

parents d645699b 8daf3d47
version: 2 version: 2
build:
machine:
java: oraclejdk8
jobs: jobs:
build-kotlin-sdk: build-kotlin-sdk:
docker: docker:
- image: circleci/android:api-27-alpha - image: circleci/android:api-28-alpha
environment: environment:
JVM_OPTS: -Xmx3200m JAVA_TOOL_OPTIONS: -Xmx5024m
steps: steps:
- checkout - checkout
- run: - run:
...@@ -18,8 +21,9 @@ jobs: ...@@ -18,8 +21,9 @@ jobs:
command: pushd app/ ; ./build-sdk.sh ; popd command: pushd app/ ; ./build-sdk.sh ; popd
- save_cache: - save_cache:
paths: paths:
- ~/.gradle - ~/.gradle/caches
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }} - ~/.gradle/wrapper
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "util/build.gradle" }}-{{ checksum "draw/build.gradle" }}-{{ checksum "emoji/build.gradle" }}-{{ checksum "suggestions/build.gradle" }}
- save_cache: - save_cache:
paths: paths:
- app/libs/ - app/libs/
...@@ -30,47 +34,51 @@ jobs: ...@@ -30,47 +34,51 @@ jobs:
destination: libs destination: libs
code-analysis: code-analysis:
docker: docker:
- image: circleci/android:api-27-alpha - image: circleci/android:api-28-alpha
environment: environment:
JVM_OPTS: -Xmx3200m JAVA_TOOL_OPTIONS: -Xmx5024m
steps: steps:
- checkout - checkout
- run: - run:
name: ANDROID_HOME name: ANDROID_HOME
command: echo "sdk.dir="$ANDROID_HOME > local.properties command: echo "sdk.dir="$ANDROID_HOME > local.properties
- run: - run:
name: checkout Rocket.Chat.Kotlin.SDK name: checkout Rocket.Chat.Kotlin.SDK
command: git clone https://github.com/RocketChat/Rocket.Chat.Kotlin.SDK.git ../Rocket.Chat.Kotlin.SDK command: git clone https://github.com/RocketChat/Rocket.Chat.Kotlin.SDK.git ../Rocket.Chat.Kotlin.SDK
- restore_cache: - restore_cache:
key: kotlin-sdk-{{ .Revision }} key: kotlin-sdk-{{ .Revision }}
- restore_cache: - restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }} key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "util/build.gradle" }}-{{ checksum "draw/build.gradle" }}-{{ checksum "emoji/build.gradle" }}-{{ checksum "suggestions/build.gradle" }}
- run: - run:
name: Download Dependencies name: Download Dependencies
command: ./gradlew androidDependencies --quiet --console=plain command: ./gradlew --no-daemon androidDependencies --quiet --console=plain
- save_cache: - save_cache:
paths: paths:
- ~/.gradle - ~/.gradle/caches
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }} - ~/.gradle/wrapper
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "util/build.gradle" }}-{{ checksum "draw/build.gradle" }}-{{ checksum "emoji/build.gradle" }}-{{ checksum "suggestions/build.gradle" }}
- run: - run:
name: Run Lint #, Checkstyles, PMD, Findbugs... name: Run Lint #, Checkstyles, PMD, Findbugs...
command: ./gradlew lint command: ./gradlew --no-daemon lint
- run: - run:
name: Run Unit test name: Run Unit test
command: ./gradlew test command: ./gradlew --no-daemon test
- run: - run:
name: Compile Instrumentation test name: Compile Instrumentation test
command: ./gradlew assembleAndroidTest command: ./gradlew --no-daemon assembleAndroidTest
- store_artifacts: - store_artifacts:
path: app/build/reports/ path: app/build/reports/
destination: reports destination: reports
build-play-apk: build-play-apk:
docker: docker:
- image: circleci/android:api-27-alpha - image: circleci/android:api-28-alpha
environment: environment:
JVM_OPTS: -Xmx3200m JAVA_TOOL_OPTIONS: -Xmx5024m
steps: steps:
- checkout - checkout
- run:
name: ANDROID_HOME
command: echo "sdk.dir="$ANDROID_HOME > local.properties
- run: - run:
name: restore files from ENV name: restore files from ENV
command: | command: |
...@@ -82,28 +90,32 @@ jobs: ...@@ -82,28 +90,32 @@ jobs:
- restore_cache: - restore_cache:
key: kotlin-sdk-{{ .Revision }} key: kotlin-sdk-{{ .Revision }}
- restore_cache: - restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }} key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "util/build.gradle" }}-{{ checksum "draw/build.gradle" }}-{{ checksum "emoji/build.gradle" }}-{{ checksum "suggestions/build.gradle" }}
- run: - run:
name: Download Dependencies name: Download Dependencies
command: ./gradlew androidDependencies --quiet --console=plain command: ./gradlew --no-daemon androidDependencies --quiet --console=plain
- save_cache: - save_cache:
paths: paths:
- ~/.gradle - ~/.gradle/caches
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }} - ~/.gradle/wrapper
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "util/build.gradle" }}-{{ checksum "draw/build.gradle" }}-{{ checksum "emoji/build.gradle" }}-{{ checksum "suggestions/build.gradle" }}
- run: - run:
name: Build APK name: Build APK
command: | command: |
./gradlew assemblePlayRelease --info --console=plain --stacktrace ./gradlew --no-daemon assemblePlayRelease --info --console=plain --stacktrace
- store_artifacts: - store_artifacts:
path: app/build/outputs/apk path: app/build/outputs/apk
destination: apks destination: apks
build-foss-apk: build-foss-apk:
docker: docker:
- image: circleci/android:api-27-alpha - image: circleci/android:api-28-alpha
environment: environment:
JVM_OPTS: -Xmx3200m JAVA_TOOL_OPTIONS: -Xmx5024m
steps: steps:
- checkout - checkout
- run:
name: ANDROID_HOME
command: echo "sdk.dir="$ANDROID_HOME > local.properties
- run: - run:
name: restore files from ENV name: restore files from ENV
command: | command: |
...@@ -115,18 +127,19 @@ jobs: ...@@ -115,18 +127,19 @@ jobs:
- restore_cache: - restore_cache:
key: kotlin-sdk-{{ .Revision }} key: kotlin-sdk-{{ .Revision }}
- restore_cache: - restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }} key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "util/build.gradle" }}-{{ checksum "draw/build.gradle" }}-{{ checksum "emoji/build.gradle" }}-{{ checksum "suggestions/build.gradle" }}
- run: - run:
name: Download Dependencies name: Download Dependencies
command: ./gradlew androidDependencies --quiet --console=plain command: ./gradlew --no-daemon androidDependencies --quiet --console=plain
- save_cache: - save_cache:
paths: paths:
- ~/.gradle - ~/.gradle/caches
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }} - ~/.gradle/wrapper
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}-{{ checksum "player/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "util/build.gradle" }}-{{ checksum "draw/build.gradle" }}-{{ checksum "emoji/build.gradle" }}-{{ checksum "suggestions/build.gradle" }}
- run: - run:
name: Build APK name: Build APK
command: | command: |
./gradlew assembleFossRelease --info --console=plain --stacktrace ./gradlew --no-daemon assembleFossRelease --info --console=plain --stacktrace
- store_artifacts: - store_artifacts:
path: app/build/outputs/apk path: app/build/outputs/apk
destination: apks destination: apks
......
...@@ -11,7 +11,7 @@ This repository contains all the code related to the Android native application ...@@ -11,7 +11,7 @@ This repository contains all the code related to the Android native application
## How to build ## How to build
- You need to download the latest [Android Studio Preview](https://developer.android.com/studio/preview/) version since the stable IDE version does not support the [JetPack](https://developer.android.com/jetpack/) that is beeing used on this application. - You need to download the latest [Android Studio Preview](https://developer.android.com/studio/preview/) version since the stable IDE version does not support the [JetPack](https://developer.android.com/jetpack/) that is being used on this application.
- Make sure that you have the latest **gradle** and the **android plugin** versions installed. Go to `File > Project Structure > Project` and make sure that you have the latest versions installed. Refer [this](https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle) to see the compatible versions. - Make sure that you have the latest **gradle** and the **android plugin** versions installed. Go to `File > Project Structure > Project` and make sure that you have the latest versions installed. Refer [this](https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle) to see the compatible versions.
- Kotlin is already configured in the project. To check, go to `Tools > Kotlin > Configure Kotlin in project`. A message saying kotlin is already configured in the project pops up. You can update kotlin to the latest version by going to `Tools > Kotlin > Configure Kotlin updates` and download the latest version of kotlin. - Kotlin is already configured in the project. To check, go to `Tools > Kotlin > Configure Kotlin in project`. A message saying kotlin is already configured in the project pops up. You can update kotlin to the latest version by going to `Tools > Kotlin > Configure Kotlin updates` and download the latest version of kotlin.
......
...@@ -94,8 +94,8 @@ if ! check_git_dirty && ! check_last_commit && [ -f "${CURRENT_DIR}"/libs/common ...@@ -94,8 +94,8 @@ if ! check_git_dirty && ! check_last_commit && [ -f "${CURRENT_DIR}"/libs/common
exit 0 exit 0
fi fi
cd "${SDK_DIR}" && ./gradlew common:assemble && cd "${CURRENT_DIR}" cd "${SDK_DIR}" && ./gradlew --no-daemon common:assemble && cd "${CURRENT_DIR}"
cd "${SDK_DIR}" && ./gradlew core:assemble && cd "${CURRENT_DIR}" cd "${SDK_DIR}" && ./gradlew --no-daemon core:assemble && cd "${CURRENT_DIR}"
rm "${CURRENT_DIR}"/libs/common* "${CURRENT_DIR}"/libs/core* rm "${CURRENT_DIR}"/libs/common* "${CURRENT_DIR}"/libs/core*
......
...@@ -18,7 +18,9 @@ import chat.rocket.android.util.extensions.toList ...@@ -18,7 +18,9 @@ import chat.rocket.android.util.extensions.toList
import chat.rocket.core.model.Message import chat.rocket.core.model.Message
import chat.rocket.core.model.isSystemMessage import chat.rocket.core.model.isSystemMessage
import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexDirection
import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.flexbox.JustifyContent
abstract class BaseViewHolder<T : BaseUiModel<*>>( abstract class BaseViewHolder<T : BaseUiModel<*>>(
itemView: View, itemView: View,
...@@ -41,13 +43,12 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>( ...@@ -41,13 +43,12 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>(
private fun bindReactions() { private fun bindReactions() {
data?.let { data?.let {
val recyclerView = itemView.findViewById(R.id.recycler_view_reactions) as RecyclerView val recyclerView = itemView.findViewById(R.id.recycler_view_reactions) as RecyclerView
val adapter: MessageReactionsAdapter val adapter: MessageReactionsAdapter = if (recyclerView.adapter == null) {
if (recyclerView.adapter == null) { MessageReactionsAdapter()
adapter = MessageReactionsAdapter()
} else { } else {
adapter = recyclerView.adapter as MessageReactionsAdapter recyclerView.adapter as MessageReactionsAdapter
adapter.clear()
} }
adapter.clear()
if (it.nextDownStreamMessage == null) { if (it.nextDownStreamMessage == null) {
adapter.listener = object : EmojiReactionListener { adapter.listener = object : EmojiReactionListener {
...@@ -61,13 +62,16 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>( ...@@ -61,13 +62,16 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>(
} }
} }
} }
val context = itemView.context val context = itemView.context
val manager = FlexboxLayoutManager(context, FlexDirection.ROW) val manager = FlexboxLayoutManager(context, FlexDirection.ROW)
manager.justifyContent = JustifyContent.FLEX_START
recyclerView.layoutManager = manager recyclerView.layoutManager = manager
recyclerView.adapter = adapter recyclerView.adapter = adapter
adapter.addReactions(it.reactions.filterNot { reactionUiModel ->
reactionUiModel.unicode.startsWith(":") && reactionUiModel.url.isNullOrEmpty() if (it.reactions.isNotEmpty()) {
}) itemView.post { adapter.addReactions(it.reactions) }
}
} }
} }
} }
...@@ -129,4 +133,4 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>( ...@@ -129,4 +133,4 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>(
} }
return true return true
} }
} }
\ No newline at end of file
...@@ -4,7 +4,6 @@ import android.view.LayoutInflater ...@@ -4,7 +4,6 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.R import chat.rocket.android.R
...@@ -35,17 +34,17 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() ...@@ -35,17 +34,17 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>()
} }
else -> { else -> {
view = inflater.inflate(R.layout.item_reaction, parent, false) view = inflater.inflate(R.layout.item_reaction, parent, false)
SingleReactionViewHolder(view, listener) ReactionViewHolder(view, listener)
} }
} }
} }
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is SingleReactionViewHolder) { if (holder is ReactionViewHolder) {
holder.bind(reactions[position]) holder.bind(reactions[position])
} else { } else {
holder as AddReactionViewHolder holder as AddReactionViewHolder
holder.bind(reactions[0].messageId) holder.bind(reactions.first().messageId)
} }
} }
...@@ -73,7 +72,7 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() ...@@ -73,7 +72,7 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>()
fun contains(reactionShortname: String) = fun contains(reactionShortname: String) =
reactions.firstOrNull { it.shortname == reactionShortname } != null reactions.firstOrNull { it.shortname == reactionShortname } != null
class SingleReactionViewHolder( class ReactionViewHolder(
view: View, view: View,
private val listener: EmojiReactionListener? private val listener: EmojiReactionListener?
) : RecyclerView.ViewHolder(view), View.OnClickListener { ) : RecyclerView.ViewHolder(view), View.OnClickListener {
...@@ -97,9 +96,11 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() ...@@ -97,9 +96,11 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>()
this.reaction = reaction this.reaction = reaction
with(itemView) { with(itemView) {
if (reaction.url.isNullOrEmpty()) { if (reaction.url.isNullOrEmpty()) {
text_emoji.text = reaction.unicode // The view at index 0 corresponds to the one to display unicode text emoji.
view_flipper_reaction.displayedChild = 0 view_flipper_reaction.displayedChild = 0
text_emoji.text = reaction.unicode
} else { } else {
// The view at index 1 corresponds to the one to display custom emojis which are images.
view_flipper_reaction.displayedChild = 1 view_flipper_reaction.displayedChild = 1
val glideRequest = if (reaction.url!!.endsWith("gif", true)) { val glideRequest = if (reaction.url!!.endsWith("gif", true)) {
GlideApp.with(context).asGif() GlideApp.with(context).asGif()
...@@ -110,15 +111,16 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() ...@@ -110,15 +111,16 @@ class MessageReactionsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>()
glideRequest.load(reaction.url).into(image_emoji) glideRequest.load(reaction.url).into(image_emoji)
} }
text_count.text = reaction.count.toString()
val myself = localRepository.get(LocalRepository.CURRENT_USERNAME_KEY) val myself = localRepository.get(LocalRepository.CURRENT_USERNAME_KEY)
if (reaction.usernames.contains(myself)) { if (reaction.usernames.contains(myself)) {
val context = itemView.context val context = itemView.context
text_count.setTextColor(ContextCompat.getColor(context, R.color.colorAccent)) text_count.setTextColor(ContextCompat.getColor(context, R.color.colorAccent))
} }
view_flipper_reaction.setOnClickListener(this@SingleReactionViewHolder) text_count.text = reaction.count.toString()
text_count.setOnClickListener(this@SingleReactionViewHolder)
view_flipper_reaction.setOnClickListener(this@ReactionViewHolder)
text_count.setOnClickListener(this@ReactionViewHolder)
} }
} }
......
...@@ -19,7 +19,7 @@ interface LocalComponent { ...@@ -19,7 +19,7 @@ interface LocalComponent {
fun build(): LocalComponent fun build(): LocalComponent
} }
fun inject(adapter: MessageReactionsAdapter.SingleReactionViewHolder) fun inject(adapter: MessageReactionsAdapter.ReactionViewHolder)
fun inject(adapter: MessageReactionsAdapter.AddReactionViewHolder) fun inject(adapter: MessageReactionsAdapter.AddReactionViewHolder)
/*@Component.Builder /*@Component.Builder
......
...@@ -40,7 +40,7 @@ abstract class MessageDao { ...@@ -40,7 +40,7 @@ abstract class MessageDao {
@Insert(onConflict = OnConflictStrategy.REPLACE) @Insert(onConflict = OnConflictStrategy.REPLACE)
abstract fun insert(field: AttachmentFieldEntity) abstract fun insert(field: AttachmentFieldEntity)
@Insert(onConflict = OnConflictStrategy.IGNORE) @Insert(onConflict = OnConflictStrategy.REPLACE)
abstract fun insert(reaction: ReactionEntity) abstract fun insert(reaction: ReactionEntity)
@Insert(onConflict = OnConflictStrategy.REPLACE) @Insert(onConflict = OnConflictStrategy.REPLACE)
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="2dp" android:layout_marginEnd="2dp"
...@@ -10,7 +11,7 @@ ...@@ -10,7 +11,7 @@
<ViewFlipper <ViewFlipper
android:id="@+id/view_flipper_reaction" android:id="@+id/view_flipper_reaction"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/text_count" app:layout_constraintEnd_toStartOf="@+id/text_count"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
...@@ -19,12 +20,13 @@ ...@@ -19,12 +20,13 @@
<TextView <TextView
android:id="@+id/text_emoji" android:id="@+id/text_emoji"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:ellipsize="end" android:ellipsize="end"
android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:paddingStart="4dp" android:paddingStart="4dp"
android:paddingLeft="4dp" android:paddingLeft="4dp"
android:textColor="#868585" android:textColor="@color/reaction_text"
android:textSize="16sp" android:textSize="16sp"
tools:text=":)" /> tools:text=":)" />
...@@ -48,13 +50,12 @@ ...@@ -48,13 +50,12 @@
android:paddingEnd="4dp" android:paddingEnd="4dp"
android:paddingRight="4dp" android:paddingRight="4dp"
android:paddingBottom="4dp" android:paddingBottom="4dp"
android:textColor="#868585" android:textColor="@color/reaction_text"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/view_flipper_reaction"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="12" /> tools:text="12" />
</androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout>
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" <androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycler_view_reactions" android:id="@+id/recycler_view_reactions"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
\ No newline at end of file
...@@ -59,4 +59,6 @@ ...@@ -59,4 +59,6 @@
<!-- Default Background Color --> <!-- Default Background Color -->
<color name="default_background">#FAFAFA</color> <color name="default_background">#FAFAFA</color>
<color name="reaction_text">#868585</color>
</resources> </resources>
...@@ -10,16 +10,13 @@ buildscript { ...@@ -10,16 +10,13 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha12' classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}" classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}"
classpath 'com.google.gms:google-services:4.0.2' classpath 'com.google.gms:google-services:4.1.0'
classpath 'io.fabric.tools:gradle:1.25.4' classpath 'io.fabric.tools:gradle:1.25.4'
classpath "com.github.ben-manes:gradle-versions-plugin:0.20.0" classpath "com.github.ben-manes:gradle-versions-plugin:0.20.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
} }
} }
......
...@@ -9,7 +9,7 @@ ext { ...@@ -9,7 +9,7 @@ ext {
dokka : '0.9.16', dokka : '0.9.16',
// For app // For app
kotlin : '1.2.61', kotlin : '1.2.71',
coroutine : '0.25.0', coroutine : '0.25.0',
appCompat : '1.0.0', appCompat : '1.0.0',
...@@ -25,7 +25,7 @@ ext { ...@@ -25,7 +25,7 @@ ext {
firebaseAnalytics : '16.0.3', firebaseAnalytics : '16.0.3',
playServices : '16.0.0', playServices : '16.0.0',
exoPlayer : '2.8.2', exoPlayer : '2.8.2',
flexbox : '1.0.0', flexbox : '1.1.0',
material : '1.0.0-beta01', material : '1.0.0-beta01',
room : '2.0.0', room : '2.0.0',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment