diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt
index c0f100088..45d8c9b1b 100644
--- a/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt
+++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt
@@ -1,6 +1,7 @@
package com.habitrpg.android.habitica.extensions
import android.text.Html
+import java.util.Locale
fun String.fromHtml(): CharSequence {
return if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
@@ -10,3 +11,7 @@ fun String.fromHtml(): CharSequence {
Html.fromHtml(this)
}
}
+
+fun String.localizedCapitalize(): String {
+ return this.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
+}
\ No newline at end of file
diff --git a/wearos/src/main/AndroidManifest.xml b/wearos/src/main/AndroidManifest.xml
index 75d2faae2..0e6bed31a 100644
--- a/wearos/src/main/AndroidManifest.xml
+++ b/wearos/src/main/AndroidManifest.xml
@@ -36,6 +36,7 @@
+
\ 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
index 6bd5598c9..70def670f 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/MainApplication.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/MainApplication.kt
@@ -4,4 +4,4 @@ import android.app.Application
import dagger.hilt.android.HiltAndroidApp
@HiltAndroidApp
-class MainApplication : Application() { }
\ No newline at end of file
+class MainApplication : Application()
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt
index 32883b0c0..89db1807e 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt
@@ -2,5 +2,4 @@ package com.habitrpg.wearos.habitica.data.repositories
import javax.inject.Inject
-class TaskLocalRepository @Inject constructor() {
-}
\ No newline at end of file
+class TaskLocalRepository @Inject constructor()
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/UserLocalRepository.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/UserLocalRepository.kt
index 3f0216f9d..1ea26465b 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/UserLocalRepository.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/UserLocalRepository.kt
@@ -2,5 +2,4 @@ package com.habitrpg.wearos.habitica.data.repositories
import javax.inject.Inject
-class UserLocalRepository @Inject constructor() {
-}
\ No newline at end of file
+class UserLocalRepository @Inject constructor()
\ 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
index 936658648..cdcd4021a 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/User.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/User.kt
@@ -14,23 +14,30 @@ class Items {
var gear: Gear? = null
}
+@JsonClass(generateAdapter = true)
+class Profile {
+ var name: String? = null
+}
+
@JsonClass(generateAdapter = true)
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 var currentMount: String? = null
+ override var currentPet: String? = null
+ override var sleep: Boolean = false
+ override var stats: Stats? = null
+ override var preferences: Preferences? = null
+ override var flags: Flags? = null
+ override var gemCount: Int = 0
+ override var hourglassCount: Int = 0
+ var items: Items? = null
override val costume: Outfit?
get() = items?.gear?.costume
override val equipped: Outfit?
get() = items?.gear?.equipped
override val hasClass: Boolean = false
+ var profile: Profile? = null
+
override fun isValid(): Boolean {
return true
}
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/AvatarActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/AvatarActivity.kt
new file mode 100644
index 000000000..7b9bc15ae
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/AvatarActivity.kt
@@ -0,0 +1,12 @@
+package com.habitrpg.wearos.habitica.ui.activities
+
+import android.os.Bundle
+import com.habitrpg.wearos.habitica.databinding.ActivityAvatarBinding
+
+class AvatarActivity: BaseActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ binding = ActivityAvatarBinding.inflate(layoutInflater)
+ super.onCreate(savedInstanceState)
+ }
+}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt
index 85a553f0b..2afbbbdd6 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt
@@ -3,7 +3,6 @@ package com.habitrpg.wearos.habitica.ui.activities
import android.content.Intent
import android.graphics.drawable.Drawable
import android.os.Bundle
-import android.util.Log
import android.view.View
import androidx.activity.viewModels
import androidx.appcompat.content.res.AppCompatResources
@@ -40,16 +39,13 @@ class MainActivity : BaseActivity() {
WearableLinearLayoutManager(this@MainActivity, HabiticaScrollingLayoutCallback())
adapter = this@MainActivity.adapter
}
+ binding.root.post {
+ binding.root.setPaddingRelative(0, (binding.root.height * 0.25).toInt(), 0, (binding.root.height * 0.25).toInt())
+ }
}
-
-
override fun onStart() {
super.onStart()
- binding.root.post {
- binding.root.setPaddingRelative(0, (binding.root.height * 0.25).toInt(), 0, (binding.root.height * 0.25).toInt())
- binding.root.scrollY = 0
- }
adapter.data = listOf(
MenuItem(
"avatar",
@@ -105,17 +101,21 @@ class MainActivity : BaseActivity() {
AppCompatResources.getDrawable(this, R.drawable.ic_settings),
ContextCompat.getColor(this, R.color.blue_100)
) {
- openTasklist(TaskType.REWARD)
}
)
viewModel.user.observe(this) {
- Log.d("MainActivity", "onStart: ${it.currentPet}")
+ adapter.title = it.profile?.name ?: ""
+ adapter.notifyItemChanged(0)
}
}
+ private fun openAvatarActivity() {
+ startActivity(Intent(this, AvatarActivity::class.java))
+ }
+
private fun openTasklist(type: TaskType) {
val intent = Intent(this, TaskListActivity::class.java).apply {
- putExtra("task_type", type.name)
+ putExtra("task_type", type.value)
}
startActivity(intent)
}
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskListActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskListActivity.kt
index b6ee4f528..a65da21d0 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskListActivity.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskListActivity.kt
@@ -3,8 +3,9 @@ package com.habitrpg.wearos.habitica.ui.activities
import android.os.Bundle
import androidx.activity.viewModels
import androidx.wear.widget.WearableLinearLayoutManager
+import com.habitrpg.common.habitica.models.tasks.TaskType
+import com.habitrpg.wearos.habitica.R
import com.habitrpg.wearos.habitica.databinding.ActivityTasklistBinding
-import com.habitrpg.wearos.habitica.models.tasks.Task
import com.habitrpg.wearos.habitica.ui.adapters.TaskListAdapter
import com.habitrpg.wearos.habitica.ui.viewmodels.TaskListViewModel
import dagger.hilt.android.AndroidEntryPoint
@@ -18,22 +19,24 @@ class TaskListActivity: BaseActivity() {
binding = ActivityTasklistBinding.inflate(layoutInflater)
super.onCreate(savedInstanceState)
binding.root.apply {
- isEdgeItemsCenteringEnabled = true
layoutManager =
WearableLinearLayoutManager(this@TaskListActivity, HabiticaScrollingLayoutCallback())
adapter = this@TaskListActivity.adapter
}
-
- adapter.data = listOf(
- Task().apply { text = "Test 1" },
- Task().apply { text = "Test 2" },
- Task().apply { text = "Test 3" },
- Task().apply { text = "Test 4" },
- Task().apply { text = "Test 5" }
- )
+ setAdapterTitle()
viewModel.tasks.observe(this) {
adapter.data = it
}
}
+
+ private fun setAdapterTitle() {
+ adapter.title = when (viewModel.taskType) {
+ TaskType.HABIT -> getString(R.string.habits)
+ TaskType.DAILY -> getString(R.string.dailies)
+ TaskType.TODO -> getString(R.string.todos)
+ TaskType.REWARD -> getString(R.string.rewards)
+ null -> ""
+ }
+ }
}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/HubAdapter.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/HubAdapter.kt
index 05dbc934a..44f6624c3 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/HubAdapter.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/HubAdapter.kt
@@ -4,37 +4,55 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.habitrpg.common.habitica.extensions.layoutInflater
+import com.habitrpg.wearos.habitica.databinding.RowHeaderBinding
import com.habitrpg.wearos.habitica.databinding.RowHubBinding
import com.habitrpg.wearos.habitica.ui.activities.MenuItem
+import com.habitrpg.wearos.habitica.ui.viewHolders.BindableViewHolder
+import com.habitrpg.wearos.habitica.ui.viewHolders.HeaderViewHolder
-class HubAdapter: RecyclerView.Adapter() {
+class HubAdapter: RecyclerView.Adapter() {
+ var title: String = ""
var data: List