move some model code to shared kotlin multiplatform module

This commit is contained in:
Phillip Thelen 2022-08-22 14:55:50 +02:00
parent af5798b571
commit f0999429f5
172 changed files with 527 additions and 544 deletions

View file

@ -79,7 +79,7 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test:rules:1.4.0'
debugImplementation 'androidx.fragment:fragment-testing:1.5.0'
debugImplementation 'androidx.fragment:fragment-testing:1.5.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test:core-ktx:1.4.0'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.3'
@ -107,17 +107,17 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.0'
implementation "androidx.fragment:fragment-ktx:1.5.0"
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.1'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.1'
implementation "androidx.fragment:fragment-ktx:1.5.2"
implementation "androidx.paging:paging-runtime-ktx:3.1.1"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
implementation 'com.willowtreeapps:signinwithapplebutton:0.3'
implementation project(':shared')
implementation project(':common')
implementation project(':shared')
ktlint('com.pinterest:ktlint:0.45.2') {
attributes {

View file

@ -11,9 +11,9 @@ import androidx.test.filters.LargeTest
import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.common.habitica.models.tasks.Frequency
import com.habitrpg.shared.habitica.models.tasks.Frequency
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.github.kakaocup.kakao.common.assertions.BaseAssertions
import io.github.kakaocup.kakao.common.matchers.ChildCountMatcher
import io.github.kakaocup.kakao.common.views.KView

View file

@ -6,7 +6,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.FragmentStatsBinding
import com.habitrpg.common.habitica.models.tasks.Attribute
import com.habitrpg.shared.habitica.models.tasks.Attribute
import io.github.kakaocup.kakao.common.views.KView
import io.github.kakaocup.kakao.screen.Screen
import io.github.kakaocup.kakao.text.KButton

View file

@ -7,7 +7,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.ui.fragments.FragmentTestCase
import io.github.kakaocup.kakao.common.views.KView
import io.github.kakaocup.kakao.recycler.KRecyclerItem

View file

@ -31,11 +31,11 @@ import com.habitrpg.common.habitica.models.PurchaseValidationResult
import com.habitrpg.common.habitica.models.auth.UserAuth
import com.habitrpg.common.habitica.models.auth.UserAuthResponse
import com.habitrpg.common.habitica.models.auth.UserAuthSocial
import com.habitrpg.common.habitica.models.responses.FeedResponse
import com.habitrpg.common.habitica.models.responses.HabitResponse
import com.habitrpg.common.habitica.models.responses.Status
import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.common.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.shared.habitica.models.responses.FeedResponse
import com.habitrpg.common.habitica.models.HabitResponse
import com.habitrpg.shared.habitica.models.responses.Status
import com.habitrpg.shared.habitica.models.responses.TaskDirectionData
import com.habitrpg.shared.habitica.models.responses.VerifyUsernameResponse
import io.reactivex.rxjava3.core.Flowable
import retrofit2.http.Body
import retrofit2.http.DELETE

View file

@ -17,7 +17,7 @@ import com.habitrpg.android.habitica.models.inventory.Quest;
import com.habitrpg.android.habitica.models.inventory.QuestCollect;
import com.habitrpg.android.habitica.models.inventory.QuestDropItem;
import com.habitrpg.android.habitica.models.members.Member;
import com.habitrpg.common.habitica.models.responses.FeedResponse;
import com.habitrpg.shared.habitica.models.responses.FeedResponse;
import com.habitrpg.android.habitica.models.social.Challenge;
import com.habitrpg.android.habitica.models.social.ChatMessage;
import com.habitrpg.android.habitica.models.social.FindUsernameResult;

View file

@ -1,6 +1,6 @@
package com.habitrpg.android.habitica.api;
import com.habitrpg.common.habitica.models.responses.MaintenanceResponse;
import com.habitrpg.shared.habitica.models.responses.MaintenanceResponse;
import io.reactivex.rxjava3.core.Flowable;
import retrofit2.http.GET;

View file

@ -36,6 +36,16 @@ import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.android.habitica.models.user.Items
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.common.habitica.models.PurchaseValidationRequest
import com.habitrpg.common.habitica.models.PurchaseValidationResult
import com.habitrpg.common.habitica.models.auth.UserAuthResponse
import com.habitrpg.shared.habitica.models.responses.ErrorResponse
import com.habitrpg.shared.habitica.models.responses.FeedResponse
import com.habitrpg.common.habitica.models.HabitResponse
import com.habitrpg.shared.habitica.models.responses.Status
import com.habitrpg.shared.habitica.models.responses.TaskDirectionData
import com.habitrpg.shared.habitica.models.responses.VerifyUsernameResponse
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.core.FlowableTransformer
import retrofit2.HttpException

View file

@ -18,6 +18,7 @@ import com.habitrpg.android.habitica.models.user.OwnedItem
import com.habitrpg.android.habitica.models.user.OwnedMount
import com.habitrpg.android.habitica.models.user.OwnedPet
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.shared.habitica.models.responses.FeedResponse
import io.reactivex.rxjava3.core.Flowable
import kotlinx.coroutines.flow.Flow

View file

@ -5,9 +5,9 @@ import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.core.Maybe
import io.reactivex.rxjava3.core.Single

View file

@ -8,9 +8,9 @@ import com.habitrpg.android.habitica.models.TeamPlan
import com.habitrpg.android.habitica.models.inventory.Customization
import com.habitrpg.android.habitica.models.responses.SkillResponse
import com.habitrpg.android.habitica.models.responses.UnlockResponse
import com.habitrpg.common.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.shared.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.android.habitica.models.social.Group
import com.habitrpg.common.habitica.models.tasks.Attribute
import com.habitrpg.shared.habitica.models.tasks.Attribute
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User

View file

@ -46,12 +46,12 @@ import com.habitrpg.common.habitica.models.auth.UserAuth
import com.habitrpg.common.habitica.models.auth.UserAuthResponse
import com.habitrpg.common.habitica.models.auth.UserAuthSocial
import com.habitrpg.common.habitica.models.auth.UserAuthSocialTokens
import com.habitrpg.common.habitica.models.responses.ErrorResponse
import com.habitrpg.common.habitica.models.responses.FeedResponse
import com.habitrpg.common.habitica.models.responses.HabitResponse
import com.habitrpg.common.habitica.models.responses.Status
import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.common.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.shared.habitica.models.responses.ErrorResponse
import com.habitrpg.shared.habitica.models.responses.FeedResponse
import com.habitrpg.common.habitica.models.HabitResponse
import com.habitrpg.shared.habitica.models.responses.Status
import com.habitrpg.shared.habitica.models.responses.TaskDirectionData
import com.habitrpg.shared.habitica.models.responses.VerifyUsernameResponse
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.core.FlowableTransformer

View file

@ -8,8 +8,8 @@ import com.habitrpg.android.habitica.models.social.Challenge
import com.habitrpg.android.habitica.models.social.ChallengeMembership
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import io.reactivex.rxjava3.core.Flowable
import retrofit2.HttpException

View file

@ -22,6 +22,7 @@ import com.habitrpg.android.habitica.models.user.OwnedItem
import com.habitrpg.android.habitica.models.user.OwnedMount
import com.habitrpg.android.habitica.models.user.OwnedPet
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.shared.habitica.models.responses.FeedResponse
import io.reactivex.rxjava3.core.Flowable
import kotlinx.coroutines.flow.Flow

View file

@ -9,14 +9,14 @@ import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.interactors.ScoreTaskLocallyInteractor
import com.habitrpg.android.habitica.models.BaseMainObject
import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirectionData
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import com.habitrpg.android.habitica.models.user.OwnedItem
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.proxy.AnalyticsManager

View file

@ -22,9 +22,9 @@ import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.proxy.AnalyticsManager
import com.habitrpg.common.habitica.extensions.Optional
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.common.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.common.habitica.models.tasks.Attribute
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.shared.habitica.models.tasks.Attribute
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.core.Maybe
import io.reactivex.rxjava3.functions.BiFunction

View file

@ -3,8 +3,8 @@ package com.habitrpg.android.habitica.data.local
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.core.Maybe
import kotlinx.coroutines.flow.Flow

View file

@ -6,8 +6,8 @@ import com.habitrpg.android.habitica.models.tasks.RemindersItem
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import hu.akarnokd.rxjava3.bridge.RxJavaBridge
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.core.Maybe

View file

@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.models.tasks.RemindersItem
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.receivers.NotificationPublisher
import com.habitrpg.android.habitica.receivers.TaskReceiver
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.HLogger
import com.habitrpg.shared.habitica.LogLevel
import kotlinx.coroutines.flow.firstOrNull

View file

@ -3,6 +3,7 @@ package com.habitrpg.android.habitica.helpers
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.models.inventory.Equipment
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.shared.habitica.models.Avatar
class UserStatComputer {
@ -24,7 +25,7 @@ class UserStatComputer {
var stats: String? = null
}
fun computeClassBonus(equipmentList: List<Equipment>, user: com.habitrpg.common.habitica.models.Avatar): List<StatsRow> {
fun computeClassBonus(equipmentList: List<Equipment>, user: Avatar): List<StatsRow> {
val skillRows = ArrayList<StatsRow>()
var strAttributes = 0f

View file

@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.interactors
import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.executors.PostExecutionThread
import com.habitrpg.android.habitica.helpers.SoundManager
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.user.User
import io.reactivex.rxjava3.core.Flowable

View file

@ -6,7 +6,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.executors.PostExecutionThread
import com.habitrpg.android.habitica.helpers.SoundManager
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import io.reactivex.rxjava3.core.Flowable
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope

View file

@ -10,7 +10,7 @@ import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.executors.PostExecutionThread
import com.habitrpg.android.habitica.models.inventory.Food
import com.habitrpg.android.habitica.models.inventory.Pet
import com.habitrpg.common.habitica.models.responses.FeedResponse
import com.habitrpg.shared.habitica.models.responses.FeedResponse
import com.habitrpg.android.habitica.ui.activities.BaseActivity
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.common.habitica.views.PixelArtView

View file

@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.executors.PostExecutionThread
import com.habitrpg.android.habitica.extensions.filterMap
import com.habitrpg.android.habitica.extensions.round
import com.habitrpg.shared.habitica.extensions.round
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.activities.BaseActivity

View file

@ -3,9 +3,9 @@ package com.habitrpg.android.habitica.interactors
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirectionData
import com.habitrpg.shared.habitica.models.tasks.TaskType
import kotlin.math.min
import kotlin.math.pow
import kotlin.math.roundToLong

View file

@ -2,12 +2,13 @@ package com.habitrpg.android.habitica.models.auth
import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.shared.habitica.models.AvatarLocalAuthentication
import io.realm.RealmObject
import io.realm.annotations.RealmClass
@RealmClass(embedded = true)
open class LocalAuthentication : RealmObject(), BaseObject {
var username: String? = null
open class LocalAuthentication : RealmObject(), BaseObject, AvatarLocalAuthentication {
override var username: String? = null
var email: String? = null
@SerializedName("has_password")
var hasPassword: Boolean? = false

View file

@ -11,7 +11,7 @@ import com.habitrpg.android.habitica.models.user.Items
import com.habitrpg.android.habitica.models.user.Outfit
import com.habitrpg.android.habitica.models.user.Profile
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.common.habitica.models.Avatar
import com.habitrpg.shared.habitica.models.Avatar
import io.realm.RealmModel
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
@ -33,8 +33,9 @@ open class Member : RealmObject(), Avatar, BaseMainObject {
var party: UserParty? = null
var contributor: ContributorInfo? = null
var backer: Backer? = null
var authentication: Authentication? = null
var items: Items? = null
override var balance: Double = 0.0
override var authentication: Authentication? = null
override var items: Items? = null
override var costume: Outfit? = null
override var equipped: Outfit? = null
@ -54,18 +55,6 @@ open class Member : RealmObject(), Avatar, BaseMainObject {
val mountsTamedCount: Int
get() = this.items?.mounts?.size ?: 0
val username: String?
get() = authentication?.localAuthentication?.username
val formattedUsername: String?
get() = if (username != null) "@$username" else null
override val hasClass: Boolean
get() {
return preferences?.disableClasses == false && stats?.habitClass?.isNotEmpty() == true
}
override val sleep: Boolean
get() = preferences?.sleep ?: false
override val realmClass: Class<out RealmModel>
get() = Member::class.java
override val primaryIdentifier: String?

View file

@ -1,6 +1,6 @@
package com.habitrpg.android.habitica.models.members
import com.habitrpg.common.habitica.models.AvatarFlags
import com.habitrpg.shared.habitica.models.AvatarFlags
import io.realm.RealmObject
import io.realm.annotations.RealmClass

View file

@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.models.members
import com.habitrpg.android.habitica.models.user.Hair
import com.habitrpg.common.habitica.models.AvatarPreferences
import com.habitrpg.shared.habitica.models.AvatarPreferences
import io.realm.RealmObject
import io.realm.annotations.RealmClass

View file

@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.models.responses
import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.models.user.Buffs
import com.habitrpg.android.habitica.models.user.Training
import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.shared.habitica.models.responses.TaskDirectionData
class BulkTaskScoringData {
@SerializedName("con")

View file

@ -1,8 +1,8 @@
package com.habitrpg.android.habitica.models.social
import com.habitrpg.android.habitica.models.BaseMainObject
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import io.realm.RealmModel
import io.realm.RealmObject
import io.realm.annotations.Ignore

View file

@ -4,8 +4,8 @@ import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.models.BaseMainObject
import com.habitrpg.android.habitica.models.inventory.Quest
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.Ignore

View file

@ -1,14 +1,17 @@
package com.habitrpg.android.habitica.models.social
import com.habitrpg.android.habitica.models.user.Authentication
import com.habitrpg.android.habitica.models.user.Flags
import com.habitrpg.android.habitica.models.user.Items
import com.habitrpg.android.habitica.models.user.Outfit
import com.habitrpg.android.habitica.models.user.Preferences
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.shared.habitica.models.Avatar
import io.realm.RealmObject
import io.realm.annotations.RealmClass
@RealmClass(embedded = true)
open class UserStyles : RealmObject(), com.habitrpg.common.habitica.models.Avatar {
open class UserStyles : RealmObject(), Avatar {
override val currentMount: String?
get() = items?.currentMount
@ -33,10 +36,10 @@ open class UserStyles : RealmObject(), com.habitrpg.common.habitica.models.Avata
get() {
return false
}
override var balance: Double = 0.0
override var authentication: Authentication? = null
override var stats: Stats? = null
override var preferences: Preferences? = null
override val flags: com.habitrpg.common.habitica.models.AvatarFlags?
get() = null
private var items: Items? = null
override var flags: Flags? = null
override var items: Items? = null
}

View file

@ -9,10 +9,10 @@ import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.BaseMainObject
import com.habitrpg.android.habitica.models.Tag
import com.habitrpg.common.habitica.helpers.MarkdownParser
import com.habitrpg.common.habitica.models.tasks.Attribute
import com.habitrpg.common.habitica.models.tasks.BaseTask
import com.habitrpg.common.habitica.models.tasks.Frequency
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.Attribute
import com.habitrpg.shared.habitica.models.tasks.BaseTask
import com.habitrpg.shared.habitica.models.tasks.Frequency
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.Ignore

View file

@ -4,11 +4,12 @@ import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.android.habitica.models.auth.LocalAuthentication
import com.habitrpg.android.habitica.models.user.auth.SocialAuthentication
import com.habitrpg.shared.habitica.models.AvatarAuthentication
import io.realm.RealmObject
import io.realm.annotations.RealmClass
@RealmClass(embedded = true)
open class Authentication : RealmObject(), BaseObject {
open class Authentication : RealmObject(), BaseObject, AvatarAuthentication {
fun findFirstSocialEmail(): String? {
for (auth in listOf(googleAuthentication, appleAuthentication, facebookAuthentication)) {
if (auth?.emails?.isNotEmpty() == true) {
@ -21,7 +22,7 @@ open class Authentication : RealmObject(), BaseObject {
val hasPassword: Boolean
get() = localAuthentication?.hasPassword == true
@SerializedName("local")
var localAuthentication: LocalAuthentication? = null
override var localAuthentication: LocalAuthentication? = null
@SerializedName("google")
var googleAuthentication: SocialAuthentication? = null
@SerializedName("apple")

View file

@ -2,7 +2,7 @@ package com.habitrpg.android.habitica.models.user
import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.common.habitica.models.AvatarBuffs
import com.habitrpg.shared.habitica.models.AvatarBuffs
import io.realm.RealmObject
import io.realm.annotations.RealmClass

View file

@ -2,12 +2,13 @@ package com.habitrpg.android.habitica.models.user
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.android.habitica.models.TutorialStep
import com.habitrpg.shared.habitica.models.AvatarFlags
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.RealmClass
@RealmClass(embedded = true)
open class Flags : RealmObject(), BaseObject, com.habitrpg.common.habitica.models.AvatarFlags {
open class Flags : RealmObject(), BaseObject, AvatarFlags {
var tutorial: RealmList<TutorialStep>? = null
var showTour = false
var dropsEnabled = false

View file

@ -2,13 +2,14 @@ package com.habitrpg.android.habitica.models.user
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.android.habitica.models.inventory.Equipment
import com.habitrpg.shared.habitica.models.AvatarGear
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.RealmClass
@RealmClass(embedded = true)
open class Gear : RealmObject(), BaseObject {
open class Gear : RealmObject(), BaseObject, AvatarGear {
var owned: RealmList<Equipment>? = null
var equipped: Outfit? = null
var costume: Outfit? = null
override var equipped: Outfit? = null
override var costume: Outfit? = null
}

View file

@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.models.user
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.common.habitica.models.AvatarHair
import com.habitrpg.shared.habitica.models.AvatarHair
import io.realm.RealmObject
import io.realm.annotations.RealmClass

View file

@ -1,13 +1,14 @@
package com.habitrpg.android.habitica.models.user
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.shared.habitica.models.AvatarItems
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.RealmClass
import java.util.Date
@RealmClass(embedded = true)
open class Items : RealmObject, BaseObject {
open class Items : RealmObject, BaseObject, AvatarItems {
fun setItemTypes() {
hatchingPotions?.forEach { it.itemType = "hatchingPotions" }
eggs?.forEach { it.itemType = "eggs" }
@ -44,13 +45,13 @@ open class Items : RealmObject, BaseObject {
var pets: RealmList<OwnedPet>? = null
var mounts: RealmList<OwnedMount>? = null
var currentMount: String? = null
var currentPet: String? = null
override var currentMount: String? = null
override var currentPet: String? = null
var lastDropCount: Int = 0
var lastDropDate: Date? = null
// private QuestContent quest;
var gear: Gear? = null
override var gear: Gear? = null
constructor(currentMount: String, currentPet: String, lastDropCount: Int, lastDropDate: Date) {
this.currentMount = currentMount

View file

@ -2,7 +2,7 @@ package com.habitrpg.android.habitica.models.user
import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.common.habitica.models.AvatarOutfit
import com.habitrpg.shared.habitica.models.AvatarOutfit
import io.realm.RealmObject
import io.realm.annotations.RealmClass

View file

@ -2,7 +2,7 @@ package com.habitrpg.android.habitica.models.user
import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.common.habitica.models.AvatarPreferences
import com.habitrpg.shared.habitica.models.AvatarPreferences
import io.realm.RealmObject
import io.realm.annotations.RealmClass

View file

@ -4,7 +4,7 @@ import android.content.Context
import com.google.gson.annotations.SerializedName
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.common.habitica.models.AvatarStats
import com.habitrpg.shared.habitica.models.AvatarStats
import io.realm.RealmObject
import io.realm.annotations.RealmClass

View file

@ -11,8 +11,8 @@ import com.habitrpg.android.habitica.models.invitations.Invitations
import com.habitrpg.android.habitica.models.social.ChallengeMembership
import com.habitrpg.android.habitica.models.social.UserParty
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.common.habitica.models.Avatar
import com.habitrpg.shared.habitica.models.Avatar
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.Ignore
@ -38,15 +38,15 @@ open class User : RealmObject(), BaseMainObject, Avatar, VersionedObject {
@SerializedName("_v")
override var versionNumber: Int = 0
var balance: Double = 0.toDouble()
override var balance: Double = 0.toDouble()
override var stats: Stats? = null
var inbox: Inbox? = null
override var preferences: Preferences? = null
var profile: Profile? = null
var party: UserParty? = null
var items: Items? = null
override var items: Items? = null
@SerializedName("auth")
var authentication: Authentication? = null
override var authentication: Authentication? = null
override var flags: Flags? = null
var contributor: ContributorInfo? = null
var backer: Backer? = null
@ -86,39 +86,13 @@ open class User : RealmObject(), BaseMainObject, Avatar, VersionedObject {
val contributorColor: Int
get() = this.contributor?.contributorColor ?: R.color.text_primary
val username: String?
get() = authentication?.localAuthentication?.username
val formattedUsername: String?
get() = if (username != null) "@$username" else null
override val gemCount: Int
get() = (this.balance * 4).toInt()
override val hourglassCount: Int
get() = purchased?.plan?.consecutive?.trinkets ?: 0
override val costume: Outfit?
get() = items?.gear?.costume
override val equipped: Outfit?
get() = items?.gear?.equipped
override val hasClass: Boolean
get() {
return preferences?.disableClasses != true && flags?.classSelected == true && stats?.habitClass?.isNotEmpty() == true
}
override val currentMount: String?
get() = items?.currentMount ?: ""
override val currentPet: String?
get() = items?.currentPet ?: ""
override val sleep: Boolean
get() = preferences?.sleep ?: false
val hasParty: Boolean
get() {
return this.party?.id?.length ?: 0 > 0
return (this.party?.id?.length ?: 0) > 0
}
val isSubscribed: Boolean

View file

@ -20,7 +20,7 @@ import com.habitrpg.android.habitica.helpers.TaskAlarmManager
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.activities.MainActivity
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.functions.BiFunction
import java.util.Calendar
import java.util.Date

View file

@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.extensions.withImmutableFlag
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.TaskAlarmManager
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.ui.activities.MainActivity
import com.habitrpg.shared.habitica.HLogger
import com.habitrpg.shared.habitica.LogLevel

View file

@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.helpers.Animations
import com.habitrpg.common.habitica.helpers.HealthFormatter
import com.habitrpg.common.habitica.models.Avatar
import com.habitrpg.shared.habitica.models.Avatar
import java.util.Date
import java.util.Locale
import kotlin.math.floor

View file

@ -8,7 +8,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.edit
import androidx.preference.PreferenceManager
import com.habitrpg.android.habitica.databinding.WidgetConfigureAddTaskBinding
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.widget.AddTaskWidgetProvider
class AddTaskWidgetActivity : AppCompatActivity() {

View file

@ -37,7 +37,7 @@ import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaProgressDialog
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.core.Flowable
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay

View file

@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.modules.AppModule
import com.habitrpg.android.habitica.ui.adapter.SkillTasksRecyclerViewAdapter
import com.habitrpg.android.habitica.widget.HabitButtonWidgetProvider
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob

View file

@ -61,8 +61,8 @@ import com.habitrpg.android.habitica.widget.TodoListWidgetProvider
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.common.habitica.models.responses.MaintenanceResponse
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.responses.MaintenanceResponse
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import com.habitrpg.common.habitica.views.AvatarView
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job

View file

@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.databinding.ActivitySkillTasksBinding
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.modules.AppModule
import com.habitrpg.android.habitica.ui.fragments.skills.SkillTasksRecyclerViewFragment
import javax.inject.Inject

View file

@ -38,12 +38,10 @@ import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.models.tasks.Attribute
import com.habitrpg.common.habitica.models.tasks.Frequency
import com.habitrpg.common.habitica.models.tasks.HabitResetOption
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.Attribute
import com.habitrpg.shared.habitica.models.tasks.Frequency
import com.habitrpg.shared.habitica.models.tasks.HabitResetOption
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.realm.RealmList
import java.util.Date
import javax.inject.Inject

View file

@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.shops.PurchaseDialog
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.common.habitica.models.Avatar
import com.habitrpg.shared.habitica.models.Avatar
import com.habitrpg.common.habitica.views.AvatarView
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable

View file

@ -8,7 +8,7 @@ import android.widget.TextView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.ui.adapter.tasks.BaseTasksRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.viewHolders.BindableViewHolder
import com.habitrpg.android.habitica.ui.viewHolders.tasks.BaseTaskViewHolder

View file

@ -12,7 +12,7 @@ import com.habitrpg.android.habitica.proxy.AnalyticsManager
import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.viewHolders.BindableViewHolder
import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import javax.inject.Inject
abstract class BaseTasksRecyclerViewAdapter<VH : BindableViewHolder<Task>>(

View file

@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.functions.Action

View file

@ -5,7 +5,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.R
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task

View file

@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.ui.adapter.tasks
import android.view.View
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.user.User

View file

@ -15,7 +15,7 @@ import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.extensions.setScaledPadding
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.UserStatComputer
import com.habitrpg.common.habitica.models.tasks.Attribute
import com.habitrpg.shared.habitica.models.tasks.Attribute
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel

View file

@ -10,9 +10,9 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.databinding.FragmentSetupTasksBinding
import com.habitrpg.android.habitica.models.tasks.Days
import com.habitrpg.common.habitica.models.tasks.Frequency
import com.habitrpg.shared.habitica.models.tasks.Frequency
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.activities.SetupActivity
import com.habitrpg.android.habitica.ui.adapter.setup.TaskSetupAdapter

View file

@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.ui.adapter.SkillTasksRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.subjects.PublishSubject

View file

@ -35,7 +35,7 @@ import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.common.habitica.helpers.EmojiParser
import com.habitrpg.common.habitica.helpers.setMarkdown
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import retrofit2.HttpException
import javax.inject.Inject

View file

@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.ui.activities.MainActivity
import com.habitrpg.android.habitica.ui.activities.SkillMemberActivity
import com.habitrpg.android.habitica.ui.adapter.tasks.RewardsRecyclerViewAdapter

View file

@ -46,9 +46,9 @@ import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.common.habitica.helpers.EmptyItem
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.disposables.CompositeDisposable
import kotlinx.coroutines.Job

View file

@ -34,7 +34,7 @@ import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel
import com.habitrpg.android.habitica.ui.views.navigation.HabiticaBottomNavigationViewListener
import com.habitrpg.android.habitica.ui.views.tasks.TaskFilterDialog
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import java.util.Date
import java.util.WeakHashMap

View file

@ -21,7 +21,7 @@ import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.helpers.MarkdownParser
import com.habitrpg.common.habitica.helpers.setParsedMarkdown
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.functions.Action

View file

@ -19,8 +19,8 @@ import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.common.habitica.helpers.MarkdownParser
import com.habitrpg.common.habitica.helpers.setParsedMarkdown
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.schedulers.Schedulers

View file

@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.ui.viewHolders.tasks
import android.view.View
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import java.text.DateFormat

View file

@ -8,7 +8,7 @@ import android.widget.ImageView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
class HabitViewHolder(
itemView: View,

View file

@ -7,7 +7,7 @@ import androidx.core.graphics.ColorUtils
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.RewardItemCardBinding
import com.habitrpg.common.habitica.helpers.NumberAbbreviator
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.ui.ItemDetailDialog
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper

View file

@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.ui.viewHolders.tasks
import android.view.View
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import java.text.DateFormat

View file

@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.models.inventory.Egg
import com.habitrpg.android.habitica.proxy.AnalyticsManager
import com.habitrpg.android.habitica.ui.TutorialView
import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.common.habitica.models.responses.MaintenanceResponse
import com.habitrpg.shared.habitica.models.responses.MaintenanceResponse
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import io.realm.kotlin.isValid

View file

@ -12,9 +12,9 @@ import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.disposables.CompositeDisposable
import io.realm.Case
import io.realm.OrderedRealmCollection

View file

@ -19,7 +19,7 @@ import com.habitrpg.android.habitica.databinding.MainNavigationViewBinding
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
interface HabiticaBottomNavigationViewListener {
fun onTabSelected(taskType: TaskType, smooth: Boolean)

View file

@ -5,7 +5,7 @@ import android.widget.TextView
import com.habitrpg.android.habitica.databinding.PurchaseDialogBackgroundBinding
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.models.Avatar
import com.habitrpg.shared.habitica.models.Avatar
import com.habitrpg.common.habitica.views.AvatarView
import com.habitrpg.common.habitica.views.PixelArtView
import java.util.EnumMap

View file

@ -26,7 +26,7 @@ import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaBottomSheetDialog
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.disposables.Disposable
import java.util.UUID

View file

@ -11,7 +11,8 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.models.tasks.HabitResetOption
import com.habitrpg.common.habitica.extensions.nameRes
import com.habitrpg.shared.habitica.models.tasks.HabitResetOption
class HabitResetStreakButtons @JvmOverloads constructor(
context: Context,

View file

@ -9,7 +9,7 @@ import androidx.core.view.children
import androidx.core.view.updateMargins
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.models.tasks.RemindersItem
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
class ReminderContainer @JvmOverloads constructor(
context: Context,

View file

@ -20,7 +20,7 @@ import com.habitrpg.android.habitica.models.tasks.RemindersItem
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import java.text.DateFormat
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter

View file

@ -14,8 +14,9 @@ import androidx.core.view.children
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.asDrawable
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.common.habitica.models.tasks.TaskDifficulty
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.extensions.nameRes
import com.habitrpg.shared.habitica.models.tasks.TaskDifficulty
class TaskDifficultyButtons @JvmOverloads constructor(
context: Context,

View file

@ -22,8 +22,8 @@ import com.habitrpg.android.habitica.models.tasks.Days
import com.habitrpg.android.habitica.ui.adapter.SimpleSpinnerAdapter
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.models.tasks.Frequency
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.Frequency
import com.habitrpg.shared.habitica.models.tasks.TaskType
import java.text.DateFormat
import java.text.DateFormatSymbols
import java.util.Calendar

View file

@ -19,7 +19,7 @@ import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Observable
import java.lang.ref.WeakReference

View file

@ -4,7 +4,7 @@ import com.google.gson.JsonDeserializationContext
import com.google.gson.JsonDeserializer
import com.google.gson.JsonElement
import com.google.gson.JsonParseException
import com.habitrpg.common.habitica.models.responses.FeedResponse
import com.habitrpg.shared.habitica.models.responses.FeedResponse
import java.lang.reflect.Type
class FeedResponseDeserializer : JsonDeserializer<FeedResponse> {

View file

@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.models.inventory.QuestRageStrike
import com.habitrpg.android.habitica.models.members.Member
import com.habitrpg.android.habitica.models.social.Group
import com.habitrpg.android.habitica.models.social.GroupCategory
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import io.realm.Realm
import io.realm.RealmList
import java.lang.reflect.Type

View file

@ -14,9 +14,9 @@ import com.habitrpg.android.habitica.models.tasks.Days
import com.habitrpg.android.habitica.models.tasks.RemindersItem
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskGroupPlan
import com.habitrpg.common.habitica.models.tasks.Attribute
import com.habitrpg.common.habitica.models.tasks.Frequency
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.Attribute
import com.habitrpg.shared.habitica.models.tasks.Frequency
import com.habitrpg.shared.habitica.models.tasks.TaskType
import io.realm.RealmList
import java.lang.reflect.Type
import java.util.Date

View file

@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.models.inventory.Quest
import com.habitrpg.android.habitica.models.invitations.Invitations
import com.habitrpg.android.habitica.models.social.ChallengeMembership
import com.habitrpg.android.habitica.models.social.UserParty
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import com.habitrpg.android.habitica.models.user.ABTest
import com.habitrpg.android.habitica.models.user.Authentication
import com.habitrpg.android.habitica.models.user.Backer

View file

@ -6,7 +6,7 @@ import android.content.Context
import android.widget.RemoteViews
import androidx.preference.PreferenceManager
import com.habitrpg.android.habitica.R
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
class AddTaskWidgetProvider : BaseWidgetProvider() {

View file

@ -9,7 +9,7 @@ import android.widget.Toast
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.interactors.NotifyUserUseCase
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import javax.inject.Inject
abstract class BaseWidgetProvider : AppWidgetProvider() {

View file

@ -3,6 +3,6 @@ package com.habitrpg.android.habitica.widget
import android.content.Context
import android.content.Intent
import com.habitrpg.android.habitica.R
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
class DailiesListFactory(context: Context, intent: Intent) : TaskListFactory(context, intent, TaskType.DAILY, R.layout.widget_dailies_list_row, R.id.dailies_text)

View file

@ -9,7 +9,7 @@ import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import javax.inject.Inject
class HabitButtonWidgetProvider : BaseWidgetProvider() {

View file

@ -17,7 +17,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.extensions.withImmutableFlag
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.shared.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.helpers.MarkdownParser
import javax.inject.Inject

View file

@ -12,7 +12,7 @@ import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.common.habitica.helpers.MarkdownParser
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob

View file

@ -3,6 +3,6 @@ package com.habitrpg.android.habitica.widget
import android.content.Context
import android.content.Intent
import com.habitrpg.android.habitica.R
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TaskType
class TodoListFactory(context: Context, intent: Intent) : TaskListFactory(context, intent, TaskType.TODO, R.layout.widget_todo_list_row, R.id.todo_text)

View file

@ -4,12 +4,12 @@ import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.data.local.TaskLocalRepository
import com.habitrpg.android.habitica.models.BaseObject
import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.shared.habitica.models.responses.TaskDirectionData
import com.habitrpg.shared.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.common.habitica.models.tasks.TasksOrder
import com.habitrpg.shared.habitica.models.tasks.TaskType
import com.habitrpg.shared.habitica.models.tasks.TasksOrder
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
import io.kotest.common.ExperimentalKotest

View file

@ -8,7 +8,7 @@ buildscript {
amplitude_version = '3.35.1'
appcompat_version = '1.4.2'
appcompat_version = '1.5.0'
coil_version = '2.1.0'
core_ktx_version = '1.8.0'
coroutines_version = '1.6.2'
@ -22,6 +22,7 @@ buildscript {
play_wearables_version = '17.1.0'
play_auth_version = '20.2.0'
preferences_version = '1.2.0'
realm_version = '1.0.2'
retrofit_version = '2.9.0'
recyclerview_version = '1.2.1'
}
@ -37,9 +38,10 @@ buildscript {
classpath 'com.google.gms:google-services:4.3.13'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
classpath "io.realm:realm-gradle-plugin:10.11.0"
classpath("io.realm.kotlin:gradle-plugin:$realm_version")
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.19.0"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.1"
classpath 'com.google.firebase:perf-plugin:1.4.1'
classpath "com.google.dagger:hilt-android-gradle-plugin:$daggerhilt_version"
}

View file

@ -0,0 +1,11 @@
package com.habitrpg.common.habitica.extensions
import com.habitrpg.common.habitica.R
import com.habitrpg.shared.habitica.models.tasks.HabitResetOption
val HabitResetOption.nameRes: Int
get() = when (this) {
HabitResetOption.DAILY -> R.string.daily
HabitResetOption.WEEKLY -> R.string.weekly
HabitResetOption.MONTHLY -> R.string.monthly
}

View file

@ -0,0 +1,12 @@
package com.habitrpg.common.habitica.extensions
import com.habitrpg.common.habitica.R
import com.habitrpg.shared.habitica.models.tasks.TaskDifficulty
val TaskDifficulty.nameRes: Int
get() = when (this) {
TaskDifficulty.TRIVIAL -> R.string.trivial
TaskDifficulty.EASY -> R.string.easy
TaskDifficulty.MEDIUM -> R.string.medium
TaskDifficulty.HARD -> R.string.hard
}

View file

@ -1,17 +0,0 @@
package com.habitrpg.common.habitica.models
interface Avatar {
val currentMount: String?
val currentPet: String?
val sleep: Boolean
val stats: AvatarStats?
val preferences: AvatarPreferences?
val flags: AvatarFlags?
val gemCount: Int
val hourglassCount: Int
val costume: AvatarOutfit?
val equipped: AvatarOutfit?
val hasClass: Boolean
fun isValid(): Boolean
}

View file

@ -1,6 +1,4 @@
package com.habitrpg.common.habitica.models.responses
import com.habitrpg.common.habitica.models.Notification
package com.habitrpg.common.habitica.models
class HabitResponse<T> {
var data: T? = null

Some files were not shown because too many files have changed in this diff Show more