mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Return parent fragment instead of parent activity
This commit is contained in:
parent
9707b4310b
commit
94201aa930
1 changed files with 32 additions and 76 deletions
|
|
@ -9,7 +9,6 @@ import android.net.Uri;
|
|||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
|
|
@ -19,6 +18,7 @@ import android.support.v4.content.ContextCompat;
|
|||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v7.widget.ShareActionProvider;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
|
|
@ -35,12 +35,9 @@ import javax.inject.Named;
|
|||
import fr.free.nrw.commons.Media;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.auth.SessionManager;
|
||||
import fr.free.nrw.commons.category.CategoryDetailsActivity;
|
||||
import fr.free.nrw.commons.category.CategoryImagesActivity;
|
||||
import fr.free.nrw.commons.contributions.Contribution;
|
||||
import fr.free.nrw.commons.contributions.ContributionsActivity;
|
||||
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
|
||||
import fr.free.nrw.commons.explore.SearchActivity;
|
||||
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
||||
import fr.free.nrw.commons.utils.ImageUtils;
|
||||
import timber.log.Timber;
|
||||
|
|
@ -65,7 +62,6 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
ViewPager pager;
|
||||
private Boolean editable;
|
||||
private boolean isFeaturedImage;
|
||||
MediaDetailAdapter adapter;
|
||||
|
||||
public MediaDetailPagerFragment() {
|
||||
this(false, false);
|
||||
|
|
@ -81,11 +77,13 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
public View onCreateView(LayoutInflater inflater,
|
||||
ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
Log.d("deneme","onCreateView MediaDetailFragment");
|
||||
View view = inflater.inflate(R.layout.fragment_media_detail_pager, container, false);
|
||||
ButterKnife.bind(this,view);
|
||||
pager.addOnPageChangeListener(this);
|
||||
|
||||
adapter = new MediaDetailAdapter(getChildFragmentManager());
|
||||
final MediaDetailAdapter adapter = new MediaDetailAdapter(getChildFragmentManager());
|
||||
Log.d("deneme","getActivity returns:"+getActivity());
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
final int pageNumber = savedInstanceState.getInt("current-page");
|
||||
|
|
@ -94,12 +92,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
view.postDelayed(() -> {
|
||||
pager.setAdapter(adapter);
|
||||
pager.setCurrentItem(pageNumber, false);
|
||||
|
||||
if(getActivity() == null) {
|
||||
Timber.d("Returning as activity is destroyed!");
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d("deneme","getActivity returns:"+getActivity());
|
||||
getActivity().supportInvalidateOptionsMenu();
|
||||
adapter.notifyDataSetChanged();
|
||||
}, 100);
|
||||
|
|
@ -129,18 +122,11 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if(getActivity() == null) {
|
||||
Timber.d("Returning as activity is destroyed!");
|
||||
return true;
|
||||
}
|
||||
MediaDetailProvider provider = (MediaDetailProvider) getActivity();
|
||||
MediaDetailProvider provider = (MediaDetailProvider) getParentFragment();
|
||||
Media m = provider.getMediaAtPosition(pager.getCurrentItem());
|
||||
switch (item.getItemId()) {
|
||||
case R.id.menu_share_current_image:
|
||||
Intent shareIntent = new Intent(Intent.ACTION_SEND);
|
||||
shareIntent.setType("text/plain");
|
||||
shareIntent.putExtra(Intent.EXTRA_TEXT, m.getDisplayTitle() + " \n" + m.getFilePageTitle().getCanonicalUri());
|
||||
startActivity(Intent.createChooser(shareIntent, "Share image via..."));
|
||||
// Share - intent set in onCreateOptionsMenu, around line 252
|
||||
return true;
|
||||
case R.id.menu_browser_current_image:
|
||||
// View in browser
|
||||
|
|
@ -166,12 +152,12 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
return true;
|
||||
case R.id.menu_retry_current_image:
|
||||
// Retry
|
||||
// TODO: Neslihan open later ((ContributionsActivity) getActivity()).retryUpload(pager.getCurrentItem());
|
||||
((ContributionsActivity) getActivity()).retryUpload(pager.getCurrentItem());
|
||||
getActivity().getSupportFragmentManager().popBackStack();
|
||||
return true;
|
||||
case R.id.menu_cancel_current_image:
|
||||
// todo: delete image
|
||||
// TODO: Neslihan open later ((ContributionsActivity) getActivity()).deleteUpload(pager.getCurrentItem());
|
||||
((ContributionsActivity) getActivity()).deleteUpload(pager.getCurrentItem());
|
||||
getActivity().getSupportFragmentManager().popBackStack();
|
||||
return true;
|
||||
default:
|
||||
|
|
@ -199,13 +185,10 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
* @param m Media file to download
|
||||
*/
|
||||
private void downloadMedia(Media m) {
|
||||
String imageUrl = m.getImageUrl(), fileName = m.getFilename();
|
||||
String imageUrl = m.getImageUrl(),
|
||||
fileName = m.getFilename();
|
||||
|
||||
if (imageUrl == null
|
||||
|| fileName == null
|
||||
|| getContext() == null
|
||||
|| getActivity() == null) {
|
||||
Timber.d("Skipping download media as either imageUrl %s or filename %s activity is null", imageUrl, fileName);
|
||||
if (imageUrl == null || fileName == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -246,11 +229,8 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
menu.clear(); // see http://stackoverflow.com/a/8495697/17865
|
||||
inflater.inflate(R.menu.fragment_image_detail, menu);
|
||||
if (pager != null) {
|
||||
MediaDetailProvider provider = (MediaDetailProvider) getActivity();
|
||||
if(provider == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
//MediaDetailProvider provider = (MediaDetailProvider) getActivity();
|
||||
MediaDetailProvider provider = (MediaDetailProvider) getParentFragment();
|
||||
Media m = provider.getMediaAtPosition(pager.getCurrentItem());
|
||||
if (m != null) {
|
||||
// Enable default set of actions, then re-enable different set of actions only if it is a failed contrib
|
||||
|
|
@ -260,7 +240,19 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
menu.findItem(R.id.menu_share_current_image).setEnabled(true).setVisible(true);
|
||||
menu.findItem(R.id.menu_download_current_image).setEnabled(true).setVisible(true);
|
||||
|
||||
if (m instanceof Contribution ) {
|
||||
// Set ShareActionProvider Intent
|
||||
ShareActionProvider mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menu.findItem(R.id.menu_share_current_image));
|
||||
// On some phones null is returned for some reason:
|
||||
// https://github.com/commons-app/apps-android-commons/issues/413
|
||||
if (mShareActionProvider != null) {
|
||||
Intent shareIntent = new Intent(Intent.ACTION_SEND);
|
||||
shareIntent.setType("text/plain");
|
||||
shareIntent.putExtra(Intent.EXTRA_TEXT,
|
||||
m.getDisplayTitle() + " \n" + m.getFilePageTitle().getCanonicalUri());
|
||||
mShareActionProvider.setShareIntent(shareIntent);
|
||||
}
|
||||
|
||||
if (m instanceof Contribution) {
|
||||
Contribution c = (Contribution) m;
|
||||
switch (c.getState()) {
|
||||
case Contribution.STATE_FAILED:
|
||||
|
|
@ -289,41 +281,13 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
}
|
||||
|
||||
public void showImage(int i) {
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(() -> pager.setCurrentItem(i), 5);
|
||||
}
|
||||
|
||||
/**
|
||||
* The method notify the viewpager that number of items have changed.
|
||||
*/
|
||||
public void notifyDataSetChanged(){
|
||||
adapter.notifyDataSetChanged();
|
||||
Log.d("deneme","pager is:"+pager);
|
||||
pager.setCurrentItem(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrolled(int i, float v, int i2) {
|
||||
if(getActivity() == null) {
|
||||
Timber.d("Returning as activity is destroyed!");
|
||||
return;
|
||||
}
|
||||
if (i+1 >= adapter.getCount()){
|
||||
try{
|
||||
((CategoryImagesActivity) getContext()).requestMoreImages();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
try{
|
||||
((CategoryDetailsActivity) getContext()).requestMoreImages();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
try{
|
||||
((SearchActivity) getContext()).requestMoreImages();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
getActivity().supportInvalidateOptionsMenu();
|
||||
getParentFragment().getActivity().supportInvalidateOptionsMenu();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -357,22 +321,14 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
public Fragment getItem(int i) {
|
||||
if (i == 0) {
|
||||
// See bug https://code.google.com/p/android/issues/detail?id=27526
|
||||
if(getActivity() == null) {
|
||||
Timber.d("Skipping getItem. Returning as activity is destroyed!");
|
||||
return null;
|
||||
}
|
||||
pager.postDelayed(() -> getActivity().supportInvalidateOptionsMenu(), 5);
|
||||
pager.postDelayed(() -> getParentFragment().getActivity().supportInvalidateOptionsMenu(), 5);
|
||||
}
|
||||
return MediaDetailFragment.forMedia(i, editable, isFeaturedImage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if(getActivity() == null) {
|
||||
Timber.d("Skipping getCount. Returning as activity is destroyed!");
|
||||
return 0;
|
||||
}
|
||||
return ((MediaDetailProvider) getActivity()).getTotalMediaCount();
|
||||
return ((MediaDetailProvider) getParentFragment()).getTotalMediaCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue