Improve quest flows and preferences

This commit is contained in:
Phillip Thelen 2020-11-13 16:28:53 +01:00
parent 314bcd98be
commit 137b2e55ee
8 changed files with 25 additions and 7 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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"/>

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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()

View file

@ -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")
} }