mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 11:46:32 +00:00
Fix AG design issues
This commit is contained in:
parent
b1c393b168
commit
bc2db020cd
22 changed files with 92 additions and 59 deletions
|
|
@ -85,6 +85,9 @@
|
|||
android:label="@string/LoginActivityName"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="com.habitrpg.android.habitica.ui.activities.MainActivity" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.activities.IntroActivity"
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ dependencies {
|
|||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
compileSdkVersion 30
|
||||
buildToolsVersion '29.0.3'
|
||||
testOptions {
|
||||
unitTests {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -24,8 +25,9 @@
|
|||
android:layout_height="66dp">
|
||||
<com.facebook.drawee.view.SimpleDraweeView
|
||||
android:id="@+id/achievement_icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="52dp"
|
||||
android:layout_width="52dp"
|
||||
android:layout_height="56dp"
|
||||
app:actualImageScaleType="fitCenter"
|
||||
android:layout_gravity="center"/>
|
||||
</FrameLayout>
|
||||
<TextView
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -12,8 +13,9 @@
|
|||
android:layout_height="86dp">
|
||||
<com.facebook.drawee.view.SimpleDraweeView
|
||||
android:id="@+id/achievement_icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="52dp"
|
||||
android:layout_width="52dp"
|
||||
android:layout_height="56dp"
|
||||
app:actualImageScaleType="fitCenter"
|
||||
android:layout_centerInParent="true"/>
|
||||
<TextView
|
||||
android:id="@+id/achievement_count_label"
|
||||
|
|
|
|||
|
|
@ -53,12 +53,13 @@
|
|||
android:gravity="center_horizontal"
|
||||
android:text="@string/adventure_guide_description"
|
||||
style="@style/Body2"
|
||||
android:textColor="@color/gray_50"
|
||||
android:layout_marginStart="30dp"
|
||||
android:layout_marginEnd="30dp"/>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_large"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginStart="30dp"
|
||||
android:layout_marginEnd="30dp">
|
||||
<TextView
|
||||
|
|
@ -85,8 +86,10 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="30dp"
|
||||
android:layout_marginEnd="30dp"
|
||||
android:layout_marginBottom="@dimen/spacing_medium"
|
||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||
android:progressBackgroundTint="@color/gray_600"
|
||||
android:progressBackgroundTintMode="src_in"
|
||||
android:progressTint="@color/yellow_50"/>
|
||||
|
||||
<LinearLayout
|
||||
|
|
|
|||
|
|
@ -9,18 +9,17 @@
|
|||
android:id="@+id/icon_view"
|
||||
android:layout_width="52dp"
|
||||
android:layout_height="56dp"
|
||||
android:scaleType="center"
|
||||
app:actualImageScaleType="fitCenter"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:layout_marginStart="30dp"/>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:layout_marginStart="17dp"
|
||||
android:layout_marginEnd="30dp">
|
||||
<TextView
|
||||
|
|
|
|||
|
|
@ -20,16 +20,17 @@
|
|||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
style="@style/Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/onboarding_tasks" />
|
||||
android:text="@string/onboarding_tasks"
|
||||
style="@style/Body1"
|
||||
android:textColor="@color/gray_50"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
@ -73,7 +74,7 @@
|
|||
android:background="@drawable/adventure_guide_menu_card_gray"
|
||||
android:src="@drawable/ic_keyboard_arrow_right"
|
||||
android:scaleType="center"
|
||||
android:alpha="0.25"
|
||||
android:alpha="0.4"
|
||||
/>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical" android:layout_width="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal">
|
||||
<LinearLayout
|
||||
|
|
@ -15,9 +17,9 @@
|
|||
android:src="@drawable/sparkles_left" />
|
||||
<com.facebook.drawee.view.SimpleDraweeView
|
||||
android:id="@+id/icon_view"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="52dp"
|
||||
android:scaleType="center"
|
||||
android:layout_width="52dp"
|
||||
android:layout_height="56dp"
|
||||
app:actualImageScaleType="fitCenter"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp" />
|
||||
<ImageView
|
||||
|
|
|
|||
|
|
@ -1033,7 +1033,7 @@
|
|||
<string name="create_task_description">Add a task for something you would like to accomplish this week</string>
|
||||
<string name="complete_task_description">Check off any of your tasks to earn rewards</string>
|
||||
<string name="hatch_pet_description">Head over to your Items and try combining a Hatching Potion and Egg</string>
|
||||
<string name="feedPet_description">There are many different types of food, but pets can be picky</string>
|
||||
<string name="feedPet_description">Complete tasks to get food! You can feed it to your pet from Pets & Mounts</string>
|
||||
<string name="purchase_equipment_description">Equipment is a way to customize your avatar and improve your stats</string>
|
||||
<string name="createdTaskTitle">Created your first task</string>
|
||||
<string name="completedTaskTitle">Completed a task</string>
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ import android.content.Context
|
|||
import android.content.res.TypedArray
|
||||
import android.util.AttributeSet
|
||||
|
||||
fun AttributeSet.styledAttributes(context: Context?, style: IntArray?): TypedArray? =
|
||||
fun AttributeSet.styledAttributes(context: Context?, style: IntArray): TypedArray? =
|
||||
context?.theme?.obtainStyledAttributes(this, style, 0, 0)
|
||||
|
|
@ -48,21 +48,23 @@ class SignInWebViewDialogFragment : DialogFragment() {
|
|||
): View? {
|
||||
super.onCreateView(inflater, container, savedInstanceState)
|
||||
|
||||
val webView = WebView(context).apply {
|
||||
settings.apply {
|
||||
javaScriptEnabled = true
|
||||
javaScriptCanOpenWindowsAutomatically = true
|
||||
val webView = context?.let {
|
||||
WebView(it).apply {
|
||||
settings.apply {
|
||||
javaScriptEnabled = true
|
||||
javaScriptCanOpenWindowsAutomatically = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
webView.webViewClient = SignInWebViewClient(authenticationAttempt, ::onCallback)
|
||||
webView?.webViewClient = SignInWebViewClient(authenticationAttempt, ::onCallback)
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
savedInstanceState.getBundle(WEB_VIEW_KEY)?.run {
|
||||
webView.restoreState(this)
|
||||
webView?.restoreState(this)
|
||||
}
|
||||
} else {
|
||||
webView.loadUrl(authenticationAttempt.authenticationUri)
|
||||
webView?.loadUrl(authenticationAttempt.authenticationUri)
|
||||
}
|
||||
|
||||
return webView
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package com.habitrpg.android.habitica.ui.activities
|
|||
|
||||
import android.graphics.Paint
|
||||
import android.os.Bundle
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.core.app.NavUtils
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
|
|
@ -15,6 +17,7 @@ import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
|
|||
import io.reactivex.functions.Consumer
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
class AdventureGuideActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivityAdventureGuideBinding
|
||||
|
||||
|
|
@ -59,6 +62,16 @@ class AdventureGuideActivity : BaseActivity() {
|
|||
)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
return when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
NavUtils.navigateUpFromSameTask(this)
|
||||
true
|
||||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
compositeSubscription.add(userRepository.getUser().subscribe(Consumer {
|
||||
|
|
@ -74,7 +87,7 @@ class AdventureGuideActivity : BaseActivity() {
|
|||
|
||||
if (completed > 0) {
|
||||
binding.progressTextview.text = getString(R.string.percent_completed, ((completed / achievements.size.toFloat()) * 100).toInt())
|
||||
binding.progressTextview.setTextColor(ContextCompat.getColor(this, R.color.yellow_10))
|
||||
binding.progressTextview.setTextColor(ContextCompat.getColor(this, R.color.yellow_5))
|
||||
}
|
||||
|
||||
binding.achievementContainer.removeAllViews()
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ class ClassSelectionActivity : BaseActivity(), Consumer<User> {
|
|||
return true
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item?.itemId) {
|
||||
R.id.opt_out -> optOutSelected()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
drawerToggle?.syncState()
|
||||
}
|
||||
|
||||
override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
|
||||
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
|
||||
super.onRestoreInstanceState(savedInstanceState)
|
||||
Log.e("RESTORED:", savedInstanceState.toString())
|
||||
}
|
||||
|
|
@ -391,20 +391,20 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
|
||||
if (resultCode == NOTIFICATION_CLICK && data?.hasExtra("notificationId") == true) {
|
||||
notificationsViewModel?.click(
|
||||
data.getStringExtra("notificationId"),
|
||||
data.getStringExtra("notificationId") ?: "",
|
||||
MainNavigationController
|
||||
)
|
||||
}
|
||||
|
||||
if (resultCode == NOTIFICATION_ACCEPT && data?.hasExtra("notificationId") == true) {
|
||||
notificationsViewModel?.accept(
|
||||
data.getStringExtra("notificationId")
|
||||
data.getStringExtra("notificationId") ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
if (resultCode == NOTIFICATION_REJECT && data?.hasExtra("notificationId") == true) {
|
||||
notificationsViewModel?.reject(
|
||||
data.getStringExtra("notificationId")
|
||||
data.getStringExtra("notificationId") ?: ""
|
||||
)
|
||||
}
|
||||
PurchaseHandler.findForActivity(this)?.onResult(requestCode, resultCode, data)
|
||||
|
|
@ -690,6 +690,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
|
||||
@Subscribe
|
||||
fun showAchievementDialog(event: ShowAchievementDialog) {
|
||||
retrieveUser()
|
||||
compositeSubscription.add(Completable.complete()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(Action {
|
||||
|
|
@ -703,6 +704,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
|
||||
@Subscribe
|
||||
fun showFirstDropDialog(event: ShowFirstDropDialog) {
|
||||
retrieveUser()
|
||||
compositeSubscription.add(Completable.complete()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(Action {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ class TaskFormActivity : BaseActivity() {
|
|||
return true
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item?.itemId) {
|
||||
R.id.action_save -> saveTask()
|
||||
R.id.action_delete -> deleteTask()
|
||||
|
|
|
|||
|
|
@ -70,19 +70,23 @@ class NavigationDrawerAdapter(tintColor: Int, backgroundTintColor: Int): Recycle
|
|||
|
||||
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
|
||||
val drawerItem = getItem(position)
|
||||
if (getItemViewType(position) == 0) {
|
||||
val itemHolder = holder as? DrawerItemViewHolder
|
||||
itemHolder?.tintColor = tintColor
|
||||
itemHolder?.backgroundTintColor = backgroundTintColor
|
||||
itemHolder?.bind(drawerItem, drawerItem.transitionId == selectedItem)
|
||||
itemHolder?.itemView?.setOnClickListener { itemSelectedEvents.onNext(drawerItem) }
|
||||
} else if (getItemViewType(position) == 1) {
|
||||
(holder as? SectionHeaderViewHolder)?.backgroundTintColor = backgroundTintColor
|
||||
(holder as? SectionHeaderViewHolder)?.bind(drawerItem)
|
||||
} else if (getItemViewType(position) == 4) {
|
||||
drawerItem.user?.let { (holder.itemView as? AdventureGuideMenuBanner)?.updateData(it) }
|
||||
holder.itemView.setOnClickListener { itemSelectedEvents.onNext(drawerItem) }
|
||||
when {
|
||||
getItemViewType(position) == 0 -> {
|
||||
val itemHolder = holder as? DrawerItemViewHolder
|
||||
itemHolder?.tintColor = tintColor
|
||||
itemHolder?.backgroundTintColor = backgroundTintColor
|
||||
itemHolder?.bind(drawerItem, drawerItem.transitionId == selectedItem)
|
||||
itemHolder?.itemView?.setOnClickListener { itemSelectedEvents.onNext(drawerItem) }
|
||||
}
|
||||
getItemViewType(position) == 1 -> {
|
||||
(holder as? SectionHeaderViewHolder)?.backgroundTintColor = backgroundTintColor
|
||||
(holder as? SectionHeaderViewHolder)?.bind(drawerItem)
|
||||
}
|
||||
getItemViewType(position) == 4 -> {
|
||||
drawerItem.user?.let { (holder.itemView as? AdventureGuideMenuBanner)?.updateData(it) }
|
||||
holder.itemView.setOnClickListener { itemSelectedEvents.onNext(drawerItem) }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ class AboutFragment : BaseMainFragment() {
|
|||
private val versionName: String by lazy {
|
||||
try {
|
||||
@Suppress("DEPRECATION")
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName, 0)?.versionName ?: ""
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName ?: "", 0)?.versionName ?: ""
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
""
|
||||
}
|
||||
|
|
@ -99,7 +99,7 @@ class AboutFragment : BaseMainFragment() {
|
|||
private val versionCode: Int by lazy {
|
||||
try {
|
||||
@Suppress("DEPRECATION")
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName, 0)?.versionCode ?: 0
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName ?: "", 0)?.versionCode ?: 0
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
0
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class BugFixFragment: BaseMainFragment() {
|
|||
private val versionName: String by lazy {
|
||||
try {
|
||||
@Suppress("DEPRECATION")
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName, 0)?.versionName ?: ""
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName ?: "", 0)?.versionName ?: ""
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
""
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ class BugFixFragment: BaseMainFragment() {
|
|||
private val versionCode: Int by lazy {
|
||||
try {
|
||||
@Suppress("DEPRECATION")
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName, 0)?.versionCode ?: 0
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName ?: "", 0)?.versionCode ?: 0
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
0
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ class SupportMainFragment : BaseMainFragment() {
|
|||
private val versionName: String by lazy {
|
||||
try {
|
||||
@Suppress("DEPRECATION")
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName, 0)?.versionName ?: ""
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName ?: "", 0)?.versionName ?: ""
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
""
|
||||
}
|
||||
|
|
@ -84,7 +84,7 @@ class SupportMainFragment : BaseMainFragment() {
|
|||
private val versionCode: Int by lazy {
|
||||
try {
|
||||
@Suppress("DEPRECATION")
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName, 0)?.versionCode ?: 0
|
||||
activity?.packageManager?.getPackageInfo(activity?.packageName ?: "", 0)?.versionCode ?: 0
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
0
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ class RewardsRecyclerviewFragment : TaskRecyclerViewFragment() {
|
|||
userRepository.useSkill(user,
|
||||
selectedCard?.key ?: "",
|
||||
"member",
|
||||
data.getStringExtra("member_id"))
|
||||
data.getStringExtra("member_id") ?: "")
|
||||
.subscribeWithErrorHandler(Consumer {
|
||||
val activity = (activity as? MainActivity) ?: return@Consumer
|
||||
HabiticaSnackbar.showSnackbar(activity.snackbarContainer,
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ abstract class BaseTaskViewHolder constructor(itemView: View, var scoreTaskFunc:
|
|||
notesTextView?.addEllipsesListener(object : EllipsisTextView.EllipsisListener {
|
||||
override fun ellipsisStateChanged(ellipses: Boolean) {
|
||||
GlobalScope.launch(Dispatchers.Main.immediate) {
|
||||
if (ellipses) {
|
||||
if (ellipses && notesTextView?.maxLines != 3) {
|
||||
notesTextView?.maxLines = 3
|
||||
}
|
||||
expandNotesButton?.visibility = if (ellipses || notesExpanded) View.VISIBLE else View.GONE
|
||||
|
|
@ -123,7 +123,7 @@ abstract class BaseTaskViewHolder constructor(itemView: View, var scoreTaskFunc:
|
|||
titleTextView.setParsedMarkdown(data.parsedText)
|
||||
} else {
|
||||
titleTextView.text = data.text
|
||||
titleTextView.setSpannableFactory(NoCopySpannableFactory.getInstance());
|
||||
titleTextView.setSpannableFactory(NoCopySpannableFactory.getInstance())
|
||||
if (data.text.isNotEmpty()) {
|
||||
Single.just(data.text)
|
||||
.map { MarkdownParser.parseMarkdown(it) }
|
||||
|
|
@ -139,7 +139,7 @@ abstract class BaseTaskViewHolder constructor(itemView: View, var scoreTaskFunc:
|
|||
notesTextView?.setParsedMarkdown(data.parsedText)
|
||||
} else {
|
||||
notesTextView?.text = data.notes
|
||||
notesTextView?.setSpannableFactory(NoCopySpannableFactory.getInstance());
|
||||
notesTextView?.setSpannableFactory(NoCopySpannableFactory.getInstance())
|
||||
data.notes?.let {notes ->
|
||||
if (notes.isEmpty()) {
|
||||
return@let
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ apply plugin: 'kotlin-multiplatform'
|
|||
apply plugin: 'kotlin-kapt'
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
compileSdkVersion 30
|
||||
|
||||
defaultConfig {
|
||||
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 29
|
||||
targetSdkVersion 30
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue