Ver Código Fonte

代码优化

huyuguo 5 anos atrás
pai
commit
aabf9cbc7a

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

32
import com.electric.chargingpile.application.MainApplication;
32
import com.electric.chargingpile.application.MainApplication;
33
import com.electric.chargingpile.data.ChatBeanLab;
33
import com.electric.chargingpile.data.ChatBeanLab;
34
import com.electric.chargingpile.data.ChatRecommendBean;
34
import com.electric.chargingpile.data.ChatRecommendBean;
35
import com.electric.chargingpile.data.TopicDetailBeanLab;
36
import com.electric.chargingpile.data.UserPageBeanLab;
35
import com.electric.chargingpile.fragment.ChatPhotoFragment;
37
import com.electric.chargingpile.fragment.ChatPhotoFragment;
36
import com.electric.chargingpile.iview.ChatVerticalViewPager;
38
import com.electric.chargingpile.iview.ChatVerticalViewPager;
37
import com.electric.chargingpile.manager.ProfileManager;
39
import com.electric.chargingpile.manager.ProfileManager;
65
    private static final String TAG = "ChatContentListActivity";
67
    private static final String TAG = "ChatContentListActivity";
66
68
67
    public static final int REQUEST_CODE_CHAT_HOME = 1000; // 聊聊首页点击视频或图文cell
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
    public static final String FROM_CHAT_HOME = "from_chat_home";
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
    public String from;
75
    public String from;
70
    private int index; // 当前显示cell的索引
76
    private int index; // 当前显示cell的索引
71
    private static int screenWidth;
77
    private static int screenWidth;
163
        ChatRecommendBean bean = null;
169
        ChatRecommendBean bean = null;
164
        if (from.equals(FROM_CHAT_HOME)) {
170
        if (from.equals(FROM_CHAT_HOME)) {
165
            bean = ChatBeanLab.get(ChatContentListActivity.this).beansExceptTopic().get(position);
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
        if (bean == null) {
178
        if (bean == null) {
168
            return;
179
            return;
169
        }
180
        }
223
234
224
        @Override
235
        @Override
225
        public int getCount() {
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
            String from = getArguments().getString(ARG_FROM, "");
298
            String from = getArguments().getString(ARG_FROM, "");
281
            if (from.equals(FROM_CHAT_HOME)) {
299
            if (from.equals(FROM_CHAT_HOME)) {
282
                bean = ChatBeanLab.get(getContext()).beansExceptTopic().get(index);
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
            if (bean != null) {
307
            if (bean != null) {
618
640
619
            chatPhotoFragments = new ArrayList<>();
641
            chatPhotoFragments = new ArrayList<>();
620
            for (String url : bean.imgUrls) {
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
            chatPhotoFragmentPagerAdapter = new ChatPhotoFragmentPagerAdapter(getChildFragmentManager(), chatPhotoFragments);
654
            chatPhotoFragmentPagerAdapter = new ChatPhotoFragmentPagerAdapter(getChildFragmentManager(), chatPhotoFragments);

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

139
        topicDetailAdapter.setOnRecyclerItemClickListener(new RecyclerItemTypeClickListener() {
139
        topicDetailAdapter.setOnRecyclerItemClickListener(new RecyclerItemTypeClickListener() {
140
            @Override
140
            @Override
141
            public void onItemClickListener(int position, int index) {
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
import com.electric.chargingpile.application.MainApplication;
22
import com.electric.chargingpile.application.MainApplication;
23
import com.electric.chargingpile.data.UserHomePageBean;
23
import com.electric.chargingpile.data.UserHomePageBean;
24
import com.electric.chargingpile.data.UserPageBeanLab;
24
import com.electric.chargingpile.data.UserPageBeanLab;
25
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
25
import com.electric.chargingpile.util.BarColorUtil;
26
import com.electric.chargingpile.util.BarColorUtil;
26
import com.electric.chargingpile.util.CommonParams;
27
import com.electric.chargingpile.util.CommonParams;
27
import com.electric.chargingpile.util.JsonUtils;
28
import com.electric.chargingpile.util.JsonUtils;
138
        recyclerView.setAdapter(userPageAdapter);
139
        recyclerView.setAdapter(userPageAdapter);
139
        recyclerView.addItemDecoration(new TopicDetailAdapter.ContentViewDecoration());
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
    private void initListener() {
154
    private void initListener() {

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

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

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

240
        } else {
240
        } else {
241
            contentViewHolder.likeNum.setVisibility(View.GONE);
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
import com.electric.chargingpile.data.ChatRecommendBean;
17
import com.electric.chargingpile.data.ChatRecommendBean;
18
import com.electric.chargingpile.data.TopicDetailBeanLab;
18
import com.electric.chargingpile.data.TopicDetailBeanLab;
19
import com.electric.chargingpile.data.UserPageBeanLab;
19
import com.electric.chargingpile.data.UserPageBeanLab;
20
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
20
import com.electric.chargingpile.util.CircleTransform;
21
import com.electric.chargingpile.util.CircleTransform;
21
import com.electric.chargingpile.util.CommonParams;
22
import com.electric.chargingpile.util.CommonParams;
22
import com.electric.chargingpile.util.DensityUtil;
23
import com.electric.chargingpile.util.DensityUtil;
46
    private final int itemWidth;
47
    private final int itemWidth;
47
    private final UserPageBeanLab beanLab;
48
    private final UserPageBeanLab beanLab;
48
    private boolean showFooter = false;
49
    private boolean showFooter = false;
50
    private RecyclerItemTypeClickListener onRecyclerItemClickListener;
49
51
50
    public UserPageAdapter(Context context, Activity activity) {
52
    public UserPageAdapter(Context context, Activity activity) {
51
        this.context = context;
53
        this.context = context;
157
        } else {
159
        } else {
158
            contentViewHolder.likeNum.setVisibility(View.GONE);
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
    private void bindFooterViewHolder(IViewHolder viewHolder, int position) {
173
    private void bindFooterViewHolder(IViewHolder viewHolder, int position) {
219
        this.showFooter = showFooter;
230
        this.showFooter = showFooter;
220
        notifyItemRangeChanged(getItemCount() - 1, 1);
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
import android.widget.ImageView;
12
import android.widget.ImageView;
13
13
14
import com.electric.chargingpile.R;
14
import com.electric.chargingpile.R;
15
import com.electric.chargingpile.util.CircleTransform;
16
import com.electric.chargingpile.util.ImageDisplayUtils;
15
import com.github.chrisbanes.photoview.PhotoView;
17
import com.github.chrisbanes.photoview.PhotoView;
18
import com.squareup.picasso.Picasso;
16
19
17
public class ChatPhotoFragment extends Fragment {
20
public class ChatPhotoFragment extends Fragment {
18
    private static final String TAG = "ChatPhotoFragment";
21
    private static final String TAG = "ChatPhotoFragment";
19
    private static final String ARG_URL = "url";
22
    private static final String ARG_URL = "url";
20
    private View rootView;
23
    private View rootView;
24
    private String url;
25
    private PhotoView photoView;
21
26
22
    public static ChatPhotoFragment newInstance(String url) {
27
    public static ChatPhotoFragment newInstance(String url) {
23
        ChatPhotoFragment fragment = new ChatPhotoFragment();
28
        ChatPhotoFragment fragment = new ChatPhotoFragment();
33
    @Nullable
38
    @Nullable
34
    @Override
39
    @Override
35
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
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
        if (rootView != null) {
42
        if (rootView != null) {
38
            ViewGroup parent = (ViewGroup)rootView.getParent();
43
            ViewGroup parent = (ViewGroup)rootView.getParent();
39
            if (parent!=null) {
44
            if (parent!=null) {
46
        return rootView;
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
    xmlns:tools="http://schemas.android.com/tools"
4
    xmlns:tools="http://schemas.android.com/tools"
5
    android:layout_width="match_parent"
5
    android:layout_width="match_parent"
6
    android:layout_height="match_parent"
6
    android:layout_height="match_parent"
7
    android:background="#990545">
7
    android:background="#424242">
8
8
9
    <android.support.v4.view.ViewPager
9
    <android.support.v4.view.ViewPager
10
        android:id="@+id/photoPager"
10
        android:id="@+id/photoPager"
14
        app:layout_constraintLeft_toLeftOf="parent"
14
        app:layout_constraintLeft_toLeftOf="parent"
15
        app:layout_constraintRight_toRightOf="parent"
15
        app:layout_constraintRight_toRightOf="parent"
16
        app:layout_constraintTop_toBottomOf="@+id/navBar"
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
    <!--<include layout="@layout/fragment_chat_content_common" />-->
19
    <!--<include layout="@layout/fragment_chat_content_common" />-->
20
    <android.support.constraint.ConstraintLayout
20
    <android.support.constraint.ConstraintLayout

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

1
<?xml version="1.0" encoding="utf-8"?>
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
    xmlns:app="http://schemas.android.com/apk/res-auto"
3
    xmlns:app="http://schemas.android.com/apk/res-auto"
5
    xmlns:tools="http://schemas.android.com/tools"
4
    xmlns:tools="http://schemas.android.com/tools"
6
    android:layout_width="match_parent"
5
    android:layout_width="match_parent"
7
    android:layout_height="match_parent">
6
    android:layout_height="match_parent">
8
7
9
    <com.github.chrisbanes.photoview.PhotoView
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
</android.support.constraint.ConstraintLayout>
30
</android.support.constraint.ConstraintLayout>