huyuguo 5 gadi atpakaļ
vecāks
revīzija
aabf9cbc7a

+ 32 - 3
app/src/main/java/com/electric/chargingpile/activity/ChatContentListActivity.java

@ -32,6 +32,8 @@ import com.electric.chargingpile.adapter.ChatPhotoFragmentPagerAdapter;
32 32
import com.electric.chargingpile.application.MainApplication;
33 33
import com.electric.chargingpile.data.ChatBeanLab;
34 34
import com.electric.chargingpile.data.ChatRecommendBean;
35
import com.electric.chargingpile.data.TopicDetailBeanLab;
36
import com.electric.chargingpile.data.UserPageBeanLab;
35 37
import com.electric.chargingpile.fragment.ChatPhotoFragment;
36 38
import com.electric.chargingpile.iview.ChatVerticalViewPager;
37 39
import com.electric.chargingpile.manager.ProfileManager;
@ -65,7 +67,11 @@ public class ChatContentListActivity extends AppCompatActivity {
65 67
    private static final String TAG = "ChatContentListActivity";
66 68
67 69
    public static final int REQUEST_CODE_CHAT_HOME = 1000; // 聊聊首页点击视频或图文cell
70
    public static final int REQUEST_CODE_TOPIC_DETAIL = 1001; // 聊聊首页点击视频或图文cell
71
    public static final int REQUEST_CODE_USER_PAGE = 1002; // 聊聊首页点击视频或图文cell
68 72
    public static final String FROM_CHAT_HOME = "from_chat_home";
73
    public static final String FROM_TOPIC_DETAIL = "from_topic_detail";
74
    public static final String FROM_USER_PAGE = "from_user_page";
69 75
    public String from;
70 76
    private int index; // 当前显示cell的索引
71 77
    private static int screenWidth;
@ -163,7 +169,12 @@ public class ChatContentListActivity extends AppCompatActivity {
163 169
        ChatRecommendBean bean = null;
164 170
        if (from.equals(FROM_CHAT_HOME)) {
165 171
            bean = ChatBeanLab.get(ChatContentListActivity.this).beansExceptTopic().get(position);
172
        } else if (from.equals(FROM_TOPIC_DETAIL)) {
173
            bean = TopicDetailBeanLab.get(ChatContentListActivity.this).beans().get(position);
174
        } else {
175
            bean = UserPageBeanLab.get(ChatContentListActivity.this).beans().get(position);
166 176
        }
177
167 178
        if (bean == null) {
168 179
            return;
169 180
        }
@ -223,7 +234,14 @@ public class ChatContentListActivity extends AppCompatActivity {
223 234
224 235
        @Override
225 236
        public int getCount() {
226
            return ChatBeanLab.get(ChatContentListActivity.this).beansExceptTopic().size();
237
            if (from.equals(FROM_CHAT_HOME)) {
238
                return ChatBeanLab.get(ChatContentListActivity.this).beansExceptTopic().size();
239
            } else if (from.equals(FROM_TOPIC_DETAIL)) {
240
                return TopicDetailBeanLab.get(ChatContentListActivity.this).beans().size();
241
            } else {
242
                return UserPageBeanLab.get(ChatContentListActivity.this).beans().size();
243
            }
244
227 245
        }
228 246
    }
229 247
@ -280,6 +298,10 @@ public class ChatContentListActivity extends AppCompatActivity {
280 298
            String from = getArguments().getString(ARG_FROM, "");
281 299
            if (from.equals(FROM_CHAT_HOME)) {
282 300
                bean = ChatBeanLab.get(getContext()).beansExceptTopic().get(index);
301
            } else if (from.equals(FROM_TOPIC_DETAIL)) {
302
                bean = TopicDetailBeanLab.get(getContext()).beans().get(index);
303
            } else {
304
                bean = UserPageBeanLab.get(getContext()).beans().get(index);
283 305
            }
284 306
285 307
            if (bean != null) {
@ -618,8 +640,15 @@ public class ChatContentListActivity extends AppCompatActivity {
618 640
619 641
            chatPhotoFragments = new ArrayList<>();
620 642
            for (String url : bean.imgUrls) {
621
                ChatPhotoFragment fragment = ChatPhotoFragment.newInstance(url);
622
                chatPhotoFragments.add(fragment);
643
//                url = "http://cdn-fs.touchev.com/d/file/liaoliao/img/2019/6/12/2019061630959282895829A-3CD3-4A25-8D6D-C18D1D0240DB000.jpeg!w480";
644
                if (url.endsWith("!w480")) {
645
                    ChatPhotoFragment fragment = ChatPhotoFragment.newInstance(url.substring(0, url.length() - 5));
646
                    chatPhotoFragments.add(fragment);
647
                } else {
648
                    ChatPhotoFragment fragment = ChatPhotoFragment.newInstance(url);
649
                    chatPhotoFragments.add(fragment);
650
                }
651
623 652
            }
624 653
625 654
            chatPhotoFragmentPagerAdapter = new ChatPhotoFragmentPagerAdapter(getChildFragmentManager(), chatPhotoFragments);

+ 4 - 2
app/src/main/java/com/electric/chargingpile/activity/TopicDetailActivity.java

@ -139,8 +139,10 @@ public class TopicDetailActivity extends AppCompatActivity implements View.OnCli
139 139
        topicDetailAdapter.setOnRecyclerItemClickListener(new RecyclerItemTypeClickListener() {
140 140
            @Override
141 141
            public void onItemClickListener(int position, int index) {
142
                if (position == 0 && index == 1) { // 最新发布 最后回复 最热
143
                }
142
                Intent intent =  new Intent(TopicDetailActivity.this, ChatContentListActivity.class);
143
                intent.putExtra("from", ChatContentListActivity.FROM_TOPIC_DETAIL);
144
                intent.putExtra("index", index);
145
                startActivityForResult(intent, ChatContentListActivity.REQUEST_CODE_TOPIC_DETAIL);
144 146
            }
145 147
        });
146 148

+ 11 - 0
app/src/main/java/com/electric/chargingpile/activity/UserPageActivity.java

@ -22,6 +22,7 @@ import com.electric.chargingpile.adapter.UserPageAdapter;
22 22
import com.electric.chargingpile.application.MainApplication;
23 23
import com.electric.chargingpile.data.UserHomePageBean;
24 24
import com.electric.chargingpile.data.UserPageBeanLab;
25
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
25 26
import com.electric.chargingpile.util.BarColorUtil;
26 27
import com.electric.chargingpile.util.CommonParams;
27 28
import com.electric.chargingpile.util.JsonUtils;
@ -138,6 +139,16 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
138 139
        recyclerView.setAdapter(userPageAdapter);
139 140
        recyclerView.addItemDecoration(new TopicDetailAdapter.ContentViewDecoration());
140 141
142
        userPageAdapter.setOnRecyclerItemClickListener(new RecyclerItemTypeClickListener() {
143
            @Override
144
            public void onItemClickListener(int position, int index) {
145
                Intent intent = new Intent(UserPageActivity.this, ChatContentListActivity.class);
146
                intent.putExtra("from", ChatContentListActivity.FROM_USER_PAGE);
147
                intent.putExtra("index", index);
148
                startActivityForResult(intent, ChatContentListActivity.REQUEST_CODE_USER_PAGE);
149
            }
150
        });
151
141 152
    }
142 153
143 154
    private void initListener() {

+ 1 - 1
app/src/main/java/com/electric/chargingpile/adapter/ChatPhotoFragmentPagerAdapter.java

@ -12,7 +12,7 @@ import com.electric.chargingpile.fragment.ChatPhotoFragment;
12 12
import java.util.ArrayList;
13 13
import java.util.List;
14 14
15
public class ChatPhotoFragmentPagerAdapter extends FragmentStatePagerAdapter {
15
public class ChatPhotoFragmentPagerAdapter extends FragmentPagerAdapter {
16 16
    private List<ChatPhotoFragment> fragments = new ArrayList<>();
17 17
18 18
    public ChatPhotoFragmentPagerAdapter(FragmentManager fm, List<ChatPhotoFragment> fragments) {

+ 8 - 0
app/src/main/java/com/electric/chargingpile/adapter/TopicDetailAdapter.java

@ -240,6 +240,14 @@ public class TopicDetailAdapter extends RecyclerView.Adapter<IViewHolder> {
240 240
        } else {
241 241
            contentViewHolder.likeNum.setVisibility(View.GONE);
242 242
        }
243
        contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
244
            @Override
245
            public void onClick(View view) {
246
                if (onRecyclerItemClickListener != null) {
247
                    onRecyclerItemClickListener.onItemClickListener(position, 1);
248
                }
249
            }
250
        });
243 251
    }
244 252
245 253
    /**

+ 15 - 0
app/src/main/java/com/electric/chargingpile/adapter/UserPageAdapter.java

@ -17,6 +17,7 @@ import com.electric.chargingpile.application.MainApplication;
17 17
import com.electric.chargingpile.data.ChatRecommendBean;
18 18
import com.electric.chargingpile.data.TopicDetailBeanLab;
19 19
import com.electric.chargingpile.data.UserPageBeanLab;
20
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
20 21
import com.electric.chargingpile.util.CircleTransform;
21 22
import com.electric.chargingpile.util.CommonParams;
22 23
import com.electric.chargingpile.util.DensityUtil;
@ -46,6 +47,7 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
46 47
    private final int itemWidth;
47 48
    private final UserPageBeanLab beanLab;
48 49
    private boolean showFooter = false;
50
    private RecyclerItemTypeClickListener onRecyclerItemClickListener;
49 51
50 52
    public UserPageAdapter(Context context, Activity activity) {
51 53
        this.context = context;
@ -157,6 +159,15 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
157 159
        } else {
158 160
            contentViewHolder.likeNum.setVisibility(View.GONE);
159 161
        }
162
163
        contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
164
            @Override
165
            public void onClick(View view) {
166
                if (onRecyclerItemClickListener != null) {
167
                    onRecyclerItemClickListener.onItemClickListener(position, 1);
168
                }
169
            }
170
        });
160 171
    }
161 172
162 173
    private void bindFooterViewHolder(IViewHolder viewHolder, int position) {
@ -219,4 +230,8 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
219 230
        this.showFooter = showFooter;
220 231
        notifyItemRangeChanged(getItemCount() - 1, 1);
221 232
    }
233
234
    public void setOnRecyclerItemClickListener(RecyclerItemTypeClickListener onRecyclerItemClickListener) {
235
        this.onRecyclerItemClickListener = onRecyclerItemClickListener;
236
    }
222 237
}

+ 45 - 23
app/src/main/java/com/electric/chargingpile/fragment/ChatPhotoFragment.java

@ -12,12 +12,17 @@ import android.view.ViewGroup;
12 12
import android.widget.ImageView;
13 13
14 14
import com.electric.chargingpile.R;
15
import com.electric.chargingpile.util.CircleTransform;
16
import com.electric.chargingpile.util.ImageDisplayUtils;
15 17
import com.github.chrisbanes.photoview.PhotoView;
18
import com.squareup.picasso.Picasso;
16 19
17 20
public class ChatPhotoFragment extends Fragment {
18 21
    private static final String TAG = "ChatPhotoFragment";
19 22
    private static final String ARG_URL = "url";
20 23
    private View rootView;
24
    private String url;
25
    private PhotoView photoView;
21 26
22 27
    public static ChatPhotoFragment newInstance(String url) {
23 28
        ChatPhotoFragment fragment = new ChatPhotoFragment();
@ -33,7 +38,7 @@ public class ChatPhotoFragment extends Fragment {
33 38
    @Nullable
34 39
    @Override
35 40
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
36
        String url = getArguments().getString(ARG_URL);
41
        url = getArguments().getString(ARG_URL);
37 42
        if (rootView != null) {
38 43
            ViewGroup parent = (ViewGroup)rootView.getParent();
39 44
            if (parent!=null) {
@ -46,30 +51,47 @@ public class ChatPhotoFragment extends Fragment {
46 51
        return rootView;
47 52
    }
48 53
49
    private void initView(View rootView, String url) {
50
        final PhotoView photoView = rootView.findViewById(R.id.photoView);
51
        photoView.setImageResource(R.drawable.bg_guide_one);
52
//        photoView.setScaleType(ImageView.ScaleType.FIT_XY);
53
        photoView.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
54
            @Override
55
            public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
56
                return false;
57
            }
54
    @Override
55
    public void onResume() {
56
        super.onResume();
57
    }
58 58
59
            @Override
60
            public boolean onDoubleTap(MotionEvent motionEvent) {
61
                if (photoView.getScaleType() == ImageView.ScaleType.FIT_CENTER) {
62
                    photoView.setScaleType(ImageView.ScaleType.FIT_START);
63
                }
64
                Log.d(TAG, "onDoubleTap: " + photoView.getScaleType());
65
                return false;
66
            }
59
    @Override
60
    public void onPause() {
61
        super.onPause();
62
    }
67 63
68
            @Override
69
            public boolean onDoubleTapEvent(MotionEvent motionEvent) {
70 64
71
                return false;
72
            }
73
        });
65
    private void initView(View rootView, String url) {
66
        photoView = rootView.findViewById(R.id.photoView);
67
//        ImageDisplayUtils.dispalyImg(getContext(), url, photoView);
68
69
70
        Picasso.with(getContext())
71
                .load(url)
72
                .placeholder(R.drawable.icon_face2_0)
73
                .error(R.drawable.icon_face2_0)
74
                .into(photoView);
75
//        photoView.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
76
//            @Override
77
//            public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
78
//                return false;
79
//            }
80
//
81
//            @Override
82
//            public boolean onDoubleTap(MotionEvent motionEvent) {
83
//                if (photoView.getScaleType() == ImageView.ScaleType.FIT_CENTER) {
84
//                    photoView.setScaleType(ImageView.ScaleType.FIT_START);
85
//                }
86
//                Log.d(TAG, "onDoubleTap: " + photoView.getScaleType());
87
//                return false;
88
//            }
89
//
90
//            @Override
91
//            public boolean onDoubleTapEvent(MotionEvent motionEvent) {
92
//
93
//                return false;
94
//            }
95
//        });
74 96
    }
75 97
}

+ 2 - 2
app/src/main/res/layout/fragment_chat_content_pictures.xml

@ -4,7 +4,7 @@
4 4
    xmlns:tools="http://schemas.android.com/tools"
5 5
    android:layout_width="match_parent"
6 6
    android:layout_height="match_parent"
7
    android:background="#990545">
7
    android:background="#424242">
8 8
9 9
    <android.support.v4.view.ViewPager
10 10
        android:id="@+id/photoPager"
@ -14,7 +14,7 @@
14 14
        app:layout_constraintLeft_toLeftOf="parent"
15 15
        app:layout_constraintRight_toRightOf="parent"
16 16
        app:layout_constraintTop_toBottomOf="@+id/navBar"
17
        android:background="#66bd00"></android.support.v4.view.ViewPager>
17
        tools:background="#66bd00"></android.support.v4.view.ViewPager>
18 18
19 19
    <!--<include layout="@layout/fragment_chat_content_common" />-->
20 20
    <android.support.constraint.ConstraintLayout

+ 22 - 5
app/src/main/res/layout/fragment_chat_photo.xml

@ -1,13 +1,30 @@
1 1
<?xml version="1.0" encoding="utf-8"?>
2
<android.support.constraint.ConstraintLayout
3
    xmlns:android="http://schemas.android.com/apk/res/android"
2
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
4 3
    xmlns:app="http://schemas.android.com/apk/res-auto"
5 4
    xmlns:tools="http://schemas.android.com/tools"
6 5
    android:layout_width="match_parent"
7 6
    android:layout_height="match_parent">
8 7
9 8
    <com.github.chrisbanes.photoview.PhotoView
10
        android:id="@+id/photoView"
11
        android:layout_width="match_parent"
12
        android:layout_height="match_parent" />
9
    android:id="@+id/photoView"
10
    android:layout_width="match_parent"
11
    android:layout_height="wrap_content"
12
    android:adjustViewBounds="true"
13
    android:scaleType="fitXY"
14
    app:layout_constraintBottom_toBottomOf="parent"
15
    app:layout_constraintLeft_toLeftOf="parent"
16
    app:layout_constraintRight_toRightOf="parent"
17
    app:layout_constraintTop_toTopOf="parent" />
18
19
    <!--<ImageView-->
20
        <!--android:id="@+id/photoView"-->
21
        <!--android:layout_width="match_parent"-->
22
        <!--android:layout_height="wrap_content"-->
23
        <!--android:scaleType="fitXY"-->
24
        <!--android:adjustViewBounds="true"-->
25
        <!--android:src="@drawable/bg_guide_two"-->
26
        <!--app:layout_constraintBottom_toBottomOf="parent"-->
27
        <!--app:layout_constraintLeft_toLeftOf="parent"-->
28
        <!--app:layout_constraintRight_toRightOf="parent"-->
29
        <!--app:layout_constraintTop_toTopOf="parent" />-->
13 30
</android.support.constraint.ConstraintLayout>