diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c9afec7..069b9cc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -281,6 +281,9 @@ + @@ -930,6 +933,9 @@ + diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java index 3758edf..9d1ed0e 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java @@ -233,7 +233,7 @@ public class DynamicsAdapter1 extends BaseAdapter { //TODO 显示浏览次数 holder.tv_see_count.setText("已有"+bean.getLike_count()+"次浏览"); - + holder.tv_dynamic_level.setText("LV." + bean.getLevel()); holder.info.setText(bean.getContent(), bean.getExpand(), new ExpandLayout.OnExpandListener() { @Override @@ -549,6 +549,7 @@ public class DynamicsAdapter1 extends BaseAdapter { holder.realPeopleImageView = v.findViewById(R.id.realPeopleImageView); holder.newPeopleImageView = v.findViewById(R.id.newPeopleImageView); holder.rl_dynamic_item = v.findViewById(R.id.rl_dynamic_item); + holder.tv_dynamic_level = v.findViewById(R.id.tv_dynamic_level); return holder; } @@ -579,6 +580,7 @@ public class DynamicsAdapter1 extends BaseAdapter { ImageView realPeopleImageView; ImageView newPeopleImageView; RelativeLayout rl_dynamic_item; + TextView tv_dynamic_level; } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainLookMeAdapter.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainLookMeAdapter.java index 372df62..ecd8df4 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainLookMeAdapter.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainLookMeAdapter.java @@ -49,6 +49,9 @@ public class MainLookMeAdapter extends BaseQuickAdapter 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg1); + iv_level.setImageResource(R.mipmap.ic_modle_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg2); + iv_level.setImageResource(R.mipmap.ic_modle_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg3); + iv_level.setImageResource(R.mipmap.ic_modle_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg4); + iv_level.setImageResource(R.mipmap.ic_modle_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg5); + iv_level.setImageResource(R.mipmap.ic_modle_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg6); + iv_level.setImageResource(R.mipmap.ic_modle_6); + } + }else { + if (level > 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg1); + iv_level.setImageResource(R.mipmap.ic_use_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg2); + iv_level.setImageResource(R.mipmap.ic_use_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg3); + iv_level.setImageResource(R.mipmap.ic_use_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg4); + iv_level.setImageResource(R.mipmap.ic_use_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg5); + iv_level.setImageResource(R.mipmap.ic_use_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg6); + iv_level.setImageResource(R.mipmap.ic_use_6); + } + } + + if (TextUtils.isEmpty(bean.getSignature())) { tv_sign.setVisibility(View.INVISIBLE); }else { diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainPageCommentAdapter.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainPageCommentAdapter.java index b59ade8..994d127 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainPageCommentAdapter.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainPageCommentAdapter.java @@ -2,6 +2,8 @@ package com.xuebiping.bolizhuzi.controller.main.adapter; import android.content.Context; import android.view.View; +import android.widget.ImageView; +import android.widget.RelativeLayout; import android.widget.TextView; import com.chad.library.adapter.base.BaseQuickAdapter; @@ -29,6 +31,8 @@ public class MainPageCommentAdapter extends BaseQuickAdapter 0 && level <= 20) { - tv_level.setBackgroundResource(R.drawable.shape_level_1_20_bg); - } else if (level > 20 && level <= 40) { - tv_level.setBackgroundResource(R.drawable.shape_level_21_40_bg); - } else if (level > 40 && level <= 60) { - tv_level.setBackgroundResource(R.drawable.shape_level_41_60_bg); - } else if (level > 60 && level <= 80) { - tv_level.setBackgroundResource(R.drawable.shape_level_61_80_bg); - } else if (level > 80) { - tv_level.setBackgroundResource(R.drawable.shape_level_81_100_bg); + tv_level.setText(level + ""); + if (bean.getGender() == 1) { + if (level > 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg1); + iv_level.setImageResource(R.mipmap.ic_modle_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg2); + iv_level.setImageResource(R.mipmap.ic_modle_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg3); + iv_level.setImageResource(R.mipmap.ic_modle_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg4); + iv_level.setImageResource(R.mipmap.ic_modle_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg5); + iv_level.setImageResource(R.mipmap.ic_modle_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg6); + iv_level.setImageResource(R.mipmap.ic_modle_6); + } + }else { + if (level > 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg1); + iv_level.setImageResource(R.mipmap.ic_use_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg2); + iv_level.setImageResource(R.mipmap.ic_use_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg3); + iv_level.setImageResource(R.mipmap.ic_use_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg4); + iv_level.setImageResource(R.mipmap.ic_use_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg5); + iv_level.setImageResource(R.mipmap.ic_use_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg6); + iv_level.setImageResource(R.mipmap.ic_use_6); + } } List labels = bean.getLabels(); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/SearchAdapter.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/SearchAdapter.java index 676f39f..f6cb9fd 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/SearchAdapter.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/SearchAdapter.java @@ -1,6 +1,7 @@ package com.xuebiping.bolizhuzi.controller.main.adapter; import android.content.Context; +import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; @@ -53,19 +54,23 @@ public class SearchAdapter extends BaseAdapter { holder = (Holder) view.getTag(); } - if (0 == bean.getVip()) { - holder.ivMemberSign.setVisibility(View.VISIBLE); - holder.ivMemberSign.setImageResource(R.drawable.ic_pvip); - } else if (1 == bean.getVip()) { - holder.ivMemberSign.setVisibility(View.VISIBLE); - holder.ivMemberSign.setImageResource(R.drawable.ic_gvip); - } else { - holder.ivMemberSign.setVisibility(View.GONE); - } +// if (0 == bean.getVip()) { +// holder.ivMemberSign.setVisibility(View.VISIBLE); +// holder.ivMemberSign.setImageResource(R.drawable.ic_pvip); +// } else if (1 == bean.getVip()) { +// holder.ivMemberSign.setVisibility(View.VISIBLE); +// holder.ivMemberSign.setImageResource(R.drawable.ic_gvip); +// } else { +// holder.ivMemberSign.setVisibility(View.GONE); +// } holder.mPhoto.setImageURI(StrU.getResourcePath(bean.getAvatar(), mContext)); holder.mName.setText(bean.getNickname()); - holder.mInfo.setText(bean.getCity() + " | " + bean.getAge() + "岁"); +// holder.mInfo.setText(bean.getCity() + " | " + bean.getAge() + "岁"); + if (!TextUtils.isEmpty(bean.getSignature())) { + holder.mInfo.setText(bean.getSignature()); + } + holder.mTime.setText(bean.getDateline()); view.setTag(holder); return view; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/manager/MainManager.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/manager/MainManager.java index 4042520..7d5cb43 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/manager/MainManager.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/manager/MainManager.java @@ -1081,7 +1081,7 @@ public class MainManager { } }; - task.start(); + task.start(false); } public static void evaluateVideo(BaseActivity activity, diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/settings/adapter/ContactListAdapter.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/settings/adapter/ContactListAdapter.java index e6731cc..4c2f0e2 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/settings/adapter/ContactListAdapter.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/settings/adapter/ContactListAdapter.java @@ -79,13 +79,19 @@ public class ContactListAdapter extends BaseQuickAdapter list; private List likes; private boolean expand; + private int level; + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } public int getMark() { return mark; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageCommentInfoBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageCommentInfoBean.java index f4bfb36..b702a38 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageCommentInfoBean.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageCommentInfoBean.java @@ -10,6 +10,15 @@ public class MainPageCommentInfoBean { private int level; private int attitude; private List labels; + private int gender; + + public int getGender() { + return gender; + } + + public void setGender(int gender) { + this.gender = gender; + } public int getFrom_uid() { return from_uid; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageInfoBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageInfoBean.java index 66a7f0f..4eb802f 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageInfoBean.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainPageInfoBean.java @@ -27,6 +27,15 @@ public class MainPageInfoBean { private int real_name_mark; private int real_person_mark; private int has_wechat; + private int level; + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } public int getHas_wechat() { return has_wechat; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/SearchBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/SearchBean.java index 11be107..e844697 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/SearchBean.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/SearchBean.java @@ -10,6 +10,15 @@ public class SearchBean { private String city; private String dateline; private int vip = 2; + private String signature; + + public String getSignature() { + return signature; + } + + public void setSignature(String signature) { + this.signature = signature; + } public int getUserid() { return userid; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/SocialBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/SocialBean.java index aa0b0d4..2c19408 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/SocialBean.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/SocialBean.java @@ -17,6 +17,15 @@ public class SocialBean { private String signature; private int online_status; //0 不在线 1在线 2活跃 private int visit_times; + private int level; + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } public int getUserid() { return userid; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java index e5e6fe9..9585eda 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java @@ -44,6 +44,33 @@ public class UserInfoBean { private int user_type; private int online_status; private int do_not_disturb; + private int level; + private int next_level_diff_wealth_value; + private int level_percent; + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + + public int getNext_level_diff_wealth_value() { + return next_level_diff_wealth_value; + } + + public void setNext_level_diff_wealth_value(int next_level_diff_wealth_value) { + this.next_level_diff_wealth_value = next_level_diff_wealth_value; + } + + public int getLevel_percent() { + return level_percent; + } + + public void setLevel_percent(int level_percent) { + this.level_percent = level_percent; + } public int getHeight() { return height; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/DynamicPublishActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/DynamicPublishActivity.java new file mode 100644 index 0000000..ad33cd5 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/DynamicPublishActivity.java @@ -0,0 +1,147 @@ +package com.xuebiping.bolizhuzi.view.dynamics.activity; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Color; +import android.graphics.Typeface; +import android.os.Bundle; +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + +import com.fengliyan.uikit.toast.MaleToast; +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter; +import com.xuebiping.bolizhuzi.controller.main.adapter.ScaleTransitionPagerTitleView; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.dynamics.fragment.DynamicImageTextFragment; +import com.xuebiping.bolizhuzi.view.dynamics.fragment.DynamicVideoTextFragment; + +import net.lucode.hackware.magicindicator.MagicIndicator; +import net.lucode.hackware.magicindicator.ViewPagerHelper; +import net.lucode.hackware.magicindicator.buildins.UIUtil; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView; + +import java.util.ArrayList; +import java.util.List; + +public class DynamicPublishActivity extends BaseActivity implements View.OnClickListener { + + private MagicIndicator mMagicIndicator; + private ViewPager mMainViewPager; + + private MainViewPagerAdapter mViewPagerAdapter; + private List mChannelFragments = new ArrayList<>(); + private DynamicImageTextFragment mDynamicImageTextFragment; + private DynamicVideoTextFragment mDynamicVideoTextFragment; + private List mDataList = new ArrayList<>(); + private int mIndex = 0; + private RelativeLayout mLl_back; + private TextView mTv_zhunze; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_dynamic_publish); + hideTitleBar(); + initView(); + } + + private void initView() { + mMagicIndicator = findViewById(R.id.magic_indicator); + mMainViewPager = findViewById(R.id.main_view_pager); + mLl_back = findViewById(R.id.ll_back); + mTv_zhunze = findViewById(R.id.tv_zhunze); + + mLl_back.setOnClickListener(this); + mTv_zhunze.setOnClickListener(this); + + mDynamicImageTextFragment = new DynamicImageTextFragment(); + mDynamicVideoTextFragment = new DynamicVideoTextFragment(); + + mChannelFragments.add(mDynamicImageTextFragment); + mChannelFragments.add(mDynamicVideoTextFragment); + + + mViewPagerAdapter = new MainViewPagerAdapter(getSupportFragmentManager(), + mChannelFragments); + mMainViewPager.setAdapter(mViewPagerAdapter); + + initMagicIndicator(); + + mViewPagerAdapter.notifyDataSetChanged(); + mMainViewPager.setCurrentItem(mIndex); + } + + private void initMagicIndicator() { + mDataList.clear(); + mDataList.add("图文动态"); + mDataList.add("视频动态"); + + CommonNavigator commonNavigator = new CommonNavigator(this); + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + @Override + public int getCount() { + return mDataList == null ? 0 : mDataList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + SimplePagerTitleView simplePagerTitleView = new ScaleTransitionPagerTitleView(context); + simplePagerTitleView.setText(mDataList.get(index)); + simplePagerTitleView.setTextSize(20); + simplePagerTitleView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//加粗 + simplePagerTitleView.setNormalColor(Color.parseColor("#33000000")); + simplePagerTitleView.setSelectedColor(Color.parseColor("#000000")); + simplePagerTitleView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mMainViewPager.setCurrentItem(index); + + } + }); + return simplePagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + indicator.setColors(getResources().getColor(R.color.yellow_ffd33e)); + indicator.setLineHeight(UIUtil.dip2px(context, 10)); + indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); + return null; + } + }); + mMagicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(mMagicIndicator, mMainViewPager); + } + + @Override + public void onClick(View view) { + if (view == mLl_back) { + finish(); + } else if (view == mTv_zhunze) { + MaleToast.showMessage(this, "开发中"); + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + if (null != mDynamicImageTextFragment) { + mDynamicImageTextFragment.onActivityResult(requestCode & 0xffff, resultCode, intent); + } + + if (null != mDynamicVideoTextFragment) { + mDynamicVideoTextFragment.onActivityResult(requestCode & 0xffff, resultCode, intent); + } + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/PageVideoPlay2Activity.kt b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/PageVideoPlay2Activity.kt new file mode 100644 index 0000000..bad5e68 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/PageVideoPlay2Activity.kt @@ -0,0 +1,49 @@ +package com.xuebiping.bolizhuzi.view.dynamics.activity + +import android.animation.ValueAnimator +import android.os.Bundle +import com.shuyu.gsyvideoplayer.utils.GSYVideoType +import com.xuebiping.bolizhuzi.databinding.ActivityPageVideoPlay2Binding +import com.xuebiping.bolizhuzi.im.uikit.common.Constans +import com.xuebiping.bolizhuzi.view.base.BaseActivity + +class PageVideoPlay2Activity : BaseActivity() { + lateinit var binding: ActivityPageVideoPlay2Binding + + private var videoUrl: String? = "" + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityPageVideoPlay2Binding.inflate(layoutInflater) + setContentView(binding.root) + hideTitleBar() + videoUrl = intent.getStringExtra("videoUrl") + binding.ivBack.setOnClickListener { + finish() + } + GSYVideoType.setShowType(GSYVideoType.SCREEN_TYPE_FULL) +// GSYVideoType.setShowType(GSYVideoType.SCREEN_TYPE_DEFAULT) + + binding.videoView.setUp( + Constans.IMAGE_URL + videoUrl, true, "" + ) + binding.videoView.isLooping = true + binding.videoView.startPlayLogic() + } + + override fun onPause() { + super.onPause() + binding.videoView.onVideoPause() + } + + override fun onRestart() { + super.onRestart() + binding.videoView.onVideoResume() + } + + override fun onDestroy() { + super.onDestroy() + binding.videoView.setVideoAllCallBack(null) + binding.videoView.release() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicImageTextFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicImageTextFragment.java new file mode 100644 index 0000000..2a7af72 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicImageTextFragment.java @@ -0,0 +1,554 @@ +package com.xuebiping.bolizhuzi.view.dynamics.fragment; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.graphics.Bitmap; +import android.media.ThumbnailUtils; +import android.os.Bundle; +import android.provider.MediaStore; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.fengliyan.http.httprequest.UploadFile; +import com.fengliyan.uikit.photopicker.MultiImageSelector; +import com.fengliyan.uikit.toast.MaleToast; +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.controller.constant.Constant; +import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager; +import com.xuebiping.bolizhuzi.im.uikit.business.session.helper.VideoMessageHelper; +import com.xuebiping.bolizhuzi.model.dynamics.DynamicPostBean; +import com.xuebiping.bolizhuzi.model.dynamics.ImageUploadBean; +import com.xuebiping.bolizhuzi.model.dynamics.UploadImageBean; +import com.xuebiping.bolizhuzi.utils.camera2.BitmapUtils; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; +import com.xuebiping.bolizhuzi.view.base.utils.ImageUtils; +import com.xuebiping.bolizhuzi.view.dynamics.dialog.TopicListDialog; +import com.xuebiping.bolizhuzi.view.dynamics.utils.ImageLayout; + +import org.jetbrains.annotations.NotNull; + +import java.io.File; +import java.net.URI; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import kotlin.Unit; +import kotlin.jvm.functions.Function1; +import kotlin.jvm.functions.Function2; + +public class DynamicImageTextFragment extends Fragment implements View.OnClickListener { + + public static final int MULTI_SELECTOR_REQUEST = 200; + public static final int SINGLE_SELECTOR_REQUEST = 201; + public static final int MAX_IMAGE_COUNT = 9; + private View v; + private LinearLayout mPhotoLine1; + private LinearLayout mPhotoLine2; + private LinearLayout mPhotoLine3; + private EditText mEditText; + private TextView mComplaintInputText; + private int mSingleIndex; + private ArrayList mSelectPath = new ArrayList<>(); + private MultiImageSelector mSelector; + private StringBuilder mImages; + private ProgressDialog progressDialog; + private boolean isVideo = false; + private VideoMessageHelper helper; + private File videoFile; + private TextWatcher mWatcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + String length = mEditText.getText().length() + "/300字"; + mComplaintInputText.setText(length); + } + + @Override + public void afterTextChanged(Editable editable) { + + } + }; + private RelativeLayout rl_add_topic; + private TextView tv_topic_content; + private TopicListDialog topicListDialog; + private Button mBt_publish; + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + v = inflater.inflate(R.layout.fragment_dynamic_image_text, container, false); + helper = new VideoMessageHelper(getActivity(), new VideoMessageHelper.VideoMessageHelperListener() { + @Override + public void onVideoPicked(File file, String md5) { + videoFile = file; + Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(file.getAbsolutePath(), MediaStore.Video.Thumbnails.FULL_SCREEN_KIND); + BitmapUtils.savePicNoRotate(BitmapUtils.toByteArray(bitmap), "video_cover", + new Function2() { + @Override + public Unit invoke(String s, String s2) { + bitmap.recycle(); + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + List paths = new ArrayList<>(); + paths.add(s); + notifyDataSetChanged(paths); + mSelectPath.add(s); + } + }); + return null; + } + }, new Function1() { + @Override + public Unit invoke(String s) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + MaleToast.showMessage(getActivity(), "获取视频缩略图失败"); + + } + }); + return null; + } + }); + } + }); + initView(v); + return v; + } + + private void initView(View v) { + mPhotoLine1 = v.findViewById(R.id.dynamics_post_line_1); + mPhotoLine2 = v.findViewById(R.id.dynamics_post_line_2); + mPhotoLine3 = v.findViewById(R.id.dynamics_post_line_3); + mEditText = v.findViewById(R.id.edit_post); + rl_add_topic = v.findViewById(R.id.rl_add_topic); + tv_topic_content = v.findViewById(R.id.tv_topic_content); + mComplaintInputText = v.findViewById(R.id.edit_char_count); + mBt_publish = v.findViewById(R.id.bt_publish); + + mSelector = MultiImageSelector.create().multi().count(MAX_IMAGE_COUNT); + mImages = new StringBuilder(); + addPhotos(mSelectPath); + mEditText.addTextChangedListener(mWatcher); + + rl_add_topic.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //TODO 添加话题,打开话题弹窗 + topicListDialog = new TopicListDialog(getActivity()); + topicListDialog.show(); + topicListDialog.setRightOnClickListener(new TopicListDialog.OnDialogRightClickListener() { + @Override + public void rightClick(String str) { + tv_topic_content.setText(str); + } + }); + } + }); + + mBt_publish.setOnClickListener(this); + } + + public void notifyDataSetChanged(List imagePath) { + removePhotos(); + addPhotos(imagePath); + } + + private void removePhotos() { + mPhotoLine1.removeAllViews(); + mPhotoLine2.removeAllViews(); + mPhotoLine3.removeAllViews(); + } + + private void addPhotos(List imagePath) { + Iterator i = imagePath.iterator(); + int count = 0; + + while (i.hasNext()) { + String path = i.next(); + final ImageLayout image = new ImageLayout(getActivity()); + setImage(path, image); + image.setPadding(6, 0, 0, 0); + image.setOnImageHandlingListener(new ImageLayout.OnImageHandlingListener() { + @Override + public void onImageClicked() { + singleReplace(image.getImageUrl()); + } + + @Override + public void onReadyLogoClicked() { + startImageSelector(); + } + + @Override + public void onRemoveLogoClicked() { + removeImage(image.getImageUrl()); + } + }); + + if (count < 3) { + mPhotoLine1.addView(image); + } else if (count < 6) { + mPhotoLine2.addView(image); + } else if (count < 9) { + mPhotoLine3.addView(image); + } + + count++; + } + + if (isVideo) { + if (imagePath.size() == 0) { + addTail(count); + } + } else { + addTail(count); + } + + } + + void addTail(int count) { + if (count != 9) { + ImageLayout image = new ImageLayout(getActivity()); + image.setPadding(6, 0, 0, 0); + image.setOnImageHandlingListener(new ImageLayout.OnImageHandlingListener() { + @Override + public void onImageClicked() { + + } + + @Override + public void onReadyLogoClicked() { + startImageSelector(); + } + + @Override + public void onRemoveLogoClicked() { + + } + }); + +// if (count == 0) { +// image.empty(); +// } + + if (count < 3) { + mPhotoLine1.addView(image); + } else if (count < 6) { + mPhotoLine2.addView(image); + } else if (count < 9) { + mPhotoLine3.addView(image); + } + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (isVideo) { + helper.onGetLocalVideoResult(data); + } + if (requestCode == MULTI_SELECTOR_REQUEST && resultCode == getActivity().RESULT_OK) { + mSelectPath.addAll(data.getStringArrayListExtra(MultiImageSelector.EXTRA_RESULT)); + notifyDataSetChanged(mSelectPath); + } else if (requestCode == SINGLE_SELECTOR_REQUEST && resultCode == getActivity().RESULT_OK) { + mSelectPath.remove(mSingleIndex); + mSelectPath.add(mSingleIndex, data. + getStringArrayListExtra(MultiImageSelector.EXTRA_RESULT).get(0)); + + notifyDataSetChanged(mSelectPath); + } + } + + public void removeImage(String path) { + path = path.replace("file:", ""); + mSelectPath.remove(path); + notifyDataSetChanged(mSelectPath); + } + + public void startImageSelector() { + if (isVideo) { + helper.chooseVideoFromLocal(); + return; + } + mSelector.multi(); + mSelector.count(9 - mSelectPath.size()); + mSelector.start(this, MULTI_SELECTOR_REQUEST); + } + + public void singleReplace(String path) { + if (isVideo) { + helper.chooseVideoFromLocal(); + return; + } + path = path.replace("file:", ""); + mSingleIndex = mSelectPath.indexOf(path); + mSelector.single(); + mSelector.start(this, SINGLE_SELECTOR_REQUEST); + } + + private void setImage(String path, ImageLayout image) { + if (path != null) { + File file = new File(path); + if (null != file) { + URI uri = file.toURI(); + image.imageLoad(uri.toString()); + } + } + } + + private void compressAndUpload() { + Iterator i = mSelectPath.iterator(); + final UploadFile[] uploadFiles = new UploadFile[mSelectPath.size()]; + int count = 0; + while (i.hasNext()) { + String path = i.next(); + path = ImageUtils.compressImage(getActivity(), path, Constant.IMAGE_MEMORY_SIZE, false); + File file = new File(path); + UploadFile uploadFile = new UploadFile("file[" + count + "]", file); + uploadFiles[count] = uploadFile; + count++; + } + + if (null != uploadFiles) { + if (uploadFiles.length != 0) { + if (uploadFiles[0].getFile().exists()) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + uploadImage(uploadFiles, mEditText.getText().toString()); + } + }); + } + } + } else { + progressDialog.dismiss(); + mBt_publish.setEnabled(true); + } + + } + + void uploadVideo(String content, String coverUrl) { + UploadFile uploadFile = new UploadFile(System.currentTimeMillis() + ".mp4", videoFile); + UploadFile[] files = new UploadFile[]{uploadFile}; + DynamicsManager.uploadImage((BaseActivity) getActivity(), files, "dynamic", + new HttpUiCallBack>() { + @Override + public void onSuccess(BaseActivity activity, List result, String message) { + if (result.size() > 0) { + String videoUrl = result.get(0).getUrl(); + postDynamics(content, coverUrl, videoUrl); + } + + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, "视频上传失败"); + mBt_publish.setEnabled(true); + } + }); + } + + private void uploadImage(UploadFile[] uploadFiles, final String content) { + DynamicsManager.uploadImage((BaseActivity) getActivity(), uploadFiles, "dynamic", + new HttpUiCallBack>() { + @Override + public void onSuccess(BaseActivity activity, List result, String message) { + mImages = new StringBuilder(); + Iterator iterator = result.iterator(); + int count = 0; + while (iterator.hasNext()) { + UploadImageBean bean = iterator.next(); + if (0 != count) { + mImages.append(","); + } + + mImages.append(bean.getUrl()); + count++; + } + if (isVideo) { + uploadVideo(content, mImages.toString()); + } else { + postDynamics(content, mImages.toString(), null); + } + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, "图片上传失败"); + mBt_publish.setEnabled(true); + } + }); + } + + private void setImageUrl(String dynamicId, String imageUrl, String videoUrl) { + DynamicsManager.setImageUrl((BaseActivity) getActivity(), dynamicId, imageUrl, videoUrl, new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, ImageUploadBean result, String message) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, "动态上传成功"); + getActivity().setResult(getActivity().RESULT_OK); + getActivity().finish(); + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { +// MaleToast.showMessage(activity, "图片上传失败"); + progressDialog.dismiss(); + getActivity().setResult(getActivity().RESULT_OK); + getActivity().finish(); + } + }); + } + + private void postDynamics(String content, final String images, final String videoUrl) { + DynamicsManager.postDynamics((BaseActivity) getActivity(), content, new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, DynamicPostBean result, String message) { + if (null != images) { + setImageUrl(result.getDynamic_id(), images, videoUrl); + } else { + if (progressDialog != null) { + progressDialog.dismiss(); + } + MaleToast.showMessage(activity, "动态上传成功"); + getActivity().setResult(getActivity().RESULT_OK); + getActivity().finish(); + } + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + if (progressDialog != null) { + progressDialog.dismiss(); + } + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + if (progressDialog != null) { + progressDialog.dismiss(); + } + MaleToast.showMessage(activity, "动态上传失败"); + mBt_publish.setEnabled(true); + } + }); + } + + private final int MIN_DELAY_TIME = 8000; // 两次点击间隔不能少于10000ms + private long lastClickTime; + + public boolean isFastClick() { + boolean flag = true; + long currentClickTime = System.currentTimeMillis(); + if ((currentClickTime - lastClickTime) >= MIN_DELAY_TIME) { + flag = false; + } + lastClickTime = currentClickTime; + return flag; + } + + @Override + public void onClick(View view) { + if (view == mBt_publish) { + String content = mEditText.getText().toString(); + if (TextUtils.isEmpty(content)) { + MaleToast.showFailureMsg(getActivity(), "请输入文字内容"); + return; + } + if (isVideo) { +// if (videoFile == null) { +// MaleToast.showFailureMsg(DynamicPostActivity.this, "请选择视频"); +// return; +// } + if (videoFile != null) { + mBt_publish.setEnabled(false); + progressDialog = ProgressDialog.show(getActivity(), "正在发布", "请稍后..."); + new Thread(new Runnable() { + @Override + public void run() { + compressAndUpload(); + } + }).start(); + return; + } + } +// if (mSelectPath.isEmpty()) { +// MaleToast.showFailureMsg(DynamicPostActivity.this, "请选择图片"); +// return; +// } + String word = null; + if (!TextUtils.isEmpty(content)) { + word = mEditText.getText().toString(); + } + + if (!mSelectPath.isEmpty()) { + if (!isFastClick()) { + progressDialog = ProgressDialog.show(getActivity(), "正在发布", "请稍后..."); + mBt_publish.setEnabled(false); + new Thread(new Runnable() { + @Override + public void run() { + compressAndUpload(); + + } + }).start(); + } + } else { + if (null != word || TextUtils.isEmpty(word)) { + postDynamics(content, null, null); +// MaleToast.showMessage(DynamicPostActivity.this, "请选择图片"); + } else { + MaleToast.showMessage(getActivity(), "请输入内容"); + } + } + } + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicVideoTextFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicVideoTextFragment.java new file mode 100644 index 0000000..4471920 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicVideoTextFragment.java @@ -0,0 +1,554 @@ +package com.xuebiping.bolizhuzi.view.dynamics.fragment; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.graphics.Bitmap; +import android.media.ThumbnailUtils; +import android.os.Bundle; +import android.provider.MediaStore; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.fengliyan.http.httprequest.UploadFile; +import com.fengliyan.uikit.photopicker.MultiImageSelector; +import com.fengliyan.uikit.toast.MaleToast; +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.controller.constant.Constant; +import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager; +import com.xuebiping.bolizhuzi.im.uikit.business.session.helper.VideoMessageHelper; +import com.xuebiping.bolizhuzi.model.dynamics.DynamicPostBean; +import com.xuebiping.bolizhuzi.model.dynamics.ImageUploadBean; +import com.xuebiping.bolizhuzi.model.dynamics.UploadImageBean; +import com.xuebiping.bolizhuzi.utils.camera2.BitmapUtils; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; +import com.xuebiping.bolizhuzi.view.base.utils.ImageUtils; +import com.xuebiping.bolizhuzi.view.dynamics.dialog.TopicListDialog; +import com.xuebiping.bolizhuzi.view.dynamics.utils.ImageLayout; + +import org.jetbrains.annotations.NotNull; + +import java.io.File; +import java.net.URI; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import kotlin.Unit; +import kotlin.jvm.functions.Function1; +import kotlin.jvm.functions.Function2; + +public class DynamicVideoTextFragment extends Fragment implements View.OnClickListener{ + + public static final int MULTI_SELECTOR_REQUEST = 200; + public static final int SINGLE_SELECTOR_REQUEST = 201; + public static final int MAX_IMAGE_COUNT = 9; + private View v; + private LinearLayout mPhotoLine1; + private LinearLayout mPhotoLine2; + private LinearLayout mPhotoLine3; + private EditText mEditText; + private TextView mComplaintInputText; + private int mSingleIndex; + private ArrayList mSelectPath = new ArrayList<>(); + private MultiImageSelector mSelector; + private StringBuilder mImages; + private ProgressDialog progressDialog; + private boolean isVideo = true; + private VideoMessageHelper helper; + private File videoFile; + private TextWatcher mWatcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + String length = mEditText.getText().length() + "/300字"; + mComplaintInputText.setText(length); + } + + @Override + public void afterTextChanged(Editable editable) { + + } + }; + private RelativeLayout rl_add_topic; + private TextView tv_topic_content; + private TopicListDialog topicListDialog; + private Button mBt_publish; + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + v = inflater.inflate(R.layout.fragment_dynamic_video_text, container, false); + helper = new VideoMessageHelper(getActivity(), new VideoMessageHelper.VideoMessageHelperListener() { + @Override + public void onVideoPicked(File file, String md5) { + videoFile = file; + Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(file.getAbsolutePath(), MediaStore.Video.Thumbnails.FULL_SCREEN_KIND); + BitmapUtils.savePicNoRotate(BitmapUtils.toByteArray(bitmap), "video_cover", + new Function2() { + @Override + public Unit invoke(String s, String s2) { + bitmap.recycle(); + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + List paths = new ArrayList<>(); + paths.add(s); + notifyDataSetChanged(paths); + mSelectPath.add(s); + } + }); + return null; + } + }, new Function1() { + @Override + public Unit invoke(String s) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + MaleToast.showMessage(getActivity(), "获取视频缩略图失败"); + + } + }); + return null; + } + }); + } + }); + initView(v); + return v; + } + + private void initView(View v) { + mPhotoLine1 = v.findViewById(R.id.dynamics_post_line_1); + mPhotoLine2 = v.findViewById(R.id.dynamics_post_line_2); + mPhotoLine3 = v.findViewById(R.id.dynamics_post_line_3); + mEditText = v.findViewById(R.id.edit_post); + rl_add_topic = v.findViewById(R.id.rl_add_topic); + tv_topic_content = v.findViewById(R.id.tv_topic_content); + mComplaintInputText = v.findViewById(R.id.edit_char_count); + mBt_publish = v.findViewById(R.id.bt_publish); + + mSelector = MultiImageSelector.create().multi().count(MAX_IMAGE_COUNT); + mImages = new StringBuilder(); + addPhotos(mSelectPath); + mEditText.addTextChangedListener(mWatcher); + + rl_add_topic.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //TODO 添加话题,打开话题弹窗 + topicListDialog = new TopicListDialog(getActivity()); + topicListDialog.show(); + topicListDialog.setRightOnClickListener(new TopicListDialog.OnDialogRightClickListener() { + @Override + public void rightClick(String str) { + tv_topic_content.setText(str); + } + }); + } + }); + + mBt_publish.setOnClickListener(this); + } + + public void notifyDataSetChanged(List imagePath) { + removePhotos(); + addPhotos(imagePath); + } + + private void removePhotos() { + mPhotoLine1.removeAllViews(); + mPhotoLine2.removeAllViews(); + mPhotoLine3.removeAllViews(); + } + + private void addPhotos(List imagePath) { + Iterator i = imagePath.iterator(); + int count = 0; + + while (i.hasNext()) { + String path = i.next(); + final ImageLayout image = new ImageLayout(getActivity()); + setImage(path, image); + image.setPadding(6, 0, 0, 0); + image.setOnImageHandlingListener(new ImageLayout.OnImageHandlingListener() { + @Override + public void onImageClicked() { + singleReplace(image.getImageUrl()); + } + + @Override + public void onReadyLogoClicked() { + startImageSelector(); + } + + @Override + public void onRemoveLogoClicked() { + removeImage(image.getImageUrl()); + } + }); + + if (count < 3) { + mPhotoLine1.addView(image); + } else if (count < 6) { + mPhotoLine2.addView(image); + } else if (count < 9) { + mPhotoLine3.addView(image); + } + + count++; + } + + if (isVideo) { + if (imagePath.size() == 0) { + addTail(count); + } + } else { + addTail(count); + } + + } + + void addTail(int count) { + if (count != 9) { + ImageLayout image = new ImageLayout(getActivity()); + image.setPadding(6, 0, 0, 0); + image.setOnImageHandlingListener(new ImageLayout.OnImageHandlingListener() { + @Override + public void onImageClicked() { + + } + + @Override + public void onReadyLogoClicked() { + startImageSelector(); + } + + @Override + public void onRemoveLogoClicked() { + + } + }); + +// if (count == 0) { +// image.empty(); +// } + + if (count < 3) { + mPhotoLine1.addView(image); + } else if (count < 6) { + mPhotoLine2.addView(image); + } else if (count < 9) { + mPhotoLine3.addView(image); + } + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (isVideo) { + helper.onGetLocalVideoResult(data); + } + if (requestCode == MULTI_SELECTOR_REQUEST && resultCode == getActivity().RESULT_OK) { + mSelectPath.addAll(data.getStringArrayListExtra(MultiImageSelector.EXTRA_RESULT)); + notifyDataSetChanged(mSelectPath); + } else if (requestCode == SINGLE_SELECTOR_REQUEST && resultCode == getActivity().RESULT_OK) { + mSelectPath.remove(mSingleIndex); + mSelectPath.add(mSingleIndex, data. + getStringArrayListExtra(MultiImageSelector.EXTRA_RESULT).get(0)); + + notifyDataSetChanged(mSelectPath); + } + } + + public void removeImage(String path) { + path = path.replace("file:", ""); + mSelectPath.remove(path); + notifyDataSetChanged(mSelectPath); + } + + public void startImageSelector() { + if (isVideo) { + helper.chooseVideoFromLocal(); + return; + } + mSelector.multi(); + mSelector.count(9 - mSelectPath.size()); + mSelector.start(this, MULTI_SELECTOR_REQUEST); + } + + public void singleReplace(String path) { + if (isVideo) { + helper.chooseVideoFromLocal(); + return; + } + path = path.replace("file:", ""); + mSingleIndex = mSelectPath.indexOf(path); + mSelector.single(); + mSelector.start(this, SINGLE_SELECTOR_REQUEST); + } + + private void setImage(String path, ImageLayout image) { + if (path != null) { + File file = new File(path); + if (null != file) { + URI uri = file.toURI(); + image.imageLoad(uri.toString()); + } + } + } + + private void compressAndUpload() { + Iterator i = mSelectPath.iterator(); + final UploadFile[] uploadFiles = new UploadFile[mSelectPath.size()]; + int count = 0; + while (i.hasNext()) { + String path = i.next(); + path = ImageUtils.compressImage(getActivity(), path, Constant.IMAGE_MEMORY_SIZE, false); + File file = new File(path); + UploadFile uploadFile = new UploadFile("file[" + count + "]", file); + uploadFiles[count] = uploadFile; + count++; + } + + if (null != uploadFiles) { + if (uploadFiles.length != 0) { + if (uploadFiles[0].getFile().exists()) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + uploadImage(uploadFiles, mEditText.getText().toString()); + } + }); + } + } + } else { + progressDialog.dismiss(); + mBt_publish.setEnabled(true); + } + + } + + void uploadVideo(String content, String coverUrl) { + UploadFile uploadFile = new UploadFile(System.currentTimeMillis() + ".mp4", videoFile); + UploadFile[] files = new UploadFile[]{uploadFile}; + DynamicsManager.uploadImage((BaseActivity) getActivity(), files, "dynamic", + new HttpUiCallBack>() { + @Override + public void onSuccess(BaseActivity activity, List result, String message) { + if (result.size() > 0) { + String videoUrl = result.get(0).getUrl(); + postDynamics(content, coverUrl, videoUrl); + } + + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, "视频上传失败"); + mBt_publish.setEnabled(true); + } + }); + } + + private void uploadImage(UploadFile[] uploadFiles, final String content) { + DynamicsManager.uploadImage((BaseActivity) getActivity(), uploadFiles, "dynamic", + new HttpUiCallBack>() { + @Override + public void onSuccess(BaseActivity activity, List result, String message) { + mImages = new StringBuilder(); + Iterator iterator = result.iterator(); + int count = 0; + while (iterator.hasNext()) { + UploadImageBean bean = iterator.next(); + if (0 != count) { + mImages.append(","); + } + + mImages.append(bean.getUrl()); + count++; + } + if (isVideo) { + uploadVideo(content, mImages.toString()); + } else { + postDynamics(content, mImages.toString(), null); + } + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, "图片上传失败"); + mBt_publish.setEnabled(true); + } + }); + } + + private void setImageUrl(String dynamicId, String imageUrl, String videoUrl) { + DynamicsManager.setImageUrl((BaseActivity) getActivity(), dynamicId, imageUrl, videoUrl, new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, ImageUploadBean result, String message) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, "动态上传成功"); + getActivity().setResult(getActivity().RESULT_OK); + getActivity().finish(); + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + progressDialog.dismiss(); + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { +// MaleToast.showMessage(activity, "图片上传失败"); + progressDialog.dismiss(); + getActivity().setResult(getActivity().RESULT_OK); + getActivity().finish(); + } + }); + } + + private void postDynamics(String content, final String images, final String videoUrl) { + DynamicsManager.postDynamics((BaseActivity) getActivity(), content, new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, DynamicPostBean result, String message) { + if (null != images) { + setImageUrl(result.getDynamic_id(), images, videoUrl); + } else { + if (progressDialog != null) { + progressDialog.dismiss(); + } + MaleToast.showMessage(activity, "动态上传成功"); + getActivity().setResult(getActivity().RESULT_OK); + getActivity().finish(); + } + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + if (progressDialog != null) { + progressDialog.dismiss(); + } + MaleToast.showMessage(activity, tip); + mBt_publish.setEnabled(true); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + if (progressDialog != null) { + progressDialog.dismiss(); + } + MaleToast.showMessage(activity, "动态上传失败"); + mBt_publish.setEnabled(true); + } + }); + } + + private final int MIN_DELAY_TIME = 8000; // 两次点击间隔不能少于10000ms + private long lastClickTime; + + public boolean isFastClick() { + boolean flag = true; + long currentClickTime = System.currentTimeMillis(); + if ((currentClickTime - lastClickTime) >= MIN_DELAY_TIME) { + flag = false; + } + lastClickTime = currentClickTime; + return flag; + } + + @Override + public void onClick(View view) { + if (view == mBt_publish) { + String content = mEditText.getText().toString(); + if (TextUtils.isEmpty(content)) { + MaleToast.showFailureMsg(getActivity(), "请输入文字内容"); + return; + } + if (isVideo) { +// if (videoFile == null) { +// MaleToast.showFailureMsg(DynamicPostActivity.this, "请选择视频"); +// return; +// } + if (videoFile != null) { + mBt_publish.setEnabled(false); + progressDialog = ProgressDialog.show(getActivity(), "正在发布", "请稍后..."); + new Thread(new Runnable() { + @Override + public void run() { + compressAndUpload(); + } + }).start(); + return; + } + } +// if (mSelectPath.isEmpty()) { +// MaleToast.showFailureMsg(DynamicPostActivity.this, "请选择图片"); +// return; +// } + String word = null; + if (!TextUtils.isEmpty(content)) { + word = mEditText.getText().toString(); + } + + if (!mSelectPath.isEmpty()) { + if (!isFastClick()) { + progressDialog = ProgressDialog.show(getActivity(), "正在发布", "请稍后..."); + mBt_publish.setEnabled(false); + new Thread(new Runnable() { + @Override + public void run() { + compressAndUpload(); + + } + }).start(); + } + } else { + if (null != word || TextUtils.isEmpty(word)) { + postDynamics(content, null, null); +// MaleToast.showMessage(DynamicPostActivity.this, "请选择图片"); + } else { + MaleToast.showMessage(getActivity(), "请输入内容"); + } + } + } + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicViewPager2Fragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicViewPager2Fragment.java index bf1a28f..6329cf6 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicViewPager2Fragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicViewPager2Fragment.java @@ -10,6 +10,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; +import android.widget.TextView; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -18,8 +19,13 @@ import com.fengliyan.base.base.AnyCallback; import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter; import com.xuebiping.bolizhuzi.controller.main.adapter.ScaleTransitionPagerTitleView; +import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager; +import com.xuebiping.bolizhuzi.model.settings.UserHomeBean; import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; import com.xuebiping.bolizhuzi.view.dynamics.activity.DynamicPostActivity; +import com.xuebiping.bolizhuzi.view.dynamics.activity.DynamicPublishActivity; +import com.xuebiping.bolizhuzi.view.main.MainActivity; import com.xuebiping.bolizhuzi.view.main.SearchActivity; import net.lucode.hackware.magicindicator.MagicIndicator; @@ -51,12 +57,15 @@ public class DynamicViewPager2Fragment extends Fragment implements View.OnClickL private RecentDynamicFragment mRecent; private FollowUsersDynamicFragment mFocusFragment; private ImageView mAddFeedBtn; + private RelativeLayout mRl_wurao; + private TextView mTv_set_wurao; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_dynamic_view_pager2, container, false); initView(v); + geDisturb(); return v; } @@ -73,6 +82,8 @@ public class DynamicViewPager2Fragment extends Fragment implements View.OnClickL mDynamicViewPager = v.findViewById(R.id.dynamic_view_pager); mRl_home_search = v.findViewById(R.id.rl_home_search); mAddFeedBtn = v.findViewById(R.id.addFeedBtn); + mRl_wurao = v.findViewById(R.id.rl_wurao); + mTv_set_wurao = v.findViewById(R.id.tv_set_wurao); mRecent = new RecentDynamicFragment(); mFocusFragment = new FollowUsersDynamicFragment(); @@ -110,6 +121,7 @@ public class DynamicViewPager2Fragment extends Fragment implements View.OnClickL mAddFeedBtn.setOnClickListener(this); mRl_home_search.setOnClickListener(this); + mTv_set_wurao.setOnClickListener(this); } private void initMagicIndicator() { @@ -176,16 +188,19 @@ public class DynamicViewPager2Fragment extends Fragment implements View.OnClickL } void chooseFeedType() { - ChooseFeedTypeDialog dialog = new ChooseFeedTypeDialog(getActivity()); - dialog.setCallback(new AnyCallback() { - @Override - public void callback(ChooseFeedTypeDialog.FeedType feedType) { - Intent intent = new Intent(getActivity(), DynamicPostActivity.class); - intent.putExtra("isVideo", feedType == ChooseFeedTypeDialog.FeedType.Video); - getActivity().startActivityForResult(intent, REQUEST_POST); - } - }); - dialog.show(); +// ChooseFeedTypeDialog dialog = new ChooseFeedTypeDialog(getActivity()); +// dialog.setCallback(new AnyCallback() { +// @Override +// public void callback(ChooseFeedTypeDialog.FeedType feedType) { +// Intent intent = new Intent(getActivity(), DynamicPostActivity.class); +// intent.putExtra("isVideo", feedType == ChooseFeedTypeDialog.FeedType.Video); +// getActivity().startActivityForResult(intent, REQUEST_POST); +// } +// }); +// dialog.show(); + + Intent intent = new Intent(getActivity(), DynamicPublishActivity.class); + startActivity(intent); } @Override @@ -194,8 +209,50 @@ public class DynamicViewPager2Fragment extends Fragment implements View.OnClickL if (view == mRl_home_search) { Intent intent = new Intent(getActivity(), SearchActivity.class); startActivity(intent); - }else if (view == mAddFeedBtn) { + } else if (view == mAddFeedBtn) { chooseFeedType(); + } else if (view == mTv_set_wurao) { + if (null != getActivity()) { + MainActivity mainActivity = (MainActivity) getActivity(); + if (null != mainActivity) { + mainActivity.setMainGOSettingFragment(); + } + } + } + } + + public void geDisturb() { + SettingManager.getHomeUser((BaseActivity) getActivity(), new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, UserHomeBean result, String message) { + int do_not_disturb = result.getUserinfo().getDo_not_disturb(); + if (do_not_disturb == 1) { + mRl_wurao.setVisibility(View.VISIBLE); + }else { + mRl_wurao.setVisibility(View.GONE); + } + + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + + } + }); + } + + public void getDisturb2(int do_not_disturb) { + if (null != mRl_wurao) { + if (do_not_disturb == 1) { + mRl_wurao.setVisibility(View.VISIBLE); + }else { + mRl_wurao.setVisibility(View.GONE); + } } } } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java index 504d154..3e09eff 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java @@ -329,9 +329,9 @@ public class FollowUsersDynamicFragment extends Fragment { mImageList.addAll(result.getList()); - if (mImageList.size() != 0 && mImageList.size() % 10 != 0) { //显示尾布局 - mListView.onNoDataLoaded(); - } +// if (mImageList.size() != 0 && mImageList.size() % 10 != 0) { //显示尾布局 +// mListView.onNoDataLoaded(); +// } mAdapter.notifyDataSetChanged(); if (page == 1) { mListView.setSelection(0); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java index 2879f9d..f61e129 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java @@ -44,6 +44,16 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.target.SimpleTarget; import com.bumptech.glide.request.transition.Transition; import com.facebook.drawee.view.SimpleDraweeView; +import com.fengliyan.device.DeviceManager; +import com.fengliyan.http.httprequest.HttpCallback; +import com.fengliyan.location.LocationManager; +import com.fengliyan.messaging.ChatManager; +import com.fengliyan.messaging.CustomAttachment; +import com.fengliyan.messaging.GiftAttachment; +import com.fengliyan.storage.StorageManager; +import com.fengliyan.uikit.bottomtab.BottomTab; +import com.fengliyan.uikit.dialog.BaseMessageDialog; +import com.fengliyan.uikit.toast.MaleToast; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import com.hjq.permissions.OnPermissionCallback; @@ -51,12 +61,23 @@ import com.hjq.permissions.XXPermissions; import com.huawei.agconnect.config.AGConnectServicesConfig; import com.huawei.hms.aaid.HmsInstanceId; import com.huawei.hms.common.ApiException; -import com.fengliyan.device.DeviceManager; -import com.fengliyan.http.httprequest.HttpCallback; -import com.fengliyan.location.LocationManager; -import com.fengliyan.messaging.ChatManager; -import com.fengliyan.messaging.CustomAttachment; -import com.fengliyan.messaging.GiftAttachment; +import com.netease.nimlib.sdk.NIMClient; +import com.netease.nimlib.sdk.RequestCallback; +import com.netease.nimlib.sdk.RequestCallbackWrapper; +import com.netease.nimlib.sdk.auth.AuthService; +import com.netease.nimlib.sdk.msg.MsgService; +import com.netease.nimlib.sdk.msg.MsgServiceObserve; +import com.netease.nimlib.sdk.msg.attachment.MsgAttachment; +import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; +import com.netease.nimlib.sdk.msg.model.IMMessage; +import com.netease.nimlib.sdk.msg.model.RecentContact; +import com.netease.nimlib.sdk.uinfo.UserService; +import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; +import com.snail.antifake.deviceid.emulator.EmuCheckUtil; +import com.snail.antifake.jni.EmulatorDetectUtil; +import com.umeng.socialize.UMAuthListener; +import com.umeng.socialize.bean.SHARE_MEDIA; +import com.xinlingwu.share.ShareManager; import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.agora.utils.ToastUtil; import com.xuebiping.bolizhuzi.controller.constant.ConsUser; @@ -70,6 +91,7 @@ import com.xuebiping.bolizhuzi.controller.eventBus.TurntableEvent; import com.xuebiping.bolizhuzi.controller.eventBus.UnReadCountEvent; import com.xuebiping.bolizhuzi.controller.main.manager.GlobalManager; import com.xuebiping.bolizhuzi.controller.main.manager.MainManager; +import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager; import com.xuebiping.bolizhuzi.controller.user.manager.UserManager; import com.xuebiping.bolizhuzi.im.uikit.api.NimUIKit; import com.xuebiping.bolizhuzi.im.uikit.business.session.activity.P2PMessageActivity; @@ -85,9 +107,11 @@ import com.xuebiping.bolizhuzi.model.main.DialogAdBean; import com.xuebiping.bolizhuzi.model.main.FreeVideoBean; import com.xuebiping.bolizhuzi.model.main.GlobalConfigBean; import com.xuebiping.bolizhuzi.model.main.IsKidModelBean; +import com.xuebiping.bolizhuzi.model.main.MainPageAnchorBean; import com.xuebiping.bolizhuzi.model.main.SpeedInfoBean; import com.xuebiping.bolizhuzi.model.main.SystemVersionBean; import com.xuebiping.bolizhuzi.model.main.VideoRequestBean; +import com.xuebiping.bolizhuzi.model.settings.UserHomeBean; import com.xuebiping.bolizhuzi.model.user.bean.BaseUserInfo; import com.xuebiping.bolizhuzi.utils.CitySPUtils; import com.xuebiping.bolizhuzi.utils.DemoHelper; @@ -109,12 +133,12 @@ import com.xuebiping.bolizhuzi.view.base.utils.view.AttentionDialog; import com.xuebiping.bolizhuzi.view.base.utils.view.KidDialog; import com.xuebiping.bolizhuzi.view.base.utils.view.KidOpenDialog; import com.xuebiping.bolizhuzi.view.dynamics.fragment.DynamicViewPager2Fragment; -import com.xuebiping.bolizhuzi.view.dynamics.fragment.DynamicViewPagerFragment; import com.xuebiping.bolizhuzi.view.login.LoginActivity; import com.xuebiping.bolizhuzi.view.login.utils.LoginUtils; import com.xuebiping.bolizhuzi.view.luck.LuckFragment; import com.xuebiping.bolizhuzi.view.main.dialog.CustomAlertDialog; import com.xuebiping.bolizhuzi.view.main.dialog.FreeVideoDialog; +import com.xuebiping.bolizhuzi.view.main.dialog.OpenDisturbDialog; import com.xuebiping.bolizhuzi.view.main.dialog.PermissionDialog; import com.xuebiping.bolizhuzi.view.main.dialog.UpdateDialog; import com.xuebiping.bolizhuzi.view.main.receiver.NotificationClickReceiver; @@ -124,31 +148,9 @@ import com.xuebiping.bolizhuzi.view.news.fragment.MainMessageFragment; import com.xuebiping.bolizhuzi.view.news.im.DemoCache; import com.xuebiping.bolizhuzi.view.settings.BindPhoneConfirmActivity; import com.xuebiping.bolizhuzi.view.settings.QuickRechargeActivity; -import com.xuebiping.bolizhuzi.view.settings.SettingFragment; import com.xuebiping.bolizhuzi.view.settings.SettingFragment2; import com.xuebiping.bolizhuzi.view.settings.dialog.GirlAuthDialog; import com.xuebiping.bolizhuzi.view.settings.dialog.SpeedCallDialog; -import com.fengliyan.storage.StorageManager; -import com.fengliyan.uikit.bottomtab.BottomTab; -import com.fengliyan.uikit.dialog.BaseMessageDialog; -import com.fengliyan.uikit.toast.MaleToast; -import com.netease.nimlib.sdk.NIMClient; -import com.netease.nimlib.sdk.RequestCallback; -import com.netease.nimlib.sdk.RequestCallbackWrapper; -import com.netease.nimlib.sdk.auth.AuthService; -import com.netease.nimlib.sdk.msg.MsgService; -import com.netease.nimlib.sdk.msg.MsgServiceObserve; -import com.netease.nimlib.sdk.msg.attachment.MsgAttachment; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.netease.nimlib.sdk.msg.model.RecentContact; -import com.netease.nimlib.sdk.uinfo.UserService; -import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; -import com.snail.antifake.deviceid.emulator.EmuCheckUtil; -import com.snail.antifake.jni.EmulatorDetectUtil; -import com.umeng.socialize.UMAuthListener; -import com.umeng.socialize.bean.SHARE_MEDIA; -import com.xinlingwu.share.ShareManager; import java.io.File; import java.util.ArrayList; @@ -435,7 +437,7 @@ public class MainActivity extends BaseActivity implements DemoHelper.AppIdsUpdat queryCities(); getGlobalConfig(); activeUpdate(); - getKidModel(0); +// getKidModel(0); int unreadNum = NIMClient.getService(MsgService.class).getTotalUnreadCount(); //消息tab显示最近未读联系人头像 @@ -485,6 +487,8 @@ public class MainActivity extends BaseActivity implements DemoHelper.AppIdsUpdat NIMClient.getService(MsgServiceObserve.class).observeReceiveMessage(incomingMessageObserver, true); // freeAnchor(); + geMainDisturb(); + } com.netease.nimlib.sdk.Observer> incomingMessageObserver = new com.netease.nimlib.sdk.Observer>() { @@ -1759,6 +1763,64 @@ public class MainActivity extends BaseActivity implements DemoHelper.AppIdsUpdat }); } + private OpenDisturbDialog mOpenDisturbDialog; + + public void geMainDisturb() { + SettingManager.getHomeUser(this, new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, UserHomeBean result, String message) { + int do_not_disturb = result.getUserinfo().getDo_not_disturb(); + if (do_not_disturb == 1) { + if (mOpenDisturbDialog != null) { + mOpenDisturbDialog.dismiss(); + mOpenDisturbDialog = null; + } + + mOpenDisturbDialog = new OpenDisturbDialog(MainActivity.this, R.style.SelectiveDialog); + mOpenDisturbDialog.setOnFinishDisturbListener(new OpenDisturbDialog.OnFinishDisturbListener() { + @Override + public void onFinishDisturb() { + changeVideoStatus2(); + } + }); + mOpenDisturbDialog.show(); + + } + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + + } + }); + } + + private void changeVideoStatus2() { + MainManager.changeVideoStatus2(this, 0, new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, MainPageAnchorBean result, String message) { + MaleToast.showMessage(activity, "勿扰模式关闭成功"); + mOpenDisturbDialog.dismiss(); + getMainDisturb(0); + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + MaleToast.showMessage(activity, tip); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + MaleToast.showMessage(activity, "请重试"); + } + }); + } + @Override public void onIdsValid(String ids) { try { @@ -1769,6 +1831,22 @@ public class MainActivity extends BaseActivity implements DemoHelper.AppIdsUpdat } } + public void getMainDisturb(int do_not_disturb) { + if (null != mMainRecommendFragment) { + mMainRecommendFragment.getDisturb2(do_not_disturb); + } + + if (null != mDynamicViewPagerFragment) { + mDynamicViewPagerFragment.getDisturb2(do_not_disturb); + } + } + + public void setMainGOSettingFragment() { + if (null != mBottomTab) { + mBottomTab.change(4); + } + } + // 速配相关 @Override public void onMessageListener(int code, String method, String data, String message) { diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainDynamicActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainDynamicActivity.java index 79d12bf..4e77b0b 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainDynamicActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainDynamicActivity.java @@ -6,13 +6,13 @@ import android.text.TextUtils; import android.view.View; import android.widget.AbsListView; -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; - import com.fengliyan.uikit.dialog.BottomGiftDialog; +import com.fengliyan.uikit.dialog.BottomSelectiveDialog; import com.fengliyan.uikit.dialog.DialogGiftBean; import com.fengliyan.uikit.dialog.GiftListBean; +import com.fengliyan.uikit.refresh.LoadMoreListView; +import com.fengliyan.uikit.toast.MaleToast; import com.xuebiping.bolizhuzi.R; -import com.xuebiping.bolizhuzi.controller.dynamics.adapter.DynamicsAdapter; import com.xuebiping.bolizhuzi.controller.dynamics.adapter.DynamicsAdapter1; import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager; import com.xuebiping.bolizhuzi.controller.eventBus.DynamicEvent; @@ -23,10 +23,6 @@ import com.xuebiping.bolizhuzi.model.dynamics.DynamicsListBean; import com.xuebiping.bolizhuzi.model.main.FollowResultBean; import com.xuebiping.bolizhuzi.view.base.BaseActivity; import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; -import com.xuebiping.bolizhuzi.view.base.utils.view.HangUpDialog; -import com.fengliyan.uikit.dialog.BottomSelectiveDialog; -import com.fengliyan.uikit.refresh.LoadMoreListView; -import com.fengliyan.uikit.toast.MaleToast; import com.xuebiping.bolizhuzi.view.dynamics.activity.DynamicDetailActivity; import com.xuebiping.bolizhuzi.view.settings.CaibeiRechargeActivity; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainPageFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainPageFragment.java index 0e6a4f7..8de5437 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainPageFragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainPageFragment.java @@ -40,6 +40,7 @@ import com.fengliyan.device.DeviceManager; import com.fengliyan.messaging.ChatManager; import com.fengliyan.messaging.EventBusGiftMessage; import com.luck.picture.lib.utils.ToastUtils; +import com.shuyu.gsyvideoplayer.utils.GSYVideoType; import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.controller.constant.ConsUser; import com.xuebiping.bolizhuzi.controller.constant.ConstUrl; @@ -73,10 +74,13 @@ import com.xuebiping.bolizhuzi.view.base.utils.view.OtherGuardDialog; import com.xuebiping.bolizhuzi.view.base.utils.view.WechatDialog; import com.xuebiping.bolizhuzi.view.diooto.Diooto; import com.xuebiping.bolizhuzi.view.diooto.config.DiootoConfig; +import com.xuebiping.bolizhuzi.view.dynamics.activity.PageVideoPlay2Activity; import com.xuebiping.bolizhuzi.view.dynamics.activity.PageVideoPlayActivity; +import com.xuebiping.bolizhuzi.view.dynamics.activity.QYPreviewVideoActivity; import com.xuebiping.bolizhuzi.view.main.dialog.ConfirmWXAccountDialog; import com.xuebiping.bolizhuzi.view.main.dialog.LookWechatDialog; import com.xuebiping.bolizhuzi.view.main.dialog.MainShareDialog; +import com.xuebiping.bolizhuzi.view.main.ui.EmptyControlVideo; import com.xuebiping.bolizhuzi.view.main.utils.DefaultExoConfig; import com.xuebiping.bolizhuzi.view.news.fragment.NewFragment; import com.xuebiping.bolizhuzi.view.settings.InfoEditActivity; @@ -148,7 +152,7 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { private TextView copyBtn; private ImageView tagVipImageView; - private ImageView tagSVipImageView; +// private ImageView tagSVipImageView; private ImageView tagNewImageView; private ImageView tagRealImageView; private ImageView tagPhoneImageView; @@ -454,7 +458,7 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { mSvGuardImages[3] = v.findViewById(R.id.personal_main_page_guard_photo_4); tagVipImageView = v.findViewById(R.id.tagVipImageView); - tagSVipImageView = v.findViewById(R.id.tagSVipImageView); +// tagSVipImageView = v.findViewById(R.id.tagSVipImageView); tagNewImageView = v.findViewById(R.id.tagNewImageView); tagRealImageView = v.findViewById(R.id.tagRealImageView); tagPhoneImageView = v.findViewById(R.id.tagPhoneImageView); @@ -489,9 +493,9 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { tv_code.setText("ID:" + mMainPageBean.getInfo().getUsercode()); sv_er.setImageURI(StrU.getResourcePath(mMainPageBean.getQrcode(), getActivity())); - iv_video_call.setImageAssetsFolder("images/"); - iv_video_call.setAnimation("video_call_btn.json"); - iv_video_call.playAnimation(); +// iv_video_call.setImageAssetsFolder("images/"); +// iv_video_call.setAnimation("video_call_btn.json"); +// iv_video_call.playAnimation(); RelativeLayout rl_comment = v.findViewById(R.id.rl_comment); mLl_comment_title = v.findViewById(R.id.ll_comment_title); @@ -500,6 +504,10 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { TextView tv_dislike_count = v.findViewById(R.id.tv_dislike_count); RecyclerView rv_main_info_comment = v.findViewById(R.id.rv_main_info_comment); + RelativeLayout rl_level = v.findViewById(R.id.rl_level); + ImageView iv_level = v.findViewById(R.id.iv_level); + TextView tv_level = v.findViewById(R.id.tv_level); + mBack.setOnClickListener(this); mFocusButton.setOnClickListener(this); mGiftLayout.setOnClickListener(this); @@ -509,7 +517,7 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { mOtherPhoto.setOnClickListener(this); mGuardLayout.setOnClickListener(this); view_end.setOnClickListener(this); - iv_video_call.setOnClickListener(this); +// iv_video_call.setOnClickListener(this); personal_player.setOnClickListener(this); cv_video.setOnClickListener(this); mIv_look_wechat.setOnClickListener(this); @@ -519,6 +527,50 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { mLl_real_person_auto.setOnClickListener(this); mLl_comment_title.setOnClickListener(this); + int level = mMainPageBean.getInfo().getLevel(); + tv_level.setText(level + ""); + if (mMainPageBean.getInfo().getGender() == 1) { + if (level > 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg1); + iv_level.setImageResource(R.mipmap.ic_modle_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg2); + iv_level.setImageResource(R.mipmap.ic_modle_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg3); + iv_level.setImageResource(R.mipmap.ic_modle_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg4); + iv_level.setImageResource(R.mipmap.ic_modle_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg5); + iv_level.setImageResource(R.mipmap.ic_modle_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg6); + iv_level.setImageResource(R.mipmap.ic_modle_6); + } + }else { + if (level > 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg1); + iv_level.setImageResource(R.mipmap.ic_use_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg2); + iv_level.setImageResource(R.mipmap.ic_use_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg3); + iv_level.setImageResource(R.mipmap.ic_use_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg4); + iv_level.setImageResource(R.mipmap.ic_use_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg5); + iv_level.setImageResource(R.mipmap.ic_use_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg6); + iv_level.setImageResource(R.mipmap.ic_use_6); + } + } + if (mMainPageBean.getComment() == null) { rl_comment.setVisibility(View.GONE); }else { @@ -555,7 +607,7 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { if (player.getAudioComponent() != null) { player.getAudioComponent().setVolume(0); } - player.setRepeatMode(Player.REPEAT_MODE_OFF); + player.setRepeatMode(Player.REPEAT_MODE_ONE); personal_player.setPlayer(player); player.setMediaSource(new DefaultExoConfig(getActivity()).createMediaSource(Uri.parse(StrU.getResourcePath(videoUrl, getActivity())))); player.prepare(); @@ -566,8 +618,8 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { public void onPlaybackStateChanged(int state) { Player.EventListener.super.onPlaybackStateChanged(state); if (state == Player.STATE_ENDED) { - view_end.setVisibility(View.VISIBLE); - iv_video_call.setVisibility(View.VISIBLE); +// view_end.setVisibility(View.VISIBLE); +// iv_video_call.setVisibility(View.VISIBLE); } } }); @@ -575,11 +627,16 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { //男用户不显示真人 - if (0 == mMainPageBean.getInfo().getVip()) { +// if (0 == mMainPageBean.getInfo().getVip()) { +// tagVipImageView.setVisibility(View.VISIBLE); +// } else if (1 == mMainPageBean.getInfo().getVip()) { +// tagSVipImageView.setVisibility(View.VISIBLE); +// } + + if (mMainPageBean.getInfo().getVip() == 0 || mMainPageBean.getInfo().getVip() == 1) { tagVipImageView.setVisibility(View.VISIBLE); - } else if (1 == mMainPageBean.getInfo().getVip()) { - tagSVipImageView.setVisibility(View.VISIBLE); } + if (mMainPageBean.getInfo().getGender() == 1) { tagRealImageView.setVisibility(View.VISIBLE); } @@ -1220,13 +1277,22 @@ public class MainPageFragment extends Fragment implements View.OnClickListener { } else if (view == iv_video_call || view == view_end) { getCallInfo(0); } else if (view == personal_player || view == cv_video) { - Intent intent = new Intent(getActivity(), PageVideoPlayActivity.class); - intent.putExtra("userId", mMainPageBean.getInfo().getUserId()); +// Intent intent = new Intent(getActivity(), PageVideoPlayActivity.class); +// intent.putExtra("userId", mMainPageBean.getInfo().getUserId()); +// intent.putExtra("videoUrl", mMainPageBean.getVideo_url()); +// intent.putExtra("age", mMainPageBean.getInfo().getAge()); +// intent.putExtra("nickname", mMainPageBean.getInfo().getNickname()); +// intent.putExtra("avatar_url", mMainPageBean.getInfo().getAvatar()); +// intent.putExtra("is_follow", mMainPageBean.getInfo().getIs_follow()); +// startActivity(intent); + +// Intent intent = new Intent(getActivity(), QYPreviewVideoActivity.class); +// intent.putExtra("videoUrl", StrU.getResourcePath(mMainPageBean.getVideo_url(), getActivity())); +// startActivity(intent); + + Intent intent = new Intent(getActivity(), PageVideoPlay2Activity.class); intent.putExtra("videoUrl", mMainPageBean.getVideo_url()); - intent.putExtra("age", mMainPageBean.getInfo().getAge()); - intent.putExtra("nickname", mMainPageBean.getInfo().getNickname()); - intent.putExtra("avatar_url", mMainPageBean.getInfo().getAvatar()); - intent.putExtra("is_follow", mMainPageBean.getInfo().getIs_follow()); +// intent.putExtra("videoUrl", "http://www.w3school.com.cn/i/movie.mp4"); startActivity(intent); } else if (view == mIv_look_wechat) { if (mMainPageBean.getInfo().getHas_wechat() == 1) { diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java index 147b1d3..2b6e6ca 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java @@ -16,19 +16,33 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import com.blankj.utilcode.util.GsonUtils; +import com.fengliyan.http.httprequest.HttpCallback; import com.fengliyan.uikit.UiUtils; import com.fengliyan.uikit.toast.MaleToast; import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.controller.constant.ConsUser; +import com.xuebiping.bolizhuzi.controller.constant.ConstUrl; import com.xuebiping.bolizhuzi.controller.constant.Constant; +import com.xuebiping.bolizhuzi.controller.eventBus.RegisterInfoEvent; import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter; import com.xuebiping.bolizhuzi.controller.main.adapter.ScaleTransitionPagerTitleView; +import com.xuebiping.bolizhuzi.controller.main.manager.MainManager; +import com.xuebiping.bolizhuzi.controller.settings.adapter.constant.SettingOptions; +import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager; import com.xuebiping.bolizhuzi.controller.user.manager.UserManager; import com.xuebiping.bolizhuzi.im.uikit.common.ToastHelper; +import com.xuebiping.bolizhuzi.model.settings.UserFrameBean; +import com.xuebiping.bolizhuzi.model.settings.UserHomeBean; import com.xuebiping.bolizhuzi.utils.NoClearSPUtils; +import com.xuebiping.bolizhuzi.utils.SPUtils; +import com.xuebiping.bolizhuzi.utils.StrU; import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; import com.xuebiping.bolizhuzi.view.main.dialog.ShaiXuanDialog; import net.lucode.hackware.magicindicator.MagicIndicator; @@ -42,9 +56,12 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.Li import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView; +import java.io.File; import java.util.ArrayList; import java.util.List; +import de.greenrobot.event.EventBus; + public class MainRecommend2Fragment extends Fragment implements View.OnClickListener { private View v; @@ -66,12 +83,15 @@ public class MainRecommend2Fragment extends Fragment implements View.OnClickList private MainFiveStarFragment mFiveStarFragment; private MainFourStarFragment mFourStarFragment; private MainThreeStarFragment mThreeStarFragment; + private RelativeLayout mRl_wurao; + private TextView mTv_set_wurao; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { v = inflater.inflate(R.layout.fragment_main_recommend2, container, false); initView(v); + geDisturb(); return v; } @@ -89,10 +109,13 @@ public class MainRecommend2Fragment extends Fragment implements View.OnClickList mRl_home_change = v.findViewById(R.id.rl_home_change); mMagicIndicator = v.findViewById(R.id.magic_indicator); mMainViewPager = v.findViewById(R.id.main_view_pager); + mRl_wurao = v.findViewById(R.id.rl_wurao); + mTv_set_wurao = v.findViewById(R.id.tv_set_wurao); mLl_select.setOnClickListener(this); mRl_home_search.setOnClickListener(this); mRl_home_change.setOnClickListener(this); + mTv_set_wurao.setOnClickListener(this); mLookMeFragment = new LookMeFragment(); mRecommendFragment = new RecommendFragment2(); @@ -283,7 +306,7 @@ public class MainRecommend2Fragment extends Fragment implements View.OnClickList if (view == mRl_home_search) { Intent intent = new Intent(getActivity(), SearchActivity.class); startActivity(intent); - }else if (view == mLl_select) { + } else if (view == mLl_select) { ShaiXuanDialog shaiXuanDialog = new ShaiXuanDialog(getActivity()); shaiXuanDialog.show(); @@ -293,11 +316,53 @@ public class MainRecommend2Fragment extends Fragment implements View.OnClickList NoClearSPUtils.saveInt(getActivity(), UserManager.getUserInfo().getUser_id() + Constant.FRIEND_SELECT, isSelect); } }); - }else if (view == mRl_home_change) { + } else if (view == mRl_home_change) { if (mRecommendFragment != null && mVoiceFragment != null) { mRecommendFragment.layoutChange(); mVoiceFragment.layoutChange(); } + } else if (view == mTv_set_wurao) { + if (null != getActivity()) { + MainActivity mainActivity = (MainActivity) getActivity(); + if (null != mainActivity) { + mainActivity.setMainGOSettingFragment(); + } + } + } + } + + public void geDisturb() { + SettingManager.getHomeUser((BaseActivity) getActivity(), new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, UserHomeBean result, String message) { + int do_not_disturb = result.getUserinfo().getDo_not_disturb(); + if (do_not_disturb == 1) { + mRl_wurao.setVisibility(View.VISIBLE); + }else { + mRl_wurao.setVisibility(View.GONE); + } + + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + + } + }); + } + + public void getDisturb2(int do_not_disturb) { + if (null != mRl_wurao) { + if (do_not_disturb == 1) { + mRl_wurao.setVisibility(View.VISIBLE); + }else { + mRl_wurao.setVisibility(View.GONE); + } } } } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/OpenDisturbDialog.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/OpenDisturbDialog.java new file mode 100644 index 0000000..a778051 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/OpenDisturbDialog.java @@ -0,0 +1,85 @@ +package com.xuebiping.bolizhuzi.view.main.dialog; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.RelativeLayout; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.xuebiping.bolizhuzi.R; + +public class OpenDisturbDialog extends Dialog implements View.OnClickListener { + + private Context mContext; + private RelativeLayout mRl_close; + private Button mBt_finish_disturb; + + public OpenDisturbDialog(@NonNull Context context) { + super(context); + mContext = context; + } + + public OpenDisturbDialog(@NonNull Context context, int themeResId) { + super(context, themeResId); + mContext = context; + } + + protected OpenDisturbDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) { + super(context, cancelable, cancelListener); + mContext = context; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.dialog_open_disturb); + + Window window = this.getWindow(); + window.setGravity(Gravity.CENTER); + WindowManager.LayoutParams params = window.getAttributes(); + params.width = WindowManager.LayoutParams.MATCH_PARENT; + params.height = WindowManager.LayoutParams.WRAP_CONTENT; +// window.setWindowAnimations(R.style.share_animation); + window.setAttributes(params); + + initView(); + } + + private void initView() { + mRl_close = findViewById(R.id.rl_close); + mBt_finish_disturb = findViewById(R.id.bt_finish_disturb); + + mRl_close.setOnClickListener(this); + mBt_finish_disturb.setOnClickListener(this); + + } + + @Override + public void onClick(View view) { + if (view == mRl_close) { + dismiss(); + } else if (view == mBt_finish_disturb) { + if (null != mOnFinishDisturbListener) { + mOnFinishDisturbListener.onFinishDisturb(); + } + } + } + + private OnFinishDisturbListener mOnFinishDisturbListener; + + public interface OnFinishDisturbListener { + void onFinishDisturb(); + } + + public void setOnFinishDisturbListener(OnFinishDisturbListener onFinishDisturbListener) { + mOnFinishDisturbListener = onFinishDisturbListener; + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java index 5f7afbd..6c8ea1d 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java @@ -88,7 +88,7 @@ public class ShaiXuanDialog extends Dialog implements View.OnClickListener { ll_nm_video_call = findViewById(R.id.ll_nm_video_call); - findViewById(R.id.iv_close).setOnClickListener(new View.OnClickListener() { + findViewById(R.id.rl_close).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/ui/EmptyControlVideo.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/ui/EmptyControlVideo.java index c361437..5cf1599 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/ui/EmptyControlVideo.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/ui/EmptyControlVideo.java @@ -2,13 +2,15 @@ package com.xuebiping.bolizhuzi.view.main.ui; import android.content.Context; import android.util.AttributeSet; +import android.util.Log; import android.view.MotionEvent; -import com.xuebiping.bolizhuzi.R; import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer; +import com.xuebiping.bolizhuzi.R; public class EmptyControlVideo extends StandardGSYVideoPlayer { + public EmptyControlVideo(Context context, Boolean fullFlag) { super(context, fullFlag); } @@ -37,6 +39,7 @@ public class EmptyControlVideo extends StandardGSYVideoPlayer { //不给触摸亮度,如果需要,屏蔽下方代码即可 mBrightness = false; + } @Override @@ -44,4 +47,10 @@ public class EmptyControlVideo extends StandardGSYVideoPlayer { //super.touchDoubleUp(); //不需要双击暂停 } + +// @Override +// public void onPrepared() { +// super.onPrepared(); +// getGSYVideoManager().getPlayer().setNeedMute(true); +// } } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java index 1885d2e..7efc745 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java @@ -6,6 +6,7 @@ import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -51,8 +52,15 @@ public class InvitationActivity extends BaseActivity implements super.onCreate(onSavedInstance); binding = ActivityInvitationBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - setDefaultTitle(); - setTitleName("邀请好友"); +// setDefaultTitle(); +// setTitleName("邀请好友"); + setRightCustomTextTitle("邀请好友", "邀请明细", new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(InvitationActivity.this, InviteListActivity.class); + startActivity(intent); + } + }); // View lin = binding.holderView; // ImageView bgImageView = findViewById(R.id.bgImageView); // lin.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @@ -101,7 +109,7 @@ public class InvitationActivity extends BaseActivity implements startActivity(intent); } }); - binding.shareLinkBtn.setOnClickListener(new View.OnClickListener() { + binding.shareLinkBtn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mShareDialog.show(); @@ -118,7 +126,7 @@ public class InvitationActivity extends BaseActivity implements binding.tvManTip.setVisibility(View.GONE); binding.menTip1.setVisibility(View.GONE); } - binding.sharePosterBtn.setOnClickListener(new View.OnClickListener() { + binding.sharePosterBtn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showPoster(); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java index 345cf8e..8ef0a5e 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java @@ -13,6 +13,7 @@ import android.view.ViewGroup; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.Switch; import android.widget.TextView; @@ -57,6 +58,7 @@ import com.xuebiping.bolizhuzi.view.base.BaseActivity; import com.xuebiping.bolizhuzi.view.base.BaseApplication; import com.xuebiping.bolizhuzi.view.base.BaseWebViewActivity; import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; +import com.xuebiping.bolizhuzi.view.main.MainActivity; import com.xuebiping.bolizhuzi.view.main.MainPageActivity; import com.xuebiping.bolizhuzi.view.main.dialog.ShaiXuanDialog; import com.xuebiping.bolizhuzi.view.rank.ZhiRankActivity; @@ -131,6 +133,11 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { private String mUsercode; private TextView mTv_go_open; private int mDo_not_disturb; + private ProgressBar mPb_intimacy; + private TextView mTv_jy_level; + private RelativeLayout rl_level; + private ImageView iv_level; + private TextView tv_level; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -201,6 +208,13 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { ll_mine_video_chat = v.findViewById(R.id.ll_mine_video_chat); mTv_go_open = v.findViewById(R.id.tv_go_open); + rl_level = v.findViewById(R.id.rl_level); + iv_level = v.findViewById(R.id.iv_level); + tv_level = v.findViewById(R.id.tv_level); + + mPb_intimacy = v.findViewById(R.id.pb_intimacy); + mTv_jy_level = v.findViewById(R.id.tv_jy_level); + rl_user_info.setOnClickListener(this); ll_go_edit_layout.setOnClickListener(this); tv_go_homepage.setOnClickListener(this); @@ -264,6 +278,55 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { tv_age.setText(result.getUserinfo().getAge() + ""); mUsercode = result.getUserinfo().getUsercode(); tv_qingyu_id.setText("ID:" + mUsercode); + + int level = result.getUserinfo().getLevel(); + + tv_level.setText(level + ""); + if (result.getUserinfo().getGender() == 1) { + if (level > 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg1); + iv_level.setImageResource(R.mipmap.ic_modle_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg2); + iv_level.setImageResource(R.mipmap.ic_modle_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg3); + iv_level.setImageResource(R.mipmap.ic_modle_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg4); + iv_level.setImageResource(R.mipmap.ic_modle_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg5); + iv_level.setImageResource(R.mipmap.ic_modle_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_modle_bg6); + iv_level.setImageResource(R.mipmap.ic_modle_6); + } + }else { + if (level > 0 && level <= 15) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg1); + iv_level.setImageResource(R.mipmap.ic_use_1); + } else if (level > 15 && level <= 30) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg2); + iv_level.setImageResource(R.mipmap.ic_use_2); + } else if (level > 30 && level <= 45) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg3); + iv_level.setImageResource(R.mipmap.ic_use_3); + } else if (level > 45 && level <= 60) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg4); + iv_level.setImageResource(R.mipmap.ic_use_4); + } else if (level > 60 && level <= 75) { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg5); + iv_level.setImageResource(R.mipmap.ic_use_5); + } else { + rl_level.setBackgroundResource(R.mipmap.ic_use_bg6); + iv_level.setImageResource(R.mipmap.ic_use_6); + } + } + + mPb_intimacy.setProgress(result.getUserinfo().getLevel_percent()); + mTv_jy_level.setText("距下一级还差" + result.getUserinfo().getNext_level_diff_wealth_value() + "财富值"); + //1=超级会员 0=普通会员 2=没有会员 if (0 == result.getUserinfo().getVip()) { isVip = true; @@ -329,7 +392,11 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { mOptions1.add(SettingOptions.WALLET); mOptions1.add(SettingOptions.TASK); mOptions1.add(SettingOptions.MYMYINTIMACY); - mOptions1.add(SettingOptions.UPAUTH); + + if (result.getUserinfo().getGender() == 1) { + mOptions1.add(SettingOptions.UPAUTH); + } + mOptions1.add(SettingOptions.CUSTOMER); mOptions1.add(SettingOptions.BEAUTY); mOptions1.add(SettingOptions.SETTING); @@ -444,6 +511,15 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { public void onSuccess(BaseActivity activity, MainPageAnchorBean result, String message) { mDo_not_disturb = result.getDo_not_disturb(); + if (null != getActivity()) { + MainActivity mainActivity = (MainActivity) getActivity(); + + if (null != mainActivity) { + mainActivity.getMainDisturb(mDo_not_disturb); + } + } + + if (mDo_not_disturb == 1) { //已开启勿扰模式 MaleToast.showMessage(activity, "勿扰模式开启成功"); }else { diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java index 6668989..000918f 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java @@ -34,6 +34,7 @@ import com.bigkoo.pickerview.view.TimePickerView; import com.facebook.drawee.view.SimpleDraweeView; import com.fengliyan.http.httprequest.UploadFile; import com.fengliyan.uikit.photopicker.MultiImageSelector; +import com.fengliyan.uikit.title.Title; import com.fengliyan.uikit.toast.MaleToast; import com.google.gson.Gson; import com.hjq.permissions.OnPermissionCallback; @@ -95,6 +96,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis private RelativeLayout rl_tiz_layout; private RelativeLayout rl_xz_layout; private RelativeLayout rl_city_layout; + private TextView mRight; private PermissionDialog permissionDialog; private TimePickerView mAgePicker; @@ -169,18 +171,38 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis super.onCreate(savedInstanceState); setContentView(R.layout.activity_up_privilege); - setRightCustomTextTitle("UP主认证", "准则", new View.OnClickListener() { - @Override - public void onClick(View view) { +// setRightCustomTextTitle("UP主认证", "准则", new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// +// } +// }); - } - }); + initTitle(); mManager = new UserAvatarManager(this); initView(); } + private void initTitle() { + setTitleName("UP主认证"); + Title title = getCustomTitle(); + mRight = (TextView) title.findViewById(R.id.right_text); + mRight.setText("准则"); + mRight.setTextColor(getResources().getColor(R.color.mainColor)); + mRight.setVisibility(View.VISIBLE); + mRight.setTextSize(17); + mRight.setEnabled(true); + mRight.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + MaleToast.showMessage(UpPrivilegeActivity.this, "开发中"); + } + }); + + } + private void initView() { rl_avatar_layout = findViewById(R.id.rl_avatar_layout); sd_avatar = findViewById(R.id.sd_avatar); diff --git a/app/src/main/res/drawable/progressbar_level.xml b/app/src/main/res/drawable/progressbar_level.xml new file mode 100644 index 0000000..c8697c3 --- /dev/null +++ b/app/src/main/res/drawable/progressbar_level.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_20999999_r45_bg.xml b/app/src/main/res/drawable/shape_20999999_r45_bg.xml new file mode 100644 index 0000000..1a42cf4 --- /dev/null +++ b/app/src/main/res/drawable/shape_20999999_r45_bg.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable/shape_efecec_r14_bg.xml b/app/src/main/res/drawable/shape_efecec_r14_bg.xml new file mode 100644 index 0000000..cbc3bf1 --- /dev/null +++ b/app/src/main/res/drawable/shape_efecec_r14_bg.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable/shape_f9fafc_r4_bg.xml b/app/src/main/res/drawable/shape_f9fafc_r4_bg.xml new file mode 100644 index 0000000..9d081c5 --- /dev/null +++ b/app/src/main/res/drawable/shape_f9fafc_r4_bg.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_level_1_20_bg.xml b/app/src/main/res/drawable/shape_level_1_20_bg.xml index 7a81dcd..6c1c004 100644 --- a/app/src/main/res/drawable/shape_level_1_20_bg.xml +++ b/app/src/main/res/drawable/shape_level_1_20_bg.xml @@ -2,9 +2,13 @@ + + + + + android:startColor="#65DAEC" + android:endColor="#6FF0B7"/> diff --git a/app/src/main/res/drawable/shape_wurao_bg.xml b/app/src/main/res/drawable/shape_wurao_bg.xml new file mode 100644 index 0000000..9f7d67b --- /dev/null +++ b/app/src/main/res/drawable/shape_wurao_bg.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_bind_phone.xml b/app/src/main/res/layout/activity_bind_phone.xml index f9a69c9..a5e4d81 100644 --- a/app/src/main/res/layout/activity_bind_phone.xml +++ b/app/src/main/res/layout/activity_bind_phone.xml @@ -142,6 +142,7 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_invitation.xml b/app/src/main/res/layout/activity_invitation.xml index 941b220..e6e8d55 100644 --- a/app/src/main/res/layout/activity_invitation.xml +++ b/app/src/main/res/layout/activity_invitation.xml @@ -139,7 +139,7 @@ android:layout_below="@+id/tv_tip" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" - android:visibility="visible" + android:visibility="gone" android:layout_marginTop="@dimen/dp10" android:background="@drawable/bg_invite" android:orientation="vertical" @@ -640,6 +640,7 @@ + + + + + + + diff --git a/app/src/main/res/layout/activity_page_video_play2.xml b/app/src/main/res/layout/activity_page_video_play2.xml new file mode 100644 index 0000000..49f440b --- /dev/null +++ b/app/src/main/res/layout/activity_page_video_play2.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_preview_dynamicvideo.xml b/app/src/main/res/layout/activity_preview_dynamicvideo.xml index 45164e7..e9e5754 100644 --- a/app/src/main/res/layout/activity_preview_dynamicvideo.xml +++ b/app/src/main/res/layout/activity_preview_dynamicvideo.xml @@ -1,8 +1,10 @@ - + android:paddingTop="44dp" + android:paddingBottom="44dp"> @@ -200,6 +202,7 @@ android:background="@color/colorDevider" /> diff --git a/app/src/main/res/layout/activity_video_finish2.xml b/app/src/main/res/layout/activity_video_finish2.xml index 4714585..5438b9f 100644 --- a/app/src/main/res/layout/activity_video_finish2.xml +++ b/app/src/main/res/layout/activity_video_finish2.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="24dp" - android:layout_marginTop="28dp" + android:layout_marginTop="40dp" android:layout_marginRight="24dp" android:background="@drawable/shape_white_bg_r14" android:orientation="vertical"> @@ -23,7 +23,7 @@ + android:layout_width="160dp" + android:layout_height="80dp"> + android:src="@mipmap/ic_xintiao" /> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_open_disturb.xml b/app/src/main/res/layout/dialog_open_disturb.xml new file mode 100644 index 0000000..e13563f --- /dev/null +++ b/app/src/main/res/layout/dialog_open_disturb.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + +