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="view_achievements">Voir les succè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="transfer">Transférer</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="mountMasterTitle">乗騎使い</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="transfer">移譲する</string>
<string name="remove_member_confirm">本当に%sをグループから解除しますか</string>

View file

@ -118,7 +118,8 @@
<Preference
android:key="choose_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"
app:key="fixCharacterValues"
android:layout="@layout/preference_child_summary"/>

View file

@ -23,6 +23,7 @@ import javax.inject.Inject
abstract class BaseFragment<VB: ViewBinding> : DialogFragment() {
var isModal: Boolean = false
abstract var binding: VB?
@Inject

View file

@ -10,6 +10,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
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.data.SocialRepository
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.databinding.FragmentItemsBinding
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
@ -32,6 +33,8 @@ class ItemRecyclerFragment : BaseFragment<FragmentItemsBinding>(), SwipeRefreshL
@Inject
lateinit var inventoryRepository: InventoryRepository
@Inject
lateinit var socialRepository: SocialRepository
@Inject
lateinit var userRepository: UserRepository
var adapter: ItemRecyclerAdapter? = null
var itemType: String? = null
@ -93,7 +96,14 @@ class ItemRecyclerFragment : BaseFragment<FragmentItemsBinding>(), SwipeRefreshL
compositeSubscription.add(adapter.getQuestInvitationFlowable()
.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()
.flatMap { inventoryRepository.openMysteryItem(user) }
.doOnNext {

View file

@ -6,6 +6,7 @@ import android.content.SharedPreferences
import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AlertDialog
import androidx.preference.CheckBoxPreference
import androidx.preference.ListPreference
@ -54,12 +55,16 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
super.onCreate(savedInstanceState)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
listView.itemAnimator = null
}
override fun setupPreferences() {
timePreference = findPreference("reminder_time") as? TimePreference
val useReminder = preferenceManager.sharedPreferences.getBoolean("use_reminder", false)
timePreference?.isEnabled = useReminder
pushNotificationsPreference = findPreference("pushNotifications") as? PreferenceScreen
val usePushNotifications = preferenceManager.sharedPreferences.getBoolean("usePushNotifications", true)
pushNotificationsPreference?.isEnabled = usePushNotifications

View file

@ -238,7 +238,7 @@ class QuestDetailFragment : BaseMainFragment<FragmentQuestDetailBinding>() {
@Suppress("DEPRECATION")
socialRepository.cancelQuest(partyID)
.flatMap { userRepository.retrieveUser() }
.subscribe({ getActivity()?.fragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
.subscribe({ getActivity()?.supportFragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
}
}
alert.addButton(R.string.no, false)
@ -254,7 +254,7 @@ class QuestDetailFragment : BaseMainFragment<FragmentQuestDetailBinding>() {
@Suppress("DEPRECATION")
socialRepository.abortQuest(partyID)
.flatMap { userRepository.retrieveUser() }
.subscribe({ getActivity()?.fragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
.subscribe({ getActivity()?.supportFragmentManager?.popBackStack() }, RxErrorHandler.handleEmptyError())
}
}.setNegativeButton(R.string.no) { _, _ -> }
builder.show()

View file

@ -326,6 +326,7 @@ class PartyDetailFragment : BaseFragment<FragmentPartyDetailBinding>() {
val fragment = ItemRecyclerFragment()
fragment.itemType = "quests"
fragment.itemTypeText = getString(R.string.quest)
fragment.isModal = true
fragment.show(parentFragmentManager, "questDialog")
}