Create variables and methods to reuse and create Media Detils Fragment and Contributions List Fragment which will be inside Contribution Fragment

This commit is contained in:
neslihanturan 2018-09-07 18:21:15 +03:00
parent d59a258b91
commit 722f1ae915
2 changed files with 60 additions and 7 deletions

View file

@ -7,6 +7,7 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.view.View;
import javax.inject.Inject; import javax.inject.Inject;
@ -134,6 +135,18 @@ public class ContributionsActivity extends AuthenticatedActivity {
}); });
} }
public void hideTabs() {
if (tabLayout != null) {
tabLayout.setVisibility(View.GONE);
}
}
public void showTabs() {
if (tabLayout != null) {
tabLayout.setVisibility(View.VISIBLE);
}
}
@Override @Override
protected void onAuthFailure() { protected void onAuthFailure() {

View file

@ -11,6 +11,7 @@ import android.database.DataSetObserver;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -58,6 +59,11 @@ public class ContributionsFragment
public TextView numberOfUploads; public TextView numberOfUploads;
public ProgressBar numberOfUploadsProgressBar; public ProgressBar numberOfUploadsProgressBar;
private ContributionsListFragment contributionsListFragment;
private MediaDetailPagerFragment mediaDetailPagerFragment;
public static final String CONTRIBUTION_LIST_FRAGMENT_TAG = "ContributionListFragmentTag";
public static final String MEDIA_DETAIL_PAGER_FRAGMENT_TAG = "MediaDetailFragmentTag";
@Nullable @Nullable
@Override @Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -68,6 +74,18 @@ public class ContributionsFragment
numberOfUploadsProgressBar.setVisibility(View.VISIBLE); numberOfUploadsProgressBar.setVisibility(View.VISIBLE);
numberOfUploadsProgressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getActivity(), R.color.white), PorterDuff.Mode.SRC_IN ); numberOfUploadsProgressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getActivity(), R.color.white), PorterDuff.Mode.SRC_IN );
if (savedInstanceState != null) {
mediaDetailPagerFragment = (MediaDetailPagerFragment)getChildFragmentManager().findFragmentByTag(MEDIA_DETAIL_PAGER_FRAGMENT_TAG);
contributionsListFragment = (ContributionsListFragment) getChildFragmentManager().findFragmentByTag(CONTRIBUTION_LIST_FRAGMENT_TAG);
//getSupportLoaderManager().initLoader(0, null, this);
if (savedInstanceState.getBoolean("mediaDetailsVisible")) {
setMediaDetailPagerFragment();
} else {
setContributionsListFragment();
}
} else {
setContributionsListFragment();
}
if(!BuildConfig.FLAVOR.equalsIgnoreCase("beta")){ if(!BuildConfig.FLAVOR.equalsIgnoreCase("beta")){
setUploadCount(); setUploadCount();
@ -86,7 +104,19 @@ public class ContributionsFragment
* Creates new one if null. * Creates new one if null.
*/ */
public void setContributionsListFragment() { public void setContributionsListFragment() {
// show tabs on contribution list is visible
((ContributionsActivity)getActivity()).showTabs();
// Create if null
if (getContributionsListFragment() == null) {
contributionsListFragment = new ContributionsListFragment();
}
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
// When this container fragment is created, we fill it with our ContributionsListFragment
transaction.replace(R.id.root_frame, contributionsListFragment, CONTRIBUTION_LIST_FRAGMENT_TAG);
transaction.addToBackStack(CONTRIBUTION_LIST_FRAGMENT_TAG);
transaction.commit();
getChildFragmentManager().executePendingTransactions();
} }
/** /**
@ -94,15 +124,28 @@ public class ContributionsFragment
* Creates new one if null. * Creates new one if null.
*/ */
public void setMediaDetailPagerFragment() { public void setMediaDetailPagerFragment() {
// hide tabs on media detail view is visible
((ContributionsActivity)getActivity()).hideTabs();
// Create if null
if (getMediaDetailPagerFragment() == null) {
mediaDetailPagerFragment = new MediaDetailPagerFragment();
}
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
// When this container fragment is created, we fill it with our MediaDetailPagerFragment
//transaction.addToBackStack(null);
transaction.add(R.id.root_frame, mediaDetailPagerFragment, MEDIA_DETAIL_PAGER_FRAGMENT_TAG);
transaction.addToBackStack(MEDIA_DETAIL_PAGER_FRAGMENT_TAG);
transaction.commit();
getChildFragmentManager().executePendingTransactions();
} }
/** /**
* Just getter method of ContributionsListFragment child of ContributionsFragment * Just getter method of ContributionsListFragment child of ContributionsFragment
* @return contributionsListFragment, if any created * @return contributionsListFragment, if any created
*/ */
public NewContributionsListFragment getContributionsListFragment() { public ContributionsListFragment getContributionsListFragment() {
return null; return contributionsListFragment;
} }
/** /**
@ -110,12 +153,9 @@ public class ContributionsFragment
* @return mediaDetailsFragment, if any created * @return mediaDetailsFragment, if any created
*/ */
public MediaDetailPagerFragment getMediaDetailPagerFragment() { public MediaDetailPagerFragment getMediaDetailPagerFragment() {
return null; return mediaDetailPagerFragment;
} }
@Override @Override
public void onBackStackChanged() { public void onBackStackChanged() {