1145873331@qq.com 6 anni fa
parent
commit
ee4596d734

+ 1 - 1
app/build.gradle

@ -221,7 +221,7 @@ dependencies {
221 221
//    compile files('libs/badgeview.jar')
222 222
    compile files('libs/mframework.jar')
223 223
    compile files('libs/picasso-2.5.2.jar')
224
    compile files('libs/httpmime-4.3.5.jar')
224
//    compile files('libs/httpmime-4.3.5.jar')
225 225
    compile project(':autolayout')
226 226
    compile files('libs/universal-image-loader-1.9.1.jar')
227 227
    compile files('libs/bugly_1.2.9_release.jar')

+ 4 - 1
app/src/main/AndroidManifest.xml

@ -993,8 +993,11 @@
993 993
        <activity
994 994
            android:name=".activity.PublishTopicActivity"
995 995
            android:screenOrientation="portrait"
996
            android:windowSoftInputMode="stateVisible|adjustResize" />
997
        <activity
998
            android:name=".activity.TopicActivity"
999
            android:screenOrientation="portrait"
996 1000
            android:windowSoftInputMode="adjustPan" />
997
        <activity android:name=".activity.TopicActivity" />
998 1001
    </application>
999 1002
1000 1003
</manifest>

+ 0 - 1
app/src/main/java/com/electric/chargingpile/activity/LoginActivity.java

@ -42,7 +42,6 @@ import com.zhy.http.okhttp.callback.StringCallback;
42 42
import org.json.JSONException;
43 43
import org.json.JSONObject;
44 44
45
import java.io.IOException;
46 45
import java.net.URLEncoder;
47 46
48 47
import okhttp3.Call;

+ 0 - 4
app/src/main/java/com/electric/chargingpile/activity/MainScanActivity.java

@ -45,19 +45,15 @@ import com.electric.chargingpile.view.OperatorDialog;
45 45
import com.electric.chargingpile.view.WaveView;
46 46
import com.google.gson.Gson;
47 47
import com.google.gson.reflect.TypeToken;
48
import com.tencent.bugly.crashreport.BuglyLog;
49 48
import com.tencent.bugly.crashreport.CrashReport;
50 49
import com.umeng.analytics.MobclickAgent;
51 50
import com.zhy.http.okhttp.OkHttpUtils;
52 51
import com.zhy.http.okhttp.callback.StringCallback;
53 52
54
import java.io.IOException;
55 53
import java.net.URLEncoder;
56 54
import java.text.SimpleDateFormat;
57 55
import java.util.ArrayList;
58
import java.util.HashMap;
59 56
import java.util.List;
60
import java.util.Map;
61 57
import java.util.TimeZone;
62 58
import java.util.Timer;
63 59
import java.util.TimerTask;

+ 54 - 35
app/src/main/java/com/electric/chargingpile/activity/PublishTopicActivity.java

@ -12,6 +12,9 @@ import android.net.Uri;
12 12
import android.os.Bundle;
13 13
import android.os.Environment;
14 14
import android.provider.MediaStore;
15
import android.text.Editable;
16
import android.text.Html;
17
import android.text.TextWatcher;
15 18
import android.view.View;
16 19
import android.view.View.OnClickListener;
17 20
import android.widget.EditText;
@ -20,6 +23,7 @@ import android.widget.TextView;
20 23
import android.widget.Toast;
21 24
22 25
import com.electric.chargingpile.R;
26
import com.electric.chargingpile.data.TalkRecommendBean;
23 27
import com.electric.chargingpile.util.BarColorUtil;
24 28
import com.electric.chargingpile.view.MyGridView;
25 29
import com.umeng.analytics.MobclickAgent;
@ -33,7 +37,7 @@ import pub.devrel.easypermissions.AfterPermissionGranted;
33 37
import pub.devrel.easypermissions.AppSettingsDialog;
34 38
import pub.devrel.easypermissions.EasyPermissions;
35 39
36
public class PublishTopicActivity extends Activity implements OnClickListener, EasyPermissions.PermissionCallbacks {
40
public class PublishTopicActivity extends Activity implements OnClickListener {
37 41
    private ImageView ivBack, icon_scan;
38 42
    private TextView tvVersion, tv_banquan, tv_call, android;
39 43
    private String app_version;
@ -46,6 +50,7 @@ public class PublishTopicActivity extends Activity implements OnClickListener, E
46 50
    private TextView mPublishtopicChooseTopic;
47 51
    private TextView mPublishtopicChoosePreview;
48 52
    private TextView mPublishtopicWordNum;
53
    private ImageView mPublishTopicDe;
49 54
50 55
51 56
    @Override
@ -65,11 +70,37 @@ public class PublishTopicActivity extends Activity implements OnClickListener, E
65 70
        mPublishtopicChooseTopic = (TextView) findViewById(R.id.publishtopic_choose_topic);
66 71
        mPublishtopicChoosePreview = (TextView) findViewById(R.id.publishtopic_choose_preview);
67 72
        mPublishtopicWordNum = (TextView) findViewById(R.id.publishtopic_word_num);
73
        mPublishTopicDe = (ImageView) findViewById(R.id.publishtopic_choose_topic_de);
74
75
        mPublishtopicCon.addTextChangedListener(new TextWatcher() {
76
            @Override
77
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
78
79
            }
80
81
            @Override
82
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
83
84
85
            }
86
87
            @Override
88
            public void afterTextChanged(Editable editable) {
89
                int length = editable.length();
90
                if (length > 500) {
91
                    mPublishtopicWordNum.setText(Html.fromHtml("<font  color=\"#FF4E4E\">" + length + "</font>/500"));
92
                } else {
93
                    mPublishtopicWordNum.setText(length + "/500");
94
                }
95
            }
96
        });
97
68 98
69 99
        mPublishtopicBack.setOnClickListener(this);
70 100
        mPublishtopicPublish.setOnClickListener(this);
71 101
        mPublishtopicChoosePreview.setOnClickListener(this);
72 102
        mPublishtopicChooseTopic.setOnClickListener(this);
103
        mPublishTopicDe.setOnClickListener(this);
73 104
    }
74 105
75 106
@ -80,19 +111,39 @@ public class PublishTopicActivity extends Activity implements OnClickListener, E
80 111
                finish();
81 112
                break;
82 113
            case R.id.publishtopic_publish:
83
                telTask();
84 114
                break;
85 115
86 116
            case R.id.publishtopic_choose_topic:
87
                startActivity(new Intent(this, TopicActivity.class));
117
                startActivityForResult(new Intent(this, TopicActivity.class), reqTopic);
88 118
                break;
89 119
            case R.id.publishtopic_choose_preview:
90 120
                break;
121
            case R.id.publishtopic_choose_topic_de:
122
                mPublishtopicChooseTopic.setText("# 选择话题");
123
                mPublishTopicDe.setVisibility(View.GONE);
124
                talkRecommendBean = null;
125
                break;
91 126
            default:
92 127
                break;
93 128
        }
94 129
    }
95 130
131
    final int reqTopic = -100;
132
133
    TalkRecommendBean talkRecommendBean = null;
134
135
    @Override
136
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
137
        if (requestCode == -100 && resultCode == -100) {
138
            talkRecommendBean = (TalkRecommendBean) data.getSerializableExtra("topic");
139
            if (talkRecommendBean != null) {
140
                mPublishtopicChooseTopic.setText("# " + talkRecommendBean.name);
141
                mPublishTopicDe.setVisibility(View.VISIBLE);
142
            }
143
        }
144
        super.onActivityResult(requestCode, resultCode, data);
145
    }
146
96 147
    @Override
97 148
    protected void onResume() {
98 149
        super.onResume();
@ -104,36 +155,4 @@ public class PublishTopicActivity extends Activity implements OnClickListener, E
104 155
        super.onPause();
105 156
        MobclickAgent.onPause(this);
106 157
    }
107
108
109
    @Override
110
    public void onPermissionsGranted(int requestCode, List<String> perms) {
111
112
    }
113
114
    @Override
115
    public void onPermissionsDenied(int requestCode, List<String> perms) {
116
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
117
            new AppSettingsDialog.Builder(PublishTopicActivity.this,
118
                    "该功能需要开启拨号权限,是否前往开启?").build().show();
119
        }
120
    }
121
122
    private boolean hasCallPhonePermission() {
123
        return EasyPermissions.hasPermissions(this, Manifest.permission.CALL_PHONE);
124
    }
125
126
    @AfterPermissionGranted(RC_CALL_PERM)
127
    public void telTask() {
128
        if (hasCallPhonePermission()) {
129
130
        } else {
131
            // Ask for one permission
132
            EasyPermissions.requestPermissions(
133
                    this,
134
                    "该功能需要开启拨号权限,是否前往开启?",
135
                    RC_CALL_PERM,
136
                    Manifest.permission.CALL_PHONE);
137
        }
138
    }
139 158
}

+ 50 - 15
app/src/main/java/com/electric/chargingpile/activity/TopicActivity.java

@ -3,6 +3,7 @@ package com.electric.chargingpile.activity;
3 3
import android.Manifest;
4 4
import android.app.Activity;
5 5
import android.content.Context;
6
import android.content.Intent;
6 7
import android.os.Bundle;
7 8
import android.support.v7.widget.LinearLayoutManager;
8 9
import android.support.v7.widget.RecyclerView;
@ -22,6 +23,7 @@ import com.electric.chargingpile.R;
22 23
import com.electric.chargingpile.adapter.TopicAdapter;
23 24
import com.electric.chargingpile.application.MainApplication;
24 25
import com.electric.chargingpile.data.TalkRecommendBean;
26
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
25 27
import com.electric.chargingpile.util.BarColorUtil;
26 28
import com.electric.chargingpile.util.JsonUtils;
27 29
import com.electric.chargingpile.util.ToastUtil;
@ -78,12 +80,22 @@ public class TopicActivity extends Activity implements OnClickListener, EasyPerm
78 80
        mTopicNotCon = (TextView) findViewById(R.id.topic_not_con);
79 81
        mTopicRetryLl = (LinearLayout) findViewById(R.id.topic_retry_ll);
80 82
        mTopicRetry = (TextView) findViewById(R.id.topic_retry);
81
        mTopicRv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, true));
83
        mTopicRv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
82 84
85
        mTopicInputEnd.setOnClickListener(this);
83 86
        topicAdapter = new TopicAdapter(this);
84 87
        mTopicRv.setAdapter(topicAdapter);
85 88
86
89
        topicAdapter.setRecyclerItemTypeClickListener(new RecyclerItemTypeClickListener() {
90
            @Override
91
            public void onItemClickListener(int position, int index) {
92
                TalkRecommendBean item = topicAdapter.getItem(position);
93
                Intent intent = new Intent();
94
                intent.putExtra("topic", item);
95
                setResult(-100, intent);
96
                finish();
97
            }
98
        });
87 99
        mTopicBack.setOnClickListener(this);
88 100
        mTopicCon.addTextChangedListener(new TextWatcher() {
89 101
            @Override
@ -93,16 +105,18 @@ public class TopicActivity extends Activity implements OnClickListener, EasyPerm
93 105
94 106
            @Override
95 107
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
96
                if (i2 == 0) {
97
                    recommentTopic();
98
                } else {
99
                    searchTopic(charSequence);
100
                }
108
101 109
            }
102 110
103 111
            @Override
104 112
            public void afterTextChanged(Editable editable) {
113
                if (editable.length() == 0) {
114
                    recommentTopic();
115
                } else {
116
                    searchTopic(editable.toString());
105 117
118
                }
119
                mTopicInputEnd.setVisibility(editable.length() == 0 ? View.GONE : View.VISIBLE);
106 120
            }
107 121
        });
108 122
    }
@ -118,6 +132,9 @@ public class TopicActivity extends Activity implements OnClickListener, EasyPerm
118 132
        OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
119 133
            @Override
120 134
            public void onError(Call call, Exception e) {
135
                mTopicRetryLl.setVisibility(View.VISIBLE);
136
                mTopicNotCon.setVisibility(View.GONE);
137
                mTopicRv.setVisibility(View.GONE);
121 138
            }
122 139
123 140
            @Override
@ -125,10 +142,16 @@ public class TopicActivity extends Activity implements OnClickListener, EasyPerm
125 142
                String rtnCode = JsonUtils.getKeyResult(response, "code");
126 143
                if ("1000".equals(rtnCode)) {
127 144
                    String rtnMsg = JsonUtils.getKeyResult(response, "data");
128
                    ArrayList<TalkRecommendBean> qadata = (ArrayList<TalkRecommendBean>) JsonUtils.parseToObjectList(rtnMsg, TalkRecommendBean.class);
129
                    topicAdapter.setType(TopicAdapter.RECOMENT_TYPE);
130
131
                    topicAdapter.addData(qadata);
145
                    List<TalkRecommendBean> qadata = JsonUtils.parseToObjectList(rtnMsg, TalkRecommendBean.class);
146
                    mTopicRetryLl.setVisibility(View.GONE);
147
                    if (qadata.size() == 0) {
148
                        mTopicNotCon.setVisibility(View.VISIBLE);
149
                        mTopicRv.setVisibility(View.GONE);
150
                    } else {
151
                        mTopicNotCon.setVisibility(View.GONE);
152
                        mTopicRv.setVisibility(View.VISIBLE);
153
                        topicAdapter.addData(TopicAdapter.RECOMENT_TITLE, qadata);
154
                    }
132 155
                }
133 156
            }
134 157
        });
@ -151,8 +174,9 @@ public class TopicActivity extends Activity implements OnClickListener, EasyPerm
151 174
                .execute(new StringCallback() {
152 175
                    @Override
153 176
                    public void onError(Call call, Exception e) {
154
                        ToastUtil.showToast(TopicActivity.this, "加载失败,请重试", Toast.LENGTH_SHORT);
155
177
                        mTopicRetryLl.setVisibility(View.VISIBLE);
178
                        mTopicNotCon.setVisibility(View.GONE);
179
                        mTopicRv.setVisibility(View.GONE);
156 180
                    }
157 181
158 182
                    @Override
@ -162,8 +186,16 @@ public class TopicActivity extends Activity implements OnClickListener, EasyPerm
162 186
                            String rtnMsg = JsonUtils.getKeyResult(response, "data");
163 187
                            List<TalkRecommendBean> qadata = JsonUtils
164 188
                                    .parseToObjectList(rtnMsg, TalkRecommendBean.class);
165
                            topicAdapter.setType(TopicAdapter.RECOMENT_ITEM);
166
                            topicAdapter.addData(qadata);
189
                            mTopicRetryLl.setVisibility(View.GONE);
190
                            if (qadata.size() == 0) {
191
                                mTopicNotCon.setVisibility(View.VISIBLE);
192
                                mTopicRv.setVisibility(View.GONE);
193
                            } else {
194
                                mTopicNotCon.setVisibility(View.GONE);
195
                                mTopicRv.setVisibility(View.VISIBLE);
196
                            }
197
198
                            topicAdapter.addData(TopicAdapter.RECOMENT_ITEM, qadata);
167 199
                        }
168 200
                    }
169 201
                });
@ -179,6 +211,9 @@ public class TopicActivity extends Activity implements OnClickListener, EasyPerm
179 211
            case R.id.publishtopic_publish:
180 212
                telTask();
181 213
                break;
214
            case R.id.topic_input_end:
215
                mTopicCon.setText("");
216
                break;
182 217
            default:
183 218
                break;
184 219
        }

+ 56 - 68
app/src/main/java/com/electric/chargingpile/adapter/TopicAdapter.java

@ -5,6 +5,7 @@ import android.content.Context;
5 5
import android.graphics.Bitmap;
6 6
import android.support.annotation.NonNull;
7 7
import android.support.v7.widget.RecyclerView;
8
import android.text.Html;
8 9
import android.text.TextUtils;
9 10
import android.util.DisplayMetrics;
10 11
import android.util.Log;
@ -15,11 +16,16 @@ import android.view.ViewGroup;
15 16
import android.widget.BaseAdapter;
16 17
import android.widget.Button;
17 18
import android.widget.ImageView;
19
import android.widget.LinearLayout;
20
import android.widget.RelativeLayout;
18 21
import android.widget.TextView;
19 22
import android.widget.ToggleButton;
20 23
24
import com.bumptech.glide.Glide;
25
import com.bumptech.glide.request.RequestOptions;
21 26
import com.electric.chargingpile.R;
22 27
import com.electric.chargingpile.data.TalkRecommendBean;
28
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
23 29
import com.electric.chargingpile.util.BitmapCache;
24 30
import com.electric.chargingpile.util.BitmapCache.ImageCallback;
25 31
import com.electric.chargingpile.util.CircleTransform;
@ -30,123 +36,105 @@ import com.squareup.picasso.Picasso;
30 36
import java.util.ArrayList;
31 37
import java.util.List;
32 38
33
public class TopicAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
39
public class TopicAdapter extends RecyclerView.Adapter<TopicAdapter.ItemViewHolder> {
34 40
    private ArrayList<TalkRecommendBean> dataList = new ArrayList<>();
35 41
    private Context mContext;
36 42
    private int type = 0;
37
    public final static int RECOMENT_TYPE = 0;
43
    public final static int RECOMENT_TITLE = 0;
38 44
    public final static int RECOMENT_ITEM = 1;
39 45
40 46
    public TopicAdapter(Context c) {
41 47
        mContext = c;
42 48
    }
43 49
44
45
    @Override
46
    public int getItemViewType(int position) {
47
        if (type == RECOMENT_TYPE && position == 0) {
48
            return RECOMENT_TYPE;
49
        } else {
50
            return RECOMENT_ITEM;
51
        }
52
    }
53
54 50
    @NonNull
55 51
    @Override
56
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
57
        View view;
58
        if (viewType == RECOMENT_TYPE) {
59
            view = LayoutInflater.from(mContext).inflate(R.layout.title_item_topic, null);
60
            return new TitleViewHolder(view);
61
        } else if (viewType == RECOMENT_ITEM) {
62
            view = LayoutInflater.from(mContext).inflate(R.layout.item_topic, null);
63
            return new ItemViewHolder(view);
64
        }
65
        return null;
52
    public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
53
        View view = LayoutInflater.from(mContext).inflate(R.layout.item_topic, null);
54
        return new ItemViewHolder(view);
66 55
    }
67 56
68 57
    @Override
69
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
70
        int itemViewType = getItemViewType(position);
71
        if (itemViewType == RECOMENT_TYPE) {
72
            TitleViewHolder titleViewHolder = (TitleViewHolder) holder;
73
        } else {
74
            ItemViewHolder itemViewHolder = (ItemViewHolder) holder;
75
            TalkRecommendBean item = getItem(position);
76
            itemViewHolder.mItemTopicName.setText(item.name);
77
78
79
            if (TextUtils.isEmpty(item.coverImgUrl)) {
80
                Picasso.with(mContext)
81
                        .load(R.drawable.icon_face2_0)
82
                        .placeholder(R.drawable.icon_face2_0)
83
                        .error(R.drawable.icon_face2_0)
84
                        .into(itemViewHolder.mItemTopicImg);
58
    public void onBindViewHolder(ItemViewHolder itemViewHolder, int position) {
59
        if (position == 0) {
60
            if (type == RECOMENT_TITLE) {
61
                itemViewHolder.mItemTopicLayout.setVisibility(View.VISIBLE);
85 62
            } else {
86
                Picasso.with(mContext)
87
                        .load(item.headImgUrl)
88
                        .placeholder(R.drawable.icon_face2_0)
89
                        .error(R.drawable.icon_face2_0)
90
                        .into(itemViewHolder.mItemTopicImg);
63
                itemViewHolder.mItemTopicLayout.setVisibility(View.GONE);
91 64
            }
65
        } else {
66
            itemViewHolder.mItemTopicLayout.setVisibility(View.GONE);
92 67
        }
93
    }
94
95 68
96
    private TalkRecommendBean getItem(int position) {
97
        if (type == RECOMENT_TYPE) {
98
            return dataList.get(position - 1);
69
        TalkRecommendBean item = getItem(position);
70
        if (type == RECOMENT_ITEM) {
71
            itemViewHolder.mItemTopicName.setText(Html.fromHtml(item.name));
99 72
        } else {
100
            return dataList.get(position);
73
            itemViewHolder.mItemTopicName.setText(item.topicName);
101 74
        }
75
76
        Glide
77
                .with(itemViewHolder.mItemTopicImg)
78
                .load(TextUtils.isEmpty(item.coverImgUrl) ? "" : item.coverImgUrl)
79
                .apply(requestOptions)
80
                .into(itemViewHolder.mItemTopicImg);
81
    }
82
83
    RequestOptions requestOptions = new RequestOptions().centerCrop();
84
85
    public TalkRecommendBean getItem(int position) {
86
        return dataList.get(position);
102 87
    }
103 88
104 89
105 90
    @Override
106 91
    public int getItemCount() {
107
        if (type == RECOMENT_TYPE) {
108
            return dataList.size() + 1;
109
        } else {
110
            return dataList.size();
111
        }
92
        return dataList.size();
112 93
    }
113 94
114
    public void setType(int i) {
115
        type = i;
116
    }
117 95
118
    public void addData(List<TalkRecommendBean> qadata) {
96
    public void addData(int i, List<TalkRecommendBean> qadata) {
97
        type = i;
98
        dataList.clear();
119 99
        if (qadata != null && qadata.size() > 0) {
120 100
            dataList.addAll(qadata);
121 101
            notifyDataSetChanged();
122 102
        }
123 103
    }
124 104
125
    /**
126
     * 存放列表项控件句柄
127
     */
128
    static class TitleViewHolder extends RecyclerView.ViewHolder {
129
        public TitleViewHolder(View itemView) {
130
            super(itemView);
131
        }
132
    }
133
134 105
135 106
    /**
136 107
     * 存放列表项控件句柄
137 108
     */
138
    static class ItemViewHolder extends RecyclerView.ViewHolder {
109
    class ItemViewHolder extends RecyclerView.ViewHolder implements OnClickListener {
139 110
140 111
        private ImageView mItemTopicImg;
141 112
        private TextView mItemTopicName;
113
        private LinearLayout mItemTopicLayout;
114
        private RelativeLayout mItemTopicRl;
142 115
143 116
        public ItemViewHolder(View itemView) {
144 117
            super(itemView);
145 118
119
            mItemTopicLayout = (LinearLayout) itemView.findViewById(R.id.item_topic_title);
146 120
            mItemTopicImg = (ImageView) itemView.findViewById(R.id.item_topic_img);
147 121
            mItemTopicName = (TextView) itemView.findViewById(R.id.item_topic_name);
122
            mItemTopicRl = (RelativeLayout) itemView.findViewById(R.id.item_topic_rl);
123
            mItemTopicRl.setOnClickListener(this);
124
125
        }
148 126
127
        @Override
128
        public void onClick(View view) {
129
            if (recyclerItemTypeClickListener != null) {
130
                recyclerItemTypeClickListener.onItemClickListener(getLayoutPosition(), 1);
131
            }
149 132
        }
150 133
    }
151 134
135
    RecyclerItemTypeClickListener recyclerItemTypeClickListener;
136
137
    public void setRecyclerItemTypeClickListener(RecyclerItemTypeClickListener recyclerItemTypeClickListener) {
138
        this.recyclerItemTypeClickListener = recyclerItemTypeClickListener;
139
    }
152 140
}

+ 224 - 227
app/src/main/java/com/electric/chargingpile/application/MainApplication.java

@ -22,6 +22,7 @@ import android.util.Log;
22 22
import com.blankj.utilcode.util.BarUtils;
23 23
import com.blankj.utilcode.util.LogUtils;
24 24
import com.blankj.utilcode.util.Utils;
25
import com.electric.chargingpile.BuildConfig;
25 26
import com.electric.chargingpile.R;
26 27
import com.electric.chargingpile.activity.MainMapActivity;
27 28
import com.electric.chargingpile.data.AdDetail;
@ -57,203 +58,197 @@ import java.util.Map;
57 58
import cn.jpush.android.api.JPushInterface;
58 59

59 60
public class MainApplication extends MultiDexApplication {
60
	public static MainApplication instances;
61
	private DaoMaster.DevOpenHelper mHelper;
62
	private SQLiteDatabase db;
63
	private DaoMaster mDaoMaster;
64
	private DaoSession mDaoSession;
65
	public static int mScreenWidth;
66
	public static int mScreenHeight;
61
    public static MainApplication instances;
62
    private DaoMaster.DevOpenHelper mHelper;
63
    private SQLiteDatabase db;
64
    private DaoMaster mDaoMaster;
65
    private DaoSession mDaoSession;
66
    public static int mScreenWidth;
67
    public static int mScreenHeight;
67 68
    public static SharedPreferencesHelper sph;
68
    public static List<Zhan>collectList;
69
	public static String userPhone = "";
70
	public static String userTpye = "";
71
	public static String userId = "";
72
	public static String userCar = "";
73
	public static String userIcon = "";
74
	public static String userNickname = "";
75
	public static String mapStatus = "";
76
	public static String costWay = "";
77
	public static String sudu = "";
78
	public static String shuxing = "";
79
	public static String messageToken = "";
80
	public static String map = "";
81
	public static String atCity = "";
82
	public static String sql = "";
83
	public static String uptime = "";
84
	public static String details_flag = "0";
85
	public static String firstPoint = "";
86
	public static Boolean firstSsyd ;
87
	public static String password = "";
88
//	public static String url = "http://123.57.6.131";
89
	public static String url = "http://cdz.evcharge.cc";
90
	public static String urlNew = "http://123.56.67.7:83/api/0200";
91
	public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
92
//	public static String url = "https://cdz.d1ev.com";
93
	public static String build_flag = "0";
94
	public static String support = "0";
95
	public static String freestop = "";
96
	public static String selecthotel = "";
97
	public static String selectexpressway = "";
98
	public static String selectjingdian = "";
99
	public static String logid = "";
100
	public static String suitcar = "";
101
	public static Boolean gestureguide ;
102
	public static String h5_url = "";
103
	public static String push_id = "";
104
	public static String imei = "";
105
	public static String current_url = "";
106
	public static String goods_type = "";
107
	public static String ad_link = "";
108
	public static String ok = "";
109
	public static String type = "";
110
	public static String userPassword = "";
111
	public static String mainSkip = "";
112
	public static String level_one = "";
113
	public static String level_two = "";
114
	public static String level_three = "";
115
	public static String level_four = "";
116
	public static String level_five = "";
117
	public static String huodonglabel = "";
118
	public static String mianStop = "";
119
	public static String search_address = "";
120
	public static boolean isMap = true;
121
	public static int count ;
122
	public static int round ;
123
	public static int msgOne ;
124
	public static String msgTime ;
125
	public static String firstOpenTime ;
126
	public static int msgTwo ;
127
	public static List<AdDetail> list_addetail;
128
	public static String festival_time = "";
129
	public static boolean isIgnore = true;
130
	public static Double search_jing =0.0 ,search_wei=0.0;
131
	public static Context context;
132
	public static String current_code ="3.1.1";
133
	public static String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "cdz_android";
134
	public static String q_content = "";
135
	public static Map<String,String> q_map = new HashMap<>();
136
	public static boolean isFirstExample;
137
	public static boolean isAppStart;
138
	public static boolean haveActivity = false;
139
	public static String ad_major = "";
140
	private String mCurrentCity = "";
141

142

143
	@SuppressLint("MissingPermission")
144
	@Override
145
	public void onCreate() {
146
		super.onCreate();
147
//		Fresco.initialize(getApplicationContext());
148
		this.context = getApplicationContext();
149
		StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
150
		StrictMode.setVmPolicy(builder.build());
151
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
152
			builder.detectFileUriExposure();
153
		}
154

155
		MobSDK.init(this);
156

157
		instances = this;
158
		setDatabase();
159
//		setDatabase();
160

161

162

163
		Utils.init(this);
164
		LogUtils.getConfig().setLogSwitch(true);
165

166
		//极光
167
		JPushInterface.setDebugMode(true);
168
		JPushInterface.init(this);
169

170
		String rid = JPushInterface.getRegistrationID(getApplicationContext());
171
		push_id = rid;
172
		Intent intent = new Intent();
173
		if(JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())){
174
			Bundle bundle = intent.getExtras();
175
			String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
176
			try {
177
				JSONObject jsonObject = new JSONObject(extras);
178
				String url = jsonObject.getString("extra");
179
				Log.e("extra==",url);
180
			} catch (JSONException e) {
181
				e.printStackTrace();
182
			}
183
		}
69
    public static List<Zhan> collectList;
70
    public static String userPhone = "";
71
    public static String userTpye = "";
72
    public static String userId = "";
73
    public static String userCar = "";
74
    public static String userIcon = "";
75
    public static String userNickname = "";
76
    public static String mapStatus = "";
77
    public static String costWay = "";
78
    public static String sudu = "";
79
    public static String shuxing = "";
80
    public static String messageToken = "";
81
    public static String map = "";
82
    public static String atCity = "";
83
    public static String sql = "";
84
    public static String uptime = "";
85
    public static String details_flag = "0";
86
    public static String firstPoint = "";
87
    public static Boolean firstSsyd;
88
    public static String password = "";
89
    //	public static String url = "http://123.57.6.131";
90
    public static String url = "http://cdz.evcharge.cc";
91
    public static String urlNew = "http://123.56.67.7:83/api/0200";
92
    public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
93
    //	public static String url = "https://cdz.d1ev.com";
94
    public static String build_flag = "0";
95
    public static String support = "0";
96
    public static String freestop = "";
97
    public static String selecthotel = "";
98
    public static String selectexpressway = "";
99
    public static String selectjingdian = "";
100
    public static String logid = "";
101
    public static String suitcar = "";
102
    public static Boolean gestureguide;
103
    public static String h5_url = "";
104
    public static String push_id = "";
105
    public static String imei = "";
106
    public static String current_url = "";
107
    public static String goods_type = "";
108
    public static String ad_link = "";
109
    public static String ok = "";
110
    public static String type = "";
111
    public static String userPassword = "";
112
    public static String mainSkip = "";
113
    public static String level_one = "";
114
    public static String level_two = "";
115
    public static String level_three = "";
116
    public static String level_four = "";
117
    public static String level_five = "";
118
    public static String huodonglabel = "";
119
    public static String mianStop = "";
120
    public static String search_address = "";
121
    public static boolean isMap = true;
122
    public static int count;
123
    public static int round;
124
    public static int msgOne;
125
    public static String msgTime;
126
    public static String firstOpenTime;
127
    public static int msgTwo;
128
    public static List<AdDetail> list_addetail;
129
    public static String festival_time = "";
130
    public static boolean isIgnore = true;
131
    public static Double search_jing = 0.0, search_wei = 0.0;
132
    public static Context context;
133
    public static String current_code = "3.1.1";
134
    public static String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "cdz_android";
135
    public static String q_content = "";
136
    public static Map<String, String> q_map = new HashMap<>();
137
    public static boolean isFirstExample;
138
    public static boolean isAppStart;
139
    public static boolean haveActivity = false;
140
    public static String ad_major = "";
141
    private String mCurrentCity = "";
142

143

144
    @SuppressLint("MissingPermission")
145
    @Override
146
    public void onCreate() {
147
        super.onCreate();
148
        this.context = getApplicationContext();
149
        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
150
        StrictMode.setVmPolicy(builder.build());
151
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
152
            builder.detectFileUriExposure();
153
        }
154

155
        MobSDK.init(this);
156

157
        instances = this;
158
        setDatabase();
159

160
        Utils.init(this);
161
        LogUtils.getConfig().setLogSwitch(true);
162

163
        //极光
164
        JPushInterface.setDebugMode(true);
165
        JPushInterface.init(this);
166

167
        String rid = JPushInterface.getRegistrationID(getApplicationContext());
168
        push_id = rid;
169
        Intent intent = new Intent();
170
        if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
171
            Bundle bundle = intent.getExtras();
172
            String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
173
            try {
174
                JSONObject jsonObject = new JSONObject(extras);
175
                String url = jsonObject.getString("extra");
176
                Log.e("extra==", url);
177
            } catch (JSONException e) {
178
                e.printStackTrace();
179
            }
180
        }
184 181
//		TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
185 182
//		imei = tm.getDeviceId();
186 183

187
		CrashReport.initCrashReport(getApplicationContext(), "900010422", true);
188
		initImageLoader(getApplicationContext());
189
//		Fresco.initialize(this);
184
        CrashReport.initCrashReport(getApplicationContext(), "900010422", BuildConfig.DEBUG);
185
        initImageLoader(getApplicationContext());
190 186

191
		try
192
		{
187

188
        try {
193 189
//			OkHttpUtil.getInstance().setCertificates(getAssets().open("ca.crt"));
194
			OkHttpUtils.getInstance().setCertificates(getAssets().open("ca.crt"));
195
			OkHttpUtils.getInstance().setCertificates();
196
		} catch (IOException e)
197
		{
198
			e.printStackTrace();
199
		}
190
            OkHttpUtils.getInstance().setCertificates(getAssets().open("ca.crt"));
191
            OkHttpUtils.getInstance().setCertificates();
192
        } catch (IOException e) {
193
            e.printStackTrace();
194
        }
200 195
//		SDKInitializer.initialize(getApplicationContext());
201 196

202
		mScreenWidth = getResources().getDisplayMetrics().widthPixels;
203
		mScreenHeight = getResources().getDisplayMetrics().heightPixels;
204
		Log.e("mScreenWidth",mScreenWidth+"");
205
		Log.e("mScreenHeight",mScreenHeight+"");
206
		sph = new SharedPreferencesHelper(this);
207
		collectList=new ArrayList<>();
208

209
		isAppStart = ProfileManager.getInstance().getAppStart(getApplicationContext());
210

211
		userPhone = ProfileManager.getInstance().getUsername(getApplicationContext());
212
		userId = ProfileManager.getInstance().getUserid(getApplicationContext());
213
		userPassword =ProfileManager.getInstance().getKeyUserpassword(getApplicationContext());
214
		userCar = ProfileManager.getInstance().getUsercar(getApplicationContext());
215
		userIcon = ProfileManager.getInstance().getUsericon(getApplicationContext());
216
		Log.e("111", "onCreate: "+userIcon);
217
		msgOne = ProfileManager.getInstance().getMsgOne(getApplicationContext());
218
		msgTime = ProfileManager.getInstance().getSystemMsgTime(getApplicationContext());
219
		firstOpenTime = ProfileManager.getInstance().getFirstOpenTime(getApplicationContext());
197
        mScreenWidth = getResources().getDisplayMetrics().widthPixels;
198
        mScreenHeight = getResources().getDisplayMetrics().heightPixels;
199
        Log.e("mScreenWidth", mScreenWidth + "");
200
        Log.e("mScreenHeight", mScreenHeight + "");
201
        sph = new SharedPreferencesHelper(this);
202
        collectList = new ArrayList<>();
203

204
        isAppStart = ProfileManager.getInstance().getAppStart(getApplicationContext());
205

206
        userPhone = ProfileManager.getInstance().getUsername(getApplicationContext());
207
        userId = ProfileManager.getInstance().getUserid(getApplicationContext());
208
        userPassword = ProfileManager.getInstance().getKeyUserpassword(getApplicationContext());
209
        userCar = ProfileManager.getInstance().getUsercar(getApplicationContext());
210
        userIcon = ProfileManager.getInstance().getUsericon(getApplicationContext());
211
        Log.e("111", "onCreate: " + userIcon);
212
        msgOne = ProfileManager.getInstance().getMsgOne(getApplicationContext());
213
        msgTime = ProfileManager.getInstance().getSystemMsgTime(getApplicationContext());
214
        firstOpenTime = ProfileManager.getInstance().getFirstOpenTime(getApplicationContext());
220 215
//		msgTwo = ProfileManager.getInstance().getMsgTwo(getApplicationContext());
221 216

222
		loginRemind();
223
		setFestival();
217
        loginRemind();
218
        setFestival();
224 219

225
	}
220
    }
226 221

227
	public static MainApplication getInstance() {
228
		if (null == instances) {
229
			instances = new MainApplication();
230
		}
231
		return instances;
232
	}
222
    public static MainApplication getInstance() {
223
        if (null == instances) {
224
            instances = new MainApplication();
225
        }
226
        return instances;
227
    }
233 228

234
	public void setmCurrentCity(String mCurrentCity) {
235
		this.mCurrentCity = mCurrentCity;
236
	}
229
    public void setmCurrentCity(String mCurrentCity) {
230
        this.mCurrentCity = mCurrentCity;
231
    }
237 232

238
	public String getmCurrentCity() {
239
		return mCurrentCity;
240
	}
233
    public String getmCurrentCity() {
234
        return mCurrentCity;
235
    }
241 236

242
	private static void setSph(){
237
    private static void setSph() {
243 238

244
	}
239
    }
245 240

246 241

247
	public static void initImageLoader(Context context) {
248
		ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(5).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory()
249
				.discCacheFileNameGenerator(new Md5FileNameGenerator()).discCacheSize(50 * 1024 * 1024).memoryCacheSize(5*1024*1024).build();
250
		ImageLoader.getInstance().init(config);
251
	}
242
    public static void initImageLoader(Context context) {
243
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(5).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory()
244
                .discCacheFileNameGenerator(new Md5FileNameGenerator()).discCacheSize(50 * 1024 * 1024).memoryCacheSize(5 * 1024 * 1024).build();
245
        ImageLoader.getInstance().init(config);
246
    }
252 247

253
	public static DisplayImageOptions getCacheOptions(int image) {
254
		return new DisplayImageOptions.Builder().showImageForEmptyUri(image).showImageOnFail(image).cacheInMemory(true).cacheOnDisc(true).considerExifParams(true)
255
				.imageScaleType(ImageScaleType.IN_SAMPLE_INT).resetViewBeforeLoading(false).bitmapConfig(Bitmap.Config.RGB_565).build();
256
	}
248
    public static DisplayImageOptions getCacheOptions(int image) {
249
        return new DisplayImageOptions.Builder().showImageForEmptyUri(image).showImageOnFail(image).cacheInMemory(true).cacheOnDisc(true).considerExifParams(true)
250
                .imageScaleType(ImageScaleType.IN_SAMPLE_INT).resetViewBeforeLoading(false).bitmapConfig(Bitmap.Config.RGB_565).build();
251
    }
257 252

258 253
//	public void showTextToast(String msg) {
259 254
//		if (toast == null) {
@ -265,55 +260,57 @@ public class MainApplication extends MultiDexApplication {
265 260
//	}
266 261

267 262

268
	public static boolean isLogin() {
269
		if ("".equals(userPhone)) {
270
			return false;
271
		}
272

273
		return true;
274

275
	}
276

277
	private void loginRemind(){
278
		round = ProfileManager.getInstance().getRound(getApplicationContext());
279
		count = ProfileManager.getInstance().getCount(getApplicationContext());
280
		if (!MainApplication.isLogin()){
281
			int i = count +1;
282
			Log.e("i***-",i+"");
283
			ProfileManager.getInstance().setCount(getApplicationContext(),i);
284
			count = i;
285
		}
286
	}
287

288
	private void setFestival(){
289
		int time = (int) (System.currentTimeMillis() / 1000);
290
		if (time >= 1484841600 && time <= 1486569599 ){
291
			MainApplication.festival_time = "1";
292
		}else if (time >= 1486569600 && time <= 1486915199){
293
			MainApplication.festival_time = "2";
294
		}
295
	}
296

297
	/**
298
	 * 设置greenDao
299
	 */
300
	private void setDatabase() {
301
		// 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。
302
		// 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
303
		// 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
304
		// 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
305
		mHelper = new DaoMaster.DevOpenHelper(this, "my-search-text-db", null);
306
		db = mHelper.getWritableDatabase();
307
		// 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
308
		mDaoMaster = new DaoMaster(db);
309
		mDaoSession = mDaoMaster.newSession();
310
	}
311
	public DaoSession getDaoSession() {
312
		return mDaoSession;
313
	}
314
	public SQLiteDatabase getDb() {
315
		return db;
316
	}
263
    public static boolean isLogin() {
264
        if ("".equals(userPhone)) {
265
            return false;
266
        }
267

268
        return true;
269

270
    }
271

272
    private void loginRemind() {
273
        round = ProfileManager.getInstance().getRound(getApplicationContext());
274
        count = ProfileManager.getInstance().getCount(getApplicationContext());
275
        if (!MainApplication.isLogin()) {
276
            int i = count + 1;
277
            Log.e("i***-", i + "");
278
            ProfileManager.getInstance().setCount(getApplicationContext(), i);
279
            count = i;
280
        }
281
    }
282

283
    private void setFestival() {
284
        int time = (int) (System.currentTimeMillis() / 1000);
285
        if (time >= 1484841600 && time <= 1486569599) {
286
            MainApplication.festival_time = "1";
287
        } else if (time >= 1486569600 && time <= 1486915199) {
288
            MainApplication.festival_time = "2";
289
        }
290
    }
291

292
    /**
293
     * 设置greenDao
294
     */
295
    private void setDatabase() {
296
        // 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。
297
        // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
298
        // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
299
        // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
300
        mHelper = new DaoMaster.DevOpenHelper(this, "my-search-text-db", null);
301
        db = mHelper.getWritableDatabase();
302
        // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
303
        mDaoMaster = new DaoMaster(db);
304
        mDaoSession = mDaoMaster.newSession();
305
    }
306

307
    public DaoSession getDaoSession() {
308
        return mDaoSession;
309
    }
310

311
    public SQLiteDatabase getDb() {
312
        return db;
313
    }
317 314

318 315
}
319 316


+ 31 - 11
app/src/main/res/layout/activity_publishtopic.xml

@ -7,7 +7,9 @@
7 7
        android:id="@+id/publishtopic_back"
8 8
        android:layout_width="44dp"
9 9
        android:layout_height="44dp"
10
        android:background="#000" />
10
        android:padding="13dp"
11
        android:rotation="90"
12
        android:src="@drawable/icon_edit_down" />
11 13
12 14
    <TextView
13 15
        android:layout_width="wrap_content"
@ -56,7 +58,7 @@
56 58
                android:background="@null"
57 59
                android:gravity="top"
58 60
                android:hint="聊聊你的想法......"
59
                android:minHeight="120dp"
61
                android:minHeight="260dp"
60 62
                android:textColorHint="#555555"
61 63
                android:textSize="14sp" />
62 64
@ -68,21 +70,39 @@
68 70
    </ScrollView>
69 71
70 72
71
    <TextView
72
        android:id="@+id/publishtopic_choose_topic"
73
    <LinearLayout
73 74
        android:layout_width="wrap_content"
74 75
        android:layout_height="30dp"
75 76
        android:layout_alignParentBottom="true"
76 77
        android:layout_marginStart="15dp"
77 78
        android:layout_marginBottom="10dp"
78
        android:background="#EE12E812"
79
        android:background="#f5f5f5"
79 80
        android:gravity="center_vertical"
80
        android:orientation="horizontal"
81
        android:paddingStart="@dimen/ui_10_dip"
82
        android:paddingEnd="@dimen/ui_10_dip"
83
        android:text="# 选择话题"
84
        android:textColor="#555"
85
        android:textSize="14sp" />
81
        android:orientation="horizontal">
82
83
84
        <TextView
85
            android:id="@+id/publishtopic_choose_topic"
86
            android:layout_width="wrap_content"
87
            android:layout_height="wrap_content"
88
            android:ellipsize="end"
89
            android:lines="1"
90
            android:maxWidth="180dp"
91
            android:paddingStart="@dimen/ui_10_dip"
92
            android:paddingEnd="@dimen/ui_10_dip"
93
            android:text="# 选择话题"
94
            android:textColor="#555"
95
            android:textSize="14sp" />
96
97
        <ImageView
98
            android:id="@+id/publishtopic_choose_topic_de"
99
            android:layout_width="30dp"
100
            android:layout_height="30dp"
101
            android:padding="3dp"
102
            android:src="@drawable/icon_close"
103
            android:visibility="gone" />
104
105
    </LinearLayout>
86 106
87 107
    <TextView
88 108
        android:id="@+id/publishtopic_choose_preview"

+ 8 - 4
app/src/main/res/layout/activity_topic.xml

@ -8,14 +8,16 @@
8 8
        android:id="@+id/topic_back"
9 9
        android:layout_width="44dp"
10 10
        android:layout_height="44dp"
11
        android:background="#000" />
11
        android:padding="13dp"
12
        android:rotation="90"
13
        android:src="@drawable/icon_edit_down" />
12 14
13 15
    <TextView
14 16
        android:layout_width="wrap_content"
15 17
        android:layout_height="44dp"
16 18
        android:layout_centerHorizontal="true"
17 19
        android:gravity="center_vertical"
18
        android:text="发布"
20
        android:text="话题"
19 21
        android:textColor="#222"
20 22
        android:textSize="18sp" />
21 23
@ -46,7 +48,7 @@
46 48
            android:layout_centerVertical="true"
47 49
            android:layout_marginStart="8dp"
48 50
            android:layout_marginEnd="4dp"
49
            android:background="#b2de" />
51
            android:background="@drawable/icon_search_list" />
50 52
51 53
        <View
52 54
            android:id="@+id/topic_input_end"
@ -56,7 +58,8 @@
56 58
            android:layout_centerVertical="true"
57 59
            android:layout_marginStart="4dp"
58 60
            android:layout_marginEnd="8dp"
59
            android:background="#b2de" />
61
            android:background="@drawable/icon_tuijian_close"
62
            android:visibility="gone" />
60 63
61 64
        <EditText
62 65
            android:id="@+id/topic_con"
@ -67,6 +70,7 @@
67 70
            android:background="@null"
68 71
            android:gravity="center_vertical"
69 72
            android:hint="请输入你感兴趣的话题"
73
            android:lines="1"
70 74
            android:textColorHint="#555555"
71 75
            android:textSize="14sp" />
72 76
    </RelativeLayout>

+ 51 - 22
app/src/main/res/layout/item_topic.xml

@ -1,28 +1,57 @@
1 1
<?xml version="1.0" encoding="utf-8"?>
2
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 3
    android:layout_width="match_parent"
4
    android:layout_height="60dp"
5
    android:paddingStart="15dp"
6
    android:paddingEnd="15dp">
4
    android:layout_height="wrap_content"
5
    android:orientation="vertical">
7 6
8
    <ImageView
9
        android:id="@+id/item_topic_img"
10
        android:layout_width="50dp"
11
        android:layout_height="43dp"
12
        android:layout_centerVertical="true"
13
        android:background="#000" />
14
15
    <TextView
16
        android:id="@+id/item_topic_name"
7
    <LinearLayout
8
        android:id="@+id/item_topic_title"
17 9
        android:layout_width="match_parent"
18 10
        android:layout_height="wrap_content"
19
        android:layout_centerVertical="true"
20
        android:layout_marginStart="10dp"
21
        android:layout_toEndOf="@+id/item_topic_img"
22
        android:ellipsize="end"
23
        android:maxLines="2"
24
        android:text="adadasd"
25
        android:textColor="#444444"
26
        android:textSize="14sp" />
11
        android:visibility="gone"
12
        android:orientation="vertical">
13
14
        <TextView
15
            android:layout_width="wrap_content"
16
            android:layout_height="50dp"
17
            android:layout_marginStart="15dp"
18
            android:gravity="center_vertical"
19
            android:text="推荐话题"
20
            android:textColor="#444444"
21
            android:textSize="15sp" />
22
23
        <View
24
            android:layout_width="match_parent"
25
            android:layout_height="1dp"
26
            android:background="#ddd" />
27
    </LinearLayout>
28
29
    <RelativeLayout
30
        android:id="@+id/item_topic_rl"
31
        android:layout_width="match_parent"
32
        android:layout_height="60dp"
33
        android:paddingStart="15dp"
34
        android:paddingEnd="15dp">
35
36
        <ImageView
37
            android:id="@+id/item_topic_img"
38
            android:layout_width="50dp"
39
            android:layout_height="43dp"
40
            android:layout_centerVertical="true"
41
            android:background="#000" />
42
43
        <TextView
44
            android:id="@+id/item_topic_name"
45
            android:layout_width="match_parent"
46
            android:layout_height="wrap_content"
47
            android:layout_centerVertical="true"
48
            android:layout_marginStart="10dp"
49
            android:layout_toEndOf="@+id/item_topic_img"
50
            android:ellipsize="end"
51
            android:maxLines="2"
52
            android:text="adadasd"
53
            android:textColor="#444444"
54
            android:textSize="14sp" />
27 55
28
</RelativeLayout>
56
    </RelativeLayout>
57
</LinearLayout>

+ 0 - 10
app/src/main/res/layout/title_item_topic.xml

@ -4,14 +4,4 @@
4 4
    android:layout_width="match_parent"
5 5
    android:layout_height="50dp">
6 6
7
    <TextView
8
        android:layout_width="wrap_content"
9
        android:layout_height="wrap_content"
10
        android:layout_marginStart="15dp"
11
        android:text="推荐话题"
12
        android:textColor="#444444"
13
        android:textSize="15sp"
14
        app:layout_constraintBottom_toTopOf="parent"
15
        app:layout_constraintStart_toStartOf="parent"
16
        app:layout_constraintTop_toBottomOf="parent" />
17 7
</android.support.constraint.ConstraintLayout>