Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AloqaIM-Android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
AloqaIM-Android
Commits
cf9c9165
Commit
cf9c9165
authored
May 28, 2018
by
Lucio Maciel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove realm migration
parent
0cf32df9
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
25 additions
and
365 deletions
+25
-365
build.gradle
app/build.gradle
+1
-2
RocketChatApplication.kt
...ain/java/chat/rocket/android/app/RocketChatApplication.kt
+19
-139
RealmMigration.kt
.../java/chat/rocket/android/app/migration/RealmMigration.kt
+0
-59
RocketChatLibraryModule.kt
...t/rocket/android/app/migration/RocketChatLibraryModule.kt
+0
-6
RocketChatServerModule.kt
...at/rocket/android/app/migration/RocketChatServerModule.kt
+0
-7
RealmBasedServerInfo.kt
...ocket/android/app/migration/model/RealmBasedServerInfo.kt
+0
-12
RealmEmail.kt
...ava/chat/rocket/android/app/migration/model/RealmEmail.kt
+0
-12
RealmPreferences.kt
...at/rocket/android/app/migration/model/RealmPreferences.kt
+0
-40
RealmPublicSetting.kt
.../rocket/android/app/migration/model/RealmPublicSetting.kt
+0
-20
RealmSession.kt
...a/chat/rocket/android/app/migration/model/RealmSession.kt
+0
-16
RealmSettings.kt
.../chat/rocket/android/app/migration/model/RealmSettings.kt
+0
-12
RealmUser.kt
...java/chat/rocket/android/app/migration/model/RealmUser.kt
+0
-38
RoomMapper.kt
.../java/chat/rocket/android/chatrooms/adapter/RoomMapper.kt
+2
-0
Date.kt
...src/main/java/chat/rocket/android/util/extensions/Date.kt
+2
-0
ic_hashtag_unread_12dp.xml
app/src/main/res/drawable/ic_hashtag_unread_12dp.xml
+0
-0
build.gradle
build.gradle
+0
-1
build.gradle
player/build.gradle
+1
-1
No files found.
app/build.gradle
View file @
cf9c9165
...
@@ -3,10 +3,9 @@ apply plugin: 'io.fabric'
...
@@ -3,10 +3,9 @@ apply plugin: 'io.fabric'
apply
plugin:
'kotlin-android'
apply
plugin:
'kotlin-android'
apply
plugin:
'kotlin-android-extensions'
apply
plugin:
'kotlin-android-extensions'
apply
plugin:
'kotlin-kapt'
apply
plugin:
'kotlin-kapt'
apply
plugin:
'realm-android'
android
{
android
{
compileSdkVersion
versions
.
compileSdk
compileSdkVersion
'android-P'
buildToolsVersion
versions
.
buildTools
buildToolsVersion
versions
.
buildTools
defaultConfig
{
defaultConfig
{
...
...
app/src/main/java/chat/rocket/android/app/RocketChatApplication.kt
View file @
cf9c9165
package
chat.rocket.android.app
package
chat.rocket.android.app
/*import chat.rocket.android.app.migration.RealmMigration
import chat.rocket.android.app.migration.RocketChatLibraryModule
import chat.rocket.android.app.migration.RocketChatServerModule
import chat.rocket.android.app.migration.model.RealmBasedServerInfo
import chat.rocket.android.app.migration.model.RealmPublicSetting
import chat.rocket.android.app.migration.model.RealmSession
import chat.rocket.android.app.migration.model.RealmUser*/
import
android.app.Activity
import
android.app.Activity
import
android.app.Application
import
android.app.Application
import
android.app.Service
import
android.app.Service
import
androidx.lifecycle.ProcessLifecycleOwner
import
android.content.BroadcastReceiver
import
android.content.BroadcastReceiver
import
android.content.Context
import
android.content.Context
import
android.content.SharedPreferences
import
android.content.SharedPreferences
import
androidx.core.content.edit
import
androidx.core.content.edit
import
androidx.lifecycle.ProcessLifecycleOwner
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.BuildConfig
/*import chat.rocket.android.app.migration.RealmMigration
import chat.rocket.android.app.migration.RocketChatLibraryModule
import chat.rocket.android.app.migration.RocketChatServerModule
import chat.rocket.android.app.migration.model.RealmBasedServerInfo
import chat.rocket.android.app.migration.model.RealmPublicSetting
import chat.rocket.android.app.migration.model.RealmSession
import chat.rocket.android.app.migration.model.RealmUser*/
import
chat.rocket.android.authentication.domain.model.toToken
import
chat.rocket.android.authentication.domain.model.toToken
import
chat.rocket.android.dagger.DaggerAppComponent
import
chat.rocket.android.dagger.DaggerAppComponent
import
chat.rocket.android.dagger.qualifier.ForMessages
import
chat.rocket.android.dagger.qualifier.ForMessages
import
chat.rocket.android.helper.CrashlyticsTree
import
chat.rocket.android.helper.CrashlyticsTree
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.server.domain.*
import
chat.rocket.android.server.domain.GetAccountsInteractor
import
chat.rocket.android.server.domain.model.Account
import
chat.rocket.android.server.domain.GetCurrentServerInteractor
import
chat.rocket.android.util.extensions.avatarUrl
import
chat.rocket.android.server.domain.MultiServerTokenRepository
import
chat.rocket.android.util.extensions.serverLogoUrl
import
chat.rocket.android.server.domain.SettingsRepository
import
chat.rocket.android.server.domain.TokenRepository
import
chat.rocket.android.widget.emoji.EmojiRepository
import
chat.rocket.android.widget.emoji.EmojiRepository
import
chat.rocket.common.model.Token
import
chat.rocket.common.model.Token
import
chat.rocket.core.model.Value
import
com.crashlytics.android.Crashlytics
import
com.crashlytics.android.Crashlytics
import
com.crashlytics.android.core.CrashlyticsCore
import
com.crashlytics.android.core.CrashlyticsCore
import
com.facebook.drawee.backends.pipeline.DraweeConfig
import
com.facebook.drawee.backends.pipeline.DraweeConfig
import
com.facebook.drawee.backends.pipeline.Fresco
import
com.facebook.drawee.backends.pipeline.Fresco
import
com.facebook.imagepipeline.core.ImagePipelineConfig
import
com.facebook.imagepipeline.core.ImagePipelineConfig
import
com.jakewharton.threetenabp.AndroidThreeTen
import
com.jakewharton.threetenabp.AndroidThreeTen
import
dagger.android.*
import
dagger.android.AndroidInjector
import
dagger.android.DispatchingAndroidInjector
import
dagger.android.HasActivityInjector
import
dagger.android.HasBroadcastReceiverInjector
import
dagger.android.HasServiceInjector
import
io.fabric.sdk.android.Fabric
import
io.fabric.sdk.android.Fabric
import
io.realm.Realm
import
io.realm.RealmConfiguration
import
kotlinx.coroutines.experimental.CommonPool
import
kotlinx.coroutines.experimental.launch
import
kotlinx.coroutines.experimental.runBlocking
import
kotlinx.coroutines.experimental.runBlocking
import
timber.log.Timber
import
timber.log.Timber
import
java.lang.ref.WeakReference
import
java.lang.ref.WeakReference
...
@@ -75,10 +75,6 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
...
@@ -75,10 +75,6 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
@Inject
@Inject
lateinit
var
tokenRepository
:
TokenRepository
lateinit
var
tokenRepository
:
TokenRepository
@Inject
@Inject
lateinit
var
accountRepository
:
AccountsRepository
@Inject
lateinit
var
saveCurrentServerRepository
:
SaveCurrentServerInteractor
@Inject
lateinit
var
prefs
:
SharedPreferences
lateinit
var
prefs
:
SharedPreferences
@Inject
@Inject
lateinit
var
getAccountsInteractor
:
GetAccountsInteractor
lateinit
var
getAccountsInteractor
:
GetAccountsInteractor
...
@@ -119,118 +115,7 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
...
@@ -119,118 +115,7 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
localRepository
.
setOldMessagesCleanedUp
()
localRepository
.
setOldMessagesCleanedUp
()
}
}
// TODO - remove this and all realm stuff when we got to 80% in 2.0
// TODO - remove REALM files.
try
{
if
(!
localRepository
.
hasMigrated
())
{
migrateFromLegacy
()
}
}
catch
(
ex
:
Exception
)
{
Timber
.
d
(
ex
,
"Error migrating old accounts"
)
}
}
private
fun
migrateFromLegacy
()
{
Realm
.
init
(
this
)
val
serveListConfiguration
=
RealmConfiguration
.
Builder
()
.
name
(
"server.list.realm"
)
.
schemaVersion
(
6
)
.
migration
(
RealmMigration
())
.
modules
(
RocketChatServerModule
())
.
build
()
val
serverRealm
=
Realm
.
getInstance
(
serveListConfiguration
)
val
serversInfoList
=
serverRealm
.
where
(
RealmBasedServerInfo
::
class
.
java
).
findAll
().
toList
()
serversInfoList
.
forEach
{
server
->
val
hostname
=
server
.
hostname
val
url
=
if
(
server
.
insecure
)
"http://$hostname"
else
"https://$hostname"
val
config
=
RealmConfiguration
.
Builder
()
.
name
(
"${server.hostname}.realm"
)
.
schemaVersion
(
6
)
.
migration
(
RealmMigration
())
.
modules
(
RocketChatLibraryModule
())
.
build
()
val
realm
=
Realm
.
getInstance
(
config
)
val
user
=
realm
.
where
(
RealmUser
::
class
.
java
)
.
isNotEmpty
(
RealmUser
.
EMAILS
).
findFirst
()
val
session
=
realm
.
where
(
RealmSession
::
class
.
java
).
findFirst
()
migratePublicSettings
(
url
,
realm
)
if
(
user
!=
null
&&
session
!=
null
)
{
val
authToken
=
session
.
token
settingsRepository
.
get
(
url
)
migrateServerInfo
(
url
,
authToken
!!
,
settingsRepository
.
get
(
url
),
user
)
}
realm
.
close
()
}
migrateCurrentServer
(
serversInfoList
)
serverRealm
.
close
()
localRepository
.
setMigrated
(
true
)
}
private
fun
migrateServerInfo
(
url
:
String
,
authToken
:
String
,
settings
:
PublicSettings
,
user
:
RealmUser
)
{
val
userId
=
user
.
_id
val
avatar
=
url
.
avatarUrl
(
user
.
username
!!
)
val
icon
=
settings
.
favicon
()
?.
let
{
url
.
serverLogoUrl
(
it
)
}
val
logo
=
settings
.
wideTile
()
?.
let
{
url
.
serverLogoUrl
(
it
)
}
val
account
=
Account
(
url
,
icon
,
logo
,
user
.
username
!!
,
avatar
)
launch
(
CommonPool
)
{
tokenRepository
.
save
(
url
,
Token
(
userId
!!
,
authToken
))
accountRepository
.
save
(
account
)
}
}
private
fun
migratePublicSettings
(
url
:
String
,
realm
:
Realm
)
{
val
settings
=
realm
.
where
(
RealmPublicSetting
::
class
.
java
).
findAll
()
val
serverSettings
=
hashMapOf
<
String
,
Value
<
Any
>>()
settings
.
toList
().
forEach
{
setting
->
val
type
=
setting
.
type
!!
val
value
=
setting
.
value
!!
val
convertedSetting
=
when
(
type
)
{
"string"
->
Value
(
value
)
"language"
->
Value
(
value
)
"boolean"
->
Value
(
value
.
toBoolean
())
"int"
->
try
{
Value
(
value
.
toInt
())
}
catch
(
ex
:
NumberFormatException
)
{
Value
(
0
)
}
else
->
null
// ignore
}
if
(
convertedSetting
!=
null
)
{
val
id
=
setting
.
_id
!!
serverSettings
.
put
(
id
,
convertedSetting
)
}
}
settingsRepository
.
save
(
url
,
serverSettings
)
}
private
fun
migrateCurrentServer
(
serversList
:
List
<
RealmBasedServerInfo
>)
{
if
(
getCurrentServerInteractor
.
get
()
==
null
)
{
var
currentServer
=
getSharedPreferences
(
"cache"
,
Context
.
MODE_PRIVATE
)
.
getString
(
"KEY_SELECTED_SERVER_HOSTNAME"
,
null
)
currentServer
=
if
(
serversList
.
isNotEmpty
())
{
val
server
=
serversList
.
find
{
it
.
hostname
==
currentServer
}
val
hostname
=
server
!!
.
hostname
if
(
server
.
insecure
)
{
"http://$hostname"
}
else
{
"https://$hostname"
}
}
else
{
"http://$currentServer"
}
saveCurrentServerRepository
.
save
(
currentServer
)
}
}
}
private
fun
migrateInternalTokens
()
{
private
fun
migrateInternalTokens
()
{
...
@@ -293,11 +178,6 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
...
@@ -293,11 +178,6 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
}
}
}
}
private
fun
LocalRepository
.
setMigrated
(
migrated
:
Boolean
)
{
save
(
LocalRepository
.
MIGRATION_FINISHED_KEY
,
migrated
)
}
private
fun
LocalRepository
.
hasMigrated
()
=
getBoolean
(
LocalRepository
.
MIGRATION_FINISHED_KEY
)
private
fun
LocalRepository
.
needOldMessagesCleanUp
()
=
getBoolean
(
CLEANUP_OLD_MESSAGES_NEEDED
,
true
)
private
fun
LocalRepository
.
needOldMessagesCleanUp
()
=
getBoolean
(
CLEANUP_OLD_MESSAGES_NEEDED
,
true
)
private
fun
LocalRepository
.
setOldMessagesCleanedUp
()
=
save
(
CLEANUP_OLD_MESSAGES_NEEDED
,
false
)
private
fun
LocalRepository
.
setOldMessagesCleanedUp
()
=
save
(
CLEANUP_OLD_MESSAGES_NEEDED
,
false
)
...
...
app/src/main/java/chat/rocket/android/app/migration/RealmMigration.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.app.migration.model.RealmUser
import
io.realm.DynamicRealm
import
io.realm.RealmMigration
class
RealmMigration
:
RealmMigration
{
override
fun
migrate
(
dynamicRealm
:
DynamicRealm
,
oldVersion
:
Long
,
newVersion
:
Long
)
{
var
oldVersion
=
oldVersion
val
schema
=
dynamicRealm
.
schema
if
(
oldVersion
==
0L
)
{
// NOOP
oldVersion
++
}
if
(
oldVersion
==
1L
)
{
oldVersion
++
}
if
(
oldVersion
==
2L
)
{
oldVersion
++
}
if
(
oldVersion
==
3L
)
{
oldVersion
++
}
if
(
oldVersion
==
4L
)
{
oldVersion
++
}
if
(
oldVersion
==
5L
)
{
val
userSchema
=
schema
.
get
(
"RealmUser"
)
try
{
userSchema
?.
addField
(
RealmUser
.
NAME
,
String
::
class
.
java
)
}
catch
(
e
:
IllegalArgumentException
)
{
if
(
BuildConfig
.
DEBUG
)
{
e
.
printStackTrace
()
}
// ignore; it makes here if the schema for this model was already update before without migration
}
}
}
// hack around to avoid "new different configuration cannot access the same file" error
override
fun
hashCode
():
Int
{
return
37
}
override
fun
equals
(
o
:
Any
?):
Boolean
{
return
o
is
chat
.
rocket
.
android
.
app
.
migration
.
RealmMigration
}
// end hack
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/RocketChatLibraryModule.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration
import
io.realm.annotations.RealmModule
@RealmModule
(
library
=
true
,
allClasses
=
true
)
class
RocketChatLibraryModule
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/RocketChatServerModule.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration
import
chat.rocket.android.app.migration.model.RealmBasedServerInfo
import
io.realm.annotations.RealmModule
@RealmModule
(
library
=
true
,
classes
=
arrayOf
(
RealmBasedServerInfo
::
class
))
class
RocketChatServerModule
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/model/RealmBasedServerInfo.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration.model
import
io.realm.RealmObject
import
io.realm.annotations.PrimaryKey
open
class
RealmBasedServerInfo
:
RealmObject
()
{
@PrimaryKey
@JvmField
var
hostname
:
String
?
=
null
@JvmField
var
name
:
String
?
=
null
@JvmField
var
session
:
String
?
=
null
@JvmField
var
insecure
:
Boolean
=
false
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/model/RealmEmail.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration.model
import
io.realm.RealmObject
import
io.realm.annotations.PrimaryKey
open
class
RealmEmail
:
RealmObject
()
{
@PrimaryKey
@JvmField
var
address
:
String
?
=
null
@JvmField
var
verified
:
Boolean
=
false
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/model/RealmPreferences.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration.model
import
io.realm.RealmObject
import
io.realm.annotations.PrimaryKey
open
class
RealmPreferences
:
RealmObject
()
{
@PrimaryKey
@JvmField
var
id
:
String
?
=
null
@JvmField
var
newRoomNotification
:
String
?
=
null
@JvmField
var
newMessageNotification
:
String
?
=
null
@JvmField
var
useEmojis
:
Boolean
=
false
@JvmField
var
convertAsciiEmoji
:
Boolean
=
false
@JvmField
var
saveMobileBandwidth
:
Boolean
=
false
@JvmField
var
collapseMediaByDefault
:
Boolean
=
false
@JvmField
var
unreadRoomsMode
:
Boolean
=
false
@JvmField
var
autoImageLoad
:
Boolean
=
false
@JvmField
var
emailNotificationMode
:
String
?
=
null
@JvmField
var
unreadAlert
:
Boolean
=
false
@JvmField
var
desktopNotificationDuration
:
Int
=
0
@JvmField
var
viewMode
:
Int
=
0
@JvmField
var
hideUsernames
:
Boolean
=
false
@JvmField
var
hideAvatars
:
Boolean
=
false
@JvmField
var
hideFlexTab
:
Boolean
=
false
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/model/RealmPublicSetting.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration.model
import
io.realm.RealmObject
import
io.realm.annotations.PrimaryKey
open
class
RealmPublicSetting
:
RealmObject
()
{
@PrimaryKey
@JvmField
var
_id
:
String
?
=
null
@JvmField
var
group
:
String
?
=
null
@JvmField
var
type
:
String
?
=
null
@JvmField
var
value
:
String
?
=
null
@JvmField
var
_updatedAt
:
Long
=
0
@JvmField
var
meta
:
String
?
=
null
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/model/RealmSession.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration.model
import
io.realm.RealmObject
import
io.realm.annotations.PrimaryKey
open
class
RealmSession
:
RealmObject
()
{
@JvmField
@PrimaryKey
var
sessionId
:
Int
=
0
//only 0 is used!
@JvmField
var
token
:
String
?
=
null
@JvmField
var
tokenVerified
:
Boolean
=
false
@JvmField
var
error
:
String
?
=
null
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/model/RealmSettings.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration.model
import
io.realm.RealmObject
import
io.realm.annotations.PrimaryKey
open
class
RealmSettings
:
RealmObject
()
{
@PrimaryKey
@JvmField
var
id
:
String
?
=
null
@JvmField
var
preferences
:
RealmPreferences
?
=
null
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/app/migration/model/RealmUser.kt
deleted
100644 → 0
View file @
0cf32df9
package
chat.rocket.android.app.migration.model
import
io.realm.RealmList
import
io.realm.RealmObject
import
io.realm.annotations.PrimaryKey
open
class
RealmUser
:
RealmObject
()
{
companion
object
{
const
val
ID
=
"_id"
const
val
NAME
=
"name"
const
val
USERNAME
=
"username"
const
val
STATUS
=
"status"
const
val
UTC_OFFSET
=
"utcOffset"
const
val
EMAILS
=
"emails"
const
val
SETTINGS
=
"settings"
const
val
STATUS_ONLINE
=
"online"
const
val
STATUS_BUSY
=
"busy"
const
val
STATUS_AWAY
=
"away"
const
val
STATUS_OFFLINE
=
"offline"
}
@PrimaryKey
@JvmField
var
_id
:
String
?
=
null
@JvmField
var
name
:
String
?
=
null
@JvmField
var
username
:
String
?
=
null
@JvmField
var
status
:
String
?
=
null
@JvmField
var
utcOffset
:
Double
=
0
.
toDouble
()
@JvmField
var
emails
:
RealmList
<
RealmEmail
>?
=
null
@JvmField
var
settings
:
RealmSettings
?
=
null
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/chatrooms/adapter/RoomMapper.kt
0 → 100644
View file @
cf9c9165
package
chat.rocket.android.chatrooms.adapter
app/src/main/java/chat/rocket/android/util/extensions/Date.kt
0 → 100644
View file @
cf9c9165
package
chat.rocket.android.util.extensions
app/src/main/res/drawable/ic_hashtag_12dp.xml
→
app/src/main/res/drawable/ic_hashtag_
unread_
12dp.xml
View file @
cf9c9165
File moved
build.gradle
View file @
cf9c9165
...
@@ -15,7 +15,6 @@ buildscript {
...
@@ -15,7 +15,6 @@ buildscript {
classpath
"org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}"
classpath
"org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}"
classpath
'com.google.gms:google-services:3.2.0'
classpath
'com.google.gms:google-services:3.2.0'
classpath
'io.fabric.tools:gradle:1.25.4'
classpath
'io.fabric.tools:gradle:1.25.4'
//classpath "io.realm:realm-gradle-plugin:5.1.0"
// 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
...
...
player/build.gradle
View file @
cf9c9165
...
@@ -3,7 +3,7 @@ apply plugin: 'kotlin-android'
...
@@ -3,7 +3,7 @@ apply plugin: 'kotlin-android'
apply
plugin:
'kotlin-android-extensions'
apply
plugin:
'kotlin-android-extensions'
android
{
android
{
compileSdkVersion
versions
.
compileSdk
compileSdkVersion
'android-P'
buildToolsVersion
versions
.
buildTools
buildToolsVersion
versions
.
buildTools
defaultConfig
{
defaultConfig
{
...
...
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