Fenix Wang пре 8 година
родитељ
комит
9286ec17d6
25 измењених фајлова са 272 додато и 293 уклоњено
  1. 11 6
      app/build.gradle
  2. BIN
      app/debug.keystore
  3. 2 2
      app/res/layout/mine_fragment.xml
  4. BIN
      app/sheishuo.keystore
  5. 0 1
      app/src/com/sheishuo/app/SheishuoApplication.java
  6. 21 0
      app/src/com/sheishuo/app/cache/SocialInfoCache.java
  7. 5 0
      app/src/com/sheishuo/app/common/beans/SocialInfoBean.java
  8. 105 0
      app/src/com/sheishuo/app/common/util/img/ImgUtil.java
  9. 0 142
      app/src/com/sheishuo/app/common/util/location/LocationHelper.java
  10. 0 82
      app/src/com/sheishuo/app/common/util/location/SheishuoLocationHelper.java
  11. 1 1
      app/src/com/sheishuo/app/common/util/net/INet.java
  12. 15 8
      app/src/com/sheishuo/app/common/util/net/NetImpl.java
  13. 4 5
      app/src/com/sheishuo/app/core_module/circle/activity/NewTweetingActivity.java
  14. 4 1
      app/src/com/sheishuo/app/core_module/mine/view/ui/activity/AccountAndSecurityActivity.java
  15. 1 1
      app/src/com/sheishuo/app/core_module/mine/view/ui/activity/UserInfoDetailActivity.java
  16. 2 1
      app/src/com/sheishuo/app/core_module/trade/view/adapter/TradeItemAdapter.java
  17. 1 0
      app/src/com/sheishuo/app/impl/SheishuoTeamMessageActivity.java
  18. 2 1
      app/src/com/sheishuo/app/impl/SheishuoUI.java
  19. 2 2
      app/src/com/sheishuo/app/location/activity/LocationAmapActivity.java
  20. 1 1
      app/src/com/sheishuo/app/location/helper/NimLocationManager.java
  21. 3 1
      app/src/com/sheishuo/app/main/adapter/CircleListAdapter.java
  22. 63 2
      app/src/com/sheishuo/app/main/fragment/AreaGroupsFragment.java
  23. 1 1
      app/src/com/sheishuo/app/main/fragment/CircleOfFriendsFragment.java
  24. 5 12
      app/src/com/sheishuo/app/main/fragment/MineFragment.java
  25. 23 23
      app/src/com/sheishuo/app/main/fragment/TradeListFragment.java

+ 11 - 6
app/build.gradle

@@ -27,20 +27,25 @@ android {
     }
 
     signingConfigs {
-        debug { storeFile file("debug.keystore") }
+        debug {
+            storeFile file("debug.keystore")
+            storePassword 'android'
+            keyAlias 'androiddebugkey'
+            keyPassword 'android'
+        }
 
         release {
-            storeFile file('release.keystore')
-            storePassword 'thisiskeystorepassword'
-            keyAlias 'nim_demo'
-            keyPassword 'thisiskeypassword'
+            storeFile file('sheishuo.keystore')
+            storePassword 'SheiShuo2017'
+            keyAlias 'sheishuo'
+            keyPassword 'SheiShuo2017'
         }
     }
 
     buildTypes {
         debug {
             signingConfig signingConfigs.debug
-            manifestPlaceholders = [AMAP_KEY: "09fd4efd3e28e9bf1f449ecec7d34bfe"]
+            manifestPlaceholders = [AMAP_KEY: "318efe70b54fb682a980706e8680382f"]
         }
 
         release {

BIN
app/debug.keystore


+ 2 - 2
app/res/layout/mine_fragment.xml

@@ -47,8 +47,8 @@
 
             <ImageView
                 android:id="@+id/mine_fragment_personal_settings"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
                 android:layout_margin="16dp"
                 android:src="@drawable/mine_settings_white"
                 app:layout_anchor="@id/mine_fragment_banner"

BIN
app/sheishuo.keystore


+ 0 - 1
app/src/com/sheishuo/app/SheishuoApplication.java

@@ -14,7 +14,6 @@ import android.util.Log;
 import com.netease.nim.uikit.ContextCache;
 import com.sheishuo.app.avchat.AVChatProfile;
 import com.sheishuo.app.common.util.location.CityDataHelper;
-import com.sheishuo.app.common.util.location.LocationHelper;
 import com.sheishuo.app.config.preference.UserPreferences;
 import com.sheishuo.app.main.activity.WelcomeActivity;
 import com.sheishuo.app.avchat.activity.AVChatActivity;

+ 21 - 0
app/src/com/sheishuo/app/cache/SocialInfoCache.java

@@ -1,5 +1,8 @@
 package com.sheishuo.app.cache;
 
+import com.netease.nimlib.sdk.NIMClient;
+import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
+import com.netease.nimlib.sdk.uinfo.UserService;
 import com.sheishuo.app.common.beans.SocialInfoBean;
 import com.sheishuo.app.common.util.net.INet;
 import com.sheishuo.app.common.util.net.NetImpl;
@@ -28,5 +31,23 @@ public class SocialInfoCache {
         return null;
     }
 
+    public static String getNick(String id)
+    {
+        UserInfoProvider.UserInfo user = NIMClient.getService(UserService.class).getUserInfo(id);
+        if (user.getName() != null && user.getName().length() > 0)
+        {
+            return user.getName();
+        }
+        return getSsid(id);
+    }
+
+    public static String getSsid(String id)
+    {
+        SocialInfoBean bean = SocialInfoCache.get(id);
+        if(bean != null)
+            return bean.getSsid();
+        return id;
+    }
+
 }
 

+ 5 - 0
app/src/com/sheishuo/app/common/beans/SocialInfoBean.java

@@ -41,6 +41,7 @@ public class SocialInfoBean {
      */
 
     private String id;
+    private String ssid;
     private String pwd;
     private String nick;
     private String mobile;
@@ -78,6 +79,10 @@ public class SocialInfoBean {
         this.id = id;
     }
 
+    public String getSsid() {return  ssid;}
+
+    public void setSsid(String ssid) { this.ssid = ssid;}
+
     public String getPwd() {
         return pwd;
     }

+ 105 - 0
app/src/com/sheishuo/app/common/util/img/ImgUtil.java

@@ -3,7 +3,11 @@ package com.sheishuo.app.common.util.img;
 import android.app.Activity;
 import android.content.Context;
 import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Matrix;
 import android.graphics.Point;
+import android.media.ExifInterface;
 import android.util.DisplayMetrics;
 import android.view.WindowManager;
 import android.widget.ImageView;
@@ -11,6 +15,10 @@ import android.widget.ImageView;
 import com.bumptech.glide.Glide;
 import com.sheishuo.app.SheishuoApplication;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
 /**
  * Created by KN on 2017/7/7.
  */
@@ -74,4 +82,101 @@ public class ImgUtil {
 
         return point.y;
     }
+
+
+
+
+    public static File compressImage(String filePath, String targetPath, int quality)  {
+        Bitmap bm = getSmallBitmap(filePath);//获取一定尺寸的图片
+        int degree = readPictureDegree(filePath);//获取相片拍摄角度
+        if(degree!=0){//旋转照片角度,防止头像横着显示
+            bm = rotateBitmap(bm,degree);
+        }
+        File outputFile = new File(targetPath);
+        try {
+            if (!outputFile.exists()) {
+                outputFile.getParentFile().mkdirs();
+                //outputFile.createNewFile();
+            }else{
+                outputFile.delete();
+            }
+            FileOutputStream out = new FileOutputStream(outputFile);
+            bm.compress(Bitmap.CompressFormat.JPEG, quality, out);
+        }catch (Exception e){}
+        return outputFile;
+    }
+
+    /**
+     * 根据路径获得图片信息并按比例压缩,返回bitmap
+     */
+    public static Bitmap getSmallBitmap(String filePath) {
+        final BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inJustDecodeBounds = true;//只解析图片边沿,获取宽高
+        BitmapFactory.decodeFile(filePath, options);
+        // 计算缩放比
+        options.inSampleSize = calculateInSampleSize(options, 480, 800);
+        // 完整解析图片返回bitmap
+        options.inJustDecodeBounds = false;
+        return BitmapFactory.decodeFile(filePath, options);
+    }
+
+
+    /**
+     * 获取照片角度
+     * @param path
+     * @return
+     */
+    public static int readPictureDegree(String path) {
+        int degree = 0;
+        try {
+            ExifInterface exifInterface = new ExifInterface(path);
+            int orientation = exifInterface.getAttributeInt(
+                    ExifInterface.TAG_ORIENTATION,
+                    ExifInterface.ORIENTATION_NORMAL);
+            switch (orientation) {
+                case ExifInterface.ORIENTATION_ROTATE_90:
+                    degree = 90;
+                    break;
+                case ExifInterface.ORIENTATION_ROTATE_180:
+                    degree = 180;
+                    break;
+                case ExifInterface.ORIENTATION_ROTATE_270:
+                    degree = 270;
+                    break;
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return degree;
+    }
+
+    /**
+     * 旋转照片
+     * @param bitmap
+     * @param degress
+     * @return
+     */
+    public static Bitmap rotateBitmap(Bitmap bitmap,int degress) {
+        if (bitmap != null) {
+            Matrix m = new Matrix();
+            m.postRotate(degress);
+            bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
+                    bitmap.getHeight(), m, true);
+            return bitmap;
+        }
+        return bitmap;
+    }
+
+    public static int calculateInSampleSize(BitmapFactory.Options options,
+                                            int reqWidth, int reqHeight) {
+        final int height = options.outHeight;
+        final int width = options.outWidth;
+        int inSampleSize = 1;
+        if (height > reqHeight || width > reqWidth) {
+            final int heightRatio = Math.round((float) height / (float) reqHeight);
+            final int widthRatio = Math.round((float) width / (float) reqWidth);
+            inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
+        }
+        return inSampleSize;
+    }
 }

+ 0 - 142
app/src/com/sheishuo/app/common/util/location/LocationHelper.java

@@ -1,142 +0,0 @@
-package com.sheishuo.app.common.util.location;
-
-import android.Manifest;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.location.Location;
-import android.location.LocationManager;
-import android.support.v4.app.ActivityCompat;
-import android.util.Log;
-import android.view.View;
-import android.widget.Toast;
-
-import com.netease.nim.uikit.LocationProvider;
-import com.netease.nim.uikit.common.ui.dialog.EasyAlertDialog;
-import com.netease.nim.uikit.common.util.log.LogUtil;
-import com.sheishuo.app.location.activity.LocationAmapActivity;
-import com.sheishuo.app.location.activity.LocationExtras;
-import com.sheishuo.app.location.activity.NavigationAmapActivity;
-import com.sheishuo.app.location.helper.NimLocationManager;
-
-import java.util.List;
-
-/**
- * Created by KN on 2017/8/21.
- */
-public class LocationHelper implements LocationProvider {
-    private static String TAG = LocationHelper.class.getSimpleName();
-    private static LocationManager locationManager;
-    private static String provider;
-    private static Location location;
-    private static Context context;
-
-
-    public static void init(Context context) {
-        if(true)
-            return;
-        LocationHelper.context = context;
-        initLocation(context);
-
-    }
-
-    @Override
-    public void requestLocation(final Context context, Callback callback) {
-        if (!NimLocationManager.isLocationEnable(context)) {
-            final EasyAlertDialog alertDialog = new EasyAlertDialog(context);
-            alertDialog.setMessage("位置服务未开启");
-            alertDialog.addNegativeButton("取消", EasyAlertDialog.NO_TEXT_COLOR, EasyAlertDialog.NO_TEXT_SIZE,
-                    new View.OnClickListener() {
-
-                        @Override
-                        public void onClick(View v) {
-                            alertDialog.dismiss();
-                        }
-                    });
-            alertDialog.addPositiveButton("设置", EasyAlertDialog.NO_TEXT_COLOR, EasyAlertDialog.NO_TEXT_SIZE,
-                    new View.OnClickListener() {
-
-                        @Override
-                        public void onClick(View v) {
-                            alertDialog.dismiss();
-                            Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
-                            try {
-                                context.startActivity(intent);
-                            } catch (Exception e) {
-                                LogUtil.e("LOC", "start ACTION_LOCATION_SOURCE_SETTINGS error");
-                            }
-
-                        }
-                    });
-            alertDialog.show();
-            return;
-        }
-
-        LocationAmapActivity.start(context, callback);
-    }
-
-    @Override
-    public void openMap(Context context, double longitude, double latitude, String address) {
-        Intent intent = new Intent(context, NavigationAmapActivity.class);
-        intent.putExtra(LocationExtras.LONGITUDE, longitude);
-        intent.putExtra(LocationExtras.LATITUDE, latitude);
-        intent.putExtra(LocationExtras.ADDRESS, address);
-        context.startActivity(intent);
-    }
-
-
-    private static void initLocation(Context context) {
-        if(true)
-            return;
-
-        //获取定位服务
-        locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
-        //获取当前可用的位置控制器
-        List<String> list = locationManager.getProviders(true);
-        Log.e(TAG,"Provider size" + list.size());
-
-        if (list.contains(LocationManager.GPS_PROVIDER)) {
-            //是否为GPS位置控制器
-            provider = LocationManager.GPS_PROVIDER;
-        } else if (list.contains(LocationManager.NETWORK_PROVIDER)) {
-            //是否为网络位置控制器
-            provider = LocationManager.NETWORK_PROVIDER;
-
-        } else {
-            Toast.makeText(context, "请检查网络或GPS是否打开", Toast.LENGTH_LONG).show();
-            return;
-        }
-        if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-            // TODO: Consider calling
-            //    ActivityCompat#requestPermissions
-            // here to request the missing permissions, and then overriding
-            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
-            //                                          int[] grantResults)
-            // to handle the case where the user grants the permission. See the documentation
-            // for ActivityCompat#requestPermissions for more details.
-            location = locationManager.getLastKnownLocation(provider);
-            return;
-        }
-
-        location = locationManager.getLastKnownLocation(provider);
-        if (location == null)Log.e(TAG,"location is null");
-    }
-
-
-    public static void updateLocation(){
-        initLocation(context);
-    }
-
-    public static String getLatitude(){
-        if (location != null)return String.valueOf(location.getLatitude());
-        Log.e(TAG,"Latitude获取失败");
-        return "0.0";
-    }
-
-    public static String getLongitude(){
-        if (location != null)return String.valueOf(location.getLongitude());
-        Log.e(TAG,"Longitude获取失败");
-        return "0.0";
-    }
-
-}

+ 0 - 82
app/src/com/sheishuo/app/common/util/location/SheishuoLocationHelper.java

@@ -1,82 +0,0 @@
-package com.sheishuo.app.common.util.location;
-
-import android.Manifest;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.location.Location;
-import android.location.LocationListener;
-import android.location.LocationManager;
-import android.os.Bundle;
-import android.support.v4.app.ActivityCompat;
-import android.widget.Toast;
-
-import java.util.List;
-
-/**
- * Created by KN on 2017/8/17.
- */
-
-public class SheishuoLocationHelper {
-    private LocationManager locationManager;
-    private String locationProvider;
-
-
-    public void updateLocation(Context context) {
-        //获取地理位置管理器
-        locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
-        //获取所有可用的位置提供器
-        List<String> providers = locationManager.getProviders(true);
-        if (providers.contains(LocationManager.GPS_PROVIDER)) {
-            //如果是GPS
-            locationProvider = LocationManager.GPS_PROVIDER;
-        } else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
-            //如果是Network
-            locationProvider = LocationManager.NETWORK_PROVIDER;
-        } else {
-            Toast.makeText(context, "没有可用的位置提供器", Toast.LENGTH_SHORT).show();
-            return;
-        }
-        //获取Location
-        Location location = locationManager.getLastKnownLocation(locationProvider);
-        if (location != null) {
-            //不为空,显示地理位置经纬度
-        }
-        //监视地理位置变化
-        if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-            // TODO: Consider calling
-            //    ActivityCompat#requestPermissions
-            // here to request the missing permissions, and then overriding
-            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
-            //                                          int[] grantResults)
-            // to handle the case where the user grants the permission. See the documentation
-            // for ActivityCompat#requestPermissions for more details.
-            return;
-        }
-        locationManager.requestLocationUpdates(locationProvider, 3000, 1, locationListener);
-    }
-
-
-    LocationListener locationListener =  new LocationListener() {
-
-        @Override
-        public void onStatusChanged(String provider, int status, Bundle arg2) {
-
-        }
-
-        @Override
-        public void onProviderEnabled(String provider) {
-
-        }
-
-        @Override
-        public void onProviderDisabled(String provider) {
-
-        }
-
-        @Override
-        public void onLocationChanged(Location location) {
-            //如果位置发生变化,重新显示
-
-        }
-    };
-}

+ 1 - 1
app/src/com/sheishuo/app/common/util/net/INet.java

@@ -18,7 +18,7 @@ public interface INet {
     void get(String url,ResponseCallback callback);
     void post(String url,FormBody body,ResponseCallback callback);
     void post(String url, RequestBody body,ResponseCallback callback);
-    void updateLatitudeAndLongitude(ResponseCallback callback);
+    void updateLatitudeAndLongitude(double longitude, double latitude, ResponseCallback callback);
     void updateLocation(String province,String city,String district,ResponseCallback callback);
     void loginQuery(String mobile,String pwd,ResponseCallback callback);
     void getVerificationCode(String mobile,ResponseCallback callback);

+ 15 - 8
app/src/com/sheishuo/app/common/util/net/NetImpl.java

@@ -5,6 +5,7 @@ import android.util.Log;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import com.sheishuo.app.SheishuoApplication;
 import com.sheishuo.app.cache.AccountCache;
 import com.sheishuo.app.cache.HobbyCache;
 import com.sheishuo.app.cache.SocialInfoCache;
@@ -14,7 +15,7 @@ import com.sheishuo.app.common.beans.GiftBean;
 import com.sheishuo.app.common.beans.SocialInfoBean;
 import com.sheishuo.app.common.beans.SocialPhoto;
 import com.sheishuo.app.common.beans.TradeBean;
-import com.sheishuo.app.common.util.location.LocationHelper;
+import com.sheishuo.app.common.util.img.ImgUtil;
 import com.sheishuo.app.login.beans.LoginBean;
 
 import org.json.JSONArray;
@@ -118,17 +119,16 @@ public class NetImpl implements INet {
     }
 
     @Override
-    public void updateLatitudeAndLongitude(final ResponseCallback callback) {
+    public void updateLatitudeAndLongitude(final double longitude, final double latitude, final ResponseCallback callback) {
         new Thread(new Runnable() {
             @Override
             public void run() {
                 try {
-                    LocationHelper.updateLocation();
-
+                    Log.e("request", ""+longitude+", "+latitude);
                     FormBody body = new FormBody.Builder()
                             .add("id",AccountCache.getAccount().getId())
-                            .add("latitude", LocationHelper.getLatitude())
-                            .add("longitude",LocationHelper.getLongitude())
+                            .add("latitude", ""+latitude)
+                            .add("longitude", ""+longitude)
                             .build();
 
                     Request request = new Request.Builder()
@@ -355,12 +355,19 @@ public class NetImpl implements INet {
 
     @Override
     public void uploadImgs(String filePath, final ResponseCallback callback) {
-        File file = new File(filePath);
+        //File file = new File(filePath);
+
         MultipartBody.Builder builder = new MultipartBody.Builder();
         builder.setType(MultipartBody.FORM);
 
         builder.addFormDataPart("user_id", AccountCache.getAccount().getId());
-        builder.addFormDataPart("upload", file.getName(), RequestBody.create(null, file));
+
+        String targetPath = SheishuoApplication.getContext().getCacheDir()+"/compressPic.jpg";
+        //调用压缩图片的方法,返回压缩后的图片path
+        final File compressedPic = ImgUtil.compressImage(filePath, targetPath, 50);
+
+
+        builder.addFormDataPart("upload", compressedPic.getName(), RequestBody.create(null, compressedPic));
 
 
         RequestBody body = builder.build();

+ 4 - 5
app/src/com/sheishuo/app/core_module/circle/activity/NewTweetingActivity.java

@@ -19,7 +19,6 @@ import com.sheishuo.app.R;
 import com.sheishuo.app.cache.AccountCache;
 import com.sheishuo.app.core_module.circle.presenter.NewTweetPresenter;
 import com.sheishuo.app.common.util.img.ImgUtil;
-import com.sheishuo.app.common.util.location.LocationHelper;
 import com.sheishuo.app.common.util.net.NetStatus;
 import com.sheishuo.app.common.views.BaseToolbar;
 import com.sheishuo.app.main.activity.MainActivity;
@@ -130,10 +129,10 @@ public class NewTweetingActivity extends SheishuoUI {
 
 
         //初始化定位
-        AccountCache.getAccount().setLatitude(LocationHelper.getLatitude());
-        AccountCache.getAccount().setLongitude(LocationHelper.getLongitude());
-
-        Log.e(TAG, "location ===> " + LocationHelper.getLatitude() + "   " + LocationHelper.getLongitude());
+//        AccountCache.getAccount().setLatitude(LocationHelper.getLatitude());
+//        AccountCache.getAccount().setLongitude(LocationHelper.getLongitude());
+//
+//        Log.e(TAG, "location ===> " + LocationHelper.getLatitude() + "   " + LocationHelper.getLongitude());
         locationTV.setText(AccountCache.getAccount().getCity() + AccountCache.getAccount().getDistrict());
 
 

+ 4 - 1
app/src/com/sheishuo/app/core_module/mine/view/ui/activity/AccountAndSecurityActivity.java

@@ -10,6 +10,8 @@ import android.widget.TextView;
 
 import com.sheishuo.app.R;
 import com.sheishuo.app.cache.AccountCache;
+import com.sheishuo.app.cache.SocialInfoCache;
+import com.sheishuo.app.common.beans.SocialInfoBean;
 import com.sheishuo.app.common.views.BaseToolbar;
 import com.sheishuo.app.impl.SheishuoUI;
 
@@ -56,7 +58,7 @@ public class AccountAndSecurityActivity extends SheishuoUI {
         });
 
 
-        idTV.setText(AccountCache.getAccount().getId());
+        idTV.setText(SocialInfoCache.getSsid(AccountCache.getAccount().getId()));
         mobileTV.setText(AccountCache.getAccount().getMobile());
         changePwdLayout.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -65,4 +67,5 @@ public class AccountAndSecurityActivity extends SheishuoUI {
             }
         });
     }
+
 }

+ 1 - 1
app/src/com/sheishuo/app/core_module/mine/view/ui/activity/UserInfoDetailActivity.java

@@ -295,7 +295,7 @@ public class UserInfoDetailActivity extends SheishuoUI {
             @Override
             public void onSuccess(List<NimUserInfo> nimUserInfos) {
                 nameTV.setText(getName(userId));
-                idTV.setText("ID:" + userId);
+                idTV.setText("ID:" + SocialInfoCache.getSsid(userId));
 
                 if (nimUserInfos.get(0).getAvatar() != null)
                     Glide.with(context)

+ 2 - 1
app/src/com/sheishuo/app/core_module/trade/view/adapter/TradeItemAdapter.java

@@ -17,6 +17,7 @@ import com.netease.nimlib.sdk.uinfo.UserService;
 import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
 import com.sheishuo.app.R;
 import com.sheishuo.app.cache.AccountCache;
+import com.sheishuo.app.cache.SocialInfoCache;
 import com.sheishuo.app.common.beans.TradeBean;
 import com.sheishuo.app.common.views.GridViewAdapter;
 import com.sheishuo.app.common.views.ImgGridView;
@@ -274,7 +275,7 @@ public class TradeItemAdapter extends RecyclerView.Adapter<TradeItemAdapter.Trad
         if (NIMClient.getService(UserService.class).getUserInfo(userId) != null) {
             String name = NIMClient.getService(UserService.class).getUserInfo(userId).getName();
             if (name.equals("")) {
-                return userId;
+                return SocialInfoCache.getSsid(userId);
             } else {
                 return name;
             }

+ 1 - 0
app/src/com/sheishuo/app/impl/SheishuoTeamMessageActivity.java

@@ -138,6 +138,7 @@ public class SheishuoTeamMessageActivity extends TeamMessageActivity {
                     showTeamSetting();
                 }
             });
+            toolbar.setRightItems(new View[]{settingIcon});
         }
     }
 

+ 2 - 1
app/src/com/sheishuo/app/impl/SheishuoUI.java

@@ -17,6 +17,7 @@ import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
 import com.netease.nimlib.sdk.uinfo.UserService;
 import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
 import com.sheishuo.app.R;
+import com.sheishuo.app.cache.SocialInfoCache;
 
 import static com.netease.nim.uikit.common.util.sys.ScreenUtil.getStatusBarHeight;
 
@@ -88,7 +89,7 @@ public class SheishuoUI extends UI {
             return user.getName();
         }
 
-        return id;
+        return SocialInfoCache.getSsid(id);
     }
 
 

+ 2 - 2
app/src/com/sheishuo/app/location/activity/LocationAmapActivity.java

@@ -118,8 +118,8 @@ public class LocationAmapActivity extends UI implements  OnCameraChangeListener,
     	locationManager = new NimLocationManager(this, this);
     	Location location = locationManager.getLastKnownLocation();
     	
-    	 Intent intent = getIntent();
-         float zoomLevel = intent.getIntExtra(LocationExtras.ZOOM_LEVEL, LocationExtras.DEFAULT_ZOOM_LEVEL);
+		Intent intent = getIntent();
+		float zoomLevel = intent.getIntExtra(LocationExtras.ZOOM_LEVEL, LocationExtras.DEFAULT_ZOOM_LEVEL);
 
         LatLng latlng = null;
         if (location == null) {

+ 1 - 1
app/src/com/sheishuo/app/location/helper/NimLocationManager.java

@@ -248,7 +248,7 @@ public class NimLocationManager implements AMapLocationListener {
 	private void requestAmapLocation() {
         if (aMapLocationManager == null) {
             aMapLocationManager = LocationManagerProxy.getInstance(mContext);
-            aMapLocationManager.setGpsEnable(true);
+            aMapLocationManager.setGpsEnable(false);
             aMapLocationManager.requestLocationData(
                     LocationProviderProxy.AMapNetwork, 30 * 1000, 10, this);
         }

+ 3 - 1
app/src/com/sheishuo/app/main/adapter/CircleListAdapter.java

@@ -27,7 +27,9 @@ import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
 import com.sheishuo.app.R;
 import com.sheishuo.app.SheishuoApplication;
 import com.sheishuo.app.cache.AccountCache;
+import com.sheishuo.app.cache.SocialInfoCache;
 import com.sheishuo.app.common.beans.CircleBean;
+import com.sheishuo.app.common.beans.SocialInfoBean;
 import com.sheishuo.app.common.util.img.ImgUtil;
 import com.sheishuo.app.common.util.net.INet;
 import com.sheishuo.app.common.util.net.NetImpl;
@@ -321,7 +323,7 @@ public class CircleListAdapter  extends RecyclerView.Adapter<CircleListAdapter.C
         if (NIMClient.getService(UserService.class).getUserInfo(userId) != null) {
             String name = NIMClient.getService(UserService.class).getUserInfo(userId).getName();
             if (name.isEmpty()){
-                return userId;
+                return SocialInfoCache.getSsid(userId);
             }else {
                 return name;
             }

+ 63 - 2
app/src/com/sheishuo/app/main/fragment/AreaGroupsFragment.java

@@ -2,6 +2,7 @@ package com.sheishuo.app.main.fragment;
 
 import android.content.Context;
 import android.content.Intent;
+import android.location.Location;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.util.Log;
@@ -10,8 +11,14 @@ import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.netease.nim.uikit.LocationProvider;
+import com.netease.nim.uikit.NimUIKit;
+import com.netease.nim.uikit.common.ui.dialog.EasyAlertDialog;
+import com.netease.nim.uikit.common.util.log.LogUtil;
 import com.netease.nimlib.sdk.NIMClient;
 import com.netease.nimlib.sdk.RequestCallback;
+import com.netease.nimlib.sdk.msg.MessageBuilder;
+import com.netease.nimlib.sdk.msg.model.IMMessage;
 import com.netease.nimlib.sdk.team.TeamService;
 import com.netease.nimlib.sdk.team.model.Team;
 import com.netease.nimlib.sdk.uinfo.UserService;
@@ -30,6 +37,8 @@ import com.sheishuo.app.core_module.sheishuo.view.ui.CreateNewGroupActivity;
 import com.sheishuo.app.core_module.sheishuo.view.ui.MoreGroupsInTheAreaActivity;
 import com.sheishuo.app.core_module.sheishuo.view.ui.NearbyGroupActivity;
 import com.sheishuo.app.impl.SheishuoUIKit;
+import com.sheishuo.app.location.helper.NimLocationManager;
+import com.sheishuo.app.location.model.NimLocation;
 import com.sheishuo.app.login.beans.LoginBean;
 import com.sheishuo.app.main.activity.MainActivity;
 import com.sheishuo.app.main.adapter.AreaGroupsAdapter;
@@ -45,13 +54,15 @@ import java.util.List;
  * Created by KN on 2017/7/18.
  */
 
-public class AreaGroupsFragment extends MainTabFragment {
+public class AreaGroupsFragment extends MainTabFragment implements NimLocationManager.NimLocationListener {
     private String TAG = this.getClass().getSimpleName();
     private Context context = getActivity();
     private BaseToolbar toolbar;
     private TextView toolbarLeftTxt, createGroupTxt;
     private MainActivity parent;
 
+    private NimLocationManager locationManager = null;
+
     private RecyclerView areaGroupsRecyclerview, recentGroupsRecyclerview;
 
     private AreaGroupsAdapter areaGroupsAdapter, recentGroupsAdapter;
@@ -160,7 +171,57 @@ public class AreaGroupsFragment extends MainTabFragment {
 
     //更新地理位置
     public void updateLocation() {
-        net.updateLatitudeAndLongitude(new ResponseCallback() {
+        locationManager = new NimLocationManager(getContext(), this);
+
+        if (!NimLocationManager.isLocationEnable(getContext())) {
+            final EasyAlertDialog alertDialog = new EasyAlertDialog(context);
+            alertDialog.setMessage("位置服务未开启");
+            alertDialog.addNegativeButton("取消", EasyAlertDialog.NO_TEXT_COLOR, EasyAlertDialog.NO_TEXT_SIZE,
+                    new View.OnClickListener() {
+
+                        @Override
+                        public void onClick(View v) {
+                            alertDialog.dismiss();
+                        }
+                    });
+            alertDialog.addPositiveButton("设置", EasyAlertDialog.NO_TEXT_COLOR, EasyAlertDialog.NO_TEXT_SIZE,
+                    new View.OnClickListener() {
+
+                        @Override
+                        public void onClick(View v) {
+                            alertDialog.dismiss();
+                            Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+                            try {
+                                context.startActivity(intent);
+                            } catch (Exception e) {
+                                LogUtil.e("LOC", "start ACTION_LOCATION_SOURCE_SETTINGS error");
+                            }
+
+                        }
+                    });
+            alertDialog.show();
+        }
+
+        locationManager.activate();
+        Location location = locationManager.getLastKnownLocation();
+        if(location != null && location.getLongitude() > 0 && location.getLatitude() > 0)
+        {
+            sendNewLocation(location.getLongitude(), location.getLatitude());
+        }
+    }
+
+    @Override
+    public void onLocationChanged(NimLocation location) {
+        if(location != null && location.hasCoordinates() && location.getLongitude() > 0 && location.getLatitude() > 0 && locationManager != null) {
+            sendNewLocation(location.getLongitude(), location.getLatitude());
+            locationManager.deactive();
+            locationManager = null;
+        }
+    }
+
+    private void sendNewLocation(double longitude, double latitude)
+    {
+        net.updateLatitudeAndLongitude(longitude, latitude, new ResponseCallback() {
             @Override
             public void onSuccess(Object object) {
                 getHandler().post(new Runnable() {

+ 1 - 1
app/src/com/sheishuo/app/main/fragment/CircleOfFriendsFragment.java

@@ -95,7 +95,7 @@ public class CircleOfFriendsFragment extends MainTabFragment{
                 .centerCrop()
                 .into(backgroundImg);
 
-        username.setText(user.getName());
+        username.setText(SocialInfoCache.getNick(user.getAccount()));
         isLoaded = true;
 
     }

+ 5 - 12
app/src/com/sheishuo/app/main/fragment/MineFragment.java

@@ -135,10 +135,8 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
             genderImg.setImageResource(R.drawable.mine_gender_female);
         }
 
-        usernameTV.setText(getName(mineId));
-        userIdTV.setText("ID:" + mineId);
-
-
+        usernameTV.setText(SocialInfoCache.getNick(mineId));
+        userIdTV.setText("ID:" + SocialInfoCache.getSsid(mineId));
 
     }
 
@@ -147,13 +145,6 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
         toolbar.setVisibility(View.GONE);
     }
 
-    private String getName(String id){
-        UserInfoProvider.UserInfo user = NIMClient.getService(UserService.class).getUserInfo(id);
-        if (!(user.getName() == null)){
-            return user.getName();
-        }
-        return id;
-    }
     @Override
     public void setUserVisibleHint(boolean isVisibleToUser) {
         super.setUserVisibleHint(isVisibleToUser);
@@ -362,7 +353,9 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
                             .into(bannerImg);
                 }
 
-
+                String nick = SocialInfoCache.getNick(mineId);
+                usernameTV.setText(nick);
+                userIdTV.setText("ID:" + SocialInfoCache.getSsid(mineId));
             }
         });
     }

+ 23 - 23
app/src/com/sheishuo/app/main/fragment/TradeListFragment.java

@@ -460,29 +460,29 @@ public class TradeListFragment extends MainTabFragment {
 
     //更新地理位置
     public void updateLocation() {
-        net.updateLatitudeAndLongitude(new ResponseCallback() {
-            @Override
-            public void onSuccess(Object object) {
-                getHandler().post(new Runnable() {
-                    @Override
-                    public void run() {
-                        loadTradeList(TYPE_TO_LOAD, 1);
-                        location = AccountCache.getAccount().getCity()
-                                + AccountCache.getAccount().getDistrict();
-                        if (location.length() > 6) {
-                            location = location.substring(0, 6) + "...";
-                        }
-                        if(toolbarLeftTxt != null)
-                            toolbarLeftTxt.setText(location);
-                    }
-                });
-            }
-
-            @Override
-            public void onFailed() {
-                showToast("更新地理位置失败,请检查定位权限");
-            }
-        });
+//        net.updateLatitudeAndLongitude(new ResponseCallback() {
+//            @Override
+//            public void onSuccess(Object object) {
+//                getHandler().post(new Runnable() {
+//                    @Override
+//                    public void run() {
+//                        loadTradeList(TYPE_TO_LOAD, 1);
+//                        location = AccountCache.getAccount().getCity()
+//                                + AccountCache.getAccount().getDistrict();
+//                        if (location.length() > 6) {
+//                            location = location.substring(0, 6) + "...";
+//                        }
+//                        if(toolbarLeftTxt != null)
+//                            toolbarLeftTxt.setText(location);
+//                    }
+//                });
+//            }
+//
+//            @Override
+//            public void onFailed() {
+//                showToast("更新地理位置失败,请检查定位权限");
+//            }
+//        });
     }
 
     public void updateAccountLocation(final String province, final String city, final String district) {