diff --git a/app/src/main/java/com/xyz/babelive/api/ApiService.java b/app/src/main/java/com/xyz/babelive/api/ApiService.java index ae2ab1d..24ca1c2 100644 --- a/app/src/main/java/com/xyz/babelive/api/ApiService.java +++ b/app/src/main/java/com/xyz/babelive/api/ApiService.java @@ -70,26 +70,21 @@ public interface ApiService { @GET("/api/home/index/today-matches") Observable>> todayMatches(@Query("pageSize") int pageSize); - @GET("/api/home/index/advertisement") Observable>> advertisement(); @GET("/api/home/index/hot-anchors") Observable>> hotAnchors(); - @GET("/api/home/index/match/category") Observable>> category(@Query("dictTypeFromFront") String dictTypeFromFront, @Query("pageSize") int pageSize); - @GET("/api/live/assetVideos/homePagelist") Observable>> homePagelist(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize); - @GET("/api/live/matches/batch") Observable>> matchesBatch(@Query("date") long date, @Query("typeEnName") String typeEnName, @Query("matchType") String matchType); - @GET("/api/captchaImage") Observable captchaImage(); @@ -101,27 +96,19 @@ public interface ApiService { @POST("/api/reset/sendSmsCode") Observable> sendSmsCode(@Body Map requestBody); - //{"phone":"601999999999","phonenumber":"601999999999","lang":"zh","code":"ae3a","uuid":"d6bb6813124d43e6991bfc0f8aa7a916"} - @POST("/api/register") Observable register(@Body Map requestBody); - //{"username":"fdgdsfgds","nickname":"gggg","password":"11111111","phonenumber":"601999999999","region":"60","code":"111111","uuid":"ff05ff27-392d-43a2-970d-e6e6f9c70511"} @POST("/api/login") Observable login(@Body Map requestBody); - //{"uuid":"55624290682b4d77915b92935d6cbbd7","username":"woshimingzi","password":"juelie88","code":"n588"} @POST("/api/phoneLogin") Observable phoneLogin(@Body Map requestBody); -// {"phone":"601897513909","region":"60","code":"639875","uuid":"985f4cb9-a2be-4d4d-afc5-5fbfb1e1c6df"} - - @GET("/api/getInfo") Observable> getInfo(); - @Multipart @POST("/api/system/user/profile/avatar") Observable profileAvatar(@Part MultipartBody.Part serialNumber); @@ -129,44 +116,37 @@ public interface ApiService { @GET("/api/system/user/profile") Observable> userProfile(); - @PUT("/api/system/user/profile") Observable> putUserProfile(@Body Map requestBody); - @POST("/api/reset/sendSmsCode2") Observable> sendSmsCode2(@Body Map requestBody); - //{"phone":"601897513909"} - @POST("/api/reset/PasswordBySms") Observable PasswordBySms(@Body Map requestBody); - @PUT("/api/system/user/profile/update/phone") Observable> updatePhone(@Body Map requestBody); - //{"phonenumber":"601890000000","code":"639877","uuid":"376ae321-732f-42be-8573-e201685e8c99","region":"60"} + + @GET("/api/home/index/notice-page") + Observable>> noticeByType(@Query("type") String type,@Query("pageNum") int pageNum,@Query("pageSize") int pageSize); + + @GET("/api/home/index/notice-page") + Observable>> noticeByType(@Query("pageNum") int pageNum,@Query("pageSize") int pageSize); @GET("/api/home/index/notice") - Observable>> notice(@Query("type") String type); - - + Observable>> notice(); @GET("/api/live/tv/geth5link") Observable> geth5link(@Query("fs") String fs, @Query("matchid") String matchid, @Query("lang") String lang); - @GET("/api/home/chat/history") Observable>> chatHistory(@Query("roomId") String roomId); @GET("/api/home/index/type-lives-anchor") Observable>> typeLivesAnchor(@Query("dto") String dto, @Query("type") String type); - - - @POST("/api/live/follow/follow") Observable follow(@Body Map requestBody); -// {anchormanId: 230, fansId: 276, isFollow: 1} @GET("/api/live/follow/list") Observable>> followList(@Query("anchormanId") int anchormanId, @Query("fansId") int fansId, @Query("isFollow") int isFollow); @@ -174,8 +154,6 @@ public interface ApiService { @GET("/api/live/follow/list") Observable>> followMeList(@Query("anchormanId") int anchormanId,@Query("isFollow") int isFollow,@Query("pageNumber") int pageNumber,@Query("pageSize") int pageSize); - - @GET("/api/live/follow/list") Observable>> meFollowList(@Query("fansId") int fansId,@Query("isFollow") int isFollow,@Query("pageNumber") int pageNumber,@Query("pageSize") int pageSize); @@ -185,35 +163,25 @@ public interface ApiService { @DELETE("/api/live/reminder/cancel/{liveId}") Observable>> reminderCancel(@Path("liveId") int liveId); - @GET("/api/live/reminder/mine") Observable>> reminderMine(); @GET("/api/home/index/list/pin") Observable>> pin(); - - @GET("/api/live/anchor_info/{userId}") Observable> anchorInfo(@Path("userId") String userId); @PUT("/api/live/anchor_info") Observable chagneInfo(@Body RecommendUserBean recommendUserBean); - - @POST("/api/live/anchor_info") Observable anchorInfo(@Body RecommendUserBean recommendUserBean); - - @Multipart @POST("/api/common/niuqi/uploadImg") Observable> uploadImg(@Part MultipartBody.Part serialNumber); - - - @GET("/api/live/code/streamCode") Observable> streamCode(); diff --git a/app/src/main/java/com/xyz/babelive/bean/NoticeBean.java b/app/src/main/java/com/xyz/babelive/bean/NoticeBean.java index 7b828ac..8effa7c 100644 --- a/app/src/main/java/com/xyz/babelive/bean/NoticeBean.java +++ b/app/src/main/java/com/xyz/babelive/bean/NoticeBean.java @@ -1,5 +1,9 @@ package com.xyz.babelive.bean; +import android.text.TextUtils; + +import com.xyz.babelive.utils.StringUtils; + /** * ********************** * @@ -11,9 +15,9 @@ package com.xyz.babelive.bean; public class NoticeBean { private String createBy; - private String createTime; + private Long createTime; private String updateBy; - private String updateTime; + private Long updateTime; private String remark; private int noticeId; private String noticeTitle; @@ -30,11 +34,11 @@ public class NoticeBean { this.createBy = createBy; } - public String getCreateTime() { + public Long getCreateTime() { return createTime; } - public void setCreateTime(String createTime) { + public void setCreateTime(Long createTime) { this.createTime = createTime; } @@ -46,11 +50,11 @@ public class NoticeBean { this.updateBy = updateBy; } - public String getUpdateTime() { + public Long getUpdateTime() { return updateTime; } - public void setUpdateTime(String updateTime) { + public void setUpdateTime(Long updateTime) { this.updateTime = updateTime; } @@ -98,6 +102,28 @@ public class NoticeBean { return publishTime; } + + public String getShowTime() { + if(updateTime!=null){ + return StringUtils.stringLauchDay1(updateTime); + } + if(createTime!=null){ + return StringUtils.stringLauchDay1(createTime); + } + return ""; + } + + + public Long getShowTimeLong() { + if(updateTime!=null){ + return updateTime; + } + if(createTime!=null){ + return createTime; + } + return 0l; + } + public void setPublishTime(String publishTime) { this.publishTime = publishTime; } diff --git a/app/src/main/java/com/xyz/babelive/ui/activity/GameAliPortraitActivity.java b/app/src/main/java/com/xyz/babelive/ui/activity/GameAliPortraitActivity.java index 6b78676..3d21713 100644 --- a/app/src/main/java/com/xyz/babelive/ui/activity/GameAliPortraitActivity.java +++ b/app/src/main/java/com/xyz/babelive/ui/activity/GameAliPortraitActivity.java @@ -344,7 +344,7 @@ public class GameAliPortraitActivity extends BaseActivity { + if (noticeBeans != null && noticeBeans.size() > 0) { + if(noticeBeans.get(0).getShowTimeLong()>InitApp.getLong("noti_time",0l)){ + dataBinding.messageDot.setVisibility(View.VISIBLE); + }else{ + dataBinding.messageDot.setVisibility(View.GONE); + } + }else{ + dataBinding.messageDot.setVisibility(View.GONE); + } + + }); + + viewModel.noticeActivity(); + viewModel.getNoticeActivityMutableLiveData().observe(this, noticeBean -> { + if(noticeBean!=null){ + //活动弹窗 每天只弹一次 + LogUtils.i("活动是啥:"+ GsonUtils.beanToJSONString(noticeBean)); + if(!InitApp.getBoolean(StringUtils.getFileNameByDaya(System.currentTimeMillis())+"act",false)){ + new ActivityDialog(MainActivity.this,noticeBean).show(); + } + + } + }); } @@ -96,6 +127,7 @@ public class MainActivity extends BaseActivity { CommonAdapter commonHotLiveAdapter; List liveList = new ArrayList<>(); - + int page = 1; + int pageSize = 20; + long oldTime; @Override protected int initLayout() { return R.layout.activity_notice; @@ -47,22 +53,52 @@ public class NoticeActivity extends BaseActivity finish()); initHotGame(); - viewModel.notice(); + viewModel.noticeByList(page, pageSize); viewModel.getNoticeListMutableLiveData().observe(this, noticeBeans -> { - if(noticeBeans!=null&¬iceBeans.size()>0){ - liveList = noticeBeans; - commonHotLiveAdapter.setDates(liveList); - dataBinding.recyclerview.setVisibility(View.VISIBLE); - dataBinding.nodateLy.setVisibility(View.GONE); - }else{ - dataBinding.recyclerview.setVisibility(View.GONE); - dataBinding.nodateLy.setVisibility(View.VISIBLE); + if (noticeBeans != null && noticeBeans.size() > 0) { + if (page == 1) { + liveList = noticeBeans; + commonHotLiveAdapter.setDates(liveList); + } else { + liveList.addAll(noticeBeans); + commonHotLiveAdapter.setDates(liveList); + } } + dataBinding.refreshLayout.finishRefresh(); + dataBinding.refreshLayout.finishLoadMore(); + if (liveList != null && liveList.size() % pageSize != 0) { + dataBinding.refreshLayout.finishRefreshWithNoMoreData(); + } + showErrors(); }); + initRefreshLayout(); + oldTime = InitApp.getLong("noti_time",0); + InitApp.saveLong("noti_time",System.currentTimeMillis()); + } + + private void showErrors() { + if (liveList != null && liveList.size() > 0) { + dataBinding.recyclerview.setVisibility(View.VISIBLE); + dataBinding.nodateLy.setVisibility(View.GONE); + } else { + dataBinding.recyclerview.setVisibility(View.GONE); + dataBinding.nodateLy.setVisibility(View.VISIBLE); + } + } + private void initRefreshLayout() { + dataBinding.refreshLayout.setOnRefreshListener(refreshlayout -> { + page = 1; + viewModel.noticeByList(page, pageSize); + }); + dataBinding.refreshLayout.setOnLoadMoreListener(refreshLayout -> { + page += 1; + viewModel.noticeByList(page, pageSize); + }); + } private void initHotGame() { @@ -71,12 +107,19 @@ public class NoticeActivity extends BaseActivity(NoticeActivity.this, R.layout.notice_item_child, liveList) { @Override public void convert(ViewHolder holder, NoticeBean s, int index) { - holder.setText(R.id.title_tv,s.getNoticeTitle()); + holder.setText(R.id.title_tv, s.getNoticeTitle()); TextView textView = holder.getView(R.id.des_tv); textView.setText(Html.fromHtml(s.getNoticeContent())); - holder.setText(R.id.time_tv,s.getPublishTime()+""); - holder.getView(R.id.main_content1).setOnClickListener(v -> NoticeInfoActivity.startH5WebActivityWhitBody(NoticeActivity.this,s.getNoticeTitle(),s.getNoticeContent())); - + holder.setText(R.id.time_tv, s.getShowTime() + ""); + holder.getView(R.id.main_content1).setOnClickListener(v -> NoticeInfoActivity.startH5WebActivityWhitBody(NoticeActivity.this, s.getNoticeTitle(), s.getNoticeContent())); + if(oldTime" + @@ -180,7 +191,9 @@ public class NoticeInfoActivity extends BaseActivity { UserBean userBean; - // String mPushUrl = "rtmp://stream.bab3live.com/live/channel_230?auth_key=1770023776404-0-0-8d821d2aca1951bdc97840a9c6c34dd0"; - String mPushUrl = "rrtmp://live2.bab3live.com/live/%s?auth_key=%s"; + String mPushUrl = ""; String mPushUrlType = "rtmp://stream.bab3live.com/live/%s"; List categoryBeans = new ArrayList<>(); @@ -224,7 +223,6 @@ public class LiveActivity extends BaseActivity() { -// @Override -// public void onChanged(Result result) { -// dismissDialog(); -// if (result != null) { -// ToastUtils.showShort(getString(R.string.upload_success_tip)); -// -// } -// } -// }); - viewModel.getStreamCodeBeanMutableLiveData().observe(this, new Observer() { @Override public void onChanged(StreamCodeBean streamCodeBean) { @@ -255,7 +241,6 @@ public class LiveActivity extends BaseActivity dismiss()); + InitApp.saveBoolean(StringUtils.getFileNameByDaya(System.currentTimeMillis())+"act",true); + window = getWindow(); + initWH(); + } + + private void initWH() { + WindowManager.LayoutParams wlp = window.getAttributes(); + wlp.gravity = Gravity.CENTER; + wlp.width = WindowManager.LayoutParams.MATCH_PARENT; + wlp.height = WindowManager.LayoutParams.MATCH_PARENT; + window.setAttributes(wlp); + } + + public String gethtmlConent(String body){ + String content = "" + + "" + + "" + + "" + + "" + + "" + + "" + + ""+ + "

"+ + body+ + "

"+ + "
"+ + "" + + ""; + return content; + } + + + public String gethtmlConentDrak(String body){ + String content = "" + + "" + + "" + + "" + + "" + + "" + + "" + + ""+ + "

"+ + body+ + "

"+ + "
"+ + "" + + ""; + return content; + } + + + public class JavaScriptinterface { + Context context; + + public JavaScriptinterface(Context c) { + context = c; + } + + /** + * 与js交互时用到的方法,在js里直接调用的 + */ + @JavascriptInterface + public void doShareCallbackAndroid(String image, String title, String desc, String url) { + + } + } + WebViewClient webViewClient = new WebViewClient() { + /** + * 多页面在同一个WebView中打开,就是不新建activity或者调用系统浏览器打开 + */ + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + + int w = View.MeasureSpec.makeMeasureSpec(0, + View.MeasureSpec.UNSPECIFIED); + int h = View.MeasureSpec.makeMeasureSpec(0, + View.MeasureSpec.UNSPECIFIED); + // 重新测量 + view.measure(w, h); +// dataBinding.ryV.setVisibility(View.GONE); + upsetImage(); + dataBinding.webview.setVisibility(View.VISIBLE); + dataBinding.ryV.setVisibility(View.GONE); + initWH(); + } + }; + + + + private void upsetImage() { + dataBinding.webview.loadUrl("javascript:(function(){" + + "var objs = document.getElementsByTagName('img'); " + + "for(var i=0;i noticeActivityMutableLiveData = new MutableLiveData<>(); + + public MutableLiveData getNoticeActivityMutableLiveData() { + return noticeActivityMutableLiveData; + } + + protected MutableLiveData geth5linkBeranMutableLiveData = new MutableLiveData<>(); public MutableLiveData geth5linkBeranMutableLiveData() { @@ -752,9 +759,51 @@ public class MainViewModel extends BaseViewModel { } }); } + public void noticeByList(int pageNum,int pageSize) { + Api.getInstance().noticeByType("1",pageNum,pageSize) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver>>() { + @Override + public void onSuccess(Result> feedbackResp) { + + getNoticeListMutableLiveData().postValue(feedbackResp.rows); + } + + @Override + public void onError(int code, String msg) { + getNoticeListMutableLiveData().postValue(null); + + } + }); + } + + + public void noticeActivity() { + Api.getInstance().noticeByType("2",1,1) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver>>() { + + @Override + public void onSuccess(Result> feedbackResp) { + if(feedbackResp.rows!=null&&feedbackResp.rows.size()>0) { + getNoticeActivityMutableLiveData().postValue(feedbackResp.rows.get(0)); + }else{ + getNoticeActivityMutableLiveData().postValue(null); + } + } + + @Override + public void onError(int code, String msg) { + getNoticeActivityMutableLiveData().postValue(null); + + } + }); + } public void notice() { - Api.getInstance().notice("1") + Api.getInstance().notice() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BaseObserver>>() { diff --git a/app/src/main/res/drawable/button_ture_bg_big.xml b/app/src/main/res/drawable/button_ture_bg_big.xml new file mode 100644 index 0000000..8eef24b --- /dev/null +++ b/app/src/main/res/drawable/button_ture_bg_big.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/dot_bg.xml b/app/src/main/res/drawable/dot_bg.xml new file mode 100644 index 0000000..1e6b55e --- /dev/null +++ b/app/src/main/res/drawable/dot_bg.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/input_message_bg.xml b/app/src/main/res/drawable/input_message_bg.xml new file mode 100644 index 0000000..5b81468 --- /dev/null +++ b/app/src/main/res/drawable/input_message_bg.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout-large/activity_main.xml b/app/src/main/res/layout-large/activity_main.xml index ea96abf..801aa71 100644 --- a/app/src/main/res/layout-large/activity_main.xml +++ b/app/src/main/res/layout-large/activity_main.xml @@ -68,7 +68,13 @@ android:layout_marginEnd="@dimen/dp10" android:layout_toLeftOf="@id/user_iv" android:src="@mipmap/home_message" /> - + - + - - + + + android:layout_height="match_parent" + app:srlAccentColor="@color/main_color"> - + - + + + + + + + + + + + + + - - - + app:srlAccentColor="@color/des_txt_color" /> + diff --git a/app/src/main/res/layout/activity_notice_info.xml b/app/src/main/res/layout/activity_notice_info.xml index e450d55..4e9996f 100644 --- a/app/src/main/res/layout/activity_notice_info.xml +++ b/app/src/main/res/layout/activity_notice_info.xml @@ -35,11 +35,28 @@ android:background="@color/line_color" android:layout_below="@id/actio_ly" android:id="@+id/lines1"/> - + + + + + + diff --git a/app/src/main/res/layout/dialog_activity.xml b/app/src/main/res/layout/dialog_activity.xml new file mode 100644 index 0000000..164162a --- /dev/null +++ b/app/src/main/res/layout/dialog_activity.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/dialog_inputmessage.xml b/app/src/main/res/layout/dialog_inputmessage.xml index 14fbbce..2e5ee77 100644 --- a/app/src/main/res/layout/dialog_inputmessage.xml +++ b/app/src/main/res/layout/dialog_inputmessage.xml @@ -16,7 +16,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/dp40" android:layout_weight="1" - android:background="@drawable/card_bord_bantou_bg1" + android:background="@drawable/input_message_bg" android:hint="@string/send_message" android:gravity="center_vertical" android:maxLength="50" @@ -31,7 +31,7 @@ android:layout_width="wrap_content" android:layout_height="@dimen/dp40" android:layout_marginStart="@dimen/dp10" - android:background="@drawable/button_ture_bg" + android:background="@drawable/button_ture_bg_big" android:paddingStart="@dimen/dp10" android:paddingEnd="@dimen/dp10" android:text="@string/send" diff --git a/app/src/main/res/layout/fragment_chat.xml b/app/src/main/res/layout/fragment_chat.xml index d11bab3..e537d30 100644 --- a/app/src/main/res/layout/fragment_chat.xml +++ b/app/src/main/res/layout/fragment_chat.xml @@ -109,7 +109,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/dp40" android:layout_weight="1" - android:background="@drawable/card_bord_bantou_bg1" + android:background="@drawable/input_message_bg" android:gravity="center_vertical" android:hint="@string/send_message" android:maxLength="50" @@ -124,7 +124,7 @@ android:layout_width="wrap_content" android:layout_height="@dimen/dp40" android:layout_marginStart="@dimen/dp10" - android:background="@drawable/button_ture_bg" + android:background="@drawable/button_ture_bg_big" android:paddingStart="@dimen/dp10" android:paddingEnd="@dimen/dp10" android:text="@string/send" diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index bb3e339..1fd599f 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -69,12 +69,12 @@ + android:layout_height="wrap_content" /> + android:layout_marginTop="@dimen/dp20"> + android:layout_marginTop="@dimen/dp10" + android:layout_height="wrap_content"> @@ -107,9 +108,9 @@ diff --git a/app/src/main/res/layout/hot_game_child_item_big.xml b/app/src/main/res/layout/hot_game_child_item_big.xml index 6e0b6e5..12e4281 100644 --- a/app/src/main/res/layout/hot_game_child_item_big.xml +++ b/app/src/main/res/layout/hot_game_child_item_big.xml @@ -5,8 +5,8 @@ android:id="@+id/main_content1" android:layout_width="wrap_content" android:layout_height="120dp" - android:paddingStart="@dimen/dp10" - android:paddingEnd="@dimen/dp10"> + android:paddingStart="@dimen/dp5" + android:paddingEnd="@dimen/dp5"> - + + + + + - + android:background="@drawable/card_bord_org_bg1"> + + + + - + android:visibility="gone"> + + android:layout_alignParentEnd="true" /> + + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" /> + + android:src="@mipmap/home_messge_smaill" + android:visibility="gone" /> + + + android:layout_weight="1" + android:gravity="center" + android:orientation="vertical"> - - - - - + + - - - - - - - - + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dp6" + android:ellipsize="end" + android:lines="1" + android:paddingStart="@dimen/dp5" + android:paddingEnd="@dimen/dp5" + android:textColor="@color/body_txt_color" + android:textSize="12sp" /> + + + + + + + + + + + + + + + +