diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt index 8ff3b430d..439c1f678 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt @@ -210,7 +210,6 @@ class InventoryRepositoryImpl(localRepository: InventoryLocalRepository, apiClie } return apiClient.hatchPet(egg.key, hatchingPotion.key) .doOnNext { - it.userId = userID localRepository.save(it) if (!appConfigManager.enableLocalChanges()) { successFunction() @@ -231,7 +230,6 @@ class InventoryRepositoryImpl(localRepository: InventoryLocalRepository, apiClie } val copiedUser = localRepository.getUnmanagedCopy(user) if (buyResponse.items != null) { - buyResponse.items.userId = user.id copiedUser.items = buyResponse.items } if (buyResponse.hp != null) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt index b159565ac..8154d5a9b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt @@ -63,8 +63,8 @@ class RealmChallengeLocalRepository(realm: Realm) : RealmBaseLocalRepository(rea .findAll() .asFlowable() .filter { it.isLoaded }) -.flatMap { - val ids = it.map { +.flatMap { it -> + val ids = it.map { return@map it.challengeID }.toTypedArray() realm.where(Challenge::class.java) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt index 3524aedfb..2d5d12429 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt @@ -366,13 +366,11 @@ class RealmInventoryLocalRepository(realm: Realm) : RealmContentLocalRepository( executeTransaction { val items = updatedUser.items if (items != null) { - items.userId = user.id val newItems = realm.copyToRealmOrUpdate(items) user.items = newItems } val stats = updatedUser.stats if (stats != null) { - stats.userId = user.id val newStats = realm.copyToRealmOrUpdate(stats) user.stats = newStats } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt index ee63f2e38..312f2591c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt @@ -97,7 +97,7 @@ class RealmSocialLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm) val existingMemberships = realm.where(GroupMembership::class.java).equalTo("userID", userID).findAll() val membersToRemove = ArrayList() for (existingMembership in existingMemberships) { - val isStillMember = memberships.any { existingMembership.combinedID == it.combinedID } + val isStillMember = memberships.any { existingMembership.groupID == it.groupID } if (!isStillMember) { membersToRemove.add(existingMembership) } @@ -187,7 +187,7 @@ class RealmSocialLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm) val liveMessage = getLiveObject(chatMessage) if (liked) { executeTransaction { - liveMessage?.likes?.add(ChatMessageLike(userId, chatMessage.id)) + liveMessage?.likes?.add(ChatMessageLike(userId)) } } else { liveMessage?.likes?.filter { userId == it.id }?.forEach { like -> diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/BoughtGemsEvent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/BoughtGemsEvent.java deleted file mode 100644 index c2ac9bc2b..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/events/BoughtGemsEvent.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.habitrpg.android.habitica.events; - -/** - * Created by Negue on 29.11.2015. - */ -public class BoughtGemsEvent { - public int NewGemsToAdd; - - public BoughtGemsEvent(int newGemsToAdd) { - NewGemsToAdd = newGemsToAdd; - } -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/BoughtGemsEvent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/events/BoughtGemsEvent.kt new file mode 100644 index 000000000..a0575c151 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/BoughtGemsEvent.kt @@ -0,0 +1,6 @@ +package com.habitrpg.android.habitica.events + +/** + * Created by Negue on 29.11.2015. + */ +class BoughtGemsEvent(var NewGemsToAdd: Int) \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/ShareEvent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/ShareEvent.java deleted file mode 100644 index a813e26a8..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/events/ShareEvent.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.habitrpg.android.habitica.events; - -import android.graphics.Bitmap; - -public class ShareEvent { - public String identifier; - public String sharedMessage; - public Bitmap shareImage; -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/ShareEvent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/events/ShareEvent.kt new file mode 100644 index 000000000..5d72c3ac0 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/ShareEvent.kt @@ -0,0 +1,9 @@ +package com.habitrpg.android.habitica.events + +import android.graphics.Bitmap + +class ShareEvent { + var identifier: String? = null + var sharedMessage: String? = null + var shareImage: Bitmap? = null +} \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/UserSubscribedEvent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/UserSubscribedEvent.java deleted file mode 100644 index 43afed555..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/events/UserSubscribedEvent.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.habitrpg.android.habitica.events; - -public class UserSubscribedEvent { -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/UserSubscribedEvent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/events/UserSubscribedEvent.kt new file mode 100644 index 000000000..b4593dad0 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/UserSubscribedEvent.kt @@ -0,0 +1,3 @@ +package com.habitrpg.android.habitica.events + +class UserSubscribedEvent \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.java deleted file mode 100644 index 8843b4d5c..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.habitrpg.android.habitica.events.commands; - -import com.habitrpg.android.habitica.models.inventory.Food; -import com.habitrpg.android.habitica.models.inventory.Pet; - -public class FeedCommand { - - public Pet usingPet; - public Food usingFood; - -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.kt new file mode 100644 index 000000000..1846d05f6 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.kt @@ -0,0 +1,7 @@ +package com.habitrpg.android.habitica.events.commands + +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.Pet + +class FeedCommand(val usingPet: Pet?, val usingFood: Food?) { +} \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/executors/JobExecutor.java b/Habitica/src/main/java/com/habitrpg/android/habitica/executors/JobExecutor.java deleted file mode 100644 index 7c82a0751..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/executors/JobExecutor.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.habitrpg.android.habitica.executors; - -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.inject.Inject; -import javax.inject.Singleton; - -@Singleton -public class JobExecutor implements ThreadExecutor { - - private static final int INITIAL_POOL_SIZE = 3; - private static final int MAX_POOL_SIZE = 5; - - // Sets the amount of time an idle thread waits before terminating - private static final int KEEP_ALIVE_TIME = 10; - - // Sets the Time Unit to seconds - private static final TimeUnit KEEP_ALIVE_TIME_UNIT = TimeUnit.SECONDS; - - private final ThreadPoolExecutor threadPoolExecutor; - - @Inject - public JobExecutor() { - BlockingQueue workQueue = new LinkedBlockingQueue<>(); - ThreadFactory threadFactory = new JobThreadFactory(); - this.threadPoolExecutor = new ThreadPoolExecutor(INITIAL_POOL_SIZE, MAX_POOL_SIZE, - KEEP_ALIVE_TIME, KEEP_ALIVE_TIME_UNIT, workQueue, threadFactory); - } - - @Override public void execute(Runnable runnable) { - if (runnable == null) { - throw new IllegalArgumentException("Runnable to execute cannot be null"); - } - this.threadPoolExecutor.execute(runnable); - } - - private static class JobThreadFactory implements ThreadFactory { - private static final String THREAD_NAME = "android_"; - private int counter = 0; - - @Override public Thread newThread(Runnable runnable) { - return new Thread(runnable, THREAD_NAME + counter++); - } - } -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/executors/ThreadExecutor.java b/Habitica/src/main/java/com/habitrpg/android/habitica/executors/ThreadExecutor.java deleted file mode 100644 index 52fd1234b..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/executors/ThreadExecutor.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.habitrpg.android.habitica.executors; - -import java.util.concurrent.Executor; - -public interface ThreadExecutor extends Executor {} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/BuyRewardUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/BuyRewardUseCase.kt index c78f9bcea..f10465a7f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/BuyRewardUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/BuyRewardUseCase.kt @@ -2,7 +2,6 @@ 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.executors.ThreadExecutor import com.habitrpg.android.habitica.helpers.SoundManager import com.habitrpg.android.habitica.models.responses.TaskScoringResult import com.habitrpg.android.habitica.models.tasks.Task @@ -13,8 +12,7 @@ import javax.inject.Inject import io.reactivex.rxjava3.core.Flowable class BuyRewardUseCase @Inject -constructor(private val taskRepository: TaskRepository, private val soundManager: SoundManager, - threadExecutor: ThreadExecutor, postExecutionThread: PostExecutionThread) : UseCase(threadExecutor, postExecutionThread) { +constructor(private val taskRepository: TaskRepository, private val soundManager: SoundManager, postExecutionThread: PostExecutionThread) : UseCase(postExecutionThread) { override fun buildUseCaseObservable(requestValues: RequestValues): Flowable { return taskRepository diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/CheckClassSelectionUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/CheckClassSelectionUseCase.kt index d581f7382..d16fafef3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/CheckClassSelectionUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/CheckClassSelectionUseCase.kt @@ -5,7 +5,6 @@ import android.content.Intent import android.os.Bundle import com.habitrpg.android.habitica.executors.PostExecutionThread -import com.habitrpg.android.habitica.executors.ThreadExecutor import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.activities.ClassSelectionActivity @@ -15,8 +14,7 @@ import io.reactivex.rxjava3.core.Flowable import com.habitrpg.android.habitica.ui.activities.MainActivity.Companion.SELECT_CLASS_RESULT -class CheckClassSelectionUseCase @Inject -constructor(threadExecutor: ThreadExecutor, postExecutionThread: PostExecutionThread) : UseCase(threadExecutor, postExecutionThread) { +class CheckClassSelectionUseCase @Inject constructor(postExecutionThread: PostExecutionThread) : UseCase(postExecutionThread) { override fun buildUseCaseObservable(requestValues: RequestValues): Flowable { return Flowable.defer { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/DisplayItemDropUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/DisplayItemDropUseCase.kt index 6913bfa49..fd41a505d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/DisplayItemDropUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/DisplayItemDropUseCase.kt @@ -1,22 +1,21 @@ package com.habitrpg.android.habitica.interactors -import android.content.Context -import android.os.Handler -import android.provider.Settings.Global.getString import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.executors.PostExecutionThread -import com.habitrpg.android.habitica.executors.ThreadExecutor import com.habitrpg.android.habitica.helpers.SoundManager import com.habitrpg.android.habitica.models.responses.TaskScoringResult import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import io.reactivex.rxjava3.core.Flowable -import java.lang.StringBuilder +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import javax.inject.Inject class DisplayItemDropUseCase @Inject -constructor(private val soundManager: SoundManager, threadExecutor: ThreadExecutor, postExecutionThread: PostExecutionThread) : UseCase(threadExecutor, postExecutionThread) { +constructor(private val soundManager: SoundManager, postExecutionThread: PostExecutionThread) : UseCase(postExecutionThread) { override fun buildUseCaseObservable(requestValues: RequestValues): Flowable { return Flowable.defer { @@ -30,11 +29,12 @@ constructor(private val soundManager: SoundManager, threadExecutor: ThreadExecut } if (snackbarText.isNotEmpty()) { - Handler().postDelayed({ + GlobalScope.launch(context = Dispatchers.Main) { + delay(3000L) HabiticaSnackbar.showSnackbar(requestValues.snackbarTargetView, - snackbarText, HabiticaSnackbar.SnackbarDisplayType.DROP, true) + snackbarText, HabiticaSnackbar.SnackbarDisplayType.DROP, true) soundManager.loadAndPlayAudio(SoundManager.SoundItemDrop) - }, 3000L) + } } Flowable.empty() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/LevelUpUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/LevelUpUseCase.kt index 7ae2c0141..ab8827abb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/LevelUpUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/LevelUpUseCase.kt @@ -1,13 +1,11 @@ package com.habitrpg.android.habitica.interactors import android.view.ViewGroup -import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.DialogLevelup10Binding import com.habitrpg.android.habitica.events.ShareEvent import com.habitrpg.android.habitica.executors.PostExecutionThread -import com.habitrpg.android.habitica.executors.ThreadExecutor import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.helpers.SoundManager import com.habitrpg.android.habitica.models.user.Stats @@ -21,8 +19,8 @@ import org.greenrobot.eventbus.EventBus import javax.inject.Inject class LevelUpUseCase @Inject -constructor(private val soundManager: SoundManager, threadExecutor: ThreadExecutor, postExecutionThread: PostExecutionThread, - private val checkClassSelectionUseCase: CheckClassSelectionUseCase) : UseCase(threadExecutor, postExecutionThread) { +constructor(private val soundManager: SoundManager, postExecutionThread: PostExecutionThread, + private val checkClassSelectionUseCase: CheckClassSelectionUseCase) : UseCase(postExecutionThread) { override fun buildUseCaseObservable(requestValues: RequestValues): Flowable { return Flowable.defer { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt index ff013867b..79e51402d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt @@ -15,7 +15,6 @@ import androidx.core.util.Pair 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.executors.ThreadExecutor import com.habitrpg.android.habitica.extensions.round import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User @@ -27,8 +26,8 @@ import javax.inject.Inject import kotlin.math.abs class NotifyUserUseCase @Inject -constructor(threadExecutor: ThreadExecutor, postExecutionThread: PostExecutionThread, - private val levelUpUseCase: LevelUpUseCase, private val userRepository: UserRepository) : UseCase(threadExecutor, postExecutionThread) { +constructor(postExecutionThread: PostExecutionThread, + private val levelUpUseCase: LevelUpUseCase, private val userRepository: UserRepository) : UseCase(postExecutionThread) { override fun buildUseCaseObservable(requestValues: RequestValues): Flowable { return Flowable.defer { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/UseCase.java b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/UseCase.java index 9d6efe349..7f4088282 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/UseCase.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/UseCase.java @@ -1,7 +1,6 @@ package com.habitrpg.android.habitica.interactors; import com.habitrpg.android.habitica.executors.PostExecutionThread; -import com.habitrpg.android.habitica.executors.ThreadExecutor; import io.reactivex.rxjava3.core.Flowable; @@ -9,8 +8,7 @@ public abstract class UseCase { private final PostExecutionThread postExecutionThread; - protected UseCase(ThreadExecutor threadExecutor, - PostExecutionThread postExecutionThread) { + protected UseCase(PostExecutionThread postExecutionThread) { this.postExecutionThread = postExecutionThread; } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/AchievementGroup.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/AchievementGroup.kt deleted file mode 100644 index 953e9ed3a..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/AchievementGroup.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.habitrpg.android.habitica.models - -import java.util.* - -class AchievementGroup { - var label: String? = null - var achievements: HashMap? = null -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/AchievementResult.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/AchievementResult.kt deleted file mode 100644 index 5b692dbb4..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/AchievementResult.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.habitrpg.android.habitica.models - -class AchievementResult { - var basic: AchievementGroup? = null - var seasonal: AchievementGroup? = null - var special: AchievementGroup? = null -} \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/AvatarPreferences.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/AvatarPreferences.kt index e271c00e6..eae8e60ec 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/AvatarPreferences.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/AvatarPreferences.kt @@ -3,7 +3,6 @@ package com.habitrpg.android.habitica.models import com.habitrpg.android.habitica.models.user.Hair interface AvatarPreferences { - val userId: String? val hair: Hair? val costume: Boolean val sleep: Boolean diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentGear.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentGear.kt index cdceec6c7..c08ffe460 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentGear.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentGear.kt @@ -5,7 +5,5 @@ import com.habitrpg.android.habitica.models.inventory.Equipment import io.realm.RealmList class ContentGear { - var flat: RealmList? = null - } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt index 3c890d842..a69401b18 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt @@ -7,27 +7,18 @@ import io.realm.RealmList * Created by Negue on 15.07.2015. */ class ContentResult { - var potion: Equipment? = null - var armoire: Equipment? = null - var gear: ContentGear? = null - var quests = RealmList() var eggs = RealmList() var food = RealmList() var hatchingPotions = RealmList() - var pets = RealmList() - var mounts = RealmList() - var spells = RealmList() - var appearances = RealmList() var backgrounds = RealmList() - var faq = RealmList() var special = RealmList() } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt index c4fbcc11b..ff743b5f2 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt @@ -9,7 +9,6 @@ import java.util.* @RealmClass(embedded = true) open class TutorialStep: RealmObject(), BaseMainObject { - @PrimaryKey var key: String? = null var tutorialGroup: String? = null set(group) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt index 67f0a6029..71ce561f4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt @@ -15,7 +15,6 @@ open class WorldStateEvent: RealmObject(), BaseMainObject { return (start?.before(now) == true) && (end?.after(now) == true) } - @PrimaryKey @SerializedName("event") var eventKey: String? = null var start: Date? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/auth/LocalAuthentication.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/auth/LocalAuthentication.kt index 88031e5de..b6b80edf9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/auth/LocalAuthentication.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/auth/LocalAuthentication.kt @@ -7,8 +7,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class LocalAuthentication : RealmObject(), BaseObject { - @PrimaryKey - var userID: String? = null var username: String? = null var email: String? = null } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgress.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgress.kt index 91cf11789..7303f2453 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgress.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgress.kt @@ -9,7 +9,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class QuestProgress : RealmObject(), BaseObject { - @PrimaryKey var id: String? = null var key: String? = null var hp: Double = 0.0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgressCollect.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgressCollect.kt index 22f39be47..9349fd6d1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgressCollect.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestProgressCollect.kt @@ -7,7 +7,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class QuestProgressCollect : RealmObject(), BaseObject { - @PrimaryKey var key: String? = null var count = 0 } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/owned/OwnedEquipment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/owned/OwnedEquipment.kt deleted file mode 100644 index cd63c68ef..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/owned/OwnedEquipment.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.habitrpg.android.habitica.models.inventory.owned - -import com.habitrpg.android.habitica.models.BaseObject -import io.realm.RealmObject -import io.realm.annotations.PrimaryKey - -open class OwnedEquipment : RealmObject(), BaseObject { - - @PrimaryKey - var combinedKey: String? = "" - var userID: String? = "" - var key: String? = "" -} \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/GuildInvite.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/GuildInvite.kt index 404410d85..ddb46cae5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/GuildInvite.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/GuildInvite.kt @@ -2,10 +2,11 @@ package com.habitrpg.android.habitica.models.invitations import io.realm.RealmObject import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass(embedded = true) open class GuildInvite : RealmObject(), GenericInvitation { - @PrimaryKey override var id: String? = null override var inviter: String? = null override var name: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/Invitations.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/Invitations.kt index a100ac3ad..e211a1e51 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/Invitations.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/Invitations.kt @@ -6,14 +6,10 @@ import com.habitrpg.android.habitica.models.user.User import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass(embedded = true) open class Invitations : RealmObject(), BaseObject { - - @PrimaryKey - var userId: String? = null - - internal var user: User? = null - var party: PartyInvite? = null var parties: RealmList? = null var guilds: RealmList? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/PartyInvite.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/PartyInvite.kt index a2b9b59d0..697afab0b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/PartyInvite.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/invitations/PartyInvite.kt @@ -2,10 +2,11 @@ package com.habitrpg.android.habitica.models.invitations import io.realm.RealmObject import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass(embedded = true) open class PartyInvite : RealmObject(), GenericInvitation { - @PrimaryKey override var id: String? = null override var name: String? = null override var inviter: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt index 2e1ede4bb..280a9a085 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt @@ -14,118 +14,21 @@ open class Member : RealmObject(), Avatar, BaseObject { @PrimaryKey @SerializedName("_id") var id: String? = null - set(id) { - field = id - val subID = "m$id" // Do this to prevent the member object from overwriting the user ones - if (stats != null && stats?.isManaged != true) { - stats?.userId = subID - } - if (items != null && items?.isManaged != true) { - items?.userId = subID - } - if (this.inbox != null && this.inbox?.isManaged != true) { - this.inbox?.userId = subID - } - if (preferences != null && preferences?.isManaged != true) { - preferences?.userId = subID - } - if (this.profile != null && this.profile?.isManaged != true) { - this.profile?.userId = subID - } - if (this.contributor != null && this.contributor?.isManaged != true) { - this.contributor?.userId = subID - } - if (costume != null && costume?.isManaged != true) { - costume?.userId = subID + "costume" - } - if (equipped != null && equipped?.isManaged != true) { - equipped?.userId = subID + "equipped" - } - if (this.authentication != null && this.authentication?.isManaged != true) { - this.authentication?.userId = subID - } - } override var stats: Stats? = null - set(value) { - field = value - if (value != null && this.id != null && !value.isManaged) { - field?.userId = this.id - } - } var inbox: Inbox? = null - set(inbox) { - field = inbox - if (inbox != null && this.id != null && !inbox.isManaged) { - inbox.userId = this.id - } - } override var preferences: MemberPreferences? = null - set(value) { - field = value - if (value != null && this.id != null && !value.isManaged) { - field?.userId = this.id - } - } override val gemCount: Int get() = 0 override val hourglassCount: Int get() = 0 var profile: Profile? = null - set(profile) { - field = profile - if (profile != null && this.id != null && !profile.isManaged) { - profile.userId = this.id - } - } var party: UserParty? = null - set(party) { - field = party - if (party != null && this.id != null && !party.isManaged) { - party.userId = this.id - } - } var contributor: ContributorInfo? = null - set(contributor) { - field = contributor - if (contributor != null && this.id != null && !contributor.isManaged) { - contributor.userId = this.id - } - } var backer: Backer? = null - set(backer) { - field = backer - if (backer != null && this.id != null && !backer.isManaged) { - backer.id = this.id - } - } var authentication: Authentication? = null - set(authentication) { - field = authentication - if (authentication != null && this.id != null) { - authentication.userId = this.id - } - } var items: Items? = null - set(items) { - field = items - if (items != null && this.id != null && !items.isManaged) { - items.userId = this.id - } - } override var costume: Outfit? = null - set(value) { - field = value - if (value != null && this.id != null) { - field?.userId = this.id + "costume" - } - } override var equipped: Outfit? = null - set(value) { - field = value - if (value != null && this.id != null) { - field?.userId = this.id + "equipped" - } - } override var currentMount: String? = null override var currentPet: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/MemberPreferences.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/MemberPreferences.kt index dc252f72f..7ccc07a2f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/MemberPreferences.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/MemberPreferences.kt @@ -11,15 +11,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class MemberPreferences : RealmObject(), AvatarPreferences { - @PrimaryKey - override var userId: String? = null - set(value) { - field = value - if (hair?.isManaged != true) { - hair?.userId = userId - } - } - override var hair: Hair? = null override var costume: Boolean = false override var disableClasses: Boolean = false diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.kt index 6a26a99a3..77f1aa091 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.kt @@ -15,10 +15,6 @@ import io.realm.annotations.PrimaryKey open class ShopItem : RealmObject(), BaseObject { @PrimaryKey var key: String = "" - set(value) { - field = value - unlockCondition?.questKey = key - } var text: String? = "" var notes: String? = "" @SerializedName("class") @@ -43,12 +39,6 @@ open class ShopItem : RealmObject(), BaseObject { var categoryIdentifier: String = "" var limitedNumberLeft: Int? = null var unlockCondition: ShopItemUnlockCondition? = null - set(value) { - field = value - if (key.isNotEmpty()) { - field?.questKey = key - } - } var path: String? = null var isSuggested: String? = null var pinType: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItemUnlockCondition.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItemUnlockCondition.kt index 12ae21892..b2b8b8d7c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItemUnlockCondition.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItemUnlockCondition.kt @@ -11,8 +11,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class ShopItemUnlockCondition : RealmObject(), BaseObject { - @PrimaryKey - var questKey: String? = null private var condition: String? = null var incentiveThreshold: Int? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChallengeMembership.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChallengeMembership.kt index 9a9e51843..98ca67621 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChallengeMembership.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChallengeMembership.kt @@ -7,19 +7,8 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class ChallengeMembership : RealmObject, BaseObject { - @PrimaryKey - var combinedID: String = "" - var userID: String = "" - set(value) { - field = value - combinedID = userID + challengeID - } var challengeID: String = "" - set(value) { - field = value - combinedID = userID + challengeID - } constructor(userID: String, challengeID: String) : super() { this.userID = userID @@ -29,14 +18,13 @@ open class ChallengeMembership : RealmObject, BaseObject { constructor() : super() override fun equals(other: Any?): Boolean { - return if (other?.javaClass == ChallengeMembership::class.java) { - this.combinedID == (other as ChallengeMembership).combinedID + return if (other is ChallengeMembership) { + this.userID == other.userID && challengeID == other.challengeID } else super.equals(other) } override fun hashCode(): Int { - var result = combinedID.hashCode() - result = 31 * result + userID.hashCode() + var result = userID.hashCode() result = 31 * result + challengeID.hashCode() return result } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessage.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessage.kt index a44d2fc4a..f552cd912 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessage.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessage.kt @@ -20,13 +20,6 @@ open class ChatMessage : RealmObject(), BaseMainObject { @PrimaryKey var id: String = "" - set(value) { - field = value - likes?.forEach { it.messageId = value } - userStyles?.id = id - contributor?.userId = id - backer?.id = id - } var text: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessageLike.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessageLike.kt index 903e0a277..1256ae442 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessageLike.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/ChatMessageLike.kt @@ -6,25 +6,4 @@ import io.realm.annotations.PrimaryKey import io.realm.annotations.RealmClass @RealmClass(embedded = true) -open class ChatMessageLike : RealmObject, BaseObject { - - @PrimaryKey - var key: String = "" - - var messageId: String = "" - set(value) { - field = value - key = messageId + id - } - var id: String = "" - set(value) { - field = value - key = messageId + id - } - constructor(id: String, messageId: String) : super() { - this.id = id - this.key = messageId + id - } - - constructor() : super() -} +open class ChatMessageLike(var id: String = "") : RealmObject(), BaseObject diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupCategory.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupCategory.kt index 7a19214a4..9a1385e9f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupCategory.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupCategory.kt @@ -7,7 +7,6 @@ import io.realm.RealmObject import io.realm.annotations.PrimaryKey import io.realm.annotations.RealmClass -@RealmClass(embedded = true) open class GroupCategory : RealmObject(), BaseMainObject { override val realmClass: Class get() = Group::class.java diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupMembership.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupMembership.kt index 23819213b..4d0961642 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupMembership.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/GroupMembership.kt @@ -7,19 +7,8 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class GroupMembership : RealmObject, BaseObject { - @PrimaryKey - var combinedID: String = "" - var userID: String = "" - set(value) { - field = value - combinedID = userID + groupID - } var groupID: String = "" - set(value) { - field = value - combinedID = userID + groupID - } constructor(userID: String, groupID: String) : super() { this.userID = userID diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt index c0c527d6f..37799538c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt @@ -10,11 +10,6 @@ open class InboxConversation : RealmObject(), BaseObject { @PrimaryKey var combinedID: String = "" - set(value) { - field = value - userStyles?.id = value - contributor?.userId = value - } var uuid: String = "" set(value) { field = value diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserParty.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserParty.kt index 35cf3caff..2342f1ba1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserParty.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserParty.kt @@ -10,8 +10,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class UserParty : RealmObject(), BaseObject { - @PrimaryKey - var userId: String? = null @SerializedName("_id") var id: String = "" var quest: Quest? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserStyles.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserStyles.kt index ebdf12ebe..265d8db42 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserStyles.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/UserStyles.kt @@ -11,15 +11,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class UserStyles : RealmObject(), Avatar { - @PrimaryKey - var id: String? = null - set(value) { - field = value - stats?.userId = id - preferences?.userId = id - items?.userId = id - } - override val currentMount: String? get() = items?.currentMount diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt index 09183da58..54554c1b4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt @@ -20,7 +20,6 @@ open class ChecklistItem : RealmObject, BaseMainObject, Parcelable { override val primaryIdentifierName: String get() = "id" - @PrimaryKey var id: String? = null var text: String? = null var completed: Boolean = false diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Days.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Days.kt index a2b8a944b..e6c9e6646 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Days.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Days.kt @@ -8,8 +8,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Days() : RealmObject(), Parcelable { - @PrimaryKey - var taskId: String? = null var m: Boolean = true var t: Boolean = true var w: Boolean = true @@ -19,7 +17,6 @@ open class Days() : RealmObject(), Parcelable { var su: Boolean = true override fun writeToParcel(dest: Parcel, flags: Int) { - dest.writeString(taskId) dest.writeByte(if (m) 1.toByte() else 0.toByte()) dest.writeByte(if (t) 1.toByte() else 0.toByte()) dest.writeByte(if (w) 1.toByte() else 0.toByte()) @@ -30,7 +27,6 @@ open class Days() : RealmObject(), Parcelable { } protected constructor(`in`: Parcel) : this() { - taskId = `in`.readString() m = `in`.readByte().toInt() != 0 t = `in`.readByte().toInt() != 0 w = `in`.readByte().toInt() != 0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/RemindersItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/RemindersItem.kt index b7da10aef..fadc19124 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/RemindersItem.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/RemindersItem.kt @@ -11,7 +11,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class RemindersItem : RealmObject, Parcelable { - @PrimaryKey var id: String? = null var startDate: Date? = null var time: Date? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt index 44813a2e7..908c4348d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt @@ -31,10 +31,6 @@ open class Task : RealmObject, BaseMainObject, Parcelable { @PrimaryKey @SerializedName("_id") var id: String? = null - set(value) { - field = value - repeat?.taskId = value - } var userId: String = "" var priority: Float = 0.0f var text: String = "" @@ -64,10 +60,6 @@ open class Task : RealmObject, BaseMainObject, Parcelable { var streak: Int? = 0 var startDate: Date? = null var repeat: Days? = null - set(value) { - field = value - field?.taskId = id - } //todos @SerializedName("date") var dueDate: Date? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt index 7c02ef86f..91126a47b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt @@ -12,9 +12,6 @@ import java.util.* @RealmClass(embedded = true) open class TaskGroupPlan : RealmObject(), BaseObject { - @PrimaryKey - internal var taskID: String? = null - @SerializedName("id") var groupID: String? = null var managerNotes: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskTag.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskTag.kt index ed79cc12e..313921dd5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskTag.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskTag.kt @@ -9,24 +9,5 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class TaskTag : RealmObject(), BaseObject { var tag: Tag? = null - set(value) { - field = value - tagId = tag?.id ?: "" - updatePrimaryKey() - } var task: Task? = null - set(value) { - field = value - taskId = task?.id ?: "" - updatePrimaryKey() - } - - @PrimaryKey - var id: String? = null - private var tagId = "" - private var taskId: String? = "" - - private fun updatePrimaryKey() { - id = taskId + "_" + tagId - } } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ABTest.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ABTest.kt index 6f03e5617..7596b0562 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ABTest.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ABTest.kt @@ -3,12 +3,10 @@ package com.habitrpg.android.habitica.models.user import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmObject import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass(embedded = true) open class ABTest: RealmObject(), BaseObject { - - @PrimaryKey - var userID: String? = null - var name: String = "" var group: String = "" } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Authentication.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Authentication.kt index d3a5da4b1..b099a4f6c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Authentication.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Authentication.kt @@ -10,15 +10,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Authentication : RealmObject(), BaseObject { - - @PrimaryKey - var userId: String? = null - set(value) { - field = value - timestamps?.userId = value - localAuthentication?.userID = value - } - @SerializedName("local") var localAuthentication: LocalAuthentication? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt index 32c81c1f0..b09a7b1b3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt @@ -9,10 +9,6 @@ import java.util.* @RealmClass(embedded = true) open class AuthenticationTimestamps : RealmObject(), BaseObject { - - @PrimaryKey - var userId: String? = null - @SerializedName("loggedin") var lastLoggedIn: Date? = null @SerializedName("created") diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Backer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Backer.kt index 79a798293..1d6cf0e07 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Backer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Backer.kt @@ -6,7 +6,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Backer : RealmObject(), BaseObject { - var id: String? = null var npc: String? = null var tier: Int? = null } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Buffs.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Buffs.kt index e947524cc..f025ce5fa 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Buffs.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Buffs.kt @@ -8,8 +8,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Buffs : RealmObject(), BaseObject { - @PrimaryKey - var userId: String? = null var con: Float? = null var str: Float? = null var per: Float? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ContributorInfo.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ContributorInfo.kt index ee27a72e4..8b8532cb4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ContributorInfo.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/ContributorInfo.kt @@ -27,9 +27,6 @@ open class ContributorInfo : RealmObject(), BaseObject { } } - @PrimaryKey - var userId: String? = null - var user: User? = null var admin = false var contributions: String? = null var level = 0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Flags.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Flags.kt index 11a16d086..5b145bb84 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Flags.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Flags.kt @@ -9,8 +9,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Flags : RealmObject(), BaseObject { - @PrimaryKey - var userId: String? = null var tutorial: RealmList? = null var showTour = false var dropsEnabled = false diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Gear.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Gear.kt index 368556360..111337ba4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Gear.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Gear.kt @@ -9,19 +9,7 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Gear : RealmObject(), BaseObject { - @PrimaryKey - var userId: String? = null - set(value) { - field = value - if (costume != null && costume?.isManaged == false) { - costume?.userId = userId - } - if (equipped != null && equipped?.isManaged == false) { - equipped?.userId = userId + "equipped" - } - } var owned: RealmList? = null - var items: Items? = null var equipped: Outfit? = null var costume: Outfit? = null } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Hair.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Hair.kt index 9e430f049..5c90c4bfe 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Hair.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Hair.kt @@ -7,11 +7,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Hair : RealmObject, BaseObject { - - @PrimaryKey - var userId: String? = null - - var preferences: Preferences? = null var mustache: Int = 0 var beard: Int = 0 var bangs: Int = 0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Inbox.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Inbox.kt index 021e52252..6bc935801 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Inbox.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Inbox.kt @@ -8,11 +8,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Inbox : RealmObject(), BaseObject { - - @PrimaryKey - var userId: String? = null - - internal var user: User? = null var optOut: Boolean = false var blocks: RealmList = RealmList() var newMessages: Int = 0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt index f395c3dff..5a4ff62b6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt @@ -9,56 +9,26 @@ import java.util.* @RealmClass(embedded = true) open class Items : RealmObject, BaseObject { - - @PrimaryKey - var userId: String? = null - set(userId) { - field = userId - if (gear != null && gear?.isManaged == false) { - gear?.userId = userId - } - if (special != null && special?.isManaged == false) { - special?.userId = userId - } - eggs?.forEach { - if (!it.isManaged) { - it.userID = userId - it.itemType = "eggs" - } - } - food?.forEach { - if (!it.isManaged) { - it.userID = userId - it.itemType = "food" - } - } - hatchingPotions?.forEach { - if (!it.isManaged) { - it.userID = userId - it.itemType = "hatchingPotions" - } - } - quests?.forEach { - if (!it.isManaged) { - it.userID = userId - it.itemType = "quests" - } - } - pets?.forEach { - if (!it.isManaged) { - it.userID = userId - } - } - mounts?.forEach { - if (!it.isManaged) { - it.userID = userId - } - } - } var eggs: RealmList? = null + set(value) { + field = value + field?.forEach { it.itemType = "eggs" } + } var food: RealmList? = null + set(value) { + field = value + field?.forEach { it.itemType = "food" } + } var hatchingPotions: RealmList? = null + set(value) { + field = value + field?.forEach { it.itemType = "hatchingPotions" } + } var quests: RealmList? = null + set(value) { + field = value + field?.forEach { it.itemType = "quests" } + } var pets: RealmList? = null var mounts: RealmList? = null var currentMount: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Outfit.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Outfit.kt index 4b04e6402..3e0f85847 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Outfit.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Outfit.kt @@ -11,11 +11,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Outfit : RealmObject(), BaseObject { - - @PrimaryKey - var userId: String? = null - - internal var gear: Gear? = null var armor: String = "" var back: String = "" var body: String = "" diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedCustomization.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedCustomization.kt index cf5417de3..993f2ee40 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedCustomization.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedCustomization.kt @@ -6,29 +6,10 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class OwnedCustomization : RealmObject(), OwnedObject { - - @PrimaryKey - override var combinedKey: String? = null override var userID: String? = null - set(value) { - field = value - combinedKey = field + type + category + key - } override var key: String? = null - set(value) { - field = value - combinedKey = userID + type + category +field - } var type: String? = null - set(value) { - field = value - combinedKey = userID + field + category +key - } var category: String? = null - set(value) { - field = value - combinedKey = userID + type + field + key - } var purchased = false } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedItem.kt index bb9b29855..59d91662a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedItem.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedItem.kt @@ -12,27 +12,27 @@ open class OwnedItem : RealmObject(), BaseMainObject, OwnedObject { override val realmClass: Class get() = OwnedItem::class.java override val primaryIdentifier: String? - get() = combinedKey + get() = key override val primaryIdentifierName: String get() = "combinedKey" - @PrimaryKey - override var combinedKey: String? = null override var userID: String? = null - set(value) { - field = value - combinedKey = field + itemType + key - } + override var key: String? = null - set(value) { - field = value - combinedKey = userID + itemType + field - } var itemType: String? = null - set(value) { - field = value - combinedKey = userID + field + key - } var numberOwned = 0 + + override fun equals(other: Any?): Boolean { + return if (other is OwnedItem) { + userID == other.userID && key == other.key && itemType == other.itemType + } else super.equals(other) + } + + override fun hashCode(): Int { + var result = userID?.hashCode() ?: 0 + result = 31 * result + (key?.hashCode() ?: 0) + result = 31 * result + (itemType?.hashCode() ?: 0) + return result + } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedMount.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedMount.kt index 05a054960..376d5a270 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedMount.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedMount.kt @@ -7,31 +7,22 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class OwnedMount : RealmObject(), OwnedObject { - @PrimaryKey - override var combinedKey: String? = null override var userID: String? = null - set(value) { - field = value - combinedKey = field + key - } override var key: String? = null - set(value) { - field = value - combinedKey = field + key - } + var owned = false override fun equals(other: Any?): Boolean { - return if (other?.javaClass == OwnedMount::class.java) { - this.combinedKey == (other as OwnedMount).combinedKey + return if (other is OwnedMount) { + userID == other.userID && key == other.key } else super.equals(other) } override fun hashCode(): Int { - var result = combinedKey.hashCode() - result = 31 * result + userID.hashCode() - result = 31 * result + key.hashCode() + var result = userID?.hashCode() ?: 0 + result = 31 * result + (key?.hashCode() ?: 0) + result = 31 * result + owned.hashCode() return result } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedObject.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedObject.kt index 2a82cd7eb..b275ca930 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedObject.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedObject.kt @@ -3,7 +3,6 @@ package com.habitrpg.android.habitica.models.user import com.habitrpg.android.habitica.models.BaseObject interface OwnedObject: BaseObject { - var combinedKey: String? var userID: String? var key: String? } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedPet.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedPet.kt index c73dacd2f..877aaa7e6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedPet.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/OwnedPet.kt @@ -7,32 +7,19 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class OwnedPet : RealmObject(), OwnedObject { - - @PrimaryKey - override var combinedKey: String? = null override var userID: String? = null - set(value) { - field = value - combinedKey = field + key - } override var key: String? = null - set(value) { - field = value - combinedKey = field + key - } - var trained = 0 override fun equals(other: Any?): Boolean { - return if (other?.javaClass == OwnedPet::class.java) { - this.combinedKey == (other as OwnedPet).combinedKey + return if (other is OwnedPet) { + userID == other.userID && key == other.key } else super.equals(other) } override fun hashCode(): Int { - var result = combinedKey.hashCode() - result = 31 * result + userID.hashCode() - result = 31 * result + key.hashCode() + var result = userID?.hashCode() ?: 0 + result = 31 * result + (key?.hashCode() ?: 0) return result } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt index 2e834418b..bfdc8a911 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt @@ -12,19 +12,6 @@ import java.util.* @RealmClass(embedded = true) open class Preferences : RealmObject(), AvatarPreferences, BaseObject { - - @PrimaryKey - override var userId: String? = null - set(value) { - field = value - if (hair?.isManaged == false) { - hair?.userId = value - } - if (suppressModals?.isManaged == false) { - suppressModals?.userId = value - } - } - override var hair: Hair? = null var suppressModals: SuppressedModals? = null override var costume: Boolean = false diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Profile.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Profile.kt index b8c467906..816a2f277 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Profile.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Profile.kt @@ -7,10 +7,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Profile : RealmObject, BaseObject { - - @PrimaryKey - var userId: String? = null - internal var user: User? = null var name: String? = null var blurb: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Purchases.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Purchases.kt index e6e4ef004..d02ce124b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Purchases.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Purchases.kt @@ -8,12 +8,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Purchases : RealmObject(), BaseObject { - @PrimaryKey - var userId: String? = null - set(value) { - field = value - customizations?.forEach { it.userID = value } - } @JvmField var customizations: RealmList? = null var user: User? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SpecialItems.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SpecialItems.kt index 252225b83..ef68bf077 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SpecialItems.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SpecialItems.kt @@ -9,18 +9,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class SpecialItems : RealmObject(), BaseObject { - - @PrimaryKey - var userId: String? = null - set(userId) { - field = userId - ownedItems?.forEach { - if (!it.isManaged) { - it.userID = userId - it.itemType = "special" - } - } - } var ownedItems: RealmList? = null var seafoam: Int = 0 var shinySeed: Int = 0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Stats.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Stats.kt index c6b14d5f3..080c02949 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Stats.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Stats.kt @@ -11,20 +11,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Stats : RealmObject(), BaseObject { - - @PrimaryKey - var userId: String? = null - set(userId) { - field = userId - if (buffs?.isManaged == false) { - buffs?.userId = userId - } - if (training?.isManaged == false) { - training?.userId = userId - } - } - - internal var user: User? = null @SerializedName("con") var constitution: Int? = null @SerializedName("str") diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt index 95735f93f..eb62b41d2 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt @@ -9,14 +9,7 @@ import java.util.* @RealmClass(embedded = true) open class SubscriptionPlan : RealmObject(), BaseObject { - @PrimaryKey var customerId: String? = null - set(value) { - field = value - if (consecutive != null && consecutive?.isManaged == true) { - consecutive?.customerId = value - } - } var dateCreated: Date? = null var dateUpdated: Date? = null @JvmField diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlanConsecutive.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlanConsecutive.kt index 6a7d2f2e2..120878996 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlanConsecutive.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlanConsecutive.kt @@ -7,9 +7,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class SubscriptionPlanConsecutive : RealmObject(), BaseObject { - @PrimaryKey - var customerId: String? = null - var subscriptionPlan: SubscriptionPlan? = null var trinkets = 0 var gemCapExtra = 0 var offset = 0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SuppressedModals.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SuppressedModals.kt index 5c12821e0..48a341762 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SuppressedModals.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SuppressedModals.kt @@ -7,9 +7,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class SuppressedModals : RealmObject(), BaseObject { - @PrimaryKey - var userId: String? = null - var preferences: Preferences? = null var streak: Boolean? = null var raisePet: Boolean? = null var hatchPet: Boolean? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Training.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Training.kt index bb3931680..03d4e30e7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Training.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Training.kt @@ -8,9 +8,6 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class Training : RealmObject(), BaseObject { - @PrimaryKey - var userId: String? = null - var stats: Stats? = null var con: Float = 0f var str: Float = 0f var per: Float = 0f diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt index 866bb07e9..c12997778 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt @@ -29,128 +29,23 @@ open class User : RealmObject(), BaseMainObject, Avatar, VersionedObject { @PrimaryKey @SerializedName("_id") var id: String? = null - set(id) { - field = id - if (stats?.isManaged != true) { - stats?.userId = id - } - if (inbox?.isManaged != true) { - this.inbox?.userId = id - } - if (preferences?.isManaged != true) { - preferences?.userId = id - } - if (purchased?.isManaged != true) { - purchased?.userId = id - } - if (this.profile?.isManaged != true) { - this.profile?.userId = id - } - if (this.items?.isManaged != true) { - this.items?.userId = id - } - if (this.authentication?.isManaged != true) { - this.authentication?.userId = id - } - if (this.flags?.isManaged != true) { - this.flags?.userId = id - } - if (this.contributor?.isManaged != true) { - this.contributor?.userId = id - } - if (this.invitations?.isManaged != true) { - this.invitations?.userId = id - } - for (test in abTests ?: emptyList()) { - test.userID = id - } - for (achievement in achievements) { - achievement.userId = id - } - } @SerializedName("_v") override var versionNumber: Int = 0 var balance: Double = 0.toDouble() override var stats: Stats? = null - set(value) { - field = value - if (value != null && this.id != null && !value.isManaged) { - field?.userId = this.id - } - } var inbox: Inbox? = null - set(inbox) { - field = inbox - if (inbox != null && this.id != null && !inbox.isManaged) { - inbox.userId = this.id - } - } override var preferences: Preferences? = null - set(value) { - field = value - if (value != null && this.id != null && !value.isManaged) { - field?.userId = this.id - } - } var profile: Profile? = null - set(profile) { - field = profile - if (profile != null && this.id != null && !profile.isManaged) { - profile.userId = this.id - } - } var party: UserParty? = null - set(party) { - field = party - if (party != null && this.id != null && !party.isManaged) { - party.userId = this.id - } - } var items: Items? = null - set(items) { - field = items - if (items != null && this.id != null && !items.isManaged) { - items.userId = this.id - } - } @SerializedName("auth") var authentication: Authentication? = null - set(authentication) { - field = authentication - if (authentication != null && this.id != null) { - authentication.userId = this.id - } - } var flags: Flags? = null - set(flags) { - field = flags - if (flags != null && this.id != null) { - flags.userId = this.id - } - } var contributor: ContributorInfo? = null - set(contributor) { - field = contributor - if (contributor != null && this.id != null && !contributor.isManaged) { - contributor.userId = this.id - } - } var backer: Backer? = null - set(backer) { - field = backer - if (backer != null && this.id != null && !backer.isManaged) { - backer.id = this.id - } - } var invitations: Invitations? = null - set(invitations) { - field = invitations - if (invitations != null && this.id != null && !invitations.isManaged) { - invitations.userId = this.id - } - } var tags = RealmList() var achievements = RealmList() @@ -165,12 +60,6 @@ open class User : RealmObject(), BaseMainObject, Avatar, VersionedObject { var pushDevices: List? = null var purchased: Purchases? = null - set(purchased) { - field = purchased - if (purchased != null && this.id != null) { - purchased.userId = this.id - } - } @Ignore var tasksOrder: TasksOrder? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/UserAchievement.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/UserAchievement.kt index f7360c671..1cd98e76a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/UserAchievement.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/UserAchievement.kt @@ -7,19 +7,7 @@ import io.realm.annotations.RealmClass @RealmClass(embedded = true) open class UserAchievement : RealmObject(), BaseObject { - - @PrimaryKey - var combinedKey: String? = null - var userId: String? = null - set(value) { - field = value - combinedKey = field + key - } var key: String? = null - set(value) { - field = value - combinedKey = userId + field - } var earned: Boolean = false } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt index ce0c5808d..537ab0315 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt @@ -7,9 +7,7 @@ import android.content.res.Resources import androidx.preference.PreferenceManager import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.ContentRepository -import com.habitrpg.android.habitica.executors.JobExecutor import com.habitrpg.android.habitica.executors.PostExecutionThread -import com.habitrpg.android.habitica.executors.ThreadExecutor import com.habitrpg.android.habitica.executors.UIThread import com.habitrpg.android.habitica.helpers.* import com.habitrpg.android.habitica.helpers.KeyHelper.Companion.getInstance @@ -56,10 +54,10 @@ class AppModule(private val application: Application) { } @Provides - fun provideKeyHelper(context: Context?, sharedPreferences: SharedPreferences?, keyStore: KeyStore?): KeyHelper? { + fun provideKeyHelper(context: Context, sharedPreferences: SharedPreferences, keyStore: KeyStore?): KeyHelper? { return if (keyStore == null) { null - } else getInstance(context!!, sharedPreferences!!, keyStore) + } else getInstance(context, sharedPreferences, keyStore) } @Provides @@ -84,12 +82,6 @@ class AppModule(private val application: Application) { return SoundManager() } - @Provides - @Singleton - fun provideThreadExecutor(jobExecutor: JobExecutor): ThreadExecutor { - return jobExecutor - } - @Provides @Singleton fun providePostExecutionThread(uiThread: UIThread): PostExecutionThread { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt index 91a98f72f..4c9d8dd88 100755 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt @@ -715,7 +715,11 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction { sharingIntent.type = "*/*" sharingIntent.putExtra(Intent.EXTRA_TEXT, event.sharedMessage) BitmapUtils.clearDirectoryContent("$filesDir/shared_images") - val f = BitmapUtils.saveToShareableFile("$filesDir/shared_images", "${Date()}.png", event.shareImage) + val f = event.shareImage?.let { + BitmapUtils.saveToShareableFile("$filesDir/shared_images", "${Date()}.png", + it + ) + } val fileUri = f?.let { FileProvider.getUriForFile(this, getString(R.string.content_provider), it) } if (fileUri != null) { sharingIntent.putExtra(Intent.EXTRA_STREAM, fileUri) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt index 2dbe21a6d..03a20c2c7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt @@ -167,9 +167,7 @@ class ItemRecyclerAdapter(val context: Context) : BaseRecyclerViewAdapter item?.let { startHatchingSubject.onNext(it) } is Food -> { - val event = FeedCommand() - event.usingFood = selectedItem - EventBus.getDefault().post(event) + EventBus.getDefault().post(FeedCommand(null, selectedItem)) } is HatchingPotion -> startHatchingSubject.onNext(selectedItem) is QuestContent -> { @@ -203,10 +201,7 @@ class ItemRecyclerAdapter(val context: Context) : BaseRecyclerViewAdapter taskFilterHelper.setActiveFilter(Task.TYPE_TODO, Task.FILTER_ACTIVE) - Task.TYPE_DAILY -> { - val user = (activity as? MainActivity)?.user - if (user?.isValid == true && user.preferences?.dailyDueDefaultView == true) { - taskFilterHelper.setActiveFilter(Task.TYPE_DAILY, Task.FILTER_ACTIVE) - } - } - } - + this.setInnerAdapter() recyclerAdapter?.filter() itemTouchCallback = object : ItemTouchHelper.Callback() { override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) { super.onSelectedChanged(viewHolder, actionState) - if (viewHolder == null || viewHolder.adapterPosition == NO_POSITION) return + if (viewHolder == null || viewHolder.absoluteAdapterPosition == NO_POSITION) return val taskViewHolder = viewHolder as? BaseTaskViewHolder if (taskViewHolder != null) { - taskViewHolder.movingFromPosition = viewHolder.adapterPosition + taskViewHolder.movingFromPosition = viewHolder.absoluteAdapterPosition } binding?.refreshLayout?.isEnabled = false } override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean { - recyclerAdapter?.notifyItemMoved(viewHolder.adapterPosition, target.adapterPosition) + recyclerAdapter?.notifyItemMoved(viewHolder.absoluteAdapterPosition, target.absoluteAdapterPosition) return true } @@ -209,7 +199,7 @@ open class TaskRecyclerViewFragment : BaseFragment + dialog.addButton(it.getString(R.string.delete_x_tasks, taskCount), + isPrimary = false, + isDestructive = true + ) { _, _ -> if (!task.isValid) return@addButton taskRepository.unlinkAllTasks(task.challengeID, "remove-all") .flatMap { userRepository.retrieveUser(true, forced = true) } @@ -383,8 +374,14 @@ open class TaskRecyclerViewFragment : BaseFragment taskFilterHelper.setActiveFilter(Task.TYPE_TODO, Task.FILTER_ACTIVE) + Task.TYPE_DAILY -> { + val user = (activity as? MainActivity)?.user + if (user?.isValid == true && user.preferences?.dailyDueDefaultView == true) { + taskFilterHelper.setActiveFilter(Task.TYPE_DAILY, Task.FILTER_ACTIVE) + } + } } } @@ -429,7 +426,6 @@ open class TaskRecyclerViewFragment : BaseFragment? = null if (context != null) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt index fe5a77b90..92dc8b774 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt @@ -53,7 +53,6 @@ class AutocompleteAdapter(val context: Context, val socialRepository: SocialRepo val result = FindUsernameResult() result.authentication = Authentication() result.authentication?.localAuthentication = LocalAuthentication() - result.authentication?.localAuthentication?.userID = message.uuid result.authentication?.localAuthentication?.username = message.username result.contributor = message.contributor result.profile = Profile() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt index 8aaa9e763..849bc2a4d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt @@ -136,17 +136,12 @@ class PetViewHolder(parent: ViewGroup, private val equipEvents: PublishSubject { - val event = FeedCommand() - event.usingPet = animal - EventBus.getDefault().post(event) + EventBus.getDefault().post(FeedCommand(animal, null)) } 2 -> { - val event = FeedCommand() - event.usingPet = animal val saddle = Food() saddle.key = "Saddle" - event.usingFood = saddle - EventBus.getDefault().post(event) + EventBus.getDefault().post(FeedCommand(animal, saddle)) } } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt index f53c6e48c..f88964961 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt @@ -15,6 +15,7 @@ import androidx.core.content.ContextCompat import androidx.core.widget.CompoundButtonCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent +import com.habitrpg.android.habitica.data.TagRepository import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher import com.habitrpg.android.habitica.extensions.getThemeColor import com.habitrpg.android.habitica.helpers.RxErrorHandler @@ -29,6 +30,9 @@ class TaskFilterDialog(context: Context, component: UserComponent?) : HabiticaAl private var clearButton: Button + @Inject + lateinit var repository: TagRepository + private var taskTypeTitle: TextView private var taskFilters: RadioGroup private var allTaskFilter: RadioButton diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChatMessageDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChatMessageDeserializer.kt index a07b7c931..d5b724022 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChatMessageDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChatMessageDeserializer.kt @@ -28,7 +28,7 @@ class ChatMessageDeserializer : JsonDeserializer { message.likes = RealmList() for ((key, value) in obj.getAsJsonObject("likes").entrySet()) { if (value.asBoolean) { - message.likes?.add(ChatMessageLike(key, message.id)) + message.likes?.add(ChatMessageLike(key)) } } } @@ -49,7 +49,6 @@ class ChatMessageDeserializer : JsonDeserializer { contributor.text = obj.get("contributor").asString message.contributor = contributor } - message.contributor?.userId = message.id } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt index 68b1ab729..a3d99a18b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt @@ -87,6 +87,12 @@ class UserDeserializer : JsonDeserializer { item.numberOwned = user.purchased?.plan?.mysteryItemCount ?: 0 user.items?.special?.ownedItems = RealmList() user.items?.special?.ownedItems?.add(item) + + user.items?.hatchingPotions?.forEach { it.itemType = "hatchingPotions" } + user.items?.eggs?.forEach { it.itemType = "eggs" } + user.items?.food?.forEach { it.itemType = "food" } + user.items?.quests?.forEach { it.itemType = "quests" } + } if (obj.has("auth")) { user.authentication = context.deserialize(obj.get("auth"), Authentication::class.java) @@ -132,9 +138,6 @@ class UserDeserializer : JsonDeserializer { achievements.add(achievement) } user.achievements = achievements - for (achievement in user.achievements) { - achievement.userId = user.id - } } if (obj.has("tasksOrder")) { user.tasksOrder = context.deserialize(obj.get("tasksOrder"), TasksOrder::class.java)