mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
* enable clicking on contributions in user's profile * Added null condition * Added Comments Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com>
This commit is contained in:
parent
7579c1aa16
commit
d7ad3b934d
6 changed files with 76 additions and 19 deletions
|
|
@ -3,6 +3,7 @@ package fr.free.nrw.commons.contributions;
|
||||||
import static fr.free.nrw.commons.contributions.Contribution.STATE_FAILED;
|
import static fr.free.nrw.commons.contributions.Contribution.STATE_FAILED;
|
||||||
import static fr.free.nrw.commons.contributions.Contribution.STATE_PAUSED;
|
import static fr.free.nrw.commons.contributions.Contribution.STATE_PAUSED;
|
||||||
import static fr.free.nrw.commons.nearby.fragments.NearbyParentFragment.WLM_URL;
|
import static fr.free.nrw.commons.nearby.fragments.NearbyParentFragment.WLM_URL;
|
||||||
|
import static fr.free.nrw.commons.profile.ProfileActivity.KEY_USERNAME;
|
||||||
import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween;
|
import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
|
@ -30,6 +31,7 @@ import fr.free.nrw.commons.Utils;
|
||||||
import fr.free.nrw.commons.auth.SessionManager;
|
import fr.free.nrw.commons.auth.SessionManager;
|
||||||
import fr.free.nrw.commons.notification.Notification;
|
import fr.free.nrw.commons.notification.Notification;
|
||||||
import fr.free.nrw.commons.notification.NotificationController;
|
import fr.free.nrw.commons.notification.NotificationController;
|
||||||
|
import fr.free.nrw.commons.profile.ProfileActivity;
|
||||||
import fr.free.nrw.commons.theme.BaseActivity;
|
import fr.free.nrw.commons.theme.BaseActivity;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -113,6 +115,9 @@ public class ContributionsFragment
|
||||||
|
|
||||||
private Campaign wlmCampaign;
|
private Campaign wlmCampaign;
|
||||||
|
|
||||||
|
String userName;
|
||||||
|
private boolean isUserProfile;
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public static ContributionsFragment newInstance() {
|
public static ContributionsFragment newInstance() {
|
||||||
ContributionsFragment fragment = new ContributionsFragment();
|
ContributionsFragment fragment = new ContributionsFragment();
|
||||||
|
|
@ -125,6 +130,10 @@ public class ContributionsFragment
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (getArguments() != null && getArguments().getString(KEY_USERNAME) != null) {
|
||||||
|
userName = getArguments().getString(KEY_USERNAME);
|
||||||
|
isUserProfile = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
@ -154,7 +163,11 @@ public class ContributionsFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
initFragments();
|
initFragments();
|
||||||
upDateUploadCount();
|
if(isUserProfile) {
|
||||||
|
limitedConnectionEnabledLayout.setVisibility(View.GONE);
|
||||||
|
}else {
|
||||||
|
upDateUploadCount();
|
||||||
|
}
|
||||||
if(shouldShowMediaDetailsFragment){
|
if(shouldShowMediaDetailsFragment){
|
||||||
showMediaDetailPagerFragment();
|
showMediaDetailPagerFragment();
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -165,7 +178,7 @@ public class ContributionsFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ConfigUtils.isBetaFlavour() && sessionManager.isUserLoggedIn()
|
if (!ConfigUtils.isBetaFlavour() && sessionManager.isUserLoggedIn()
|
||||||
&& sessionManager.getCurrentAccount() != null) {
|
&& sessionManager.getCurrentAccount() != null && !isUserProfile) {
|
||||||
setUploadCount();
|
setUploadCount();
|
||||||
}
|
}
|
||||||
limitedConnectionEnabledLayout.setOnClickListener(toggleDescriptionListener);
|
limitedConnectionEnabledLayout.setOnClickListener(toggleDescriptionListener);
|
||||||
|
|
@ -269,7 +282,7 @@ public class ContributionsFragment
|
||||||
*/
|
*/
|
||||||
private void showContributionsListFragment() {
|
private void showContributionsListFragment() {
|
||||||
// show nearby card view on contributions list is visible
|
// show nearby card view on contributions list is visible
|
||||||
if (nearbyNotificationCardView != null) {
|
if (nearbyNotificationCardView != null && !isUserProfile) {
|
||||||
if (store.getBoolean("displayNearbyCardView", true)) {
|
if (store.getBoolean("displayNearbyCardView", true)) {
|
||||||
if (nearbyNotificationCardView.cardViewVisibilityState
|
if (nearbyNotificationCardView.cardViewVisibilityState
|
||||||
== NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
== NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
||||||
|
|
@ -301,6 +314,9 @@ public class ContributionsFragment
|
||||||
private void initFragments() {
|
private void initFragments() {
|
||||||
if (null == contributionsListFragment) {
|
if (null == contributionsListFragment) {
|
||||||
contributionsListFragment = new ContributionsListFragment();
|
contributionsListFragment = new ContributionsListFragment();
|
||||||
|
Bundle contributionsListBundle = new Bundle();
|
||||||
|
contributionsListBundle.putString(KEY_USERNAME, userName);
|
||||||
|
contributionsListFragment.setArguments(contributionsListBundle);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldShowMediaDetailsFragment) {
|
if (shouldShowMediaDetailsFragment) {
|
||||||
|
|
@ -398,7 +414,7 @@ public class ContributionsFragment
|
||||||
});
|
});
|
||||||
|
|
||||||
// Notification cards should only be seen on contributions list, not in media details
|
// Notification cards should only be seen on contributions list, not in media details
|
||||||
if (mediaDetailPagerFragment == null) {
|
if (mediaDetailPagerFragment == null && !isUserProfile) {
|
||||||
if (store.getBoolean("displayNearbyCardView", true)) {
|
if (store.getBoolean("displayNearbyCardView", true)) {
|
||||||
checkPermissionsAndShowNearbyCardView();
|
checkPermissionsAndShowNearbyCardView();
|
||||||
if (nearbyNotificationCardView.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
if (nearbyNotificationCardView.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
||||||
|
|
@ -410,8 +426,11 @@ public class ContributionsFragment
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
nearbyNotificationCardView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
setNotificationCount();
|
// Notification Count and Campaigns should not be set, if it is used in User Profile
|
||||||
fetchCampaigns();
|
if(!isUserProfile) {
|
||||||
|
setNotificationCount();
|
||||||
|
fetchCampaigns();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -549,7 +568,7 @@ public class ContributionsFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void showCampaigns(Campaign campaign) {
|
@Override public void showCampaigns(Campaign campaign) {
|
||||||
if (campaign != null) {
|
if (campaign != null && !isUserProfile) {
|
||||||
campaignView.setCampaign(campaign);
|
campaignView.setCampaign(campaign);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -619,6 +638,9 @@ public class ContributionsFragment
|
||||||
public void showDetail(int position, boolean isWikipediaButtonDisplayed) {
|
public void showDetail(int position, boolean isWikipediaButtonDisplayed) {
|
||||||
if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) {
|
if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) {
|
||||||
mediaDetailPagerFragment = new MediaDetailPagerFragment();
|
mediaDetailPagerFragment = new MediaDetailPagerFragment();
|
||||||
|
if(isUserProfile) {
|
||||||
|
((ProfileActivity)getActivity()).setScroll(false);
|
||||||
|
}
|
||||||
showMediaDetailPagerFragment();
|
showMediaDetailPagerFragment();
|
||||||
}
|
}
|
||||||
mediaDetailPagerFragment.showImage(position, isWikipediaButtonDisplayed);
|
mediaDetailPagerFragment.showImage(position, isWikipediaButtonDisplayed);
|
||||||
|
|
@ -641,7 +663,7 @@ public class ContributionsFragment
|
||||||
|
|
||||||
public boolean backButtonClicked() {
|
public boolean backButtonClicked() {
|
||||||
if (null != mediaDetailPagerFragment && mediaDetailPagerFragment.isVisible()) {
|
if (null != mediaDetailPagerFragment && mediaDetailPagerFragment.isVisible()) {
|
||||||
if (store.getBoolean("displayNearbyCardView", true)) {
|
if (store.getBoolean("displayNearbyCardView", true) && !isUserProfile) {
|
||||||
if (nearbyNotificationCardView.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
if (nearbyNotificationCardView.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
||||||
nearbyNotificationCardView.setVisibility(View.VISIBLE);
|
nearbyNotificationCardView.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
@ -650,9 +672,17 @@ public class ContributionsFragment
|
||||||
}
|
}
|
||||||
removeFragment(mediaDetailPagerFragment);
|
removeFragment(mediaDetailPagerFragment);
|
||||||
showFragment(contributionsListFragment, CONTRIBUTION_LIST_FRAGMENT_TAG, mediaDetailPagerFragment);
|
showFragment(contributionsListFragment, CONTRIBUTION_LIST_FRAGMENT_TAG, mediaDetailPagerFragment);
|
||||||
((BaseActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
if(isUserProfile) {
|
||||||
((MainActivity)getActivity()).showTabs();
|
// Fragment is associated with ProfileActivity
|
||||||
fetchCampaigns();
|
// Enable ParentViewPager Scroll
|
||||||
|
((ProfileActivity)getActivity()).setScroll(true);
|
||||||
|
}else {
|
||||||
|
fetchCampaigns();
|
||||||
|
}
|
||||||
|
if(getActivity() instanceof MainActivity) {
|
||||||
|
// Fragment is associated with MainActivity
|
||||||
|
((MainActivity)getActivity()).showTabs();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,10 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeInserted(int positionStart, int itemCount) {
|
public void onItemRangeInserted(int positionStart, int itemCount) {
|
||||||
super.onItemRangeInserted(positionStart, itemCount);
|
super.onItemRangeInserted(positionStart, itemCount);
|
||||||
|
contributionsSize = adapter.getItemCount();
|
||||||
|
if (callback != null) {
|
||||||
|
callback.notifyDataSetChanged();
|
||||||
|
}
|
||||||
if (itemCount > 0 && positionStart == 0) {
|
if (itemCount > 0 && positionStart == 0) {
|
||||||
if (adapter.getContributionForPosition(positionStart) != null) {
|
if (adapter.getContributionForPosition(positionStart) != null) {
|
||||||
rvContributionsList
|
rvContributionsList
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,6 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
pager.addOnPageChangeListener(this);
|
pager.addOnPageChangeListener(this);
|
||||||
|
|
||||||
adapter = new MediaDetailAdapter(getChildFragmentManager());
|
adapter = new MediaDetailAdapter(getChildFragmentManager());
|
||||||
((BaseActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
|
||||||
|
|
||||||
if (getActivity() != null) {
|
if (getActivity() != null) {
|
||||||
final ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
|
final ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
|
||||||
|
|
@ -112,6 +111,11 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If fragment is associated with ProfileActivity, then hide the tabLayout
|
||||||
|
if (getActivity() instanceof ProfileActivity) {
|
||||||
|
((ProfileActivity)getActivity()).tabLayout.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
pager.setAdapter(adapter);
|
pager.setAdapter(adapter);
|
||||||
|
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ public class NearbyNotificationCardView extends SwipableCardView {
|
||||||
protected void onAttachedToWindow() {
|
protected void onAttachedToWindow() {
|
||||||
super.onAttachedToWindow();
|
super.onAttachedToWindow();
|
||||||
// If you don't setVisibility after getting layout params, then you will se an empty space in place of nearby NotificationCardView
|
// If you don't setVisibility after getting layout params, then you will se an empty space in place of nearby NotificationCardView
|
||||||
if (((MainActivity)getContext()).defaultKvStore.getBoolean("displayNearbyCardView", true) && this.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
if (getContext() instanceof MainActivity && ((MainActivity)getContext()).defaultKvStore.getBoolean("displayNearbyCardView", true) && this.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
||||||
setVisibility(VISIBLE);
|
setVisibility(VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
setVisibility(GONE);
|
setVisibility(GONE);
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,9 @@ import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
import fr.free.nrw.commons.ViewPagerAdapter;
|
import fr.free.nrw.commons.ViewPagerAdapter;
|
||||||
import fr.free.nrw.commons.auth.SessionManager;
|
import fr.free.nrw.commons.auth.SessionManager;
|
||||||
|
import fr.free.nrw.commons.contributions.ContributionsFragment;
|
||||||
import fr.free.nrw.commons.contributions.ContributionsListFragment;
|
import fr.free.nrw.commons.contributions.ContributionsListFragment;
|
||||||
|
import fr.free.nrw.commons.explore.ParentViewPager;
|
||||||
import fr.free.nrw.commons.profile.achievements.AchievementsFragment;
|
import fr.free.nrw.commons.profile.achievements.AchievementsFragment;
|
||||||
import fr.free.nrw.commons.profile.leaderboard.LeaderboardFragment;
|
import fr.free.nrw.commons.profile.leaderboard.LeaderboardFragment;
|
||||||
import fr.free.nrw.commons.theme.BaseActivity;
|
import fr.free.nrw.commons.theme.BaseActivity;
|
||||||
|
|
@ -46,10 +48,10 @@ public class ProfileActivity extends BaseActivity {
|
||||||
private FragmentManager supportFragmentManager;
|
private FragmentManager supportFragmentManager;
|
||||||
|
|
||||||
@BindView(R.id.viewPager)
|
@BindView(R.id.viewPager)
|
||||||
ViewPager viewPager;
|
ParentViewPager viewPager;
|
||||||
|
|
||||||
@BindView(R.id.tab_layout)
|
@BindView(R.id.tab_layout)
|
||||||
TabLayout tabLayout;
|
public TabLayout tabLayout;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SessionManager sessionManager;
|
SessionManager sessionManager;
|
||||||
|
|
@ -64,6 +66,11 @@ public class ProfileActivity extends BaseActivity {
|
||||||
String userName;
|
String userName;
|
||||||
private boolean shouldShowContributions;
|
private boolean shouldShowContributions;
|
||||||
|
|
||||||
|
ContributionsFragment contributionsFragment;
|
||||||
|
|
||||||
|
public void setScroll(boolean canScroll){
|
||||||
|
viewPager.setCanScroll(canScroll);
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void onRestoreInstanceState(final Bundle savedInstanceState) {
|
protected void onRestoreInstanceState(final Bundle savedInstanceState) {
|
||||||
super.onRestoreInstanceState(savedInstanceState);
|
super.onRestoreInstanceState(savedInstanceState);
|
||||||
|
|
@ -137,11 +144,11 @@ public class ProfileActivity extends BaseActivity {
|
||||||
titleList.add(getResources().getString(R.string.leaderboard_tab_title).toUpperCase());
|
titleList.add(getResources().getString(R.string.leaderboard_tab_title).toUpperCase());
|
||||||
|
|
||||||
if (shouldShowContributions) {
|
if (shouldShowContributions) {
|
||||||
ContributionsListFragment contributionsListFragment = new ContributionsListFragment();
|
contributionsFragment = new ContributionsFragment();
|
||||||
Bundle contributionsListBundle = new Bundle();
|
Bundle contributionsListBundle = new Bundle();
|
||||||
contributionsListBundle.putString(KEY_USERNAME, userName);
|
contributionsListBundle.putString(KEY_USERNAME, userName);
|
||||||
contributionsListFragment.setArguments(contributionsListBundle);
|
contributionsFragment.setArguments(contributionsListBundle);
|
||||||
fragmentList.add(contributionsListFragment);
|
fragmentList.add(contributionsFragment);
|
||||||
titleList.add(getString(R.string.contributions_fragment).toUpperCase());
|
titleList.add(getString(R.string.contributions_fragment).toUpperCase());
|
||||||
}
|
}
|
||||||
viewPagerAdapter.setTabData(fragmentList, titleList);
|
viewPagerAdapter.setTabData(fragmentList, titleList);
|
||||||
|
|
@ -232,6 +239,18 @@ public class ProfileActivity extends BaseActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onSaveInstanceState(@NonNull final Bundle outState) {
|
protected void onSaveInstanceState(@NonNull final Bundle outState) {
|
||||||
outState.putString(KEY_USERNAME, userName);
|
outState.putString(KEY_USERNAME, userName);
|
||||||
|
outState.putBoolean(KEY_SHOULD_SHOW_CONTRIBUTIONS, shouldShowContributions);
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBackPressed() {
|
||||||
|
// Checking if MediaDetailPagerFragment is visible, If visible then show ContributionListFragment else close the ProfileActivity
|
||||||
|
if(contributionsFragment != null && contributionsFragment.getMediaDetailPagerFragment() != null && contributionsFragment.getMediaDetailPagerFragment().isVisible()) {
|
||||||
|
contributionsFragment.backButtonClicked();
|
||||||
|
tabLayout.setVisibility(View.VISIBLE);
|
||||||
|
}else {
|
||||||
|
super.onBackPressed();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
app:tabTextColor="?attr/tabTextColor" />
|
app:tabTextColor="?attr/tabTextColor" />
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
<androidx.viewpager.widget.ViewPager
|
<fr.free.nrw.commons.explore.ParentViewPager
|
||||||
android:id="@+id/viewPager"
|
android:id="@+id/viewPager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue