mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
Improve quest flows and preferences
This commit is contained in:
parent
314bcd98be
commit
137b2e55ee
8 changed files with 25 additions and 7 deletions
|
|
@ -733,7 +733,7 @@
|
||||||
<string name="achievement_title">Vous avez obtenu un succès !</string>
|
<string name="achievement_title">Vous avez obtenu un succès !</string>
|
||||||
<string name="view_achievements">Voir les succès</string>
|
<string name="view_achievements">Voir les succès</string>
|
||||||
<string name="see_what_s_new">Voir les nouveautés</string>
|
<string name="see_what_s_new">Voir les nouveautés</string>
|
||||||
<string name="mystery_item_received">Vous ouvrez la boite et trouvez %@</string>
|
<string name="mystery_item_received">Vous ouvrez la boite et trouvez %s</string>
|
||||||
<string name="removed_member">%s ne fait plus partie du groupe</string>
|
<string name="removed_member">%s ne fait plus partie du groupe</string>
|
||||||
<string name="transfer">Transférer</string>
|
<string name="transfer">Transférer</string>
|
||||||
<string name="remove_member_confirm">Confirmez-vous vouloir retirer %s du groupe \?</string>
|
<string name="remove_member_confirm">Confirmez-vous vouloir retirer %s du groupe \?</string>
|
||||||
|
|
|
||||||
|
|
@ -846,7 +846,7 @@
|
||||||
<string name="mountMasterDescription">すべての乗騎を集めた実績、「乗騎使い」を手に入れました!</string>
|
<string name="mountMasterDescription">すべての乗騎を集めた実績、「乗騎使い」を手に入れました!</string>
|
||||||
<string name="mountMasterTitle">乗騎使い</string>
|
<string name="mountMasterTitle">乗騎使い</string>
|
||||||
<string name="beastMasterDescription">全てのペットを集めたため、「獣使い」の実績を獲得しました!</string>
|
<string name="beastMasterDescription">全てのペットを集めたため、「獣使い」の実績を獲得しました!</string>
|
||||||
<string name="mystery_item_received">宝箱を開け、%@を見つけました</string>
|
<string name="mystery_item_received">宝箱を開け、%sを見つけました</string>
|
||||||
<string name="removed_member">%sはグループから解除されました</string>
|
<string name="removed_member">%sはグループから解除されました</string>
|
||||||
<string name="transfer">移譲する</string>
|
<string name="transfer">移譲する</string>
|
||||||
<string name="remove_member_confirm">本当に%sをグループから解除しますか?</string>
|
<string name="remove_member_confirm">本当に%sをグループから解除しますか?</string>
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,8 @@
|
||||||
<Preference
|
<Preference
|
||||||
android:key="choose_class"
|
android:key="choose_class"
|
||||||
tools:title="Change Class"
|
tools:title="Change Class"
|
||||||
android:layout="@layout/preference_child_summary"/>
|
android:layout="@layout/preference_child_summary"
|
||||||
|
app:isPreferenceVisible="false"/>
|
||||||
<Preference android:title="@string/fix_character_values"
|
<Preference android:title="@string/fix_character_values"
|
||||||
app:key="fixCharacterValues"
|
app:key="fixCharacterValues"
|
||||||
android:layout="@layout/preference_child_summary"/>
|
android:layout="@layout/preference_child_summary"/>
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import javax.inject.Inject
|
||||||
|
|
||||||
abstract class BaseFragment<VB: ViewBinding> : DialogFragment() {
|
abstract class BaseFragment<VB: ViewBinding> : DialogFragment() {
|
||||||
|
|
||||||
|
var isModal: Boolean = false
|
||||||
abstract var binding: VB?
|
abstract var binding: VB?
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||||
import com.habitrpg.android.habitica.R
|
import com.habitrpg.android.habitica.R
|
||||||
import com.habitrpg.android.habitica.components.UserComponent
|
import com.habitrpg.android.habitica.components.UserComponent
|
||||||
import com.habitrpg.android.habitica.data.InventoryRepository
|
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.data.UserRepository
|
||||||
import com.habitrpg.android.habitica.databinding.FragmentItemsBinding
|
import com.habitrpg.android.habitica.databinding.FragmentItemsBinding
|
||||||
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
|
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
|
||||||
|
|
@ -32,6 +33,8 @@ class ItemRecyclerFragment : BaseFragment<FragmentItemsBinding>(), SwipeRefreshL
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var inventoryRepository: InventoryRepository
|
lateinit var inventoryRepository: InventoryRepository
|
||||||
@Inject
|
@Inject
|
||||||
|
lateinit var socialRepository: SocialRepository
|
||||||
|
@Inject
|
||||||
lateinit var userRepository: UserRepository
|
lateinit var userRepository: UserRepository
|
||||||
var adapter: ItemRecyclerAdapter? = null
|
var adapter: ItemRecyclerAdapter? = null
|
||||||
var itemType: String? = null
|
var itemType: String? = null
|
||||||
|
|
@ -93,7 +96,14 @@ class ItemRecyclerFragment : BaseFragment<FragmentItemsBinding>(), SwipeRefreshL
|
||||||
|
|
||||||
compositeSubscription.add(adapter.getQuestInvitationFlowable()
|
compositeSubscription.add(adapter.getQuestInvitationFlowable()
|
||||||
.flatMap { quest -> inventoryRepository.inviteToQuest(quest) }
|
.flatMap { quest -> inventoryRepository.inviteToQuest(quest) }
|
||||||
.subscribe({ MainNavigationController.navigate(R.id.partyFragment) }, RxErrorHandler.handleEmptyError()))
|
.flatMap { socialRepository.retrieveGroup("party") }
|
||||||
|
.subscribe({
|
||||||
|
if (isModal) {
|
||||||
|
activity?.supportFragmentManager?.popBackStack()
|
||||||
|
} else {
|
||||||
|
MainNavigationController.navigate(R.id.partyFragment)
|
||||||
|
}
|
||||||
|
}, RxErrorHandler.handleEmptyError()))
|
||||||
compositeSubscription.add(adapter.getOpenMysteryItemFlowable()
|
compositeSubscription.add(adapter.getOpenMysteryItemFlowable()
|
||||||
.flatMap { inventoryRepository.openMysteryItem(user) }
|
.flatMap { inventoryRepository.openMysteryItem(user) }
|
||||||
.doOnNext {
|
.doOnNext {
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import android.content.SharedPreferences
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.preference.CheckBoxPreference
|
import androidx.preference.CheckBoxPreference
|
||||||
import androidx.preference.ListPreference
|
import androidx.preference.ListPreference
|
||||||
|
|
@ -54,12 +55,16 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
listView.itemAnimator = null
|
||||||
|
}
|
||||||
|
|
||||||
override fun setupPreferences() {
|
override fun setupPreferences() {
|
||||||
timePreference = findPreference("reminder_time") as? TimePreference
|
timePreference = findPreference("reminder_time") as? TimePreference
|
||||||
val useReminder = preferenceManager.sharedPreferences.getBoolean("use_reminder", false)
|
val useReminder = preferenceManager.sharedPreferences.getBoolean("use_reminder", false)
|
||||||
timePreference?.isEnabled = useReminder
|
timePreference?.isEnabled = useReminder
|
||||||
|
|
||||||
|
|
||||||
pushNotificationsPreference = findPreference("pushNotifications") as? PreferenceScreen
|
pushNotificationsPreference = findPreference("pushNotifications") as? PreferenceScreen
|
||||||
val usePushNotifications = preferenceManager.sharedPreferences.getBoolean("usePushNotifications", true)
|
val usePushNotifications = preferenceManager.sharedPreferences.getBoolean("usePushNotifications", true)
|
||||||
pushNotificationsPreference?.isEnabled = usePushNotifications
|
pushNotificationsPreference?.isEnabled = usePushNotifications
|
||||||
|
|
|
||||||
|
|
@ -238,7 +238,7 @@ class QuestDetailFragment : BaseMainFragment<FragmentQuestDetailBinding>() {
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
socialRepository.cancelQuest(partyID)
|
socialRepository.cancelQuest(partyID)
|
||||||
.flatMap { userRepository.retrieveUser() }
|
.flatMap { userRepository.retrieveUser() }
|
||||||
.subscribe({ getActivity()?.fragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
|
.subscribe({ getActivity()?.supportFragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
alert.addButton(R.string.no, false)
|
alert.addButton(R.string.no, false)
|
||||||
|
|
@ -254,7 +254,7 @@ class QuestDetailFragment : BaseMainFragment<FragmentQuestDetailBinding>() {
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
socialRepository.abortQuest(partyID)
|
socialRepository.abortQuest(partyID)
|
||||||
.flatMap { userRepository.retrieveUser() }
|
.flatMap { userRepository.retrieveUser() }
|
||||||
.subscribe({ getActivity()?.fragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
|
.subscribe({ getActivity()?.supportFragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
|
||||||
}
|
}
|
||||||
}.setNegativeButton(R.string.no) { _, _ -> }
|
}.setNegativeButton(R.string.no) { _, _ -> }
|
||||||
builder.show()
|
builder.show()
|
||||||
|
|
|
||||||
|
|
@ -326,6 +326,7 @@ class PartyDetailFragment : BaseFragment<FragmentPartyDetailBinding>() {
|
||||||
val fragment = ItemRecyclerFragment()
|
val fragment = ItemRecyclerFragment()
|
||||||
fragment.itemType = "quests"
|
fragment.itemType = "quests"
|
||||||
fragment.itemTypeText = getString(R.string.quest)
|
fragment.itemTypeText = getString(R.string.quest)
|
||||||
|
fragment.isModal = true
|
||||||
fragment.show(parentFragmentManager, "questDialog")
|
fragment.show(parentFragmentManager, "questDialog")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue