diff --git a/Habitica/res/drawable-hdpi/star.png b/Habitica/res/drawable-hdpi/star.png
new file mode 100644
index 000000000..07691492f
Binary files /dev/null and b/Habitica/res/drawable-hdpi/star.png differ
diff --git a/Habitica/res/drawable-mdpi/star.png b/Habitica/res/drawable-mdpi/star.png
new file mode 100644
index 000000000..23af96a47
Binary files /dev/null and b/Habitica/res/drawable-mdpi/star.png differ
diff --git a/Habitica/res/drawable-xhdpi/star.png b/Habitica/res/drawable-xhdpi/star.png
new file mode 100644
index 000000000..dc432e650
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/star.png differ
diff --git a/Habitica/res/drawable-xxhdpi/star.png b/Habitica/res/drawable-xxhdpi/star.png
new file mode 100644
index 000000000..d3f087bf7
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/star.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/star.png b/Habitica/res/drawable-xxxhdpi/star.png
new file mode 100644
index 000000000..ac8b6f5ca
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/star.png differ
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 89f2675df..b8575fe21 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -1017,4 +1017,5 @@
Task list display
Onboarding Tasks
Complete to earn 100 Gold!
+ Delete...
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 396cf53d3..646512896 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
@@ -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.helpers.DataBindingUtils
import com.habitrpg.android.habitica.ui.viewmodels.NotificationsViewModel
+import com.habitrpg.android.habitica.ui.views.AdventureGuideDrawerArrowDrawable
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar.SnackbarDisplayType
@@ -81,6 +82,8 @@ import java.util.*
import javax.inject.Inject
open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
+ private lateinit var drawerIcon: AdventureGuideDrawerArrowDrawable
+
@Inject
internal lateinit var apiClient: ApiClient
@Inject
@@ -191,10 +194,9 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
findViewById(R.id.drawer_layout), /* DrawerLayout object */
R.string.navigation_drawer_open, /* "open drawer" description */
R.string.navigation_drawer_close /* "close drawer" description */
- ) {
-
- }
-
+ ) {}
+ drawerIcon = AdventureGuideDrawerArrowDrawable(supportActionBar?.themedContext)
+ drawerToggle?.drawerArrowDrawable = drawerIcon
// Set the drawer toggle as the DrawerListener
drawerToggle?.let { drawerLayout.addDrawerListener(it) }
@@ -359,6 +361,8 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
userRepository.updateUser(user, "party.quest.completed", "").subscribe(Consumer {}, RxErrorHandler.handleEmptyError())
})
}
+
+ drawerIcon.setEnabled(user?.hasCompletedOnboarding == false)
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AdventureGuideDrawerArrowDrawable.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AdventureGuideDrawerArrowDrawable.kt
new file mode 100644
index 000000000..380395c93
--- /dev/null
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AdventureGuideDrawerArrowDrawable.kt
@@ -0,0 +1,47 @@
+package com.habitrpg.android.habitica.ui.views
+
+import android.content.Context
+import android.graphics.*
+import androidx.appcompat.graphics.drawable.DrawerArrowDrawable
+import androidx.core.content.ContextCompat
+import com.habitrpg.android.habitica.R
+
+
+class AdventureGuideDrawerArrowDrawable(context: Context?) : DrawerArrowDrawable(context) {
+ private val backgroundPaint: Paint = Paint()
+ private val icon: Bitmap = BitmapFactory.decodeResource(context?.resources, R.drawable.star)
+ private var enabled = true
+ override fun draw(canvas: Canvas) {
+ super.draw(canvas)
+ if (!enabled) {
+ return
+ }
+ val bounds = bounds
+ val x = bounds.width() - HALF_SIZE
+ val y = 10f
+ canvas.drawCircle(x, y, SIZE, backgroundPaint)
+ canvas.drawBitmap(icon, x - 16, y - 16, null)
+ }
+
+ fun setEnabled(enabled: Boolean) {
+ if (this.enabled != enabled) {
+ this.enabled = enabled
+ invalidateSelf()
+ }
+ }
+
+ fun isEnabled(): Boolean {
+ return enabled
+ }
+
+ companion object {
+ // Fraction of the drawable's intrinsic size we want the badge to be.
+ private const val SIZE = 24f
+ private const val HALF_SIZE = SIZE / 2
+ }
+
+ init {
+ context?.let { backgroundPaint.color = ContextCompat.getColor(it, R.color.yellow_10) }
+ backgroundPaint.isAntiAlias = true
+ }
+}
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/adventureGuide/AdventureGuideMenuBanner.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/adventureGuide/AdventureGuideMenuBanner.kt
index 69072c0ac..9c2808305 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/adventureGuide/AdventureGuideMenuBanner.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/adventureGuide/AdventureGuideMenuBanner.kt
@@ -24,7 +24,7 @@ class AdventureGuideMenuBanner @JvmOverloads constructor(
val achievements = user.onboardingAchievements
val completed = achievements.count { it.earned }
binding.progressBar.max = achievements.size
- binding.progressBar.progress = completed / achievements.size
+ binding.progressBar.progress = completed
binding.countView.text = "${completed} / ${achievements.size}"
}
}
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/AchievementListDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/AchievementListDeserializer.kt
index 5a6f35e1a..c6929d7f0 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/AchievementListDeserializer.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/AchievementListDeserializer.kt
@@ -14,7 +14,7 @@ class AchievementListDeserializer: JsonDeserializer> {
for (categoryEntry in json?.asJsonObject?.entrySet() ?: emptySet()) {
val categoryIdentifier = categoryEntry.key
for (entry in categoryEntry.value.asJsonObject.getAsJsonObject("achievements").entrySet()) {
- var obj = entry.value.asJsonObject
+ val obj = entry.value.asJsonObject
val achievement = Achievement()
achievement.key = entry.key
achievement.category = categoryIdentifier