|
@@ -4,7 +4,9 @@ import android.app.Activity;
|
|
|
import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
import android.util.Log;
|
|
|
+import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
+import android.widget.GridLayout;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.ScrollView;
|
|
@@ -12,9 +14,12 @@ import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
import com.bumptech.glide.Glide;
|
|
|
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.netease.nim.uikit.common.media.picker.PickImageHelper;
|
|
|
+import com.netease.nim.uikit.common.media.picker.activity.PickImageActivity;
|
|
|
import com.netease.nim.uikit.common.media.picker.model.PhotoInfo;
|
|
|
+import com.netease.nim.uikit.common.util.media.ImageUtil;
|
|
|
import com.netease.nimlib.sdk.NIMClient;
|
|
|
import com.netease.nimlib.sdk.RequestCallback;
|
|
|
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
|
|
@@ -23,22 +28,29 @@ import com.netease.nimlib.sdk.uinfo.constant.UserInfoFieldEnum;
|
|
|
import com.sheishuo.app.R;
|
|
|
import com.sheishuo.app.cache.AccountCache;
|
|
|
import com.sheishuo.app.cache.MineSocialCache;
|
|
|
+import com.sheishuo.app.cache.SocialInfoCache;
|
|
|
import com.sheishuo.app.common.beans.SocialInfoBean;
|
|
|
+import com.sheishuo.app.common.beans.SocialPhoto;
|
|
|
+import com.sheishuo.app.common.util.img.ImgUtil;
|
|
|
import com.sheishuo.app.common.util.net.INet;
|
|
|
import com.sheishuo.app.common.util.net.NetImpl;
|
|
|
import com.sheishuo.app.common.util.net.ResponseCallback;
|
|
|
import com.sheishuo.app.common.views.BaseToolbar;
|
|
|
import com.sheishuo.app.core_module.mine.view.ui.activity.MineTradeActivity;
|
|
|
+import com.sheishuo.app.core_module.mine.view.ui.activity.MineUploadPhotoActivity;
|
|
|
import com.sheishuo.app.core_module.mine.view.ui.activity.NearbyPeopleActivity;
|
|
|
import com.sheishuo.app.core_module.mine.view.ui.activity.PersonalSettingsActivity;
|
|
|
import com.sheishuo.app.core_module.mine.view.ui.activity.SettingsActivity;
|
|
|
import com.sheishuo.app.core_module.mine.view.ui.activity.UserInfoDetailActivity;
|
|
|
import com.sheishuo.app.main.activity.MainActivity;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import static com.netease.nim.uikit.ContextCache.context;
|
|
|
+
|
|
|
/**
|
|
|
* Created by KN on 2017/8/8.
|
|
|
*/
|
|
@@ -52,9 +64,11 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
|
|
|
private ImageView avatarImg,settingsImg,bannerImg,editPhotoImg;
|
|
|
private TextView usernameTV,userIdTV;
|
|
|
private LinearLayout neabyPeopleOption,mineTradeOption,settingsOptions;
|
|
|
+ private GridLayout photosLayout;
|
|
|
private Toast toast = null;
|
|
|
private INet net = new NetImpl();
|
|
|
|
|
|
+
|
|
|
//FLAGS
|
|
|
public final static int AVATAR_SELECTED = 5000;
|
|
|
public final static int BANNER_SELECTED = 5001;
|
|
@@ -81,19 +95,18 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
|
|
|
bannerImg = findView(R.id.mine_fragment_banner);
|
|
|
usernameTV = findView(R.id.mine_fragment_username_tv);
|
|
|
userIdTV = findView(R.id.mine_fragment_id_tv);
|
|
|
- editPhotoImg = findView(R.id.mine_fragment_edit_photos_img);
|
|
|
neabyPeopleOption = findView(R.id.mine_fragment_nearby_people);
|
|
|
mineTradeOption = findView(R.id.mine_fragment_trade);
|
|
|
settingsOptions = findView(R.id.mine_fragment_setting);
|
|
|
+ photosLayout = findView(R.id.mine_fragment_photos_layout);
|
|
|
|
|
|
avatarImg.setOnClickListener(this);
|
|
|
bannerImg.setOnClickListener(this);
|
|
|
settingsImg.setOnClickListener(this);
|
|
|
- editPhotoImg.setOnClickListener(this);
|
|
|
neabyPeopleOption.setOnClickListener(this);
|
|
|
mineTradeOption.setOnClickListener(this);
|
|
|
settingsOptions.setOnClickListener(this);
|
|
|
-
|
|
|
+ photosLayout.setOnClickListener(this);
|
|
|
}
|
|
|
|
|
|
private void init(){
|
|
@@ -103,12 +116,19 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
|
|
|
|
|
|
|
|
|
|
|
|
- UserInfoProvider.UserInfo user = NIMClient.getService(UserService.class).getUserInfo(AccountCache.getAccount().getId());
|
|
|
+ final String mineId =AccountCache.getAccount().getId();
|
|
|
+
|
|
|
+ UserInfoProvider.UserInfo user = NIMClient.getService(UserService.class).getUserInfo(AccountCache.getAccount().getId());
|
|
|
if (user.getAvatar() != null)
|
|
|
Glide.with(getActivity()).load(user.getAvatar()).into(avatarImg);
|
|
|
|
|
|
- usernameTV.setText(getName(AccountCache.getAccount().getId()));
|
|
|
- userIdTV.setText("ID:" + AccountCache.getAccount().getId());
|
|
|
+ usernameTV.setText(getName(mineId));
|
|
|
+ userIdTV.setText("ID:" + mineId);
|
|
|
+
|
|
|
+ //初始化照片墙
|
|
|
+ initPhotosWall(mineId);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -165,6 +185,8 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
|
|
|
case R.id.mine_fragment_setting:
|
|
|
startActivity(new Intent(getActivity(), SettingsActivity.class));
|
|
|
break;
|
|
|
+ case R.id.mine_fragment_photos_layout:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -291,6 +313,13 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
|
|
|
PickImageHelper.pickImage(getContext(),requestCode,option);
|
|
|
}
|
|
|
|
|
|
+ private void pickImageFromLocal(int requestCode){
|
|
|
+ PickImageHelper.PickImageOption option = new PickImageHelper.PickImageOption();
|
|
|
+ option.multiSelectMaxCount = 9 - photosLayout.getChildCount();
|
|
|
+ PickImageActivity.start((Activity) context, requestCode, PickImageActivity.FROM_LOCAL, option.outputPath, option.multiSelect,
|
|
|
+ option.multiSelectMaxCount, true, false, 0, 0);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void fetchSocialInfo(){
|
|
|
net.getSocialInfo(AccountCache.getAccount().getId(), new ResponseCallback() {
|
|
@@ -326,5 +355,75 @@ public class MineFragment extends MainTabFragment implements View.OnClickListene
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ //初始化照片墙
|
|
|
+ private void initPhotosWall(final String mineId){
|
|
|
+
|
|
|
+ //判断有无缓存
|
|
|
+ if (SocialInfoCache.get(mineId) != null){
|
|
|
+ SocialInfoBean bean = SocialInfoCache.get(mineId);
|
|
|
+ List<String> photoUrls = new ArrayList<>();
|
|
|
+ for (SocialPhoto photo : bean.getPhotos()){
|
|
|
+ photoUrls.add(photo.getThumb());
|
|
|
+ }
|
|
|
+ updatePhotosWall(photoUrls);
|
|
|
+ }else {
|
|
|
+ net.getSocialInfo(mineId, new ResponseCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(Object object) {
|
|
|
+ SocialInfoBean bean = SocialInfoCache.get(mineId);
|
|
|
+ List<String> photoUrls = new ArrayList<>();
|
|
|
+ for (SocialPhoto photo : bean.getPhotos()){
|
|
|
+ photoUrls.add(photo.getThumb());
|
|
|
+ }
|
|
|
+ updatePhotosWall(photoUrls);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailed() {
|
|
|
+ showToast("获取用户照片墙失败");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //更新照片墙
|
|
|
+ private void updatePhotosWall(final List<String> photos){
|
|
|
+
|
|
|
+ getHandler().post(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ int widthAndHeight = ImgUtil.getScreenWidth(getActivity()) / 4;
|
|
|
+
|
|
|
+ for (int i = 0;i < 7 && i < photos.size();i++){
|
|
|
+ ImageView imageView = new ImageView(context);
|
|
|
+ imageView.setAdjustViewBounds(true);
|
|
|
+ imageView.setMaxWidth(widthAndHeight);
|
|
|
+ imageView.setMaxHeight(widthAndHeight);
|
|
|
+
|
|
|
+ Glide.with(context)
|
|
|
+ .load(photos.get(i))
|
|
|
+ .diskCacheStrategy(DiskCacheStrategy.ALL)
|
|
|
+ .into(imageView);
|
|
|
+ //添加布局
|
|
|
+ photosLayout.addView(imageView);
|
|
|
+ }
|
|
|
+
|
|
|
+ //初始化占位按钮
|
|
|
+ View uploadBtn = LayoutInflater.from(context).inflate(R.layout.item_add_photos_layout,null);
|
|
|
+ uploadBtn.setMinimumWidth(widthAndHeight);
|
|
|
+ uploadBtn.setMinimumHeight(widthAndHeight);
|
|
|
+ uploadBtn.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ startActivity(new Intent(getActivity(), MineUploadPhotoActivity.class));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ //添加布局
|
|
|
+ photosLayout.addView(uploadBtn);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|