置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求 167
            // 在定位结束后,在合适的生命周期调用onDestroy()方法
168
            // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
169
            // 设置是否只定位一次,默认为false
170
            mLocationOption.setOnceLocation(true);
171
            //设置是否强制刷新WIFI,默认为强制刷新
172
            mLocationOption.setWifiActiveScan(false);
173
            mlocationClient.startLocation();
157
            try {
158
                mlocationClient = new AMapLocationClient(this);
159
                mLocationOption = new AMapLocationClientOption();
160
                //设置定位监听
161
                mlocationClient.setLocationListener(this);
162
                //设置为高精度定位模式
163
                mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
164
                //设置定位参数
165
                mlocationClient.setLocationOption(mLocationOption);
166
                // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
167
                // 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求
168
                // 在定位结束后,在合适的生命周期调用onDestroy()方法
169
                // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
170
                // 设置是否只定位一次,默认为false
171
                mLocationOption.setOnceLocation(true);
172
                //设置是否强制刷新WIFI,默认为强制刷新
173
                mLocationOption.setWifiActiveScan(false);
174
                mlocationClient.startLocation();
175
            } catch (Exception e) {
176
                e.printStackTrace();
177
            }
178
174 179
        }
175 180
    }
176 181

+ 18 - 9
app/src/main/java/com/electric/chargingpile/activity/SimpleNaviActivity.java

@ -8,6 +8,7 @@ import android.util.Log;
8 8
import android.view.Window;
9 9
import android.view.WindowManager;
10 10
11
import com.amap.api.maps.AMapException;
11 12
import com.amap.api.maps.model.BitmapDescriptor;
12 13
import com.amap.api.maps.model.BitmapDescriptorFactory;
13 14
import com.amap.api.navi.AMapNaviViewOptions;
@ -24,7 +25,7 @@ import com.amap.api.navi.model.AMapLaneInfo;
24 25
import com.amap.api.navi.model.AMapModelCross;
25 26
import com.amap.api.navi.model.AMapNaviCameraInfo;
26 27
import com.amap.api.navi.model.AMapNaviCross;
27
import com.amap.api.navi.model.AMapNaviInfo;
28
28 29
import com.amap.api.navi.model.AMapNaviLocation;
29 30
import com.amap.api.navi.model.AMapNaviPath;
30 31
import com.amap.api.navi.model.AMapNaviRouteNotifyData;
@ -33,7 +34,7 @@ import com.amap.api.navi.model.AMapServiceAreaInfo;
33 34
import com.amap.api.navi.model.AimLessModeCongestionInfo;
34 35
import com.amap.api.navi.model.AimLessModeStat;
35 36
import com.amap.api.navi.model.NaviInfo;
36
import com.autonavi.tbt.TrafficFacilityInfo;
37
37 38
import com.electric.chargingpile.R;
38 39
39 40
import java.util.List;
@ -73,7 +74,11 @@ public class SimpleNaviActivity extends Activity implements AMapNaviListener, AM
73 74
        options.setAfterRouteAutoGray(true);
74 75
        mAMapNaviView.setViewOptions(options);
75 76
76
        mAMapNavi = AMapNavi.getInstance(getApplicationContext());
77
        try {
78
            mAMapNavi = AMapNavi.getInstance(getApplicationContext());
79
        } catch (AMapException e) {
80
            e.printStackTrace();
81
        }
77 82
        mAMapNavi.addAMapNaviListener(this);
78 83
        mAMapNavi.setEmulatorNaviSpeed(60);
79 84
        mAMapNavi.setUseInnerVoice(true);
@ -189,9 +194,6 @@ public class SimpleNaviActivity extends Activity implements AMapNaviListener, AM
189 194
    public void onGpsOpenStatus(boolean b) {
190 195
    }
191 196
192
    @Override
193
    public void onNaviInfoUpdated(AMapNaviInfo aMapNaviInfo) {
194
    }
195 197
196 198
    @Override
197 199
    public void updateCameraInfo(AMapNaviCameraInfo[] aMapNaviCameraInfos) {
@ -215,9 +217,6 @@ public class SimpleNaviActivity extends Activity implements AMapNaviListener, AM
215 217
        }
216 218
    }
217 219
218
    @Override
219
    public void OnUpdateTrafficFacility(TrafficFacilityInfo trafficFacilityInfo) {
220
    }
221 220
222 221
    @Override
223 222
    public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo) {
@ -302,6 +301,11 @@ public class SimpleNaviActivity extends Activity implements AMapNaviListener, AM
302 301
    }
303 302
304 303
    @Override
304
    public void onGpsSignalWeak(boolean b) {
305
306
    }
307
308
    @Override
305 309
    public void onNaviSetting() {
306 310
    }
307 311
@ -346,4 +350,9 @@ public class SimpleNaviActivity extends Activity implements AMapNaviListener, AM
346 350
    @Override
347 351
    public void onNaviViewShowMode(int i) {
348 352
    }
353
354
    @Override
355
    public void onPointerCaptureChanged(boolean hasCapture) {
356
357
    }
349 358
}

+ 15 - 10
app/src/main/java/com/electric/chargingpile/activity/SwitchCityActivity.java

@ -1310,27 +1310,32 @@ public class SwitchCityActivity extends Activity implements OnScrollListener, AM
1310 1310
    private void setUpMap() {
1311 1311
//        //声明mLocationOption对象
1312 1312
//        AMapLocationClientOption mLocationOption = null;
1313
        mlocationClient = new AMapLocationClient(this);
1314
//初始化定位参数
1315
        mLocationOption = new AMapLocationClientOption();
1313
        try {
1314
            mlocationClient = new AMapLocationClient(this);
1315
            //初始化定位参数
1316
            mLocationOption = new AMapLocationClientOption();
1316 1317
//设置定位监听
1317
        mlocationClient.setLocationListener(this);
1318
            mlocationClient.setLocationListener(this);
1318 1319
//设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
1319
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
1320
        mLocationOption.setOnceLocation(true);
1321
        //设置是否强制刷新WIFI,默认为强制刷新
1322
        mLocationOption.setWifiActiveScan(false);
1320
            mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
1321
            mLocationOption.setOnceLocation(true);
1322
            //设置是否强制刷新WIFI,默认为强制刷新
1323
            mLocationOption.setWifiActiveScan(false);
1323 1324
//设置定位间隔,单位毫秒,默认为2000ms
1324 1325
//        mLocationOption.setInterval(2000);
1325 1326
//设置定位参数
1326
        mlocationClient.setLocationOption(mLocationOption);
1327
            mlocationClient.setLocationOption(mLocationOption);
1327 1328
// 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
1328 1329
// 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求
1329 1330
// 在定位结束后,在合适的生命周期调用onDestroy()方法
1330 1331
// 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
1331 1332
1332 1333
//启动定位
1333
        mlocationClient.startLocation();
1334
            mlocationClient.startLocation();
1335
        } catch (Exception e) {
1336
            e.printStackTrace();
1337
        }
1338
1334 1339
    }
1335 1340
1336 1341
    @Override

+ 16 - 10
app/src/main/java/com/electric/chargingpile/activity/UserCenterActivity.java

@ -34,6 +34,7 @@ import android.widget.ToggleButton;
34 34
35 35
import androidx.annotation.NonNull;
36 36
37
import com.amap.api.services.core.AMapException;
37 38
import com.amap.api.services.weather.LocalDayWeatherForecast;
38 39
import com.amap.api.services.weather.LocalWeatherForecast;
39 40
import com.amap.api.services.weather.LocalWeatherForecastResult;
@ -293,16 +294,21 @@ public class UserCenterActivity extends Activity implements View.OnClickListener
293 294
        loadDialog = new LoadingDialog(this);
294 295
        loadDialog.setCanceledOnTouchOutside(false);
295 296
        mquery = new WeatherSearchQuery(MainMapActivity.location_city, WeatherSearchQuery.WEATHER_TYPE_FORECAST);
296
        mweathersearch = new WeatherSearch(this);
297
        mweathersearch.setOnWeatherSearchListener(this);
298
        mweathersearch.setQuery(mquery);
299
        mweathersearch.searchWeatherAsyn(); //异步搜索
300
301
        mquery1 = new WeatherSearchQuery(MainMapActivity.location_city, WeatherSearchQuery.WEATHER_TYPE_LIVE);
302
        mweathersearch1 = new WeatherSearch(this);
303
        mweathersearch1.setOnWeatherSearchListener(this);
304
        mweathersearch1.setQuery(mquery1);
305
        mweathersearch1.searchWeatherAsyn(); //异步搜索
297
        try {
298
            mweathersearch = new WeatherSearch(this);
299
            mweathersearch.setOnWeatherSearchListener(this);
300
            mweathersearch.setQuery(mquery);
301
            mweathersearch.searchWeatherAsyn(); //异步搜索
302
303
            mquery1 = new WeatherSearchQuery(MainMapActivity.location_city, WeatherSearchQuery.WEATHER_TYPE_LIVE);
304
            mweathersearch1 = new WeatherSearch(this);
305
            mweathersearch1.setOnWeatherSearchListener(this);
306
            mweathersearch1.setQuery(mquery1);
307
            mweathersearch1.searchWeatherAsyn(); //异步搜索
308
        } catch (AMapException e) {
309
            e.printStackTrace();
310
        }
311
306 312
        sv = (ObservableScrollView) findViewById(R.id.sv);
307 313
        sv.setScrollViewListener(this);
308 314
        iv_qiandao = (ImageView) findViewById(R.id.iv_qiandao);

+ 15 - 10
app/src/main/java/com/electric/chargingpile/adapter/CityListAdapter.java

@ -289,27 +289,32 @@ public class CityListAdapter extends BaseAdapter implements AMapLocationListener
289 289
    private void setUpMap() {
290 290
//        //声明mLocationOption对象
291 291
//        AMapLocationClientOption mLocationOption = null;
292
        mlocationClient = new AMapLocationClient(mActivity);
293
//初始化定位参数
294
        mLocationOption = new AMapLocationClientOption();
292
        try {
293
            mlocationClient = new AMapLocationClient(mActivity);
294
            //初始化定位参数
295
            mLocationOption = new AMapLocationClientOption();
295 296
//设置定位监听
296
        mlocationClient.setLocationListener(this);
297
            mlocationClient.setLocationListener(this);
297 298
//设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
298
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
299
        mLocationOption.setOnceLocation(true);
300
        //设置是否强制刷新WIFI,默认为强制刷新
301
        mLocationOption.setWifiActiveScan(false);
299
            mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
300
            mLocationOption.setOnceLocation(true);
301
            //设置是否强制刷新WIFI,默认为强制刷新
302
            mLocationOption.setWifiActiveScan(false);
302 303
//设置定位间隔,单位毫秒,默认为2000ms
303 304
//        mLocationOption.setInterval(2000);
304 305
//设置定位参数
305
        mlocationClient.setLocationOption(mLocationOption);
306
            mlocationClient.setLocationOption(mLocationOption);
306 307
// 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
307 308
// 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求
308 309
// 在定位结束后,在合适的生命周期调用onDestroy()方法
309 310
// 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
310 311
311 312
//启动定位
312
        mlocationClient.startLocation();
313
            mlocationClient.startLocation();
314
315
        } catch (Exception e) {
316
            e.printStackTrace();
317
        }
313 318
    }
314 319
315 320

+ 39 - 35
app/src/main/java/com/electric/chargingpile/adapter/ZhuangStatusadapter.java

@ -242,43 +242,47 @@ public class ZhuangStatusadapter extends BaseAdapter {
242 242
        final AMapLocationClient mlocationClient;
243 243
        //声明mLocationOption对象
244 244
        AMapLocationClientOption mLocationOption = null;
245
        mlocationClient = new AMapLocationClient(activity);
246
        //初始化定位参数
247
        mLocationOption = new AMapLocationClientOption();
248
        //设置定位监听
249
        mlocationClient.setLocationListener(new AMapLocationListener() {
250
            @Override
251
            public void onLocationChanged(AMapLocation amapLocation) {
252
                if (amapLocation != null) {
253
                    if (amapLocation.getErrorCode() == 0) {
254
                        //定位成功回调信息,设置相关消息
255
                        amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表
256
                        amapLocation.getLatitude();//获取纬度
257
                        amapLocation.getLongitude();//获取
258
                        amapLocation.getAccuracy();//获取精度信息
259
                        LogUtils.e(amapLocation.getLatitude() + "--" + amapLocation.getLongitude());
260
                        mlocationClient.stopLocation();
261
                        sendControlParkingDownLock(amapLocation, zhuangStatus);
262
                    } else {
263
                        //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
264
                        Log.e("AmapError", "location Error, ErrCode:"
265
                                + amapLocation.getErrorCode() + ", errInfo:"
266
                                + amapLocation.getErrorInfo());
245
        try {
246
            mlocationClient = new AMapLocationClient(activity);
247
            //初始化定位参数
248
            mLocationOption = new AMapLocationClientOption();
249
            //设置定位监听
250
            mlocationClient.setLocationListener(new AMapLocationListener() {
251
                @Override
252
                public void onLocationChanged(AMapLocation amapLocation) {
253
                    if (amapLocation != null) {
254
                        if (amapLocation.getErrorCode() == 0) {
255
                            //定位成功回调信息,设置相关消息
256
                            amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表
257
                            amapLocation.getLatitude();//获取
258
                            amapLocation.getLongitude();//获取经度
259
                            amapLocation.getAccuracy();//获取精度信息
260
                            LogUtils.e(amapLocation.getLatitude() + "--" + amapLocation.getLongitude());
261
                            mlocationClient.stopLocation();
262
                            sendControlParkingDownLock(amapLocation, zhuangStatus);
263
                        } else {
264
                            //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
265
                            Log.e("AmapError", "location Error, ErrCode:"
266
                                    + amapLocation.getErrorCode() + ", errInfo:"
267
                                    + amapLocation.getErrorInfo());
268
                        }
267 269
                    }
268 270
                }
269
            }
270
        });
271
        //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
272
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
273
        //设置定位间隔,单位毫秒,默认为2000ms//        mLocationOption.setInterval(2000);
274
        //设置定位参数
275
        mlocationClient.setLocationOption(mLocationOption);
276
        // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
277
        // 注意设置合适的定位时间的间隔(最小间隔支持为1000ms),并且在合适时间调用stopLocation()方法来取消定位请求
278
        // 在定位结束后,在合适的生命周期调用onDestroy()方法
279
        // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
280
        //启动定位
281
        mlocationClient.startLocation();
271
            });
272
            //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
273
            mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
274
            //设置定位间隔,单位毫秒,默认为2000ms//        mLocationOption.setInterval(2000);
275
            //设置定位参数
276
            mlocationClient.setLocationOption(mLocationOption);
277
            // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
278
            // 注意设置合适的定位时间的间隔(最小间隔支持为1000ms),并且在合适时间调用stopLocation()方法来取消定位请求
279
            // 在定位结束后,在合适的生命周期调用onDestroy()方法
280
            // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
281
            //启动定位
282
            mlocationClient.startLocation();
283
        } catch (Exception e) {
284
            e.printStackTrace();
285
        }
282 286
    }
283 287
284 288
    private void sendControlParkingDownLock(AMapLocation amapLocation, ZhuangStatus zhuangStatus) {

+ 6 - 0
app/src/main/java/com/electric/chargingpile/application/MainApplication.java

@ -13,6 +13,7 @@ import android.util.Log;
13 13
import androidx.multidex.MultiDexApplication;
14 14

15 15
import com.alibaba.fastjson.JSONException;
16
import com.amap.api.location.AMapLocationClient;
16 17
import com.amap.api.maps.model.LatLng;
17 18
import com.blankj.utilcode.util.LogUtils;
18 19
import com.blankj.utilcode.util.Utils;
@ -199,6 +200,9 @@ public class MainApplication extends MultiDexApplication {
199 200
        userCarIntentMode = ProfileManager.getInstance().getCarIntentModel(getApplicationContext());
200 201
        loginRemind();
201 202
        setFestival();
203
        if (ProfileManager.getInstance().getPrivacyAgreement(this)) {
204
            MainApplication.initSDK();
205
        }
202 206
    }
203 207

204 208
    public void initJPush() {
@ -392,6 +396,8 @@ public class MainApplication extends MultiDexApplication {
392 396
    }
393 397

394 398
    public static void initSDK() {
399
        AMapLocationClient.updatePrivacyShow(context,true,true);
400
        AMapLocationClient.updatePrivacyAgree(context,true);
395 401
        MobSDK.init(MainApplication.context);
396 402
        MobSDK.submitPolicyGrantResult(true,null);
397 403
        CrashReport.initCrashReport(MainApplication.context, "900010422", BuildConfig.DEBUG);

+ 7 - 9
app/src/main/java/com/electric/chargingpile/util/TTSController.java

@ -10,7 +10,7 @@ import com.amap.api.navi.model.AMapLaneInfo;
10 10
import com.amap.api.navi.model.AMapModelCross;
11 11
import com.amap.api.navi.model.AMapNaviCameraInfo;
12 12
import com.amap.api.navi.model.AMapNaviCross;
13
import com.amap.api.navi.model.AMapNaviInfo;
13
14 14
import com.amap.api.navi.model.AMapNaviLocation;
15 15
import com.amap.api.navi.model.AMapNaviRouteNotifyData;
16 16
import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo;
@ -18,7 +18,7 @@ import com.amap.api.navi.model.AMapServiceAreaInfo;
18 18
import com.amap.api.navi.model.AimLessModeCongestionInfo;
19 19
import com.amap.api.navi.model.AimLessModeStat;
20 20
import com.amap.api.navi.model.NaviInfo;
21
import com.autonavi.tbt.TrafficFacilityInfo;
21
22 22
import com.blankj.utilcode.util.LogUtils;
23 23
import com.electric.chargingpile.R;
24 24
import com.iflytek.cloud.speech.SpeechConstant;
@ -279,11 +279,7 @@ public class TTSController implements SynthesizerListener, AMapNaviListener, AMa
279 279
280 280
    }
281 281
282
    @Override
283
    public void onNaviInfoUpdated(AMapNaviInfo arg0) {
284
        // TODO Auto-generated method stub
285 282
286
    }
287 283
288 284
    @Override
289 285
    public void updateCameraInfo(AMapNaviCameraInfo[] aMapNaviCameraInfos) {
@ -307,10 +303,7 @@ public class TTSController implements SynthesizerListener, AMapNaviListener, AMa
307 303
308 304
    }
309 305
310
    @Override
311
    public void OnUpdateTrafficFacility(TrafficFacilityInfo trafficFacilityInfo) {
312 306
313
    }
314 307
315 308
    @Override
316 309
    public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo) {
@ -401,6 +394,11 @@ public class TTSController implements SynthesizerListener, AMapNaviListener, AMa
401 394
    }
402 395
403 396
    @Override
397
    public void onGpsSignalWeak(boolean b) {
398
399
    }
400
401
    @Override
404 402
    public void onNaviSetting() {
405 403
    }
406 404

BIN
app/src/main/jniLibs/arm64-v8a/libAMapSDK_MAP_v6_9_2.so


BIN
app/src/main/jniLibs/arm64-v8a/libAMapSDK_NAVI_v6_9_0.so


BIN
app/src/main/jniLibs/arm64-v8a/libAMapSDK_NAVI_v8_1_0.so


BIN
app/src/main/jniLibs/arm64-v8a/libneonui_shared.so


BIN
app/src/main/jniLibs/arm64-v8a/libneonuijni_public.so


BIN
app/src/main/jniLibs/armeabi-v7a/libAMapSDK_MAP_v6_9_2.so


BIN
app/src/main/jniLibs/armeabi-v7a/libAMapSDK_NAVI_v6_9_0.so


BIN
app/src/main/jniLibs/armeabi-v7a/libAMapSDK_NAVI_v8_1_0.so


BIN
app/src/main/jniLibs/armeabi-v7a/libneonui_shared.so


BIN
app/src/main/jniLibs/armeabi-v7a/libneonuijni_public.so


BIN
app/src/main/jniLibs/armeabi/libAMapSDK_MAP_v6_9_2.so


BIN
app/src/main/jniLibs/armeabi/libAMapSDK_NAVI_v6_9_0.so


BIN
app/src/main/jniLibs/armeabi/libAMapSDK_NAVI_v8_1_0.so


BIN
app/src/main/jniLibs/armeabi/libneonui_shared.so


BIN
app/src/main/jniLibs/armeabi/libneonuijni_public.so


代码优化 · aabf9cbc7a - Gogs: Go Git Service
huyuguo 7 anni fa
parent
commit
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>