Skip to content

Commit 1a1f915

Browse files
mayank8318iamareebjamal
authored andcommitted
refactor: Move implementations to respective fragments (fossasia#2353)
commentsdialogfragment and onzoomlistener
1 parent 42fb114 commit 1a1f915

File tree

5 files changed

+57
-64
lines changed

5 files changed

+57
-64
lines changed

android/app/src/main/java/org/fossasia/openevent/core/feed/FeedFragment.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
import org.fossasia.openevent.R;
1313
import org.fossasia.openevent.common.ui.base.BaseFragment;
14-
import org.fossasia.openevent.common.ui.image.OnImageZoomListener;
1514
import org.fossasia.openevent.core.feed.facebook.FacebookFeedFragment;
1615
import org.fossasia.openevent.core.feed.twitter.TwitterFeedFragment;
1716

@@ -24,16 +23,9 @@ public class FeedFragment extends BaseFragment {
2423
@BindView(R.id.tabLayout)
2524
protected TabLayout feedTabLayout;
2625

27-
private OpenCommentsDialogListener openCommentsDialogListener;
28-
private OnImageZoomListener onImageZoomListener;
2926

30-
public static FeedFragment getInstance(OpenCommentsDialogListener openCommentsDialogListener,
31-
OnImageZoomListener onImageZoomListener) {
32-
FeedFragment feedFragment = new FeedFragment();
33-
feedFragment.openCommentsDialogListener = openCommentsDialogListener;
34-
feedFragment.onImageZoomListener = onImageZoomListener;
35-
36-
return feedFragment;
27+
public static FeedFragment getInstance() {
28+
return new FeedFragment();
3729
}
3830

3931
@Nullable
@@ -49,8 +41,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
4941

5042
private void setUpViewPager(ViewPager viewPager) {
5143
FeedViewPagerAdapter feedViewPagerAdapter = new FeedViewPagerAdapter(getChildFragmentManager());
52-
feedViewPagerAdapter.addFragment(FacebookFeedFragment.getInstance(openCommentsDialogListener, onImageZoomListener), getString(R.string.facebook));
53-
feedViewPagerAdapter.addFragment(TwitterFeedFragment.getInstance(onImageZoomListener), getString(R.string.twitter));
44+
feedViewPagerAdapter.addFragment(FacebookFeedFragment.getInstance(), getString(R.string.facebook));
45+
feedViewPagerAdapter.addFragment(TwitterFeedFragment.getInstance(), getString(R.string.twitter));
5446
feedViewPagerAdapter.notifyDataSetChanged();
5547

5648
viewPager.setAdapter(feedViewPagerAdapter);

android/app/src/main/java/org/fossasia/openevent/core/feed/facebook/FacebookFeedAdapter.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,10 @@ private void bindViews() {
8686
}
8787
}
8888

89-
public FacebookFeedAdapter(Context context, OpenCommentsDialogListener openCommentsDialogListener, List<FeedItem> feedItems) {
89+
public FacebookFeedAdapter(Context context, List<FeedItem> feedItems) {
9090
super(feedItems);
9191
this.feedItems = feedItems;
9292
this.context = context;
93-
this.openCommentsDialogListener = openCommentsDialogListener;
9493
}
9594

9695
@Override
@@ -172,6 +171,10 @@ private void zoomImage(String imageUri) {
172171
}
173172
}
174173

174+
public void setOpenCommentsDialogListener(OpenCommentsDialogListener openCommentsDialogListener) {
175+
this.openCommentsDialogListener = openCommentsDialogListener;
176+
}
177+
175178
public void removeOpenCommentsDialogListener() {
176179
openCommentsDialogListener = null;
177180
}

android/app/src/main/java/org/fossasia/openevent/core/feed/facebook/FacebookFeedFragment.java

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
import org.fossasia.openevent.common.network.NetworkUtils;
1818
import org.fossasia.openevent.common.ui.Views;
1919
import org.fossasia.openevent.common.ui.image.OnImageZoomListener;
20+
import org.fossasia.openevent.common.ui.image.ZoomableImageUtil;
2021
import org.fossasia.openevent.common.utils.SharedPreferencesUtil;
2122
import org.fossasia.openevent.core.feed.BaseFeedFragment;
2223
import org.fossasia.openevent.core.feed.OpenCommentsDialogListener;
24+
import org.fossasia.openevent.core.feed.facebook.api.CommentItem;
2325
import org.fossasia.openevent.core.feed.facebook.api.FeedItem;
2426

2527
import java.lang.ref.WeakReference;
@@ -32,25 +34,21 @@
3234
import static org.fossasia.openevent.core.auth.AuthUtil.INVALID;
3335
import static org.fossasia.openevent.core.auth.AuthUtil.VALID;
3436

35-
public class FacebookFeedFragment extends BaseFeedFragment {
37+
public class FacebookFeedFragment extends BaseFeedFragment implements OpenCommentsDialogListener, OnImageZoomListener {
3638

3739
private FacebookFeedAdapter facebookFeedAdapter;
3840
private FacebookFeedFragmentViewModel facebookFeedFragmentViewModel;
3941
private List<FeedItem> feedItems;
40-
private OpenCommentsDialogListener openCommentsDialogListener;
41-
private OnImageZoomListener onImageZoomListener;
4242

43-
@BindView(R.id.feed_swipe_refresh) SwipeRefreshLayout swipeRefreshLayout;
44-
@BindView(R.id.feed_recycler_view) RecyclerView feedRecyclerView;
45-
@BindView(R.id.txt_no_posts) TextView noFeedView;
43+
@BindView(R.id.feed_swipe_refresh)
44+
protected SwipeRefreshLayout swipeRefreshLayout;
45+
@BindView(R.id.feed_recycler_view)
46+
protected RecyclerView feedRecyclerView;
47+
@BindView(R.id.txt_no_posts)
48+
protected TextView noFeedView;
4649

47-
public static FacebookFeedFragment getInstance(OpenCommentsDialogListener openCommentsDialogListener,
48-
OnImageZoomListener onImageZoomListener) {
49-
FacebookFeedFragment facebookFeedFragment = new FacebookFeedFragment();
50-
facebookFeedFragment.openCommentsDialogListener = openCommentsDialogListener;
51-
facebookFeedFragment.onImageZoomListener = onImageZoomListener;
52-
53-
return facebookFeedFragment;
50+
public static FacebookFeedFragment getInstance() {
51+
return new FacebookFeedFragment();
5452
}
5553

5654
@Override
@@ -63,8 +61,9 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
6361
facebookFeedFragmentViewModel = ViewModelProviders.of(this).get(FacebookFeedFragmentViewModel.class);
6462
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getContext());
6563
feedRecyclerView.setLayoutManager(mLayoutManager);
66-
facebookFeedAdapter = new FacebookFeedAdapter(getContext(), openCommentsDialogListener, feedItems);
67-
facebookFeedAdapter.setOnImageZoomListener(onImageZoomListener);
64+
facebookFeedAdapter = new FacebookFeedAdapter(getContext(), feedItems);
65+
facebookFeedAdapter.setOpenCommentsDialogListener(this);
66+
facebookFeedAdapter.setOnImageZoomListener(this);
6867
feedRecyclerView.setAdapter(facebookFeedAdapter);
6968

7069
setupProgressBar();
@@ -140,12 +139,10 @@ protected int getLayoutResource() {
140139
}
141140

142141
@Override
143-
public void onStop() {
144-
super.onStop();
145-
if (facebookFeedAdapter != null) {
146-
facebookFeedAdapter.removeOnImageZoomListener();
147-
facebookFeedAdapter.removeOpenCommentsDialogListener();
148-
}
142+
public void onDestroy() {
143+
super.onDestroy();
144+
facebookFeedAdapter.removeOnImageZoomListener();
145+
facebookFeedAdapter.removeOpenCommentsDialogListener();
149146
}
150147

151148
@Override
@@ -162,4 +159,18 @@ protected RecyclerView getRecyclerView() {
162159
protected View getNoFeedView() {
163160
return noFeedView;
164161
}
162+
163+
@Override
164+
public void openCommentsDialog(List<CommentItem> commentItems) {
165+
CommentsDialogFragment newFragment = new CommentsDialogFragment();
166+
Bundle bundle = new Bundle();
167+
bundle.putParcelableArrayList(ConstantStrings.FACEBOOK_COMMENTS, new ArrayList<>(commentItems));
168+
newFragment.setArguments(bundle);
169+
newFragment.show(getChildFragmentManager(), "Comments");
170+
}
171+
172+
@Override
173+
public void onZoom(String imageUri) {
174+
ZoomableImageUtil.showZoomableImageDialogFragment(getChildFragmentManager(), imageUri);
175+
}
165176
}

android/app/src/main/java/org/fossasia/openevent/core/feed/twitter/TwitterFeedFragment.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.fossasia.openevent.common.network.NetworkUtils;
1919
import org.fossasia.openevent.common.ui.Views;
2020
import org.fossasia.openevent.common.ui.image.OnImageZoomListener;
21+
import org.fossasia.openevent.common.ui.image.ZoomableImageUtil;
2122
import org.fossasia.openevent.common.utils.SharedPreferencesUtil;
2223
import org.fossasia.openevent.core.feed.BaseFeedFragment;
2324
import org.fossasia.openevent.core.feed.twitter.api.TwitterFeedItem;
@@ -32,24 +33,21 @@
3233
import static org.fossasia.openevent.core.auth.AuthUtil.INVALID;
3334
import static org.fossasia.openevent.core.auth.AuthUtil.VALID;
3435

35-
public class TwitterFeedFragment extends BaseFeedFragment {
36+
public class TwitterFeedFragment extends BaseFeedFragment implements OnImageZoomListener {
3637

3738
private TwitterFeedAdapter twitterFeedAdapter;
38-
private OnImageZoomListener onImageZoomListener;
3939
private List<TwitterFeedItem> twitterFeedItems;
4040
private TwitterFeedFragmentViewModel twitterFeedFragmentViewModel;
4141

4242
@BindView(R.id.twitter_feed_swipe_refresh)
43-
SwipeRefreshLayout swipeRefreshLayout;
43+
protected SwipeRefreshLayout swipeRefreshLayout;
4444
@BindView(R.id.twitter_feed_recycler_view)
45-
RecyclerView twitterFeedRecyclerView;
45+
protected RecyclerView twitterFeedRecyclerView;
4646
@BindView(R.id.twitter_txt_no_posts)
47-
TextView noFeedView;
47+
protected TextView noFeedView;
4848

49-
public static TwitterFeedFragment getInstance(OnImageZoomListener onImageZoomListener) {
50-
TwitterFeedFragment twitterFeedFragment = new TwitterFeedFragment();
51-
twitterFeedFragment.onImageZoomListener = onImageZoomListener;
52-
return twitterFeedFragment;
49+
public static TwitterFeedFragment getInstance() {
50+
return new TwitterFeedFragment();
5351
}
5452

5553
@Override
@@ -63,7 +61,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
6361
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext());
6462
twitterFeedRecyclerView.setLayoutManager(layoutManager);
6563
twitterFeedAdapter = new TwitterFeedAdapter(getContext(), twitterFeedItems);
66-
twitterFeedAdapter.setOnImageZoomListener(onImageZoomListener);
64+
twitterFeedAdapter.setOnImageZoomListener(this);
6765
twitterFeedRecyclerView.setAdapter(twitterFeedAdapter);
6866

6967
setupProgressBar();
@@ -144,9 +142,7 @@ protected int getLayoutResource() {
144142
@Override
145143
public void onDestroyView() {
146144
super.onDestroyView();
147-
if (twitterFeedAdapter != null) {
148-
twitterFeedAdapter.removeOnImageZoomListener();
149-
}
145+
twitterFeedAdapter.removeOnImageZoomListener();
150146
}
151147

152148
@Override
@@ -163,4 +159,9 @@ protected RecyclerView getRecyclerView() {
163159
protected View getNoFeedView() {
164160
return noFeedView;
165161
}
162+
163+
@Override
164+
public void onZoom(String imageUri) {
165+
ZoomableImageUtil.showZoomableImageDialogFragment(getChildFragmentManager(), imageUri);
166+
}
166167
}

android/app/src/main/java/org/fossasia/openevent/core/main/MainActivity.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
import org.fossasia.openevent.common.ui.DialogFactory;
6666
import org.fossasia.openevent.common.ui.SmoothActionBarDrawerToggle;
6767
import org.fossasia.openevent.common.ui.base.BaseActivity;
68-
import org.fossasia.openevent.common.ui.image.OnImageZoomListener;
6968
import org.fossasia.openevent.common.ui.image.ZoomableImageUtil;
7069
import org.fossasia.openevent.common.utils.CommonTaskLoop;
7170
import org.fossasia.openevent.common.utils.SharedPreferencesUtil;
@@ -76,9 +75,6 @@
7675
import org.fossasia.openevent.core.auth.profile.UserProfileActivity;
7776
import org.fossasia.openevent.core.faqs.FAQFragment;
7877
import org.fossasia.openevent.core.feed.FeedFragment;
79-
import org.fossasia.openevent.core.feed.OpenCommentsDialogListener;
80-
import org.fossasia.openevent.core.feed.facebook.CommentsDialogFragment;
81-
import org.fossasia.openevent.core.feed.facebook.api.CommentItem;
8278
import org.fossasia.openevent.core.feed.facebook.api.FacebookApi;
8379
import org.fossasia.openevent.core.location.LocationsFragment;
8480
import org.fossasia.openevent.core.notifications.NotificationsFragment;
@@ -100,7 +96,6 @@
10096
import java.io.IOException;
10197
import java.io.InputStream;
10298
import java.lang.ref.WeakReference;
103-
import java.util.ArrayList;
10499
import java.util.List;
105100

106101
import butterknife.BindView;
@@ -115,7 +110,7 @@
115110
import io.realm.RealmResults;
116111
import timber.log.Timber;
117112

118-
public class MainActivity extends BaseActivity implements OpenCommentsDialogListener, OnImageZoomListener, AboutFragment.OnMapSelectedListener {
113+
public class MainActivity extends BaseActivity implements AboutFragment.OnMapSelectedListener {
119114

120115
private static final String STATE_FRAGMENT = "stateFragment";
121116
private static final String NAV_ITEM = "navItem";
@@ -532,7 +527,7 @@ private void doMenuAction(int menuItemId) {
532527
replaceFragment(new TracksFragment(), R.string.menu_tracks);
533528
break;
534529
case R.id.nav_feed:
535-
replaceFragment(FeedFragment.getInstance(this, this), R.string.menu_feed);
530+
replaceFragment(FeedFragment.getInstance(), R.string.menu_feed);
536531
break;
537532
case R.id.nav_schedule:
538533
replaceFragment(new ScheduleFragment(), R.string.menu_schedule);
@@ -882,15 +877,6 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
882877
super.onActivityResult(requestCode, resultCode, data);
883878
}
884879

885-
@Override
886-
public void openCommentsDialog(List<CommentItem> commentItems) {
887-
CommentsDialogFragment newFragment = new CommentsDialogFragment();
888-
Bundle bundle = new Bundle();
889-
bundle.putParcelableArrayList(ConstantStrings.FACEBOOK_COMMENTS, new ArrayList<>(commentItems));
890-
newFragment.setArguments(bundle);
891-
newFragment.show(fragmentManager, "Comments");
892-
}
893-
894880
@Override
895881
public void onMapSelected(boolean value) {
896882
//it is used to check if the maps fragment is selected

0 commit comments

Comments
 (0)