From def26be8222fd5df49c7af03b1c4b4eec8666c64 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 8 Jan 2019 19:54:45 +0100 Subject: [PATCH] fix opening challenge creation screen --- .../res/drawable-hdpi/ic_add_white_18dp.png | Bin 0 -> 138 bytes .../res/drawable-mdpi/ic_add_white_18dp.png | Bin 0 -> 108 bytes .../res/drawable-xhdpi/ic_add_white_18dp.png | Bin 0 -> 156 bytes .../res/drawable-xxhdpi/ic_add_white_18dp.png | Bin 0 -> 176 bytes .../drawable-xxxhdpi/ic_add_white_18dp.png | Bin 0 -> 180 bytes .../res/drawable/challenge_gem_add_button.xml | 4 +- .../challenge_gem_add_button_disabled.xml | 2 +- .../challenge_gem_add_button_enabled.xml | 2 +- .../challenges/ChallengeListFragment.kt | 43 +------------ .../challenges/ChallengesOverviewFragment.kt | 59 +++++++++++++++++- 10 files changed, 62 insertions(+), 48 deletions(-) create mode 100644 Habitica/res/drawable-hdpi/ic_add_white_18dp.png create mode 100644 Habitica/res/drawable-mdpi/ic_add_white_18dp.png create mode 100644 Habitica/res/drawable-xhdpi/ic_add_white_18dp.png create mode 100644 Habitica/res/drawable-xxhdpi/ic_add_white_18dp.png create mode 100644 Habitica/res/drawable-xxxhdpi/ic_add_white_18dp.png diff --git a/Habitica/res/drawable-hdpi/ic_add_white_18dp.png b/Habitica/res/drawable-hdpi/ic_add_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..16b21f16ea93889ae932d78d40efcb90668f5975 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0d*@QPIB zLq^gHehrsQw&xtI=ZG-Ky162?WaAmOED5t3_N<$-Hd#3y8+9Jqrz#{~_?2T~+81SJ lqO&-=*6bFWq~kP3h9v(Z3)e4nXa*Y2;OXk;vd$@?2>_GjF6#gQ literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-mdpi/ic_add_white_18dp.png b/Habitica/res/drawable-mdpi/ic_add_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..fab78228e49fdb94cf47a373139734d19b54eae1 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|V^0^ykcwN$KmPx>XErrBJi+7y zLzkx63kH#XsTPhK%o#tJMHY8UUpTtpVubVq9V3@+K?Wner;GkJDoh4yXYh3Ob6Mw< G&;$Sx8X;u> literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-xhdpi/ic_add_white_18dp.png b/Habitica/res/drawable-xhdpi/ic_add_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9999b98900511b85ad4e96c1165db5b250729b88 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBl097~)z3#~6pvd7GIQ`kB zm?-Pd;vyEDc2^u8bLC%q(4nIGPH(1C0|TQL!zH=d7kL&iMy3LJOeK;c)9>l&Hr(p} zT*cIN_r6v&*Oa`JJ4Ox-45185tDk(li#;{an^LB{Ts5 D5N9(o literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-xxhdpi/ic_add_white_18dp.png b/Habitica/res/drawable-xxhdpi/ic_add_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8186da98f93dea6f29febef08e943bc3630068fb GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^a!(h>kcwMxZ*JsmaNuCQAl)gL zw?z7**h3`^g z4jgN?`>2-ltlaeAfjS25-8Od&4PYQ&Mcx<6-oV?TB;<5O;GrPU2@IaDelF{r5}E)y CO*c3I literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-xxxhdpi/ic_add_white_18dp.png b/Habitica/res/drawable-xxxhdpi/ic_add_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3a15191ccd086f909161c6d1b0c979536569044b GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!)t)YnAr-gYUNz)pVBlbO{4-mR zE8>R2^(VY{E_nsbYG&XNP;h8qU}RDOlPnq6O&|=II17YP%e2b~B5~p@GZR#h5sBde gG6XCR6_mUB%0H6-lIo@JKxZ&`y85}Sb4q9e0Gq5Su>b%7 literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable/challenge_gem_add_button.xml b/Habitica/res/drawable/challenge_gem_add_button.xml index bc8d2cca9..eb49786cb 100644 --- a/Habitica/res/drawable/challenge_gem_add_button.xml +++ b/Habitica/res/drawable/challenge_gem_add_button.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/Habitica/res/drawable/challenge_gem_add_button_disabled.xml b/Habitica/res/drawable/challenge_gem_add_button_disabled.xml index 5cee4da70..cf15c21f7 100644 --- a/Habitica/res/drawable/challenge_gem_add_button_disabled.xml +++ b/Habitica/res/drawable/challenge_gem_add_button_disabled.xml @@ -2,7 +2,7 @@ \ No newline at end of file diff --git a/Habitica/res/drawable/challenge_gem_add_button_enabled.xml b/Habitica/res/drawable/challenge_gem_add_button_enabled.xml index 0ece5a328..1c28c6c3d 100644 --- a/Habitica/res/drawable/challenge_gem_add_button_enabled.xml +++ b/Habitica/res/drawable/challenge_gem_add_button_enabled.xml @@ -2,7 +2,7 @@ \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.kt index 4f2046ddb..7dbf8d7b0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.kt @@ -142,7 +142,7 @@ class ChallengeListFragment : BaseFragment(), androidx.swiperefreshlayout.widget }, RxErrorHandler.handleEmptyError())) } - private fun retrieveChallengesPage(forced: Boolean = false) { + internal fun retrieveChallengesPage(forced: Boolean = false) { if ((!forced && swipeRefreshLayout?.isRefreshing == true) || loadedAllData) { return } @@ -157,20 +157,7 @@ class ChallengeListFragment : BaseFragment(), androidx.swiperefreshlayout.widget }, RxErrorHandler.handleEmptyError())) } - override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { - inflater?.inflate(R.menu.menu_list_challenges, menu) - - @Suppress("Deprecation") - val badgeLayout = MenuItemCompat.getActionView(menu?.findItem(R.id.action_search)) as? RelativeLayout - if (badgeLayout != null) { - val filterCountTextView = badgeLayout.findViewById(R.id.badge_textview) - filterCountTextView.text = null - filterCountTextView.visibility = View.GONE - badgeLayout.setOnClickListener { showFilterDialog() } - } - } - - private fun showFilterDialog() { + internal fun showFilterDialog() { activity.notNull { ChallengeFilterDialogHolder.showDialog(it, challenges ?: emptyList(), @@ -186,30 +173,4 @@ class ChallengeListFragment : BaseFragment(), androidx.swiperefreshlayout.widget filterOptions = challengeFilterOptions challengeAdapter?.filter(challengeFilterOptions) } - - @Suppress("ReturnCount") - override fun onOptionsItemSelected(item: MenuItem?): Boolean { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - val id = item?.itemId - - when (id) { - R.id.action_create_challenge -> { - val intent = Intent(getActivity(), ChallengeFormActivity::class.java) - startActivity(intent) - return true - } - R.id.action_reload -> { - retrieveChallengesPage() - return true - } - R.id.action_search -> { - showFilterDialog() - return true - } - } - - return super.onOptionsItemSelected(item) - } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt index 288b44a7b..f7972d51c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt @@ -1,18 +1,23 @@ package com.habitrpg.android.habitica.ui.fragments.social.challenges +import android.content.Intent import android.os.Bundle +import android.view.* +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.core.view.MenuItemCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentStatePagerAdapter -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.AppComponent import com.habitrpg.android.habitica.data.ChallengeRepository +import com.habitrpg.android.habitica.extensions.notNull +import com.habitrpg.android.habitica.ui.activities.ChallengeFormActivity import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment import com.habitrpg.android.habitica.ui.helpers.bindView import com.habitrpg.android.habitica.ui.helpers.resetViews +import com.habitrpg.android.habitica.utils.Action1 import javax.inject.Inject @@ -55,6 +60,54 @@ class ChallengesOverviewFragment : BaseMainFragment() { component.inject(this) } + + override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { + inflater?.inflate(R.menu.menu_list_challenges, menu) + + @Suppress("Deprecation") + val badgeLayout = MenuItemCompat.getActionView(menu?.findItem(R.id.action_search)) as? RelativeLayout + if (badgeLayout != null) { + val filterCountTextView = badgeLayout.findViewById(R.id.badge_textview) + filterCountTextView.text = null + filterCountTextView.visibility = View.GONE + badgeLayout.setOnClickListener { getActiveFragment()?.showFilterDialog() } + } + } + + @Suppress("ReturnCount") + override fun onOptionsItemSelected(item: MenuItem?): Boolean { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + val id = item?.itemId + + when (id) { + R.id.action_create_challenge -> { + val intent = Intent(getActivity(), ChallengeFormActivity::class.java) + startActivity(intent) + return true + } + R.id.action_reload -> { + getActiveFragment()?.retrieveChallengesPage() + return true + } + R.id.action_search -> { + getActiveFragment()?.showFilterDialog() + return true + } + } + + return super.onOptionsItemSelected(item) + } + + private fun getActiveFragment(): ChallengeListFragment? { + return if (viewPager?.currentItem == 0) { + userChallengesFragment + } else { + availableChallengesFragment + } + } + private fun setViewPagerAdapter() { val fragmentManager = childFragmentManager