diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index 58ba32d0e..e996dc737 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -104,11 +104,6 @@ dependencies {
androidTestImplementation 'io.kotest:kotest-assertions-core:5.3.0'
androidTestUtil("androidx.test:orchestrator:1.4.1")
- implementation 'androidx.activity:activity-compose:1.4.0'
- implementation 'androidx.compose.material:material:1.1.1'
- implementation 'androidx.compose.animation:animation:1.1.1'
- implementation 'androidx.compose.ui:ui-tooling:1.1.1'
- implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.4.1'
implementation "com.google.accompanist:accompanist-appcompat-theme:0.16.0"
implementation 'com.facebook.shimmer:shimmer:0.5.0'
diff --git a/Habitica/res/values/colors.xml b/Habitica/res/values/colors.xml
index 1cb6a6211..61e8c6d33 100644
--- a/Habitica/res/values/colors.xml
+++ b/Habitica/res/values/colors.xml
@@ -14,9 +14,6 @@
#ffb5b5b5
-
- #ffffff
-
@color/separator
@color/offset_background
#c8ffffff
@@ -72,30 +69,9 @@
#6ECDB2
#794b00
- #033f5e
- #005158
- #005737
- #794b00
- #7f3300
-
@color/brand_400
- @color/gray_10
- @color/gray_100
- @color/gray_200
- @color/gray_300
- @color/gray_400
- @color/gray_700
- @color/brand_300
- @color/brand_400
- @color/maroon_100
- @color/orange_10
- @color/yellow_10
- @color/green_10
- @color/blue_10
- @color/teal_10
-
@color/white
@color/gray_700
@color/gray_600
diff --git a/Habitica/res/values/dimens.xml b/Habitica/res/values/dimens.xml
index 8f5a594a4..9b3247235 100644
--- a/Habitica/res/values/dimens.xml
+++ b/Habitica/res/values/dimens.xml
@@ -57,7 +57,6 @@
81dp
99dp
124dp
- 4dp
15dp
9dp
10dp
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 9162cb304..7d4fa6c67 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -217,7 +217,6 @@
Guild
Leave
Join
- Gems
Delete
Name
Description
@@ -352,8 +351,6 @@
%d Checkins
create an account
Purchased %1$s
- gold
- Gold
Message copied to Clipboard
Edit
Are you sure?
@@ -1026,7 +1023,6 @@
Common Questions
Game Mechanics
Subscriber Currency
- Mystic Hourglasses
Mystic Hourglasses are an extremely rare form of currency you can only receive for subscribing to Habitica for three consecutive months or more. They are used in the Time Traveler’s shop to buy past gear sets, pets, mounts, animated backgrounds, or even special quests.\n\nYou can receive up to four Mystic Hourglasses a year. The time they are rewarded is based on your subscription renewal schedule. They are sent out on the first day of a new month after your last subscription payment that qualified you for an hourglass. See the [Subscription] page for more details.
Clear your Cache
Apps > Habitica, then tap Clear Cache.]]>
diff --git a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/HabiticaTestCase.kt b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/HabiticaTestCase.kt
index 416756065..ba4829717 100644
--- a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/HabiticaTestCase.kt
+++ b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/HabiticaTestCase.kt
@@ -3,7 +3,7 @@ package com.habitrpg.android.habitica
import android.content.SharedPreferences
import androidx.lifecycle.MutableLiveData
import com.habitrpg.android.habitica.api.GSonFactoryCreator
-import com.habitrpg.android.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.android.habitica.api.MaintenanceApiService
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.ContentRepository
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt
index 465e50d48..4f4d2a862 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt
@@ -35,7 +35,7 @@ import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.helpers.AdHandler
-import com.habitrpg.android.habitica.helpers.LanguageHelper
+import com.habitrpg.common.habitica.helpers.LanguageHelper
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager
import com.habitrpg.android.habitica.modules.UserModule
@@ -44,7 +44,7 @@ import com.habitrpg.android.habitica.proxy.AnalyticsManager
import com.habitrpg.android.habitica.ui.activities.BaseActivity
import com.habitrpg.android.habitica.ui.activities.LoginActivity
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.realm.Realm
import io.realm.RealmConfiguration
import java.lang.ref.WeakReference
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt
index 29820d29d..a25a80224 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt
@@ -17,11 +17,9 @@ import com.habitrpg.android.habitica.models.members.Member
import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData
import com.habitrpg.android.habitica.models.responses.BuyResponse
import com.habitrpg.android.habitica.models.responses.FeedResponse
-import com.habitrpg.android.habitica.models.responses.HabitResponse
import com.habitrpg.android.habitica.models.responses.PostChatMessageResult
import com.habitrpg.android.habitica.models.responses.SkillResponse
import com.habitrpg.android.habitica.models.responses.Status
-import com.habitrpg.android.habitica.models.responses.TaskDirectionData
import com.habitrpg.android.habitica.models.responses.UnlockResponse
import com.habitrpg.android.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.android.habitica.models.shops.Shop
@@ -36,6 +34,8 @@ 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.models.responses.HabitResponse
+import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import io.reactivex.rxjava3.core.Flowable
import retrofit2.http.Body
import retrofit2.http.DELETE
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java b/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java
index cf691f758..0496657e7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java
@@ -6,7 +6,7 @@ import com.google.gson.reflect.TypeToken;
import com.habitrpg.android.habitica.models.Achievement;
import com.habitrpg.android.habitica.models.ContentResult;
import com.habitrpg.android.habitica.models.FAQArticle;
-import com.habitrpg.android.habitica.models.Notification;
+import com.habitrpg.common.habitica.models.Notification;
import com.habitrpg.android.habitica.models.Skill;
import com.habitrpg.android.habitica.models.Tag;
import com.habitrpg.android.habitica.models.TutorialStep;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt
index 5a844dde0..c3615c0bc 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt
@@ -1,6 +1,6 @@
package com.habitrpg.android.habitica.data
-import com.habitrpg.android.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.android.habitica.models.Achievement
import com.habitrpg.android.habitica.models.ContentResult
import com.habitrpg.android.habitica.models.LeaveChallengeBody
@@ -17,11 +17,11 @@ import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData
import com.habitrpg.android.habitica.models.responses.BuyResponse
import com.habitrpg.android.habitica.models.responses.ErrorResponse
import com.habitrpg.android.habitica.models.responses.FeedResponse
-import com.habitrpg.android.habitica.models.responses.HabitResponse
+import com.habitrpg.common.habitica.models.responses.HabitResponse
import com.habitrpg.android.habitica.models.responses.PostChatMessageResult
import com.habitrpg.android.habitica.models.responses.SkillResponse
import com.habitrpg.android.habitica.models.responses.Status
-import com.habitrpg.android.habitica.models.responses.TaskDirectionData
+import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.android.habitica.models.responses.UnlockResponse
import com.habitrpg.android.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.android.habitica.models.shops.Shop
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt
index 6d75453f0..15ed4bf24 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt
@@ -2,7 +2,7 @@ package com.habitrpg.android.habitica.data
import com.habitrpg.android.habitica.models.BaseMainObject
import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData
-import com.habitrpg.android.habitica.models.responses.TaskScoringResult
+import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.android.habitica.models.tasks.TaskType
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt
index 21b796897..2accd0ee5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt
@@ -8,8 +8,8 @@ import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.api.ApiService
import com.habitrpg.android.habitica.api.GSonFactoryCreator
-import com.habitrpg.android.habitica.api.HostConfig
-import com.habitrpg.android.habitica.api.Server
+import com.habitrpg.common.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.Server
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.extensions.filterMap
import com.habitrpg.android.habitica.helpers.NotificationsManager
@@ -32,11 +32,11 @@ import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData
import com.habitrpg.android.habitica.models.responses.BuyResponse
import com.habitrpg.android.habitica.models.responses.ErrorResponse
import com.habitrpg.android.habitica.models.responses.FeedResponse
-import com.habitrpg.android.habitica.models.responses.HabitResponse
+import com.habitrpg.common.habitica.models.responses.HabitResponse
import com.habitrpg.android.habitica.models.responses.PostChatMessageResult
import com.habitrpg.android.habitica.models.responses.SkillResponse
import com.habitrpg.android.habitica.models.responses.Status
-import com.habitrpg.android.habitica.models.responses.TaskDirectionData
+import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.android.habitica.models.responses.UnlockResponse
import com.habitrpg.android.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.android.habitica.models.shops.Shop
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt
index 61e227a76..e86083eb4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt
@@ -9,9 +9,9 @@ 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.android.habitica.models.responses.TaskDirection
-import com.habitrpg.android.habitica.models.responses.TaskDirectionData
-import com.habitrpg.android.habitica.models.responses.TaskScoringResult
+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.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt
index 3258baa09..6f46267d7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt
@@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.models.Skill
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.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.responses.UnlockResponse
import com.habitrpg.android.habitica.models.responses.VerifyUsernameResponse
import com.habitrpg.android.habitica.models.social.Group
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewExt.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewExt.kt
index b714f550b..94a989a76 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewExt.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewExt.kt
@@ -3,6 +3,7 @@ package com.habitrpg.android.habitica.extensions
import android.content.Context
import android.view.View
import android.view.ViewTreeObserver
+import com.habitrpg.common.habitica.extensions.dpToPx
fun View.setScaledPadding(context: Context?, left: Int, top: Int, right: Int, bottom: Int) {
this.setPadding(left.dpToPx(context), top.dpToPx(context), right.dpToPx(context), bottom.dpToPx(context))
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt
index e55e4aa66..50b55e077 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt
@@ -3,6 +3,7 @@ package com.habitrpg.android.habitica.extensions
import android.view.View
import android.view.ViewGroup
+import com.habitrpg.common.habitica.extensions.layoutInflater
fun ViewGroup.inflate(layoutId: Int, attachToRoot: Boolean = false): View =
context.layoutInflater.inflate(layoutId, this, attachToRoot)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Window-Extensions.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Window-Extensions.kt
index 5accd44e0..3381f86c6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Window-Extensions.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Window-Extensions.kt
@@ -4,6 +4,7 @@ import android.os.Build
import android.view.View
import android.view.Window
import com.habitrpg.android.habitica.R
+import com.habitrpg.common.habitica.extensions.getThemeColor
fun Window.updateStatusBarColor(color: Int, isLight: Boolean) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt
index 6ff46e85d..c24f5edaf 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt
@@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.helpers
import android.content.Context
import androidx.core.app.NotificationManagerCompat
import com.habitrpg.android.habitica.data.ApiClient
-import com.habitrpg.android.habitica.models.Notification
+import com.habitrpg.common.habitica.models.Notification
import com.habitrpg.android.habitica.models.tasks.Task
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
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 391e4b9d3..adee6314f 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
@@ -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.android.habitica.models.responses.TaskScoringResult
+import com.habitrpg.common.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
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 961d3e93f..1d0e34b28 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
@@ -5,7 +5,7 @@ import androidx.appcompat.app.AppCompatActivity
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.models.responses.TaskScoringResult
+import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import io.reactivex.rxjava3.core.Flowable
import javax.inject.Inject
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 116a782d5..8db1ce247 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
@@ -11,7 +11,7 @@ import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.views.AvatarView
import com.habitrpg.android.habitica.ui.activities.BaseActivity
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import io.reactivex.rxjava3.core.Flowable
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 9f7439c22..42642905a 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
@@ -19,7 +19,7 @@ import com.habitrpg.android.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
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar.SnackbarDisplayType
import io.reactivex.rxjava3.core.Flowable
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt
index 9816b147d..3a823a484 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt
@@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.interactors
-import com.habitrpg.android.habitica.models.responses.TaskDirection
-import com.habitrpg.android.habitica.models.responses.TaskDirectionData
+import com.habitrpg.common.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirectionData
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.models.user.Stats
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt
index 401cadfd4..5f8fa398d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt
@@ -7,11 +7,11 @@ import android.widget.TextView
import androidx.lifecycle.LifecycleCoroutineScope
import com.google.firebase.analytics.FirebaseAnalytics
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.models.Notification
-import com.habitrpg.android.habitica.models.notifications.AchievementData
-import com.habitrpg.android.habitica.models.notifications.ChallengeWonData
-import com.habitrpg.android.habitica.models.notifications.FirstDropData
-import com.habitrpg.android.habitica.models.notifications.LoginIncentiveData
+import com.habitrpg.common.habitica.models.Notification
+import com.habitrpg.common.habitica.models.notifications.AchievementData
+import com.habitrpg.common.habitica.models.notifications.ChallengeWonData
+import com.habitrpg.common.habitica.models.notifications.FirstDropData
+import com.habitrpg.common.habitica.models.notifications.LoginIncentiveData
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GuildInvitationData.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GuildInvitationData.kt
deleted file mode 100644
index fa87bcf28..000000000
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GuildInvitationData.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.habitrpg.android.habitica.models.notifications
-
-import com.habitrpg.android.habitica.models.invitations.GuildInvite
-
-open class GuildInvitationData : NotificationData {
-
- var invitation: GuildInvite? = null
-}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NotificationData.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NotificationData.kt
deleted file mode 100644
index 32524d056..000000000
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NotificationData.kt
+++ /dev/null
@@ -1,3 +0,0 @@
-package com.habitrpg.android.habitica.models.notifications
-
-interface NotificationData
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/PartyInvitationData.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/PartyInvitationData.kt
deleted file mode 100644
index 77e2783e3..000000000
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/PartyInvitationData.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.habitrpg.android.habitica.models.notifications
-
-import com.habitrpg.android.habitica.models.invitations.PartyInvite
-
-open class PartyInvitationData : NotificationData {
-
- var invitation: PartyInvite? = null
-}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/Reward.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/Reward.kt
deleted file mode 100644
index 563edec1c..000000000
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/Reward.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.habitrpg.android.habitica.models.notifications
-
-class Reward {
- var key: String? = null
-}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt
index c7380da48..e1187b2ae 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt
@@ -10,7 +10,7 @@ import com.habitrpg.android.habitica.databinding.FragmentGemPurchaseBinding
import com.habitrpg.android.habitica.databinding.FragmentSubscriptionBinding
import com.habitrpg.android.habitica.databinding.PurchaseGemViewBinding
import com.habitrpg.android.habitica.extensions.DateUtils
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment
import com.habitrpg.android.habitica.ui.fragments.purchases.SubscriptionFragment
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/BulkTaskScoringData.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/BulkTaskScoringData.kt
index 54df94739..b0d31dd4f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/BulkTaskScoringData.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/BulkTaskScoringData.kt
@@ -3,6 +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
class BulkTaskScoringData {
@SerializedName("con")
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/ErrorResponse.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/ErrorResponse.kt
index 12eed50b1..6cc349965 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/ErrorResponse.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/ErrorResponse.kt
@@ -1,5 +1,7 @@
package com.habitrpg.android.habitica.models.responses
+import com.habitrpg.common.habitica.models.responses.HabiticaError
+
class ErrorResponse {
var message: String? = null
var errors: List? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt
index 2e7801197..66ee1e4f2 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt
@@ -2,15 +2,15 @@ package com.habitrpg.android.habitica.modules
import android.content.Context
import android.content.SharedPreferences
-import com.habitrpg.android.habitica.api.HostConfig
import com.habitrpg.android.habitica.api.MaintenanceApiService
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.implementation.ApiClientImpl
import com.habitrpg.android.habitica.data.implementation.ApiClientImpl.Companion.createGsonFactory
-import com.habitrpg.android.habitica.helpers.KeyHelper
import com.habitrpg.android.habitica.helpers.MainNotificationsManager
import com.habitrpg.android.habitica.helpers.NotificationsManager
import com.habitrpg.android.habitica.proxy.AnalyticsManager
+import com.habitrpg.common.habitica.api.HostConfig
+import com.habitrpg.common.habitica.helpers.KeyHelper
import dagger.Module
import dagger.Provides
import retrofit2.Retrofit
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 2cf911428..1737dc1f0 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
@@ -10,11 +10,11 @@ import com.habitrpg.android.habitica.data.ContentRepository
import com.habitrpg.android.habitica.executors.PostExecutionThread
import com.habitrpg.android.habitica.executors.UIThread
import com.habitrpg.android.habitica.helpers.AppConfigManager
-import com.habitrpg.android.habitica.helpers.KeyHelper
-import com.habitrpg.android.habitica.helpers.KeyHelper.Companion.getInstance
import com.habitrpg.android.habitica.helpers.SoundFileLoader
import com.habitrpg.android.habitica.helpers.SoundManager
import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager
+import com.habitrpg.common.habitica.helpers.KeyHelper
+import com.habitrpg.common.habitica.helpers.KeyHelper.Companion.getInstance
import com.habitrpg.shared.habitica.HLogger
import dagger.Module
import dagger.Provides
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt
index a6e3224a8..5b4ffcdd2 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt
@@ -15,7 +15,7 @@ import com.habitrpg.common.habitica.helpers.HealthFormatter
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
-import com.habitrpg.android.habitica.ui.activities.mainActivityCreatedAt
+import com.habitrpg.common.habitica.ui.activities.mainActivityCreatedAt
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import java.util.Date
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/GemPurchaseOptionsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/GemPurchaseOptionsView.kt
index 6f3e7a308..ca7e06da0 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/GemPurchaseOptionsView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/GemPurchaseOptionsView.kt
@@ -6,7 +6,7 @@ import android.widget.FrameLayout
import com.android.billingclient.api.SkuDetails
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.PurchaseGemViewBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
class GemPurchaseOptionsView(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.kt
index 83e7e5a62..02ba02ad6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.kt
@@ -10,7 +10,7 @@ import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import com.habitrpg.android.habitica.R
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.views.PixelArtView
class ItemDetailDialog(context: Context) : AlertDialog(context) {
@@ -21,7 +21,6 @@ class ItemDetailDialog(context: Context) : AlertDialog(context) {
private val currencyImageView = ImageView(context)
init {
-
// External ContentView
val contentViewLayout = LinearLayout(context)
contentViewLayout.orientation = LinearLayout.VERTICAL
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/SpeechBubbleView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/SpeechBubbleView.kt
index b8984f893..088b10425 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/SpeechBubbleView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/SpeechBubbleView.kt
@@ -6,7 +6,7 @@ import android.view.View
import android.widget.FrameLayout
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.SpeechbubbleBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
class SpeechBubbleView(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs), View.OnClickListener {
internal var binding = SpeechbubbleBinding.inflate(context.layoutInflater, this, true)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/TutorialView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/TutorialView.kt
index 81a897918..9898cd125 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/TutorialView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/TutorialView.kt
@@ -5,7 +5,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import com.habitrpg.android.habitica.databinding.OverlayTutorialBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.TutorialStep
class TutorialView(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
index da0306dbf..9df8bf29a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
@@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.databinding.ActivityArmoireBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.extensions.observeOnce
import com.habitrpg.android.habitica.helpers.AdHandler
import com.habitrpg.android.habitica.helpers.AdType
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
index 928cdafaf..880a9bb96 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
@@ -26,11 +26,11 @@ import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.UserRepository
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
import com.habitrpg.android.habitica.extensions.updateStatusBarColor
-import com.habitrpg.android.habitica.helpers.LanguageHelper
+import com.habitrpg.common.habitica.helpers.LanguageHelper
import com.habitrpg.android.habitica.helpers.NotificationsManager
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.interactors.ShowNotificationInteractor
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt
index 1fa3148a5..d98d346fb 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt
@@ -24,7 +24,7 @@ import com.habitrpg.android.habitica.data.ChallengeRepository
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.databinding.ActivityCreateChallengeBinding
import com.habitrpg.android.habitica.extensions.addCloseButton
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.social.Challenge
@@ -37,7 +37,7 @@ import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengesOv
import com.habitrpg.android.habitica.ui.helpers.ToolbarColorHelper
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaProgressDialog
import io.reactivex.rxjava3.core.Flowable
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt
index 73b174ff6..5498f32a5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt
@@ -18,8 +18,7 @@ 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.User
-import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaProgressDialog
import io.reactivex.rxjava3.functions.Consumer
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt
index 527ee9b61..2d97777f4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt
@@ -13,8 +13,11 @@ import com.habitrpg.android.habitica.databinding.ActivityFixcharacterBinding
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.android.habitica.models.user.Stats
import com.habitrpg.android.habitica.models.user.User
+import com.habitrpg.android.habitica.modules.AppModule
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
+import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaProgressDialog
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+
import javax.inject.Inject
class FixCharacterValuesActivity : BaseActivity() {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
index f786ca593..2ef598474 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
@@ -22,7 +22,7 @@ import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.databinding.ActivityFullProfileBinding
import com.habitrpg.android.habitica.extensions.addCancelButton
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.UserStatComputer
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 23ae67adb..a33b9ae34 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
@@ -30,10 +30,10 @@ import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.data.local.UserQuestStatus
import com.habitrpg.android.habitica.databinding.ActivityMainBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.extensions.hideKeyboard
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.extensions.observeOnce
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
import com.habitrpg.android.habitica.extensions.updateStatusBarColor
@@ -48,7 +48,7 @@ import com.habitrpg.android.habitica.interactors.DisplayItemDropUseCase
import com.habitrpg.android.habitica.interactors.NotifyUserUseCase
import com.habitrpg.android.habitica.models.TutorialStep
import com.habitrpg.android.habitica.models.responses.MaintenanceResponse
-import com.habitrpg.android.habitica.models.responses.TaskScoringResult
+import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.views.AvatarView
import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel
@@ -56,6 +56,7 @@ import com.habitrpg.android.habitica.ui.TutorialView
import com.habitrpg.android.habitica.ui.fragments.NavigationDrawerFragment
import com.habitrpg.android.habitica.ui.viewmodels.MainActivityViewModel
import com.habitrpg.android.habitica.ui.viewmodels.NotificationsViewModel
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.SnackbarActivity
import com.habitrpg.android.habitica.ui.views.dialogs.QuestCompletedDialog
import com.habitrpg.android.habitica.ui.views.yesterdailies.YesterdailyDialog
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt
index d4af430ef..95a444322 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt
@@ -20,17 +20,17 @@ import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.databinding.ActivityNotificationsBinding
import com.habitrpg.android.habitica.extensions.fromHtml
import com.habitrpg.android.habitica.helpers.RxErrorHandler
-import com.habitrpg.android.habitica.models.Notification
+import com.habitrpg.common.habitica.models.Notification
import com.habitrpg.android.habitica.models.inventory.QuestContent
-import com.habitrpg.android.habitica.models.notifications.GroupTaskApprovedData
-import com.habitrpg.android.habitica.models.notifications.GroupTaskNeedsWorkData
-import com.habitrpg.android.habitica.models.notifications.GroupTaskRequiresApprovalData
-import com.habitrpg.android.habitica.models.notifications.GuildInvitationData
-import com.habitrpg.android.habitica.models.notifications.NewChatMessageData
-import com.habitrpg.android.habitica.models.notifications.NewStuffData
-import com.habitrpg.android.habitica.models.notifications.PartyInvitationData
-import com.habitrpg.android.habitica.models.notifications.QuestInvitationData
-import com.habitrpg.android.habitica.models.notifications.UnallocatedPointsData
+import com.habitrpg.common.habitica.models.notifications.GroupTaskApprovedData
+import com.habitrpg.common.habitica.models.notifications.GroupTaskNeedsWorkData
+import com.habitrpg.common.habitica.models.notifications.GroupTaskRequiresApprovalData
+import com.habitrpg.common.habitica.models.notifications.GuildInvitationData
+import com.habitrpg.common.habitica.models.notifications.NewChatMessageData
+import com.habitrpg.common.habitica.models.notifications.NewStuffData
+import com.habitrpg.common.habitica.models.notifications.PartyInvitationData
+import com.habitrpg.common.habitica.models.notifications.QuestInvitationData
+import com.habitrpg.common.habitica.models.notifications.UnallocatedPointsData
import com.habitrpg.android.habitica.ui.viewmodels.NotificationsViewModel
import javax.inject.Inject
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt
index dc6579af9..d52a2e8e9 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt
@@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.databinding.ActivityReportMessageBinding
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard
import com.habitrpg.android.habitica.ui.helpers.setMarkdown
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt
index 3bfbd64e8..c692bb219 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt
@@ -17,7 +17,7 @@ import androidx.fragment.app.FragmentPagerAdapter
import androidx.preference.PreferenceManager
import androidx.viewpager.widget.ViewPager
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.InventoryRepository
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt
index 1e147c594..fefb00f3c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt
@@ -31,8 +31,8 @@ import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.databinding.ActivityTaskFormBinding
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
import com.habitrpg.android.habitica.extensions.addCancelButton
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.TaskAlarmManager
import com.habitrpg.android.habitica.models.Tag
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt
index 1e9845793..7d7988aec 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt
@@ -12,7 +12,7 @@ import com.habitrpg.android.habitica.databinding.ActivityVerifyUsernameBinding
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
import com.habitrpg.android.habitica.extensions.runDelayed
import com.habitrpg.android.habitica.helpers.RxErrorHandler
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt
index ae798c8b6..5c8ab7da8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt
@@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.models.inventory.CustomizationSet
import com.habitrpg.android.habitica.models.inventory.Equipment
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.views.PixelArtView
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import io.reactivex.rxjava3.core.BackpressureStrategy
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/NavigationDrawerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/NavigationDrawerAdapter.kt
index 9d3fef785..f961d9f07 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/NavigationDrawerAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/NavigationDrawerAdapter.kt
@@ -7,7 +7,7 @@ import androidx.core.content.ContextCompat
import androidx.core.os.bundleOf
import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.models.TeamPlan
import com.habitrpg.android.habitica.models.promotions.HabiticaPromotion
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt
index 43262ebc8..6460d7a1e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt
@@ -10,11 +10,11 @@ import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.SkillListItemBinding
import com.habitrpg.android.habitica.extensions.inflate
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.models.Skill
import com.habitrpg.android.habitica.models.user.OwnedItem
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.subjects.PublishSubject
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt
index ba218b5b8..ba74a5f2b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt
@@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.databinding.GearListItemBinding
import com.habitrpg.android.habitica.models.inventory.Equipment
import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.reactivex.rxjava3.subjects.PublishSubject
class EquipmentRecyclerViewAdapter : BaseRecyclerViewAdapter() {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/HabiticaClassArrayAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/HabiticaClassArrayAdapter.kt
index 983c8e243..b0f082009 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/HabiticaClassArrayAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/HabiticaClassArrayAdapter.kt
@@ -10,7 +10,7 @@ import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.models.user.Stats
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class HabiticaClassArrayAdapter(context: Context, resource: Int, objects: List) : ArrayAdapter(context, resource, R.id.textView, objects) {
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 6a12908e1..0539b94e6 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
@@ -8,7 +8,7 @@ import androidx.fragment.app.DialogFragment
import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.ItemItemBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.inventory.Egg
import com.habitrpg.android.habitica.models.inventory.Food
import com.habitrpg.android.habitica.models.inventory.HatchingPotion
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChallengesListViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChallengesListViewAdapter.kt
index 8090d9812..894853993 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChallengesListViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChallengesListViewAdapter.kt
@@ -11,7 +11,7 @@ import com.habitrpg.android.habitica.models.social.ChallengeMembership
import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengeFilterOptions
import com.habitrpg.android.habitica.ui.helpers.EmojiParser
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.subjects.PublishSubject
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt
index 9c8ab7453..a9666193b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt
@@ -13,13 +13,13 @@ import com.habitrpg.android.habitica.databinding.ItemPublicGuildBinding
import com.habitrpg.android.habitica.databinding.ItemUserGuildBinding
import com.habitrpg.android.habitica.databinding.PillTextviewBinding
import com.habitrpg.android.habitica.extensions.inflate
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.common.habitica.helpers.NumberAbbreviator
import com.habitrpg.android.habitica.models.social.Group
import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.helpers.EmojiParser
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.realm.Case
import io.realm.OrderedRealmCollection
import java.util.Locale
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt
index f7ec9ea26..ec3a996a2 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt
@@ -9,16 +9,16 @@ import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.AdventureGuideMenuBannerBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.layoutInflater
-import com.habitrpg.android.habitica.models.responses.TaskDirection
+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.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.viewHolders.tasks.BaseTaskViewHolder
import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.functions.Action
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RewardsRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RewardsRecyclerViewAdapter.kt
index d5c78fdb3..f918dd411 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RewardsRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RewardsRecyclerViewAdapter.kt
@@ -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.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.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
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TaskRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TaskRecyclerViewAdapter.kt
index a63ce0154..5d9870717 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TaskRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TaskRecyclerViewAdapter.kt
@@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.ui.adapter.tasks
import android.view.View
-import com.habitrpg.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.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
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt
index 68095a2d7..6402d7999 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt
@@ -17,7 +17,7 @@ import com.google.firebase.analytics.FirebaseAnalytics
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.UserRepository
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.extensions.setScaledPadding
import com.habitrpg.android.habitica.helpers.SoundManager
import com.habitrpg.android.habitica.ui.activities.MainActivity
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt
index 0ecd0f045..e9b55dc2d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt
@@ -27,7 +27,8 @@ import com.habitrpg.android.habitica.databinding.DrawerMainBinding
import com.habitrpg.android.habitica.extensions.getMinuteOrSeconds
import com.habitrpg.android.habitica.extensions.getRemainingString
import com.habitrpg.android.habitica.extensions.getShortRemainingString
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.MainNavigationController
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt
index e8ab68c87..148e3b950 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt
@@ -11,7 +11,7 @@ import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.databinding.FragmentStatsBinding
import com.habitrpg.android.habitica.extensions.addOkButton
-import com.habitrpg.android.habitica.extensions.getThemeColor
+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
@@ -19,7 +19,7 @@ import com.habitrpg.android.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
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.stats.BulkAllocateStatsDialog
import javax.inject.Inject
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt
index 532c2c208..8fa175255 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt
@@ -21,7 +21,7 @@ import com.habitrpg.android.habitica.data.CustomizationRepository
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.databinding.BottomSheetBackgroundsFilterBinding
import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.CustomizationFilter
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt
index a10e1d044..a92488ea4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt
@@ -18,11 +18,11 @@ import androidx.preference.Preference
import com.google.android.material.textfield.TextInputLayout
import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.extensions.addCancelButton
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.activities.FixCharacterValuesActivity
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt
index ec566fdcb..dd1b4a885 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt
@@ -19,7 +19,7 @@ import com.habitrpg.android.habitica.data.ContentRepository
import com.habitrpg.android.habitica.extensions.addCancelButton
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.common.habitica.helpers.AppTestingLevel
-import com.habitrpg.android.habitica.helpers.LanguageHelper
+import com.habitrpg.common.habitica.helpers.LanguageHelper
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.SoundManager
import com.habitrpg.android.habitica.helpers.TaskAlarmManager
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt
index 18d2acacb..b6734195e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt
@@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.databinding.FragmentGemPurchaseBinding
import com.habitrpg.android.habitica.extensions.addCancelButton
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.PurchaseHandler
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt
index 69a532a73..98bcfa448 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt
@@ -15,8 +15,8 @@ import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.databinding.FragmentSubscriptionBinding
import com.habitrpg.android.habitica.extensions.addCancelButton
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.PurchaseHandler
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt
index ef349cdf2..ae9f01a8d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt
@@ -17,7 +17,7 @@ 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
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import java.util.Date
class TaskSetupFragment : BaseFragment() {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/WelcomeFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/WelcomeFragment.kt
index 6d17af42a..1b14dfc22 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/WelcomeFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/WelcomeFragment.kt
@@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.databinding.FragmentWelcomeBinding
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.subjects.PublishSubject
import java.util.concurrent.TimeUnit
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt
index c5d47dd86..b3ff2011b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt
@@ -24,7 +24,7 @@ import com.habitrpg.android.habitica.ui.adapter.SkillsRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar.Companion.showSnackbar
import io.reactivex.rxjava3.core.Flowable
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt
index 1aa9a6f72..2833d2d12 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt
@@ -35,7 +35,7 @@ import com.habitrpg.android.habitica.ui.viewHolders.tasks.HabitViewHolder
import com.habitrpg.android.habitica.ui.viewHolders.tasks.RewardViewHolder
import com.habitrpg.android.habitica.ui.viewHolders.tasks.TodoViewHolder
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import javax.inject.Inject
import retrofit2.HttpException
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt
index 9b00de31a..a2f19b62c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt
@@ -26,8 +26,8 @@ import com.habitrpg.android.habitica.ui.activities.MainActivity
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
import com.habitrpg.android.habitica.ui.helpers.setMarkdown
import com.habitrpg.android.habitica.ui.viewmodels.GroupViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIcons
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIcons
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.SnackbarActivity
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import kotlinx.coroutines.Dispatchers
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.kt
index 4ec764e8d..4a29cabab 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.kt
@@ -17,7 +17,7 @@ import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.databinding.FragmentPartyDetailBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.helpers.HapticFeedbackManager
import com.habitrpg.android.habitica.helpers.MainNavigationController
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt
index b172164ee..67b8961c7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt
@@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.databinding.FragmentSupportBugFixBinding
import com.habitrpg.android.habitica.databinding.KnownIssueBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.common.habitica.helpers.AppTestingLevel
import com.habitrpg.android.habitica.helpers.MainNavigationController
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/FAQOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/FAQOverviewFragment.kt
index cf02067b6..92a6d0e07 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/FAQOverviewFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/FAQOverviewFragment.kt
@@ -12,12 +12,12 @@ import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.FAQRepository
import com.habitrpg.android.habitica.databinding.FragmentFaqOverviewBinding
import com.habitrpg.android.habitica.databinding.SupportFaqItemBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
import com.habitrpg.android.habitica.ui.helpers.setMarkdown
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import io.reactivex.rxjava3.functions.Consumer
import javax.inject.Inject
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt
index 3b28977f2..a3b5f404c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt
@@ -28,8 +28,8 @@ import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.NotificationsManager
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.SoundManager
-import com.habitrpg.android.habitica.models.responses.TaskDirection
-import com.habitrpg.android.habitica.models.responses.TaskScoringResult
+import com.habitrpg.common.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.ui.activities.MainActivity
@@ -45,7 +45,7 @@ import com.habitrpg.android.habitica.ui.helpers.EmptyItem
import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator
import com.habitrpg.android.habitica.ui.viewHolders.tasks.BaseTaskViewHolder
import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt
index 0f2749cce..04a0e3845 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt
@@ -24,7 +24,7 @@ import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.databinding.FragmentViewpagerBinding
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.MainNavigationController
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt
index 3445886b5..eaf41f953 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt
@@ -26,7 +26,7 @@ import androidx.appcompat.view.menu.ActionMenuItemView
import androidx.appcompat.widget.ActionMenuView
import androidx.appcompat.widget.Toolbar
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.extensions.waitForLayout
/**
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt
index 768a12e78..c0e03cc54 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt
@@ -11,7 +11,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.ChatItemBinding
import com.habitrpg.android.habitica.databinding.TavernChatIntroItemBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.extensions.getAgoString
import com.habitrpg.android.habitica.extensions.setScaledPadding
import com.habitrpg.android.habitica.helpers.RxErrorHandler
@@ -20,7 +20,7 @@ import com.habitrpg.android.habitica.models.social.ChatMessage
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser
import com.habitrpg.android.habitica.ui.helpers.setParsedMarkdown
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.SnackbarActivity
import com.habitrpg.common.habitica.extensions.DataBindingUtils
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/GroupMemberViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/GroupMemberViewHolder.kt
index 8bdc10c86..9be773190 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/GroupMemberViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/GroupMemberViewHolder.kt
@@ -8,7 +8,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.PartyMemberBinding
import com.habitrpg.android.habitica.models.members.Member
import com.habitrpg.android.habitica.models.user.Stats
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class GroupMemberViewHolder(itemView: View) : androidx.recyclerview.widget.RecyclerView.ViewHolder(itemView), PopupMenu.OnMenuItemClickListener {
private val binding = PartyMemberBinding.bind(itemView)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt
index b1f8ec202..4c180c4d1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt
@@ -7,11 +7,11 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.databinding.RowShopitemBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.shops.PurchaseDialog
class ShopItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), View.OnClickListener {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt
index 0f4b290a8..5dd04b1dd 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt
@@ -13,10 +13,10 @@ import android.widget.ProgressBar
import android.widget.TextView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.helpers.RxErrorHandler
-import com.habitrpg.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser
import com.habitrpg.android.habitica.ui.helpers.setParsedMarkdown
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt
index f93a78f4a..a9787b516 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt
@@ -12,10 +12,10 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.helpers.RxErrorHandler
-import com.habitrpg.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.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.tasks.TaskType
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt
index 32516b4a5..ce307b357 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt
@@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.ui.viewHolders.tasks
import android.view.View
-import com.habitrpg.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import java.text.DateFormat
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt
index df35a00cd..c5d9788af 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt
@@ -7,7 +7,7 @@ import android.widget.FrameLayout
import android.widget.ImageView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.Task
class HabitViewHolder(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/RewardViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/RewardViewHolder.kt
index ab6fd2a3e..d291df02d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/RewardViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/RewardViewHolder.kt
@@ -7,10 +7,10 @@ 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.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.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
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class RewardViewHolder(
itemView: View,
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/TodoViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/TodoViewHolder.kt
index 7389943cc..d08e92e3e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/TodoViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/TodoViewHolder.kt
@@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.ui.viewHolders.tasks
import android.view.View
-import com.habitrpg.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.models.tasks.Task
import java.text.DateFormat
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt
index 41294157e..d97014abd 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt
@@ -21,11 +21,11 @@ import com.google.android.gms.common.UserRecoverableException
import com.habitrpg.android.habitica.BuildConfig
import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.extensions.addCloseButton
-import com.habitrpg.android.habitica.helpers.KeyHelper
+import com.habitrpg.common.habitica.helpers.KeyHelper
import com.habitrpg.android.habitica.helpers.SignInWithAppleResult
import com.habitrpg.android.habitica.helpers.SignInWithAppleService
import com.habitrpg.android.habitica.models.auth.UserAuthResponse
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt
index 9e511bbf2..31c38a2cd 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt
@@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.NotificationsManager
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.members.Member
-import com.habitrpg.android.habitica.models.notifications.NewChatMessageData
+import com.habitrpg.common.habitica.models.notifications.NewChatMessageData
import com.habitrpg.android.habitica.models.social.Challenge
import com.habitrpg.android.habitica.models.social.ChatMessage
import com.habitrpg.android.habitica.models.social.Group
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt
index 80439e4c3..e1e3496cb 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt
@@ -4,7 +4,7 @@ import android.content.SharedPreferences
import androidx.core.content.edit
import androidx.lifecycle.viewModelScope
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.HostConfig
import com.habitrpg.android.habitica.api.MaintenanceApiService
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.ContentRepository
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt
index de7f615cf..39be81d98 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt
@@ -8,15 +8,17 @@ import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.NotificationsManager
import com.habitrpg.android.habitica.helpers.RxErrorHandler
-import com.habitrpg.android.habitica.models.Notification
-import com.habitrpg.android.habitica.models.notifications.GroupTaskRequiresApprovalData
-import com.habitrpg.android.habitica.models.notifications.GuildInvitationData
-import com.habitrpg.android.habitica.models.notifications.NewChatMessageData
-import com.habitrpg.android.habitica.models.notifications.NewStuffData
-import com.habitrpg.android.habitica.models.notifications.PartyInvitationData
-import com.habitrpg.android.habitica.models.notifications.QuestInvitationData
import com.habitrpg.android.habitica.models.social.UserParty
import com.habitrpg.android.habitica.models.user.User
+import com.habitrpg.common.habitica.models.Notification
+import com.habitrpg.common.habitica.models.notifications.GroupTaskRequiresApprovalData
+import com.habitrpg.common.habitica.models.notifications.GuildInvitationData
+import com.habitrpg.common.habitica.models.notifications.GuildInvite
+import com.habitrpg.common.habitica.models.notifications.NewChatMessageData
+import com.habitrpg.common.habitica.models.notifications.NewStuffData
+import com.habitrpg.common.habitica.models.notifications.PartyInvitationData
+import com.habitrpg.common.habitica.models.notifications.PartyInvite
+import com.habitrpg.common.habitica.models.notifications.QuestInvitationData
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
@@ -79,7 +81,7 @@ open class NotificationsViewModel : BaseViewModel() {
return Flowable.combineLatest(
serverNotifications,
customNotifications.toFlowable(BackpressureStrategy.LATEST),
- BiFunction, List, List> {
+ BiFunction {
serverNotificationsList, customNotificationsList ->
if (serverNotificationsList.firstOrNull { notification -> notification.type == Notification.Type.NEW_STUFF.type } != null) {
return@BiFunction serverNotificationsList + customNotificationsList.filter { notification -> notification.type != Notification.Type.NEW_STUFF.type }
@@ -131,7 +133,10 @@ open class NotificationsViewModel : BaseViewModel() {
notification.id = "custom-party-invitation-" + it.id
notification.type = Notification.Type.PARTY_INVITATION.type
val data = PartyInvitationData()
- data.invitation = it
+ data.invitation = PartyInvite()
+ data.invitation?.id = it.id
+ data.invitation?.name = it.name
+ data.invitation?.inviter = it.inviter
notification.data = data
notification
} ?: emptyList()
@@ -143,7 +148,11 @@ open class NotificationsViewModel : BaseViewModel() {
notification.id = "custom-guild-invitation-" + it.id
notification.type = Notification.Type.GUILD_INVITATION.type
val data = GuildInvitationData()
- data.invitation = it
+ data.invitation = GuildInvite()
+ data.invitation?.id = it.id
+ data.invitation?.name = it.name
+ data.invitation?.inviter = it.inviter
+ data.invitation?.publicGuild = it.publicGuild
notification.data = data
notification
} ?: emptyList()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt
index d4810ed0f..a423c033d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/TasksViewModel.kt
@@ -11,8 +11,8 @@ import com.habitrpg.android.habitica.data.TaskRepository
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.responses.TaskDirection
-import com.habitrpg.android.habitica.models.responses.TaskScoringResult
+import com.habitrpg.common.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskType
import com.habitrpg.android.habitica.modules.AppModule
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CollapsibleSectionView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CollapsibleSectionView.kt
index eb4acf799..81bc6c7bc 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CollapsibleSectionView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CollapsibleSectionView.kt
@@ -11,8 +11,9 @@ import androidx.core.content.ContextCompat
import androidx.core.content.edit
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.ViewCollapsibleSectionBinding
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class CollapsibleSectionView(context: Context, attrs: AttributeSet?) : LinearLayout(context, attrs) {
val infoIconView: ImageView
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyViews.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyViews.kt
index 787789082..8ee76d044 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyViews.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyViews.kt
@@ -5,7 +5,7 @@ import android.util.AttributeSet
import android.util.TypedValue
import android.widget.LinearLayout
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.common.habitica.views.CurrencyView
class CurrencyViews : LinearLayout {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DayNightTextView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DayNightTextView.kt
index a18106831..ce07d5518 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DayNightTextView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DayNightTextView.kt
@@ -5,7 +5,7 @@ import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
class DayNightTextView(context: Context, attrs: AttributeSet?) : AppCompatTextView(context, attrs) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/EquipmentItemRow.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/EquipmentItemRow.kt
index e67cf420f..74f9c037b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/EquipmentItemRow.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/EquipmentItemRow.kt
@@ -6,7 +6,7 @@ import android.view.View
import android.widget.LinearLayout
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.ItemImageRowBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.extensions.loadImage
class EquipmentItemRow(context: Context, attrs: AttributeSet?) : LinearLayout(context, attrs) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt
index e561695c6..34b7e2aaf 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt
@@ -10,7 +10,7 @@ import android.widget.ImageView
import androidx.core.graphics.drawable.toBitmap
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.NpcBannerBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.common.habitica.extensions.DataBindingUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SparkView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SparkView.kt
index 90228f3be..d422ebade 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SparkView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SparkView.kt
@@ -11,7 +11,7 @@ import android.view.animation.AccelerateDecelerateInterpolator
import android.view.animation.Animation
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import kotlin.math.min
class SparkView @JvmOverloads constructor(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SupportCollapsibleSection.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SupportCollapsibleSection.kt
index b67e7866d..5c9772eea 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SupportCollapsibleSection.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SupportCollapsibleSection.kt
@@ -7,7 +7,7 @@ import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.SupportCollapsibleSectionBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser
class SupportCollapsibleSection : LinearLayout {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt
index 916845f1b..ea548328c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt
@@ -8,7 +8,7 @@ import android.widget.LinearLayout
import androidx.core.widget.doOnTextChanged
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.ValidatingEditTextBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
class ValidatingEditText @JvmOverloads constructor(
context: Context,
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ads/AdButton.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ads/AdButton.kt
index 2d60159da..796ead3d0 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ads/AdButton.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ads/AdButton.kt
@@ -11,7 +11,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.AdButtonBinding
import com.habitrpg.android.habitica.extensions.getMinuteOrSeconds
import com.habitrpg.android.habitica.extensions.getShortRemainingString
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.AdHandler
import com.habitrpg.android.habitica.helpers.AdType
import kotlinx.coroutines.Dispatchers
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/AchievementDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/AchievementDialog.kt
index f85431655..9a1c31f8b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/AchievementDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/AchievementDialog.kt
@@ -8,9 +8,9 @@ import android.widget.TextView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.DialogAchievementDetailBinding
import com.habitrpg.android.habitica.extensions.fromHtml
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.MainNavigationController
-import com.habitrpg.android.habitica.models.Notification
+import com.habitrpg.common.habitica.models.Notification
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.extensions.loadImage
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt
index 6116d4b6d..78e1b71d7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt
@@ -19,9 +19,9 @@ import androidx.core.content.ContextCompat
import androidx.core.view.children
import androidx.lifecycle.lifecycleScope
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.extensions.inflate
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.ui.activities.BaseActivity
import com.habitrpg.android.habitica.ui.views.login.LockableScrollView
import com.plattysoft.leonids.ParticleSystem
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt
index e2874a5bf..938125ffa 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt
@@ -2,7 +2,7 @@ package com.habitrpg.android.habitica.ui.views.dialogs
import android.content.Context
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
class HabiticaProgressDialog(context: Context) : HabiticaAlertDialog(context) {
companion object {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/OpenedMysteryitemDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/OpenedMysteryitemDialog.kt
index 960f09123..ab364d980 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/OpenedMysteryitemDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/OpenedMysteryitemDialog.kt
@@ -2,8 +2,8 @@ package com.habitrpg.android.habitica.ui.views.dialogs
import android.content.Context
import com.habitrpg.android.habitica.databinding.DialogOpenMysteryitemBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.layoutInflater
class OpenedMysteryitemDialog(context: Context) : HabiticaAlertDialog(context) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/QuestCompletedDialogContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/QuestCompletedDialogContent.kt
index 9954ea4d0..d328c626d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/QuestCompletedDialogContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/QuestCompletedDialogContent.kt
@@ -12,11 +12,11 @@ import android.widget.TextView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.DialogCompletedQuestContentBinding
import com.habitrpg.android.habitica.extensions.fromHtml
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.models.inventory.QuestDropItem
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.views.PixelArtView
class QuestCompletedDialogContent : LinearLayout {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/WonChallengeDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/WonChallengeDialog.kt
index ac1880ee7..d81ddf073 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/WonChallengeDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/WonChallengeDialog.kt
@@ -7,7 +7,7 @@ import android.widget.ImageView
import android.widget.TextView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.fromHtml
-import com.habitrpg.android.habitica.models.notifications.ChallengeWonData
+import com.habitrpg.common.habitica.models.notifications.ChallengeWonData
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.common.habitica.views.PixelArtView
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt
index 77280c013..df9a974fb 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt
@@ -8,9 +8,9 @@ import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.EquipmentOverviewItemBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class EquipmentOverviewItem @JvmOverloads constructor(
context: Context,
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt
index 81a919cd5..9d9a3ba0b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt
@@ -6,7 +6,7 @@ import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.EquipmentOverviewViewBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.extensions.setScaledPadding
import com.habitrpg.android.habitica.models.user.Outfit
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientHourglassesDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientHourglassesDialog.kt
index 115e0f181..9ce7df8aa 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientHourglassesDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientHourglassesDialog.kt
@@ -6,7 +6,7 @@ import androidx.core.os.bundleOf
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.addCloseButton
import com.habitrpg.android.habitica.helpers.MainNavigationController
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class InsufficientHourglassesDialog(context: Context) : InsufficientCurrencyDialog(context) {
override fun onCreate(savedInstanceState: Bundle?) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt
index d7c004062..e6a9d17b7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt
@@ -8,7 +8,7 @@ import android.content.Context
import android.util.AttributeSet
import android.view.View
import androidx.appcompat.widget.AppCompatImageView
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class StarView : AppCompatImageView {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt
index b38d34798..6dde4e47d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt
@@ -9,9 +9,9 @@ import android.widget.RelativeLayout
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.BottomNavigationItemBinding
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.extensions.setTintWith
class BottomNavigationItem @JvmOverloads constructor(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationSubmenuItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationSubmenuItem.kt
index e737a6801..ae537db51 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationSubmenuItem.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationSubmenuItem.kt
@@ -5,7 +5,7 @@ import android.graphics.drawable.Drawable
import android.util.AttributeSet
import android.widget.RelativeLayout
import com.habitrpg.android.habitica.databinding.BottomNavigationSubmenuBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
class BottomNavigationSubmenuItem @JvmOverloads constructor(
context: Context,
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt
index a1fbaf197..38dd054be 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt
@@ -16,8 +16,8 @@ import androidx.core.view.ViewCompat
import androidx.core.view.children
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.MainNavigationViewBinding
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.android.habitica.models.tasks.TaskType
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/PromoMenuView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/PromoMenuView.kt
index 0c0924b9a..ed8d33e19 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/PromoMenuView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/PromoMenuView.kt
@@ -10,7 +10,7 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.PromoMenuBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
class PromoMenuView @JvmOverloads constructor(
context: Context,
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCustomizationDrawer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCustomizationDrawer.kt
index 97efcb2ad..37fc233cf 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCustomizationDrawer.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCustomizationDrawer.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.util.AttributeSet
import android.widget.LinearLayout
import com.habitrpg.android.habitica.databinding.AvatarSetupDrawerBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
class AvatarCustomizationDrawer(context: Context, attrs: AttributeSet?) : LinearLayout(context, attrs) {
val binding = AvatarSetupDrawerBinding.inflate(context.layoutInflater, this, true)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt
index 0e637255e..a5ded43d3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt
@@ -30,7 +30,7 @@ import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.activities.ArmoireActivityDirections
import com.habitrpg.common.habitica.views.CurrencyView
import com.habitrpg.android.habitica.ui.views.CurrencyViews
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.SnackbarActivity
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGemsDialog
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt
index a078a789d..9d765af8f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt
@@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.ui.views.shops
import android.content.Context
import android.widget.TextView
import com.habitrpg.android.habitica.databinding.PurchaseDialogBackgroundBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.android.habitica.ui.AvatarView
import com.habitrpg.android.habitica.ui.views.PixelArtView
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBaseContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBaseContent.kt
index ddeb9fcde..293e2afe6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBaseContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBaseContent.kt
@@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.ui.views.shops
import android.content.Context
import android.widget.TextView
import com.habitrpg.android.habitica.databinding.DialogPurchaseContentItemBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.views.PixelArtView
class PurchaseDialogBaseContent(context: Context) : PurchaseDialogContent(context) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt
index 69d4d342f..40358da72 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt
@@ -6,7 +6,7 @@ import android.view.Gravity
import android.widget.LinearLayout
import android.widget.TextView
import coil.load
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.extensions.fromHtml
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.models.shops.ShopItem
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationContent.kt
index 1b7a41f33..685dd392f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationContent.kt
@@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.ui.views.shops
import android.content.Context
import android.widget.TextView
import com.habitrpg.android.habitica.databinding.DialogPurchaseCustomizationBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.views.PixelArtView
class PurchaseDialogCustomizationContent(context: Context) : PurchaseDialogContent(context) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationSetContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationSetContent.kt
index e62c1d1a5..c127610ce 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationSetContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogCustomizationSetContent.kt
@@ -5,8 +5,8 @@ import android.widget.TextView
import com.google.android.flexbox.FlexboxLayout
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.DialogPurchaseCustomizationsetBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.common.habitica.views.PixelArtView
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGearContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGearContent.kt
index f5ca941cf..715af1907 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGearContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGearContent.kt
@@ -5,7 +5,7 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.DialogPurchaseContentGearBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.inventory.Equipment
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.common.habitica.views.PixelArtView
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGemsContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGemsContent.kt
index 792bed60b..755e8c296 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGemsContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGemsContent.kt
@@ -4,9 +4,9 @@ import android.content.Context
import android.widget.TextView
import com.habitrpg.android.habitica.databinding.DialogPurchaseGemsBinding
import com.habitrpg.android.habitica.extensions.asDrawable
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.shops.ShopItem
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.views.PixelArtView
internal class PurchaseDialogGemsContent(context: Context) : PurchaseDialogContent(context) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogItemContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogItemContent.kt
index 042e7f4d8..e49bcaa77 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogItemContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogItemContent.kt
@@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.ui.views.shops
import android.content.Context
import android.widget.TextView
import com.habitrpg.android.habitica.databinding.DialogPurchaseContentItemBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.common.habitica.views.PixelArtView
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt
index 7e6fdc1b1..5253c89d0 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt
@@ -9,11 +9,11 @@ import android.widget.ImageView
import android.widget.TextView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.DialogPurchaseContentQuestBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.models.inventory.QuestDropItem
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.views.PixelArtView
class PurchaseDialogQuestContent(context: Context) : PurchaseDialogContent(context) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt
index ceb530eab..89120b44a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt
@@ -11,8 +11,8 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.databinding.ChatBarViewBinding
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.models.social.ChatMessage
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt
index d928359ef..92bbaa8e8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.util.AttributeSet
import android.widget.LinearLayout
import com.habitrpg.android.habitica.databinding.ViewInvitationBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.invitations.GenericInvitation
class InvitationsView @JvmOverloads constructor(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt
index 59f1dd919..7f5d8fb60 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt
@@ -11,15 +11,15 @@ import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.QuestCollectBinding
import com.habitrpg.android.habitica.databinding.QuestProgressOldBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.extensions.setScaledPadding
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.models.inventory.QuestProgress
import com.habitrpg.android.habitica.models.inventory.QuestProgressCollect
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.extensions.loadImage
-import com.habitrpg.android.habitica.ui.views.HabiticaIcons
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIcons
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class OldQuestProgressView : LinearLayout {
private val binding = QuestProgressOldBinding.inflate(context.layoutInflater, this)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt
index 90b016f65..fffb1a616 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt
@@ -9,11 +9,11 @@ import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.QuestMenuViewBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.inventory.Quest
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.models.user.User
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import java.util.Locale
class QuestMenuView : LinearLayout {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt
index eb0406f30..9c5ef5f1b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt
@@ -19,7 +19,7 @@ import androidx.core.graphics.drawable.toBitmap
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.QuestCollectBinding
import com.habitrpg.android.habitica.databinding.QuestProgressBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.inventory.Quest
import com.habitrpg.android.habitica.models.inventory.QuestContent
@@ -28,8 +28,8 @@ import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.extensions.DataBindingUtils
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.android.habitica.ui.helpers.setMarkdown
-import com.habitrpg.android.habitica.ui.views.HabiticaIcons
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIcons
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.NPCBannerView
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/UsernameLabel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/UsernameLabel.kt
index 397fdd81e..cdacf890b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/UsernameLabel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/UsernameLabel.kt
@@ -13,7 +13,7 @@ import androidx.core.content.ContextCompat
import androidx.core.widget.TextViewCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.models.members.PlayerTier
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class UsernameLabel(context: Context?, attrs: AttributeSet?) : LinearLayout(context, attrs) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt
index c884a7a77..88beb2920 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt
@@ -9,8 +9,8 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.databinding.DialogBulkAllocateBinding
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import io.reactivex.rxjava3.disposables.Disposable
import javax.inject.Inject
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt
index f79d893a5..076f65255 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt
@@ -11,7 +11,7 @@ import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.StatsSliderViewBinding
import com.habitrpg.android.habitica.extensions.AfterChangeTextWatcher
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.android.habitica.extensions.styledAttributes
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt
index 5107ab03d..6bd94abec 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt
@@ -8,10 +8,10 @@ import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.StatsViewBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.android.habitica.helpers.HapticFeedbackManager
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class StatsView(context: Context, attrs: AttributeSet?) : LinearLayout(context, attrs) {
private val binding = StatsViewBinding.inflate(context.layoutInflater, this, true)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt
index 04ee559f0..8c396b4b1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt
@@ -9,9 +9,9 @@ import android.view.View
import android.widget.LinearLayout
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.SubscriptionDetailsBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.user.SubscriptionPlan
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import java.text.DateFormat
import java.time.LocalDate
import java.time.format.DateTimeFormatter
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt
index 99039badf..981d90845 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt
@@ -7,7 +7,7 @@ import android.widget.FrameLayout
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.PurchaseSubscriptionViewBinding
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
class SubscriptionOptionView(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) {
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 6f596ffdb..3132618f3 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
@@ -20,7 +20,7 @@ import com.habitrpg.android.habitica.data.TagRepository
import com.habitrpg.android.habitica.databinding.DialogTaskFilterBinding
import com.habitrpg.android.habitica.databinding.EditTagItemBinding
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
-import com.habitrpg.android.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.Tag
import com.habitrpg.android.habitica.models.tasks.Task
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistContainer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistContainer.kt
index 89cde403a..fb07ff88a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistContainer.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistContainer.kt
@@ -6,7 +6,7 @@ import android.util.AttributeSet
import android.view.View
import androidx.core.view.children
import androidx.core.view.updateMargins
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
import com.habitrpg.android.habitica.ui.views.DragLinearLayout
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt
index 3664d18e8..8f4af2bb0 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt
@@ -13,9 +13,9 @@ import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.TaskFormChecklistItemBinding
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
class ChecklistItemFormView @JvmOverloads constructor(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitResetStreakButtons.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitResetStreakButtons.kt
index bfed3d0ed..bce9c7f1a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitResetStreakButtons.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitResetStreakButtons.kt
@@ -10,7 +10,7 @@ import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.models.tasks.HabitResetOption
class HabitResetStreakButtons @JvmOverloads constructor(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt
index 001b6bc48..db4f51f32 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt
@@ -10,8 +10,8 @@ import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.TaskFormHabitScoringBinding
import com.habitrpg.android.habitica.extensions.asDrawable
-import com.habitrpg.android.habitica.extensions.layoutInflater
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class HabitScoringButtonsView @JvmOverloads constructor(
context: Context,
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt
index 4fdf19285..6b00eee91 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt
@@ -7,7 +7,7 @@ import android.view.View
import android.widget.LinearLayout
import androidx.core.view.children
import androidx.core.view.updateMargins
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.models.tasks.RemindersItem
import com.habitrpg.android.habitica.models.tasks.TaskType
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt
index 805c49a87..edb8f9c7c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt
@@ -16,9 +16,9 @@ import android.widget.TimePicker
import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.TaskFormReminderItemBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.getThemeColor
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.tasks.RemindersItem
import com.habitrpg.android.habitica.models.tasks.TaskType
import java.text.DateFormat
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/StepperValueFormView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/StepperValueFormView.kt
index c5e09796b..b91d58f85 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/StepperValueFormView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/StepperValueFormView.kt
@@ -8,8 +8,8 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.FormStepperValueBinding
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
import com.habitrpg.android.habitica.extensions.asDrawable
-import com.habitrpg.android.habitica.extensions.layoutInflater
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
import java.text.DecimalFormat
class StepperValueFormView @JvmOverloads constructor(
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt
index 00d054340..56fb9bf7f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt
@@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.asDrawable
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.models.tasks.TaskDifficulty
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class TaskDifficultyButtons @JvmOverloads constructor(
context: Context,
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt
index 8d2dfbedc..3338000ee 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt
@@ -18,8 +18,8 @@ import androidx.core.content.ContextCompat
import androidx.core.view.children
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.TaskFormTaskSchedulingBinding
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.models.tasks.Days
import com.habitrpg.android.habitica.models.tasks.Frequency
import com.habitrpg.android.habitica.models.tasks.TaskType
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt
index 5364b795c..53674b005 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt
@@ -12,8 +12,8 @@ import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.TaskRepository
import com.habitrpg.android.habitica.data.UserRepository
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/NotificationDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/NotificationDeserializer.kt
index cb6944b10..6e7313740 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/NotificationDeserializer.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/NotificationDeserializer.kt
@@ -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.android.habitica.models.Notification
+import com.habitrpg.common.habitica.models.Notification
import java.lang.reflect.Type
class NotificationDeserializer : JsonDeserializer {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt
index aa6b3c289..0bdaf10a4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt
@@ -10,7 +10,7 @@ import android.view.ViewGroup
import android.widget.RemoteViews
import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.android.habitica.extensions.withImmutableFlag
import com.habitrpg.common.habitica.helpers.HealthFormatter
import com.habitrpg.common.habitica.helpers.NumberAbbreviator
@@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.common.habitica.views.AvatarView
import com.habitrpg.android.habitica.ui.activities.MainActivity
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
+import com.habitrpg.common.habitica.views.HabiticaIconsHelper
class AvatarStatsWidgetProvider : BaseWidgetProvider() {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt
index c915bf02c..5db82f479 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt
@@ -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.android.habitica.models.responses.TaskScoringResult
+import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import javax.inject.Inject
abstract class BaseWidgetProvider : AppWidgetProvider() {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetProvider.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetProvider.kt
index 0a593afb7..caefbbf54 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetProvider.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetProvider.kt
@@ -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.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirection
import javax.inject.Inject
class HabitButtonWidgetProvider : BaseWidgetProvider() {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt
index 83136caa6..a263aa0d5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt
@@ -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.android.habitica.models.responses.TaskDirection
+import com.habitrpg.common.habitica.models.responses.TaskDirection
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser
import javax.inject.Inject
diff --git a/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt b/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt
index 6854a3d2f..e7490da7c 100644
--- a/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt
+++ b/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt
@@ -4,8 +4,8 @@ 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.android.habitica.models.responses.TaskDirectionData
-import com.habitrpg.android.habitica.models.responses.TaskScoringResult
+import com.habitrpg.common.habitica.models.responses.TaskDirectionData
+import com.habitrpg.common.habitica.models.responses.TaskScoringResult
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.tasks.TaskList
import com.habitrpg.android.habitica.models.tasks.TaskType
@@ -70,13 +70,17 @@ class TaskRepositoryImplTest : WordSpec({
user.stats = Stats()
}
"debounce" {
- every { apiClient.postTaskDirection(any(), "up") } returns Flowable.just(TaskDirectionData())
+ every { apiClient.postTaskDirection(any(), "up") } returns Flowable.just(
+ TaskDirectionData()
+ )
repository.taskChecked(user, task, true, false, null).subscribe()
repository.taskChecked(user, task, true, false, null).subscribe()
verify(exactly = 1) { apiClient.postTaskDirection(any(), any()) }
}
"get user if not passed" {
- every { apiClient.postTaskDirection(any(), "up") } returns Flowable.just(TaskDirectionData())
+ every { apiClient.postTaskDirection(any(), "up") } returns Flowable.just(
+ TaskDirectionData()
+ )
every { localRepository.getUser("") } returns Flowable.just(user)
repository.taskChecked(null, task, true, false, null)
eventually(5000) {
diff --git a/build.gradle b/build.gradle
index 0a4bc37d5..964f7dc61 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,8 +15,9 @@ buildscript {
classpath "io.realm:realm-gradle-plugin:10.10.1"
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-beta01"
+ classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0-rc01"
classpath 'com.google.firebase:perf-plugin:1.4.1'
+ classpath 'com.google.dagger:hilt-android-gradle-plugin:2.41'
}
}
diff --git a/common/build.gradle b/common/build.gradle
index e07f86176..952fb4a7a 100644
--- a/common/build.gradle
+++ b/common/build.gradle
@@ -48,4 +48,25 @@ dependencies {
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+
+ implementation project(':shared')
+}
+
+// Add Habitica Properties to buildConfigField
+final File HRPG_PROPS_FILE = new File(projectDir.absolutePath + '/../habitica.properties')
+if (HRPG_PROPS_FILE.canRead()) {
+ Properties HRPG_PROPS = new Properties()
+ HRPG_PROPS.load(new FileInputStream(HRPG_PROPS_FILE))
+
+ if (HRPG_PROPS != null) {
+ android.buildTypes.all { buildType ->
+ HRPG_PROPS.any { property ->
+ buildType.buildConfigField "String", property.key, "\"${property.value}\""
+ }
+ }
+ } else {
+ throw new InvalidUserDataException('habitica.properties found but some entries are missing')
+ }
+} else {
+ throw new MissingResourceException('habitica.properties not found')
}
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/HostConfig.kt b/common/src/main/java/com/habitrpg/common/habitica/api/HostConfig.kt
similarity index 80%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/api/HostConfig.kt
rename to common/src/main/java/com/habitrpg/common/habitica/api/HostConfig.kt
index c66f85e70..6fe0952bf 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/HostConfig.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/api/HostConfig.kt
@@ -1,12 +1,11 @@
-package com.habitrpg.android.habitica.api
+package com.habitrpg.common.habitica.api
import android.content.Context
import android.content.SharedPreferences
import android.os.Build
import androidx.core.content.edit
-import com.habitrpg.android.habitica.BuildConfig
-import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.helpers.KeyHelper
+import com.habitrpg.common.habitica.BuildConfig
+import com.habitrpg.common.habitica.helpers.KeyHelper
/**
* The configuration of the host
@@ -20,6 +19,13 @@ class HostConfig {
var apiKey: String
var userID: String
+ constructor(userID: String, apiKey: String) {
+ this.port = BuildConfig.PORT
+ this.address = BuildConfig.BASE_URL
+ this.userID = userID
+ this.apiKey = apiKey
+ }
+
constructor(sharedPreferences: SharedPreferences, keyHelper: KeyHelper?, context: Context) {
this.port = BuildConfig.PORT
if (BuildConfig.DEBUG) {
@@ -29,10 +35,10 @@ class HostConfig {
if (address != null && address.isNotEmpty()) {
this.address = address
} else {
- this.address = context.getString(R.string.base_url)
+ this.address = context.getString(com.habitrpg.common.habitica.R.string.base_url)
}
}
- this.userID = sharedPreferences.getString(context.getString(R.string.SP_userID), null) ?: ""
+ this.userID = sharedPreferences.getString(context.getString(com.habitrpg.common.habitica.R.string.SP_userID), null) ?: ""
this.apiKey = loadAPIKey(sharedPreferences, keyHelper)
}
@@ -68,4 +74,4 @@ class HostConfig {
fun hasAuthentication(): Boolean {
return userID.isNotEmpty() && apiKey.isNotEmpty()
}
-}
+}
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/Server.kt b/common/src/main/java/com/habitrpg/common/habitica/api/Server.kt
similarity index 90%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/api/Server.kt
rename to common/src/main/java/com/habitrpg/common/habitica/api/Server.kt
index c40c2a886..e963e57cf 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/Server.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/api/Server.kt
@@ -1,28 +1,28 @@
-package com.habitrpg.android.habitica.api
-
-class Server {
- private var addr: String
-
- constructor(addr: String) : this(addr, true) {}
- private constructor(addr: String, attachSuffix: Boolean) {
- if (attachSuffix) {
- if (addr.endsWith("/api/v4") || addr.endsWith("/api/v4/")) {
- this.addr = addr
- } else if (addr.endsWith("/")) {
- this.addr = addr + "api/v4/"
- } else {
- this.addr = "$addr/api/v4/"
- }
- } else {
- this.addr = addr
- }
- }
-
- constructor(server: Server) {
- addr = server.toString()
- }
-
- override fun toString(): String {
- return addr
- }
-}
+package com.habitrpg.common.habitica.api
+
+class Server {
+ private var addr: String
+
+ constructor(addr: String) : this(addr, true) {}
+ private constructor(addr: String, attachSuffix: Boolean) {
+ if (attachSuffix) {
+ if (addr.endsWith("/api/v4") || addr.endsWith("/api/v4/")) {
+ this.addr = addr
+ } else if (addr.endsWith("/")) {
+ this.addr = addr + "api/v4/"
+ } else {
+ this.addr = "$addr/api/v4/"
+ }
+ } else {
+ this.addr = addr
+ }
+ }
+
+ constructor(server: Server) {
+ addr = server.toString()
+ }
+
+ override fun toString(): String {
+ return addr
+ }
+}
\ No newline at end of file
diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/Context-Extensions.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/Context-Extensions.kt
index 5dbc8e99d..8a9240a91 100644
--- a/common/src/main/java/com/habitrpg/common/habitica/extensions/Context-Extensions.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/Context-Extensions.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.extensions
+package com.habitrpg.common.habitica.extensions
import android.app.Service
import android.content.Context
diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/Int-Extensions.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/Int-Extensions.kt
index 9d634053d..4edd72bff 100644
--- a/common/src/main/java/com/habitrpg/common/habitica/extensions/Int-Extensions.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/Int-Extensions.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.extensions
+package com.habitrpg.common.habitica.extensions
import android.content.Context
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/KeyHelper.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/KeyHelper.kt
similarity index 99%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/helpers/KeyHelper.kt
rename to common/src/main/java/com/habitrpg/common/habitica/helpers/KeyHelper.kt
index 2bffd6866..3266b7b17 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/KeyHelper.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/KeyHelper.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.helpers
+package com.habitrpg.common.habitica.helpers
import android.content.Context
import android.content.SharedPreferences
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/LanguageHelper.kt
similarity index 96%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.kt
rename to common/src/main/java/com/habitrpg/common/habitica/helpers/LanguageHelper.kt
index 217eba3d3..b84a0409c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/LanguageHelper.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.helpers
+package com.habitrpg.common.habitica.helpers
import java.util.Locale
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/Notification.kt b/common/src/main/java/com/habitrpg/common/habitica/models/Notification.kt
similarity index 84%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/Notification.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/Notification.kt
index 3fcc82979..4531ca8bf 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/Notification.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/Notification.kt
@@ -1,19 +1,18 @@
-package com.habitrpg.android.habitica.models
+package com.habitrpg.common.habitica.models
-import com.habitrpg.android.habitica.models.notifications.AchievementData
-import com.habitrpg.android.habitica.models.notifications.ChallengeWonData
-import com.habitrpg.android.habitica.models.notifications.FirstDropData
-import com.habitrpg.android.habitica.models.notifications.GroupTaskApprovedData
-import com.habitrpg.android.habitica.models.notifications.GroupTaskNeedsWorkData
-import com.habitrpg.android.habitica.models.notifications.GroupTaskRequiresApprovalData
-import com.habitrpg.android.habitica.models.notifications.GuildInvitationData
-import com.habitrpg.android.habitica.models.notifications.LoginIncentiveData
-import com.habitrpg.android.habitica.models.notifications.NewChatMessageData
-import com.habitrpg.android.habitica.models.notifications.NewStuffData
-import com.habitrpg.android.habitica.models.notifications.NotificationData
-import com.habitrpg.android.habitica.models.notifications.PartyInvitationData
-import com.habitrpg.android.habitica.models.notifications.QuestInvitationData
-import com.habitrpg.android.habitica.models.notifications.UnallocatedPointsData
+import com.habitrpg.common.habitica.models.notifications.AchievementData
+import com.habitrpg.common.habitica.models.notifications.ChallengeWonData
+import com.habitrpg.common.habitica.models.notifications.FirstDropData
+import com.habitrpg.common.habitica.models.notifications.GroupTaskApprovedData
+import com.habitrpg.common.habitica.models.notifications.GroupTaskNeedsWorkData
+import com.habitrpg.common.habitica.models.notifications.GroupTaskRequiresApprovalData
+import com.habitrpg.common.habitica.models.notifications.GuildInvitationData
+import com.habitrpg.common.habitica.models.notifications.LoginIncentiveData
+import com.habitrpg.common.habitica.models.notifications.NewChatMessageData
+import com.habitrpg.common.habitica.models.notifications.NewStuffData
+import com.habitrpg.common.habitica.models.notifications.PartyInvitationData
+import com.habitrpg.common.habitica.models.notifications.QuestInvitationData
+import com.habitrpg.common.habitica.models.notifications.UnallocatedPointsData
class Notification {
enum class Type(val type: String) {
@@ -76,7 +75,7 @@ class Notification {
var type: String? = null
var seen: Boolean? = null
- var data: NotificationData? = null
+ //var data: NotificationData? = null
fun getDataType(): java.lang.reflect.Type? {
return when (type) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/AchievementData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/AchievementData.kt
similarity index 77%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/AchievementData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/AchievementData.kt
index c00a6ca85..b4263fc76 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/AchievementData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/AchievementData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class AchievementData : NotificationData {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/ChallengeWonData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/ChallengeWonData.kt
similarity index 64%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/ChallengeWonData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/ChallengeWonData.kt
index c4af06165..708cca66e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/ChallengeWonData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/ChallengeWonData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class ChallengeWonData : NotificationData {
var name: String? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/FirstDropData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/FirstDropData.kt
similarity index 66%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/FirstDropData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/FirstDropData.kt
index 418675e39..5b1ad6071 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/FirstDropData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/FirstDropData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class FirstDropData : NotificationData {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskApprovedData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskApprovedData.kt
similarity index 66%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskApprovedData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskApprovedData.kt
index 5d73c6962..33b9dc8c3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskApprovedData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskApprovedData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class GroupTaskApprovedData : NotificationData {
var groupId: String = ""
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskNeedsWorkData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskNeedsWorkData.kt
similarity index 69%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskNeedsWorkData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskNeedsWorkData.kt
index a5ce96931..012522683 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskNeedsWorkData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskNeedsWorkData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class GroupTaskNeedsWorkData : NotificationData {
var group: NotificationGroup? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskRequiresApprovalData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskRequiresApprovalData.kt
similarity index 67%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskRequiresApprovalData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskRequiresApprovalData.kt
index c224742dc..ecd93b199 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/GroupTaskRequiresApprovalData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GroupTaskRequiresApprovalData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
class GroupTaskRequiresApprovalData : NotificationData {
var groupId: String = ""
diff --git a/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GuildInvitationData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GuildInvitationData.kt
new file mode 100644
index 000000000..f31fe1b7f
--- /dev/null
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/GuildInvitationData.kt
@@ -0,0 +1,14 @@
+package com.habitrpg.common.habitica.models.notifications
+
+
+open class GuildInvitationData : NotificationData {
+
+ var invitation: GuildInvite? = null
+}
+
+class GuildInvite {
+ var id: String? = null
+ var inviter: String? = null
+ var name: String? = null
+ var publicGuild: Boolean? = null
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/LoginIncentiveData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/LoginIncentiveData.kt
similarity index 79%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/LoginIncentiveData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/LoginIncentiveData.kt
index ea73f11ac..3ef9708c5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/LoginIncentiveData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/LoginIncentiveData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class LoginIncentiveData : NotificationData {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NewChatMessageData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NewChatMessageData.kt
similarity index 61%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NewChatMessageData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/NewChatMessageData.kt
index 64484968a..6ef98909b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NewChatMessageData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NewChatMessageData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class NewChatMessageData : NotificationData {
var group: NotificationGroup? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NewStuffData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NewStuffData.kt
similarity index 56%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NewStuffData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/NewStuffData.kt
index 6329490e6..2928a9258 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NewStuffData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NewStuffData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class NewStuffData : NotificationData {
var title: String? = null
diff --git a/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NotificationData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NotificationData.kt
new file mode 100644
index 000000000..68ca7d141
--- /dev/null
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NotificationData.kt
@@ -0,0 +1,3 @@
+package com.habitrpg.common.habitica.models.notifications
+
+interface NotificationData
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NotificationGroup.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NotificationGroup.kt
similarity index 59%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NotificationGroup.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/NotificationGroup.kt
index 7c3728139..4f483f578 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/NotificationGroup.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/NotificationGroup.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class NotificationGroup {
var id: String = ""
diff --git a/common/src/main/java/com/habitrpg/common/habitica/models/notifications/PartyInvitationData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/PartyInvitationData.kt
new file mode 100644
index 000000000..c0af36e69
--- /dev/null
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/PartyInvitationData.kt
@@ -0,0 +1,11 @@
+package com.habitrpg.common.habitica.models.notifications
+
+open class PartyInvite {
+ var id: String? = null
+ var name: String? = null
+ var inviter: String? = null
+}
+
+open class PartyInvitationData : NotificationData {
+ var invitation: PartyInvite? = null
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/QuestInvitationData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/QuestInvitationData.kt
similarity index 60%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/QuestInvitationData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/QuestInvitationData.kt
index b06ff34e3..a8a9eb67a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/QuestInvitationData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/QuestInvitationData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class QuestInvitationData : NotificationData {
diff --git a/common/src/main/java/com/habitrpg/common/habitica/models/notifications/Reward.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/Reward.kt
new file mode 100644
index 000000000..86197763f
--- /dev/null
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/Reward.kt
@@ -0,0 +1,5 @@
+package com.habitrpg.common.habitica.models.notifications
+
+class Reward {
+ var key: String? = null
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/UnallocatedPointsData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/UnallocatedPointsData.kt
similarity index 59%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/UnallocatedPointsData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/notifications/UnallocatedPointsData.kt
index 8521766dd..49a5ee489 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/notifications/UnallocatedPointsData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/notifications/UnallocatedPointsData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.notifications
+package com.habitrpg.common.habitica.models.notifications
open class UnallocatedPointsData : NotificationData {
var points: Int? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/HabitResponse.kt b/common/src/main/java/com/habitrpg/common/habitica/models/responses/HabitResponse.kt
similarity index 57%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/HabitResponse.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/responses/HabitResponse.kt
index 607f69384..5c23684e3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/HabitResponse.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/responses/HabitResponse.kt
@@ -1,6 +1,6 @@
-package com.habitrpg.android.habitica.models.responses
+package com.habitrpg.common.habitica.models.responses
-import com.habitrpg.android.habitica.models.Notification
+import com.habitrpg.common.habitica.models.Notification
class HabitResponse {
var data: T? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/HabiticaError.kt b/common/src/main/java/com/habitrpg/common/habitica/models/responses/HabiticaError.kt
similarity index 65%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/HabiticaError.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/responses/HabiticaError.kt
index 577ff6459..03480e444 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/HabiticaError.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/responses/HabiticaError.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.responses
+package com.habitrpg.common.habitica.models.responses
class HabiticaError {
var message: String? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirection.kt b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirection.kt
similarity index 56%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirection.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirection.kt
index 80c1713ad..0a140a75b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirection.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirection.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.responses
+package com.habitrpg.common.habitica.models.responses
enum class TaskDirection(val text: String) {
UP("up"),
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirectionData.kt b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirectionData.kt
similarity index 77%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirectionData.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirectionData.kt
index 44b1db758..a7b238ef6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirectionData.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirectionData.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.responses
+package com.habitrpg.common.habitica.models.responses
class TaskDirectionData {
var delta: Float = 0.toFloat()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirectionDataTemp.kt b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirectionDataTemp.kt
similarity index 83%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirectionDataTemp.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirectionDataTemp.kt
index c27e97732..ba2d20ce5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskDirectionDataTemp.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskDirectionDataTemp.kt
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.models.responses
+package com.habitrpg.common.habitica.models.responses
class TaskDirectionDataTemp {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskScoringResult.kt b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskScoringResult.kt
similarity index 83%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskScoringResult.kt
rename to common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskScoringResult.kt
index 2ce2cf7c0..36beae667 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/TaskScoringResult.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/models/responses/TaskScoringResult.kt
@@ -1,9 +1,9 @@
-package com.habitrpg.android.habitica.models.responses
+package com.habitrpg.common.habitica.models.responses
-import com.habitrpg.android.habitica.models.user.Stats
+import com.habitrpg.common.habitica.models.AvatarStats
class TaskScoringResult() {
- constructor(data: TaskDirectionData, stats: Stats?) : this() {
+ constructor(data: TaskDirectionData, stats: AvatarStats?) : this() {
hasLeveledUp = data.lvl > stats?.lvl ?: 0
healthDelta = data.hp - (stats?.hp ?: 0.0)
if (hasLeveledUp) {
diff --git a/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt b/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt
index 77eab7905..2b77c961e 100644
--- a/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt
@@ -18,7 +18,7 @@ import androidx.core.view.marginTop
import coil.clear
import coil.load
import com.habitrpg.common.habitica.BuildConfig
-import com.habitrpg.android.habitica.extensions.dpToPx
+import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.R
import com.habitrpg.common.habitica.extensions.DataBindingUtils
import com.habitrpg.common.habitica.helpers.AppConfigManager
diff --git a/common/src/main/java/com/habitrpg/common/habitica/views/CurrencyView.kt b/common/src/main/java/com/habitrpg/common/habitica/views/CurrencyView.kt
index 799d3ed16..fbd641889 100644
--- a/common/src/main/java/com/habitrpg/common/habitica/views/CurrencyView.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/views/CurrencyView.kt
@@ -13,8 +13,7 @@ import androidx.core.animation.doOnEnd
import androidx.core.animation.doOnStart
import androidx.core.content.ContextCompat
import androidx.core.view.updateLayoutParams
-import com.habitrpg.android.habitica.R
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
import com.habitrpg.common.habitica.R
import com.habitrpg.common.habitica.helpers.NumberAbbreviator
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIcons.java b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaIcons.java
similarity index 99%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIcons.java
rename to common/src/main/java/com/habitrpg/common/habitica/views/HabiticaIcons.java
index 2dc734973..0f8228b7e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIcons.java
+++ b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaIcons.java
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.ui.views;
+package com.habitrpg.common.habitica.views;
import android.content.Context;
import android.graphics.Bitmap;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaIconsHelper.java
similarity index 99%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
rename to common/src/main/java/com/habitrpg/common/habitica/views/HabiticaIconsHelper.java
index 4b068125e..5efcf5f0a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
+++ b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaIconsHelper.java
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.ui.views;
+package com.habitrpg.common.habitica.views;
import android.content.Context;
import android.graphics.Bitmap;
@@ -8,6 +8,8 @@ import android.graphics.RectF;
import androidx.annotation.ColorInt;
+import com.habitrpg.common.habitica.views.HabiticaIcons;
+
/**
* Created by phillip on 05.09.17.
*/
@@ -643,7 +645,7 @@ public class HabiticaIconsHelper {
return imageOfLocked(lockColor, 15, 17);
}
- public static Bitmap imageOfLocked(@ColorInt int lockColor, int width, int height) {
+ public static Bitmap imageOfLocked(@ColorInt int lockColor, int width, int height) {
Bitmap imageOfLocked = Bitmap.createBitmap(scaleSize(width), scaleSize(height), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(imageOfLocked);
canvas.scale(displayDensity, displayDensity);
diff --git a/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaProgressBar.kt b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaProgressBar.kt
index e11a56fc7..5410701a2 100644
--- a/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaProgressBar.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaProgressBar.kt
@@ -10,7 +10,7 @@ import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.LinearLayout
import androidx.core.widget.ImageViewCompat
-import com.habitrpg.android.habitica.extensions.layoutInflater
+import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.R
import com.habitrpg.common.habitica.databinding.ProgressBarBinding
import com.habitrpg.common.habitica.extensions.DataBindingUtils
diff --git a/common/src/main/java/com/habitrpg/common/habitica/views/ValueBar.kt b/common/src/main/java/com/habitrpg/common/habitica/views/ValueBar.kt
index 142eb2012..54d70ad78 100644
--- a/common/src/main/java/com/habitrpg/common/habitica/views/ValueBar.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/views/ValueBar.kt
@@ -8,10 +8,10 @@ import android.util.AttributeSet
import android.view.View
import android.widget.FrameLayout
import androidx.core.content.ContextCompat
-import com.habitrpg.android.habitica.extensions.dpToPx
-import com.habitrpg.android.habitica.extensions.getThemeColor
-import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
-import com.habitrpg.android.habitica.extensions.layoutInflater
+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.extensions.layoutInflater
import com.habitrpg.common.habitica.R
import com.habitrpg.common.habitica.databinding.ValueBarBinding
import java.math.RoundingMode
diff --git a/common/src/main/res/values/colors.xml b/common/src/main/res/values/colors.xml
index 071f32989..70f4dea5a 100644
--- a/common/src/main/res/values/colors.xml
+++ b/common/src/main/res/values/colors.xml
@@ -1,5 +1,7 @@
+ #ffffff
+
#36205D
#432874
#4f2a93
@@ -68,7 +70,28 @@
#edecee
#f9f9f9
+ #033f5e
+ #005158
+ #005737
+ #794b00
+ #7f3300
+
@color/red_100
@color/yellow_100
@color/blue_100
+
+ @color/gray_10
+ @color/gray_100
+ @color/gray_200
+ @color/gray_300
+ @color/gray_400
+ @color/gray_700
+ @color/brand_300
+ @color/brand_400
+ @color/maroon_100
+ @color/orange_10
+ @color/yellow_10
+ @color/green_10
+ @color/blue_10
+ @color/teal_10
\ No newline at end of file
diff --git a/common/src/main/res/values/dimens.xml b/common/src/main/res/values/dimens.xml
index fa3f9bd3a..6ec8e61fc 100644
--- a/common/src/main/res/values/dimens.xml
+++ b/common/src/main/res/values/dimens.xml
@@ -4,6 +4,7 @@
5dp
2dp
5dp
+ 4dp
4dp
16dp
diff --git a/Habitica/res/values/strings.constants.xml b/common/src/main/res/values/strings.constants.xml
similarity index 100%
rename from Habitica/res/values/strings.constants.xml
rename to common/src/main/res/values/strings.constants.xml
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index d736fb584..a21c8dbae 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -4,4 +4,8 @@
m
b
t
+ Gems
+ gold
+ Gold
+ Mystic Hourglasses
\ No newline at end of file
diff --git a/wearos/build.gradle b/wearos/build.gradle
index 85e812abc..8459d0f7c 100644
--- a/wearos/build.gradle
+++ b/wearos/build.gradle
@@ -1,6 +1,8 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
+ id 'kotlin-kapt'
+ id 'dagger.hilt.android.plugin'
}
android {
@@ -35,5 +37,32 @@ dependencies {
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.wear:wear:1.2.0'
+ //Networking
+ implementation 'com.squareup.okhttp3:okhttp:4.9.1'
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
+ //REST API handling
+ implementation('com.squareup.retrofit2:retrofit:2.9.0') {
+ exclude module: 'okhttp'
+ }
+ implementation('com.squareup.retrofit2:converter-moshi:2.9.0')
+
+ //Analytics
+ implementation 'com.amplitude:android-sdk:3.35.1'
+
+ implementation 'androidx.core:core-ktx:1.7.0'
+ implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1"
+ implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.1"
+ implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.1"
+ implementation "androidx.lifecycle:lifecycle-common-java8:2.4.1"
+ implementation "androidx.fragment:fragment-ktx:1.4.1"
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1'
+ implementation "androidx.preference:preference-ktx:1.2.0"
+
implementation project(':common')
+ implementation project(':shared')
+ implementation 'androidx.appcompat:appcompat:1.4.1'
+
+ implementation "com.google.dagger:hilt-android:2.41"
+ kapt "com.google.dagger:hilt-compiler:2.41"
}
\ No newline at end of file
diff --git a/wearos/src/main/AndroidManifest.xml b/wearos/src/main/AndroidManifest.xml
index 24a913094..7c42bf990 100644
--- a/wearos/src/main/AndroidManifest.xml
+++ b/wearos/src/main/AndroidManifest.xml
@@ -11,7 +11,8 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
- android:theme="@android:style/Theme.DeviceDefault">
+ android:name=".MainApplication"
+ android:theme="@style/Theme.AppCompat.NoActionBar">
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/MainActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/MainActivity.kt
index a552e90bf..bae9c3b48 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/MainActivity.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/MainActivity.kt
@@ -1,10 +1,18 @@
package com.habitrpg.wearos.habitica
-import android.app.Activity
import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.lifecycle.lifecycleScope
+import com.habitrpg.wearos.habitica.data.ApiClient
import com.habitrpg.wearos.habitica.databinding.ActivityMainBinding
+import dagger.hilt.android.AndroidEntryPoint
+import kotlinx.coroutines.launch
+import javax.inject.Inject
-class MainActivity : Activity() {
+@AndroidEntryPoint
+class MainActivity : AppCompatActivity() {
+
+ @Inject lateinit var apiClient: ApiClient
private lateinit var binding: ActivityMainBinding
@@ -14,4 +22,14 @@ class MainActivity : Activity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
+
+ override fun onResume() {
+ super.onResume()
+ lifecycleScope.launch {
+ val user = apiClient.getUser()
+ if (user != null) {
+ binding.text.setAvatar(user)
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/MainApplication.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/MainApplication.kt
new file mode 100644
index 000000000..6bd5598c9
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/MainApplication.kt
@@ -0,0 +1,7 @@
+package com.habitrpg.wearos.habitica
+
+import android.app.Application
+import dagger.hilt.android.HiltAndroidApp
+
+@HiltAndroidApp
+class MainApplication : Application() { }
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiClient.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiClient.kt
new file mode 100644
index 000000000..87294e73e
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiClient.kt
@@ -0,0 +1,89 @@
+package com.habitrpg.wearos.habitica.data
+
+import android.content.Context
+import com.habitrpg.common.habitica.BuildConfig
+import com.habitrpg.common.habitica.api.HostConfig
+import com.habitrpg.common.habitica.api.Server
+import com.habitrpg.wearos.habitica.models.User
+import okhttp3.Cache
+import okhttp3.OkHttpClient
+import okhttp3.Request
+import okhttp3.logging.HttpLoggingInterceptor
+import retrofit2.Converter
+import retrofit2.Retrofit
+import java.io.File
+import java.util.GregorianCalendar
+import java.util.concurrent.TimeUnit
+import javax.inject.Inject
+
+class ApiClient @Inject constructor(
+ private val converter: Converter.Factory,
+ private val hostConfig: HostConfig,
+ private val context: Context
+) {
+ private lateinit var retrofitAdapter: Retrofit
+
+ // I think we don't need the ApiClientImpl anymore we could just use ApiService
+ private lateinit var apiService: ApiService
+
+ init {
+ buildRetrofit()
+ }
+
+ fun buildRetrofit() {
+ val logging = HttpLoggingInterceptor()
+ if (BuildConfig.DEBUG) {
+ logging.level = HttpLoggingInterceptor.Level.BODY
+ }
+
+ val userAgent = System.getProperty("http.agent")
+
+ val calendar = GregorianCalendar()
+ val timeZone = calendar.timeZone
+ val timezoneOffset = -TimeUnit.MINUTES.convert(timeZone.getOffset(calendar.timeInMillis).toLong(), TimeUnit.MILLISECONDS)
+
+ val cacheSize: Long = 10 * 1024 * 1024 // 10 MB
+
+ val cache = Cache(File(context.cacheDir, "http_cache"), cacheSize)
+
+ val client = OkHttpClient.Builder()
+ .cache(cache)
+ .addInterceptor(logging)
+ .addNetworkInterceptor { chain ->
+ val original = chain.request()
+ var builder: Request.Builder = original.newBuilder()
+ if (this.hostConfig.hasAuthentication()) {
+ builder = builder
+ .header("x-api-key", this.hostConfig.apiKey)
+ .header("x-api-user", this.hostConfig.userID)
+ }
+ builder = builder.header("x-client", "habitica-android")
+ .header("x-user-timezoneOffset", timezoneOffset.toString())
+ if (userAgent != null) {
+ builder = builder.header("user-agent", userAgent)
+ }
+ if (BuildConfig.STAGING_KEY.isNotEmpty()) {
+ builder = builder.header("Authorization", "Basic " + BuildConfig.STAGING_KEY)
+ }
+ val request = builder.method(original.method, original.body)
+ .build()
+ chain.proceed(request)
+ }
+ .readTimeout(2400, TimeUnit.SECONDS)
+ .build()
+
+ val server = Server(this.hostConfig.address)
+
+ retrofitAdapter = Retrofit.Builder()
+ .client(client)
+ .baseUrl(server.toString())
+ .addConverterFactory(converter)
+ .build()
+
+ this.apiService = retrofitAdapter.create(ApiService::class.java)
+ }
+
+ suspend fun getUser(): User? {
+ return apiService.getUser().data
+ }
+}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiService.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiService.kt
new file mode 100644
index 000000000..2b992a757
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiService.kt
@@ -0,0 +1,10 @@
+package com.habitrpg.wearos.habitica.data
+
+import com.habitrpg.common.habitica.models.responses.HabitResponse
+import com.habitrpg.wearos.habitica.models.User
+import retrofit2.http.GET
+
+interface ApiService {
+ @GET("user/")
+ suspend fun getUser(): HabitResponse
+}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Buffs.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Buffs.kt
new file mode 100644
index 000000000..b60ecd377
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Buffs.kt
@@ -0,0 +1,15 @@
+package com.habitrpg.wearos.habitica.models
+
+import com.habitrpg.common.habitica.models.AvatarBuffs
+
+class Buffs: AvatarBuffs {
+ override var con: Float? = null
+ override var str: Float? = null
+ override var per: Float? = null
+ override var _int: Float? = null
+ override var seafoam: Boolean? = null
+ override var spookySparkles: Boolean? = null
+ override var shinySeed: Boolean? = null
+ override var snowball: Boolean? = null
+ override var streaks: Boolean? = null
+}
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Flags.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Flags.kt
new file mode 100644
index 000000000..a6c010eec
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Flags.kt
@@ -0,0 +1,7 @@
+package com.habitrpg.wearos.habitica.models
+
+import com.habitrpg.common.habitica.models.AvatarFlags
+
+class Flags: AvatarFlags {
+ override var classSelected: Boolean = false
+}
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Hair.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Hair.kt
new file mode 100644
index 000000000..88931872e
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Hair.kt
@@ -0,0 +1,12 @@
+package com.habitrpg.wearos.habitica.models
+
+import com.habitrpg.common.habitica.models.AvatarHair
+
+class Hair: AvatarHair {
+ override var mustache: Int = 0
+ override var beard: Int = 0
+ override var bangs: Int = 0
+ override var base: Int = 0
+ override var flower: Int = 0
+ override var color: String? = null
+}
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Outfit.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Outfit.kt
new file mode 100644
index 000000000..50dbf997c
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Outfit.kt
@@ -0,0 +1,14 @@
+package com.habitrpg.wearos.habitica.models
+
+import com.habitrpg.common.habitica.models.AvatarOutfit
+
+class Outfit: AvatarOutfit {
+ override var armor: String = ""
+ override var back: String = ""
+ override var body: String = ""
+ override var head: String = ""
+ override var shield: String = ""
+ override var weapon: String = ""
+ override var eyeWear: String = ""
+ override var headAccessory: String = ""
+}
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Preferences.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Preferences.kt
new file mode 100644
index 000000000..a1ca0846a
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Preferences.kt
@@ -0,0 +1,16 @@
+package com.habitrpg.wearos.habitica.models
+
+import com.habitrpg.common.habitica.models.AvatarHair
+import com.habitrpg.common.habitica.models.AvatarPreferences
+
+class Preferences: AvatarPreferences {
+ override val hair: Hair? = null
+ override val costume: Boolean = false
+ override val sleep: Boolean = false
+ override val shirt: String? = null
+ override val skin: String? = null
+ override val size: String? = null
+ override val background: String? = null
+ override val chair: String? = null
+ override val disableClasses: Boolean = false
+}
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Stats.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Stats.kt
new file mode 100644
index 000000000..802caba98
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/Stats.kt
@@ -0,0 +1,17 @@
+package com.habitrpg.wearos.habitica.models
+
+import com.habitrpg.common.habitica.models.AvatarStats
+
+class Stats: AvatarStats {
+ override val buffs: Buffs? = null
+ override var habitClass: String? = null
+ override var points: Int? = null
+ override var lvl: Int? = null
+ override var gp: Double? = null
+ override var exp: Double? = null
+ override var mp: Double? = null
+ override var hp: Double? = null
+ override var toNextLevel: Int? = null
+ override var maxHealth: Int? = null
+ override var maxMP: Int? = null
+}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/User.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/User.kt
new file mode 100644
index 000000000..af88bc3d0
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/User.kt
@@ -0,0 +1,33 @@
+package com.habitrpg.wearos.habitica.models
+
+import com.habitrpg.common.habitica.models.Avatar
+
+open class Gear {
+ var equipped: Outfit? = null
+ var costume: Outfit? = null
+}
+
+class Items {
+ var gear: Gear? = null
+}
+
+class User: Avatar {
+ override val currentMount: String? = null
+ override val currentPet: String? = null
+ override val sleep: Boolean = false
+ override val stats: Stats? = null
+ override val preferences: Preferences? = null
+ override val flags: Flags? = null
+ override val gemCount: Int = 0
+ override val hourglassCount: Int = 0
+ val items: Items? = null
+ override val costume: Outfit?
+ get() = items?.gear?.costume
+ override val equipped: Outfit?
+ get() = items?.gear?.equipped
+ override val hasClass: Boolean = false
+
+ override fun isValid(): Boolean {
+ return true
+ }
+}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/modules/AppModule.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/modules/AppModule.kt
new file mode 100644
index 000000000..4183c1775
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/modules/AppModule.kt
@@ -0,0 +1,89 @@
+package com.habitrpg.wearos.habitica.modules
+
+import android.content.Context
+import android.content.SharedPreferences
+import androidx.preference.PreferenceManager
+import com.habitrpg.common.habitica.api.HostConfig
+import com.habitrpg.common.habitica.helpers.KeyHelper
+import com.habitrpg.shared.habitica.HLogger
+import com.habitrpg.wearos.habitica.data.ApiClient
+import com.squareup.moshi.Moshi
+import dagger.Module
+import dagger.Provides
+import dagger.hilt.InstallIn
+import dagger.hilt.android.qualifiers.ApplicationContext
+import dagger.hilt.components.SingletonComponent
+import retrofit2.converter.moshi.MoshiConverterFactory
+import java.io.IOException
+import java.security.KeyStore
+import java.security.KeyStoreException
+import java.security.NoSuchAlgorithmException
+import java.security.cert.CertificateException
+import javax.inject.Singleton
+
+@Module
+@InstallIn(SingletonComponent::class)
+class AppModule {
+ @Provides
+ @Singleton
+ fun providesHostConfig(
+ sharedPreferences: SharedPreferences,
+ keyHelper: KeyHelper?,
+ @ApplicationContext context: Context
+ ): HostConfig {
+ return HostConfig("xxxx",
+ "xxxx")
+ }
+
+ @Provides
+ @Singleton
+ fun providesApiHelper(
+ hostConfig: HostConfig,
+ @ApplicationContext context: Context
+ ): ApiClient {
+ val converter = MoshiConverterFactory.create(
+ Moshi.Builder()
+ .build()
+ ).asLenient()
+ return ApiClient(
+ converter,
+ hostConfig,
+ context
+ )
+ }
+
+ @Provides
+ @Singleton
+ fun provideSharedPreferences(@ApplicationContext context: Context): SharedPreferences {
+ return PreferenceManager.getDefaultSharedPreferences(context)
+ }
+
+ @Provides
+ fun provideKeyStore(): KeyStore? {
+ try {
+ val keyStore = KeyStore.getInstance("AndroidKeyStore")
+ keyStore.load(null)
+ return keyStore
+ } catch (e: KeyStoreException) {
+ HLogger.logException("KeyHelper", "Error initializing", e)
+ } catch (e: CertificateException) {
+ HLogger.logException("KeyHelper", "Error initializing", e)
+ } catch (e: NoSuchAlgorithmException) {
+ HLogger.logException("KeyHelper", "Error initializing", e)
+ } catch (e: IOException) {
+ HLogger.logException("KeyHelper", "Error initializing", e)
+ }
+ return null
+ }
+
+ @Provides
+ fun provideKeyHelper(
+ @ApplicationContext context: Context,
+ sharedPreferences: SharedPreferences,
+ keyStore: KeyStore?
+ ): KeyHelper? {
+ return if (keyStore == null) {
+ null
+ } else KeyHelper.getInstance(context, sharedPreferences, keyStore)
+ }
+}
\ No newline at end of file
diff --git a/wearos/src/main/res/layout/activity_main.xml b/wearos/src/main/res/layout/activity_main.xml
index 81d28e870..58138ab62 100644
--- a/wearos/src/main/res/layout/activity_main.xml
+++ b/wearos/src/main/res/layout/activity_main.xml
@@ -6,21 +6,16 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
- tools:deviceIds="wear"
- android:padding="@dimen/box_inset_layout_padding">
+ tools:deviceIds="wear">
-
-
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
\ No newline at end of file