Skip to content

Commit 2a2d287

Browse files
fix :Back Pressed Event not work in Explore tab when user not login (commons-app#4404)
* fix :Back Pressed Event not work in Explore tab * minor changes
1 parent 6df35e2 commit 2a2d287

File tree

3 files changed

+31
-18
lines changed

3 files changed

+31
-18
lines changed

app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,11 @@ public void onBackPressed() {
281281
}
282282
} else if (exploreFragment != null && activeFragment == ActiveFragment.EXPLORE) {
283283
// Means that explore fragment is visible
284-
exploreFragment.onBackPressed();
284+
if (!exploreFragment.onBackPressed()) {
285+
if (applicationKvStore.getBoolean("login_skipped")) {
286+
super.onBackPressed();
287+
}
288+
}
285289
} else if (bookmarkFragment != null && activeFragment == ActiveFragment.BOOKMARK) {
286290
// Means that bookmark fragment is visible
287291
bookmarkFragment.onBackPressed();

app/src/main/java/fr/free/nrw/commons/explore/ExploreFragment.java

+16-9
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@
1717
import fr.free.nrw.commons.ViewPagerAdapter;
1818
import fr.free.nrw.commons.contributions.MainActivity;
1919
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
20+
import fr.free.nrw.commons.kvstore.JsonKvStore;
2021
import fr.free.nrw.commons.theme.BaseActivity;
2122
import fr.free.nrw.commons.utils.ActivityUtils;
2223
import java.util.ArrayList;
2324
import java.util.List;
25+
import javax.inject.Inject;
26+
import javax.inject.Named;
2427

2528
public class ExploreFragment extends CommonsDaggerSupportFragment {
2629

@@ -35,6 +38,9 @@ public class ExploreFragment extends CommonsDaggerSupportFragment {
3538
ViewPagerAdapter viewPagerAdapter;
3639
private ExploreListRootFragment featuredRootFragment;
3740
private ExploreListRootFragment mobileRootFragment;
41+
@Inject
42+
@Named("default_preferences")
43+
public JsonKvStore applicationKvStore;
3844

3945
public void setScroll(boolean canScroll){
4046
viewPager.setCanScroll(canScroll);
@@ -95,20 +101,21 @@ public void setTabs() {
95101
viewPagerAdapter.notifyDataSetChanged();
96102
}
97103

98-
public void onBackPressed() {
104+
public boolean onBackPressed() {
99105
if (tabLayout.getSelectedTabPosition() == 0) {
100-
if(featuredRootFragment.backPressed()){
101-
// Event is handled by the Fragment we need not do anything.
102-
return;
106+
if (featuredRootFragment.backPressed()) {
107+
((BaseActivity) getActivity()).getSupportActionBar()
108+
.setDisplayHomeAsUpEnabled(false);
109+
return true;
103110
}
104111
} else {
105-
if(mobileRootFragment.backPressed()){
106-
// Event is handled by the Fragment we need not do anything.
107-
return;
112+
if (mobileRootFragment.backPressed()) {
113+
((BaseActivity) getActivity()).getSupportActionBar()
114+
.setDisplayHomeAsUpEnabled(false);
115+
return true;
108116
}
109117
}
110-
// Event is not handled by the fragment ( i.e performed back action ) therefore change action bar.
111-
((BaseActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
118+
return false;
112119
}
113120

114121
/**

app/src/main/java/fr/free/nrw/commons/explore/ExploreListRootFragment.java

+10-8
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.content.Context;
44
import android.os.Bundle;
5-
import android.os.Handler;
65
import android.view.LayoutInflater;
76
import android.view.View;
87
import android.view.ViewGroup;
@@ -182,20 +181,23 @@ public void viewPagerNotifyDataSetChanged() {
182181
* @return
183182
*/
184183
public boolean backPressed() {
185-
if (null!=mediaDetails && mediaDetails.isVisible()) {
184+
if (null != mediaDetails && mediaDetails.isVisible()) {
186185
// todo add get list fragment
187-
if(mediaDetails.backButtonClicked()) {
186+
if (mediaDetails.backButtonClicked()) {
188187
// MediaDetails handled the event no further action required.
189188
return true;
189+
} else {
190+
((ExploreFragment) getParentFragment()).tabLayout.setVisibility(View.VISIBLE);
191+
removeFragment(mediaDetails);
192+
((ExploreFragment) getParentFragment()).setScroll(true);
193+
setFragment(listFragment, mediaDetails);
194+
((MainActivity) getActivity()).showTabs();
195+
return true;
190196
}
191-
((ExploreFragment)getParentFragment()).tabLayout.setVisibility(View.VISIBLE);
192-
removeFragment(mediaDetails);
193-
((ExploreFragment) getParentFragment()).setScroll(true);
194-
setFragment(listFragment, mediaDetails);
195197
} else {
196198
((MainActivity) getActivity()).setSelectedItemId(NavTab.CONTRIBUTIONS.code());
197199
}
198-
((MainActivity)getActivity()).showTabs();
200+
((MainActivity) getActivity()).showTabs();
199201
return false;
200202
}
201203
}

0 commit comments

Comments
 (0)