فهرست منبع

1.登录活动逻辑和接口
2.其他活动逻辑和接口
3.小红花界面跳转活动web
4.图片地址替换
5.web地址替换

FailedToRead 2 سال پیش
والد
کامیت
1f10b197b7
29فایلهای تغییر یافته به همراه933 افزوده شده و 259 حذف شده
  1. 5 5
      .idea/misc.xml
  2. 17 2
      app/src/exception/layout/activity_event_pay.xml
  3. 1 1
      app/src/exception/layout/popupwindow_webs_events.xml
  4. 12 0
      app/src/main/AndroidManifest.xml
  5. 83 4
      app/src/main/java/com/edufound/reader/activity/EventPayActivity.java
  6. 7 5
      app/src/main/java/com/edufound/reader/activity/SafflowerActivity.java
  7. 107 0
      app/src/main/java/com/edufound/reader/adapter/EventPayItemAdapter.java
  8. 4 4
      app/src/main/java/com/edufound/reader/adapter/MessageItemAdapter.java
  9. 28 0
      app/src/main/java/com/edufound/reader/apiserver/ActivityEventServerImpl.java
  10. 1 1
      app/src/main/java/com/edufound/reader/application/EApplication.java
  11. 1 1
      app/src/main/java/com/edufound/reader/base/BaseActivity.java
  12. 110 0
      app/src/main/java/com/edufound/reader/bean/ActivityEventResultBean.java
  13. 11 0
      app/src/main/java/com/edufound/reader/contract/EventPayContract.java
  14. 2 2
      app/src/main/java/com/edufound/reader/listener/RecyclerItemClickListener.java
  15. 7 3
      app/src/main/java/com/edufound/reader/popwindow/PopWindowUtil.java
  16. 131 0
      app/src/main/java/com/edufound/reader/presenter/EventPayPresenter.java
  17. 1 1
      app/src/main/java/com/edufound/reader/presenter/LoginAlertPresenter.java
  18. 35 10
      app/src/main/java/com/edufound/reader/presenter/MainPresenter.java
  19. 3 3
      app/src/main/java/com/edufound/reader/presenter/MessagePresenter.java
  20. 0 1
      app/src/main/java/com/edufound/reader/presenter/PayPresenter.java
  21. 1 1
      app/src/main/java/com/edufound/reader/presenter/TmailPayPresenter.java
  22. 4 2
      app/src/main/java/com/edufound/reader/tmailsdk/TMailSDKUtil.java
  23. 41 10
      app/src/main/java/com/edufound/reader/util/EfunboxUtil.java
  24. 29 14
      app/src/main/java/com/edufound/reader/util/OkHttpClient.java
  25. BIN
      app/src/main/res/drawable/event_pay_into.png
  26. 106 17
      app/src/main/res/layout/activity_event_pay_item.xml
  27. 159 160
      app/src/main/res/layout/activity_saffloer.xml
  28. 25 10
      app/src/main/res/layout/activity_web.xml
  29. 2 2
      app/src/main/res/layout/popupwindow_registration_events.xml

+ 5 - 5
.idea/misc.xml

@@ -112,7 +112,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/window_deviceinfo.xml" value="0.33" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" value="0.4931640625" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" value="0.4699248120300752" />
-        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/exception/layout/activity_event_pay.xml" value="0.25" />
+        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/exception/layout/activity_event_pay.xml" value="0.2" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/exception/layout/popupwindow_webs_events.xml" value="0.2572992700729927" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/fragmentRecommend/drawable/slidevideo_switch_track_selector.xml" value="0.2005" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/fragmentRecommend/layout/fragment_main_recommend.xml" value="0.5" />
@@ -125,18 +125,18 @@
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/fragmentUser/layout/popupwindow_select_grade.xml" value="0.1922141119221411" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/drawable/activity_comment_item_divier.xml" value="0.2005" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_comment.xml" value="0.1873479318734793" />
-        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_event_pay_item.xml" value="0.67" />
+        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_event_pay_item.xml" value="0.75" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_main.xml" value="0.2" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_otherrecord.xml" value="0.30900243309002434" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_pay.xml" value="0.22" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_pay_item.xml" value="0.21897810218978103" />
-        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_pay_tmail.xml" value="0.33" />
+        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_pay_tmail.xml" value="0.22" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_pay_tmail_item.xml" value="0.67" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_record.xml" value="0.30231143552311435" />
-        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_saffloer.xml" value="0.26034063260340634" />
+        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_saffloer.xml" value="0.5" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_test.xml" value="0.24452554744525548" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_userinfo_setting.xml" value="0.5" />
-        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_web.xml" value="0.26763990267639903" />
+        <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/activity_web.xml" value="0.2" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/adapter_item_popupwindow_myorder.xml" value="0.2913625304136253" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/adapter_item_slidevideo.xml" value="0.33" />
         <entry key="..\:/Work_Space/Android_Space/efunboxReader/efunboxReader-android-master/app/src/main/res/layout/fragment_main_character.xml" value="0.2615571776155718" />

+ 17 - 2
app/src/exception/layout/activity_event_pay.xml

@@ -45,11 +45,26 @@
             android:layout_marginRight="32dp"
             android:src="@drawable/activity_pay_myorder"></ImageView>
 
-        <FrameLayout
+        <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="1102dp"
             android:layout_height="571dp"
             android:layout_gravity="center"
-            android:background="@drawable/event_pay_bg"></FrameLayout>
+            android:background="@drawable/event_pay_bg">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/activity_event_pay_recyclerview"
+                android:layout_width="wrap_content"
+                android:layout_height="346dp"
+                android:layout_marginStart="120dp"
+                android:layout_marginEnd="120dp"
+                android:maxWidth="900dp"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                app:layout_constraintVertical_bias="0.65999997"></androidx.recyclerview.widget.RecyclerView>
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
 
 
     </FrameLayout>

+ 1 - 1
app/src/exception/layout/popupwindow_webs_events.xml

@@ -9,7 +9,7 @@
         android:layout_width="370dp"
         android:layout_height="458dp"
         android:layout_gravity="center"
-        android:background="@color/red"></ImageView>
+        android:scaleType="fitXY"></ImageView>
 
 
     <ImageView

+ 12 - 0
app/src/main/AndroidManifest.xml

@@ -151,6 +151,18 @@
             android:screenOrientation="landscape"
             android:theme="@style/efunboxTransparentLoginAlert"
             android:windowSoftInputMode="adjustNothing|stateHidden" />
+
+        <!-- 活动支付界面-->
+        <activity
+            android:name=".activity.EventPayActivity"
+            android:configChanges="screenLayout|screenSize|keyboardHidden|keyboard|orientation"
+            android:launchMode="singleTask"
+            android:maxAspectRatio="2.1"
+            android:resizeableActivity="true"
+            android:screenOrientation="landscape"
+            android:theme="@style/efunboxTransparentLoginAlert"
+            android:windowSoftInputMode="adjustNothing|stateHidden" />
+        
         <activity
             android:name=".activity.TmailPayActivity"
             android:configChanges="screenLayout|screenSize|keyboardHidden|keyboard|orientation"

+ 83 - 4
app/src/main/java/com/edufound/reader/activity/EventPayActivity.java

@@ -1,13 +1,25 @@
 package com.edufound.reader.activity;
 
 import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Rect;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.edufound.reader.R;
+import com.edufound.reader.adapter.EventPayItemAdapter;
+import com.edufound.reader.annotation.BindView;
 import com.edufound.reader.base.BaseMvpActivity;
 import com.edufound.reader.contract.EventPayContract;
-import com.edufound.reader.contract.MainContract;
+import com.edufound.reader.popwindow.PopWindowUtil;
 import com.edufound.reader.presenter.EventPayPresenter;
-import com.edufound.reader.presenter.MainPresenter;
+import com.edufound.reader.util.SizeUtils;
+import com.orhanobut.logger.Logger;
 
 /**
  * 活动支付页面
@@ -15,6 +27,15 @@ import com.edufound.reader.presenter.MainPresenter;
 public class EventPayActivity extends BaseMvpActivity<EventPayPresenter> implements EventPayContract.View {
 
 
+    Activity mActivity;
+    @BindView(id = R.id.activity_event_pay_recyclerview)
+    RecyclerView mRecyclerView;
+
+    @BindView(id = R.id.activity_pay_back)
+    ImageView mBack;
+    @BindView(id = R.id.activity_pay_tomyorder)
+    ImageView mToMyOrder;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_event_pay;
@@ -22,7 +43,22 @@ public class EventPayActivity extends BaseMvpActivity<EventPayPresenter> impleme
 
     @Override
     public void initView() {
-
+        mActivity = this;
+        mPresenter = new EventPayPresenter();
+        mPresenter.attachView(this);
+        mRecyclerView.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mPresenter.getProductListInfo();
+            }
+        }, 100);
+
+        addUiClickListener(mBack, o -> {
+            mActivity.finish();
+        });
+        addUiClickListener(mToMyOrder, o -> {
+            PopWindowUtil.showMyOrderWindow(mActivity, getRootView());
+        });
     }
 
     @Override
@@ -55,8 +91,51 @@ public class EventPayActivity extends BaseMvpActivity<EventPayPresenter> impleme
 
     }
 
+
+    @Override
+    protected void onDestroy() {
+        mPresenter.detachView();
+        super.onDestroy();
+    }
+
+    @Override
+    public ViewGroup getRootView() {
+        return findViewById(android.R.id.content);
+    }
+
+
     @Override
     public Activity getActivity() {
-        return null;
+        return mActivity;
+    }
+
+    @Override
+    public void getProductListSuccess(EventPayItemAdapter adapter) {
+        Logger.e("数据返回了,加载数据");
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity, LinearLayoutManager.HORIZONTAL, false));
+        mRecyclerView.addItemDecoration(new SpacesItemDecoration(SizeUtils.dp2px(mActivity, 21)));
+        mRecyclerView.setAdapter(adapter);
+    }
+
+    class SpacesItemDecoration extends RecyclerView.ItemDecoration {
+        private int space;
+
+        public SpacesItemDecoration(int space) {
+            this.space = space;
+        }
+
+        @Override
+        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+            outRect.left = space;
+            outRect.right = space;
+//        outRect.bottom = space;
+            // Add top margin only for the first item to avoid double space between items
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        mPresenter.onActivityResult(requestCode, resultCode, data);
+        super.onActivityResult(requestCode, resultCode, data);
     }
 }

+ 7 - 5
app/src/main/java/com/edufound/reader/activity/SafflowerActivity.java

@@ -16,12 +16,14 @@ import com.edufound.reader.annotation.BindView;
 import com.edufound.reader.base.BaseMvpActivity;
 import com.edufound.reader.contract.SafflowerContract;
 import com.edufound.reader.presenter.SafflowerPresenter;
+import com.edufound.reader.util.EfunboxUtil;
 
 import java.util.HashMap;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
 import androidx.recyclerview.widget.RecyclerView;
+
 import io.reactivex.rxjava3.annotations.Nullable;
 
 public class SafflowerActivity extends BaseMvpActivity<SafflowerPresenter> implements SafflowerContract.View {
@@ -41,8 +43,8 @@ public class SafflowerActivity extends BaseMvpActivity<SafflowerPresenter> imple
     @BindView(id = R.id.activity_saffloer_follow)
     TextView mSignDayFollow;
 
-    @BindView(id = R.id.activity_saffloer_flower_des)
-    ImageView mFlowerDes;
+    @BindView(id = R.id.event_pay_into)
+    ImageView mEventInto;
 
     @BindView(id = R.id.activity_saffloer_window)
     FrameLayout mWindowFrame;
@@ -73,9 +75,9 @@ public class SafflowerActivity extends BaseMvpActivity<SafflowerPresenter> imple
         addUiClickListener(mBack, o -> {
             mActivity.finish();
         });
-        addUiClickListener(mFlowerDes, o -> {
-            mPresenter.initWindowItem(mWindowItemLayout);
-            showWindow();
+        addUiClickListener(mEventInto, o -> {
+            //检查是否有活动,然后跳转活动
+            EfunboxUtil.checkEvents(mActivity, getRootView(),false);
         });
 
         addUiClickListener(mWindowBack, o -> {

+ 107 - 0
app/src/main/java/com/edufound/reader/adapter/EventPayItemAdapter.java

@@ -0,0 +1,107 @@
+package com.edufound.reader.adapter;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.edufound.reader.R;
+import com.edufound.reader.bean.PayResultBean;
+import com.edufound.reader.listener.RecyclerItemClickListener;
+import com.jakewharton.rxbinding4.view.RxView;
+import com.orhanobut.logger.Logger;
+
+import java.text.DecimalFormat;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+public class EventPayItemAdapter extends RecyclerView.Adapter<EventPayItemHolder> {
+
+
+    private LayoutInflater mLayoutInflater;
+    private Context mContext;
+    private List<PayResultBean> mListData;
+    private RecyclerItemClickListener<PayResultBean> mItemClickListener;
+
+    public EventPayItemAdapter(Context context, List<PayResultBean> listData) {
+        mContext = context;
+        mLayoutInflater = LayoutInflater.from(context);
+        mListData = listData;
+    }
+
+
+    @NonNull
+    @Override
+    public EventPayItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        return new EventPayItemHolder(mLayoutInflater.inflate(R.layout.activity_event_pay_item, null));
+    }
+
+
+    public void onItemClick(RecyclerItemClickListener<PayResultBean> listener) {
+        mItemClickListener = listener;
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull EventPayItemHolder holder, @SuppressLint("RecyclerView") int position) {
+        DecimalFormat df = new DecimalFormat("########0.00");
+
+        holder.mMoney.setText(df.format(Double.parseDouble(mListData.get(position).getPrice()) / 100));
+        holder.mDetail.setText("原价:" + df.format(Double.parseDouble(mListData.get(position).getOriginPrice()) / 100) + ",现价:" + df.format(Double.parseDouble(mListData.get(position).getPrice()) / 100) + "元");
+        holder.mRFDetail.setText("抵用券减" + df.format(Double.parseDouble(mListData.get(position).getOriginPrice()) / 100) + ",剩余小红花" + 12 + "朵");
+        holder.mTitle.setText(mListData.get(position).getTitle());
+        RxView.clicks(holder.itemView).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
+            if (mItemClickListener != null) {
+                mItemClickListener.onClickListener(position, holder.itemView, mListData.get(position));
+            } else {
+                Logger.e("未设置itemclick");
+            }
+        });
+        if (mListData.get(position).getPayType().equals("YEAR")) {
+            holder.mBackGround.setBackgroundResource(R.drawable.event_pay_item_year);
+        } else if (mListData.get(position).getPayType().equals("MONTH")) {
+            holder.mBackGround.setBackgroundResource(R.drawable.event_pay_item_month);
+        } else {
+            holder.mBackGround.setBackgroundResource(R.drawable.event_pay_item_month);
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        return mListData.size();
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return position;
+    }
+}
+
+
+class EventPayItemHolder extends RecyclerView.ViewHolder {
+
+
+    ConstraintLayout mBackGround;
+    TextView mTitle;
+    TextView mDetail;
+    TextView mRFDetail;
+    TextView mMoney;
+    ImageView mToPay;
+
+    public EventPayItemHolder(@NonNull View itemView) {
+        super(itemView);
+        mBackGround = itemView.findViewById(R.id.event_pay_background);
+        mTitle = itemView.findViewById(R.id.event_pay_item_title);
+        mDetail = itemView.findViewById(R.id.event_pay_item_detail);
+        mRFDetail = itemView.findViewById(R.id.event_pay_item_redflower_detail);
+        mMoney = itemView.findViewById(R.id.event_pay_item_pay_money);
+        mToPay = itemView.findViewById(R.id.event_pay_item_pay_topay);
+
+    }
+}

+ 4 - 4
app/src/main/java/com/edufound/reader/adapter/MessageItemAdapter.java

@@ -25,7 +25,7 @@ public class MessageItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
     private LayoutInflater mLayoutInflater;
     private Context mContext;
     private List<MessageBean> mListData;
-    private RecyclerItemClickListener mItemClick;
+    private RecyclerItemClickListener<MessageBean> mItemClick;
 
     public MessageItemAdapter(Context context, List<MessageBean> listData) {
         mContext = context;
@@ -35,7 +35,7 @@ public class MessageItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
 
     }
 
-    public void setOnItemListener(RecyclerItemClickListener itemclick) {
+    public void setOnItemListener(RecyclerItemClickListener<MessageBean> itemclick) {
         mItemClick = itemclick;
     }
 
@@ -67,7 +67,7 @@ public class MessageItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
                 ((MessageItemHolder) holder).isShowALl = true;
                 //已读操作
                 if (mItemClick != null) {
-                    mItemClick.onClickListener(position, holder.itemView, mListData.get(position).getId());
+                    mItemClick.onClickListener(position, holder.itemView, mListData.get(position));
                 }
             });
         } else {
@@ -81,7 +81,7 @@ public class MessageItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
             RxView.clicks(((MessageItemHolder) holder).itemView).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
                 //已读操作
                 if (mItemClick != null) {
-                    mItemClick.onClickListener(position, holder.itemView, mListData.get(position).getId());
+                    mItemClick.onClickListener(position, holder.itemView, mListData.get(position));
                 }
             });
         }

+ 28 - 0
app/src/main/java/com/edufound/reader/apiserver/ActivityEventServerImpl.java

@@ -0,0 +1,28 @@
+package com.edufound.reader.apiserver;
+
+import android.app.Activity;
+
+import com.edufound.reader.util.Consts;
+import com.edufound.reader.util.OkHttpClient;
+import com.okhttplib.HttpInfo;
+import com.okhttplib.callback.Callback;
+
+/**
+ * 活动接口
+ */
+public class ActivityEventServerImpl implements ActivityEventServer {
+    private String API = Consts.getFinalApi();
+    public static String EVENT_TYPE_LOIN = "1";
+    public static String EVENT_TYPE_FLOWER = "2";
+
+
+    @Override
+    public void getEventByType(String type, Callback callback) {
+        OkHttpClient.doGetAsync(new HttpInfo.Builder().setUrl(API + "/activity").addParam("type", type), callback);
+    }
+}
+
+interface ActivityEventServer {
+    void getEventByType(String type, Callback callback);
+
+}

+ 1 - 1
app/src/main/java/com/edufound/reader/application/EApplication.java

@@ -59,7 +59,7 @@ public class EApplication extends Application {
     public void onCreate() {
         super.onCreate();
         try {
-            Consts.setIsDebug(false);
+            Consts.setIsDebug(true);
             Consts.setmApplicAtion(this);
 
             //初始化异常监听

+ 1 - 1
app/src/main/java/com/edufound/reader/base/BaseActivity.java

@@ -720,7 +720,7 @@ public abstract class BaseActivity extends AppCompatActivity {
                                             }
                                         });
                                         //检查活动
-                                        EfunboxUtil.checkEvents(topActivity, getRootView());
+                                        EfunboxUtil.checkEvents(topActivity, getRootView(),true);
                                     }
 
                                     @Override

+ 110 - 0
app/src/main/java/com/edufound/reader/bean/ActivityEventResultBean.java

@@ -0,0 +1,110 @@
+package com.edufound.reader.bean;
+
+import java.util.List;
+
+public class ActivityEventResultBean {
+
+    private String code;
+    private String count;
+    private List<ActivityEventBean> data;
+    private String message;
+    private String success;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCount() {
+        return count;
+    }
+
+    public void setCount(String count) {
+        this.count = count;
+    }
+
+    public List<ActivityEventBean> getData() {
+        return data;
+    }
+
+    public void setData(List<ActivityEventBean> data) {
+        this.data = data;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public String getSuccess() {
+        return success;
+    }
+
+    public void setSuccess(String success) {
+        this.success = success;
+    }
+
+    public class ActivityEventBean {
+        private String amount;
+        private String endTime;
+        private String redFlower;
+        private String redFlowerTotal;
+        private String startTime;
+        private String voucherAmount;
+
+        public String getAmount() {
+            return amount;
+        }
+
+        public void setAmount(String amount) {
+            this.amount = amount;
+        }
+
+        public String getEndTime() {
+            return endTime;
+        }
+
+        public void setEndTime(String endTime) {
+            this.endTime = endTime;
+        }
+
+        public String getRedFlower() {
+            return redFlower;
+        }
+
+        public void setRedFlower(String redFlower) {
+            this.redFlower = redFlower;
+        }
+
+        public String getRedFlowerTotal() {
+            return redFlowerTotal;
+        }
+
+        public void setRedFlowerTotal(String redFlowerTotal) {
+            this.redFlowerTotal = redFlowerTotal;
+        }
+
+        public String getStartTime() {
+            return startTime;
+        }
+
+        public void setStartTime(String startTime) {
+            this.startTime = startTime;
+        }
+
+        public String getVoucherAmount() {
+            return voucherAmount;
+        }
+
+        public void setVoucherAmount(String voucherAmount) {
+            this.voucherAmount = voucherAmount;
+        }
+    }
+
+}

+ 11 - 0
app/src/main/java/com/edufound/reader/contract/EventPayContract.java

@@ -1,14 +1,25 @@
 package com.edufound.reader.contract;
 
+import android.content.Intent;
+
+import com.edufound.reader.adapter.EventPayItemAdapter;
 import com.edufound.reader.base.BaseView;
+import com.edufound.reader.bean.PayResultBean;
+
+import java.util.List;
 
 public interface EventPayContract {
     interface Model {
     }
 
     interface View extends BaseView {
+        void getProductListSuccess(EventPayItemAdapter adapter);
     }
 
     interface Presenter {
+        void getProductListInfo();
+
+        void onActivityResult(int requestCode, int resultCode, Intent data);
+
     }
 }

+ 2 - 2
app/src/main/java/com/edufound/reader/listener/RecyclerItemClickListener.java

@@ -2,6 +2,6 @@ package com.edufound.reader.listener;
 
 import android.view.View;
 
-public interface RecyclerItemClickListener {
-    void onClickListener(int position, View view, Object object);
+public interface RecyclerItemClickListener<T> {
+    void onClickListener(int position, View view, T t);
 }

+ 7 - 3
app/src/main/java/com/edufound/reader/popwindow/PopWindowUtil.java

@@ -324,6 +324,7 @@ public class PopWindowUtil {
         dialog_view = (FrameLayout) LayoutInflater.from(context).inflate(R.layout.popupwindow_registration_events, null);
         dialog_view.setFocusable(true);
         ImageView img = dialog_view.findViewById(R.id.popupwindow_registration_events_img);
+        GlideUtils.loadImageSizeKipMemoryCache(context, "http://reader-apk.ai160.com/reader-apk/res/login_event.png", img);
         ImageView close = dialog_view.findViewById(R.id.popupwindow_registration_events_close);
         setClickListener(img, o -> {
             mPopupWindow.dismiss();
@@ -341,14 +342,19 @@ public class PopWindowUtil {
     /**
      * 跳转webview的活动
      */
-    public static void webviewEventsWindow(Context context, View parent, PopUtilClickListener listener) {
+    public static void webviewEventsWindow(Context context, View parent, PopUtilClickListener listener, boolean needwindow) {
         initPresenter();
         if (checkWindowShoing()) {
             return;
         }
+        if (!needwindow) {
+            listener.clickSubmit(null);
+            return;
+        }
         dialog_view = (FrameLayout) LayoutInflater.from(context).inflate(R.layout.popupwindow_webs_events, null);
         dialog_view.setFocusable(true);
         ImageView img = dialog_view.findViewById(R.id.popupwindow_webs_events_img);
+        GlideUtils.loadImageSizeKipMemoryCache(context, "http://reader-apk.ai160.com/reader-apk/res/event_img.png", img);
         ImageView close = dialog_view.findViewById(R.id.popupwindow_webs_events_close);
         setClickListener(img, o -> {
             mPopupWindow.dismiss();
@@ -363,8 +369,6 @@ public class PopWindowUtil {
     }
 
 
-
-
     private static void showDeviceInfo(Activity context) {
         StringBuffer buffer = new StringBuffer();
         buffer.append("\tchannel:\t" + "\t" + Consts.getUmengChannel() + "\n");

+ 131 - 0
app/src/main/java/com/edufound/reader/presenter/EventPayPresenter.java

@@ -1,7 +1,138 @@
 package com.edufound.reader.presenter;
 
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Rect;
+import android.view.View;
+import android.widget.Toast;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.edufound.reader.adapter.EventPayItemAdapter;
+import com.edufound.reader.apiserver.OrderApiServerImpl;
+import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BasePresenter;
+import com.edufound.reader.bean.ChannelCodeEnum;
+import com.edufound.reader.bean.HttpResultBean;
+import com.edufound.reader.bean.PayResultBean;
 import com.edufound.reader.contract.EventPayContract;
+import com.edufound.reader.listener.RecyclerItemClickListener;
+import com.edufound.reader.model.EventPayModel;
+import com.edufound.reader.model.TmailPayModel;
+import com.edufound.reader.tmailsdk.TMailSDKUtil;
+import com.edufound.reader.util.Consts;
+import com.google.gson.reflect.TypeToken;
+import com.okhttplib.HttpInfo;
+import com.okhttplib.callback.Callback;
+import com.orhanobut.logger.Logger;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class EventPayPresenter extends BasePresenter<EventPayContract.View> implements EventPayContract.Presenter {
+    TmailPayModel mTMailModel;
+    EventPayModel mModel;
+    OrderApiServerImpl mOrderApi;
+    List<PayResultBean> mPayResult;
+    EventPayItemAdapter mPayAdapter;
+
+    public EventPayPresenter() {
+        mModel = new EventPayModel();
+        mTMailModel = new TmailPayModel();
+        mOrderApi = new OrderApiServerImpl();
+    }
+
+    @Override
+    public void getProductListInfo() {
+        mOrderApi.getProductListInfo(mView.getActivity(), Consts.getUmengChannel(), new Callback() {
+            @Override
+            public void onSuccess(HttpInfo info) throws IOException {
+                Logger.e("获取成功:" + info.getRetDetail());
+                HttpResultBean<List<PayResultBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<List<PayResultBean>>>() {
+                }.getType());
+                mPayResult = bean.getData();
+                mPayAdapter = new EventPayItemAdapter(mView.getActivity(), mPayResult);
+                mPayAdapter.onItemClick(new RecyclerItemClickListener<PayResultBean>() {
+                    @Override
+                    public void onClickListener(int position, View view, PayResultBean payResultBean) {
+                        //去支付
+                        Logger.e("position:" + position);
+                        toPayByChannel(payResultBean);
+                    }
+                });
+                mView.getProductListSuccess(mPayAdapter);
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
+                Logger.e("获取失败了:" + info.getRetDetail());
+
+            }
+        });
+    }
+
+    public void toPayByChannel(PayResultBean resultBean) {
+        if (Consts.getUmengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode())) {
+
+        } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) {
+            //天猫支付
+            Map<String, String> params = new HashMap<>();
+            params.put("productId", resultBean.getId());
+            params.put("channel", Consts.getUmengChannel());
+            params.put("payType", resultBean.getPayType());
+            params.put("uid", Consts.getmConstsUserBean().getUid());
+            params.put("first", "false");
+            mTMailModel.TMailPayGenie(mView.getActivity(), ((BaseActivity) mView.getActivity()).getGson().toJson(params), new Callback() {
+                @Override
+                public void onSuccess(HttpInfo info) throws IOException {
+                    Logger.e("创建订单返回信息成功:" + info.getRetDetail());
+                    Logger.e("创建订单返回信息成功:getParamJson-" + info.getParamJson());
+                    try {
+                        JSONObject object = new JSONObject(info.getRetDetail());
+                        JSONObject json = object.getJSONObject("data");
+                        Logger.e("json:" + json);
+                        TMailSDKUtil.tmailPay(mView.getActivity(), json.toString());
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
+
+                }
+
+                @Override
+                public void onFailure(HttpInfo info) throws IOException {
+                    Logger.e("创建订单返回信息失败:" + info.getRetDetail());
+                    Logger.e("创建订单返回信息成功:getParamJson-" + info.getParamJson());
+                    Toast.makeText(mView.getActivity(), "创建订单失败", Toast.LENGTH_SHORT).show();
+                }
+            });
+        }
+    }
+
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (Consts.getUmengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) {
+            //天猫支付返回
+            if (requestCode == TMailSDKUtil.TMAIL_PAY_RESULT_CODE && resultCode == Activity.RESULT_OK) {
+                if (data != null) {
+                    boolean isPaySuccess = data.getBooleanExtra("isPaySuccess", false);
+                    String paySuccessDataJson = data.getStringExtra("paySuccessData");
+                    int payErrorCode = data.getIntExtra("payErrorCode", -1);
+                    String payErrorMsg = data.getStringExtra("payErrorMsg");
+                    Logger.e("qrcode, isPaySuccess=" + isPaySuccess +
+                            ";paySuccessDataJson=" + paySuccessDataJson +
+                            ";payErrorCode=" + payErrorCode +
+                            ";payErrorMsg=" + payErrorMsg);
+                }
+            }
+        }
+
+    }
+
+
 }

+ 1 - 1
app/src/main/java/com/edufound/reader/presenter/LoginAlertPresenter.java

@@ -169,7 +169,7 @@ public class LoginAlertPresenter extends BasePresenter<LoginAlertContract.View>
                         Consts.setmConstsUserBean(bean.getData());
                         getYFVip();
                         //检查活动
-                        EfunboxUtil.checkEvents(mView.getActivity(), mView.getRootView());
+                        EfunboxUtil.checkEvents(mView.getActivity(), mView.getRootView(),true);
 
                     }
 

+ 35 - 10
app/src/main/java/com/edufound/reader/presenter/MainPresenter.java

@@ -1,6 +1,5 @@
 package com.edufound.reader.presenter;
 
-import android.content.Intent;
 import android.graphics.Color;
 import android.text.TextUtils;
 import android.view.KeyEvent;
@@ -13,13 +12,15 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.edufound.reader.R;
-import com.edufound.reader.activity.WebActivity;
+import com.edufound.reader.apiserver.ActivityEventServerImpl;
 import com.edufound.reader.apiserver.OrderApiServerImpl;
 import com.edufound.reader.apiserver.UserApiServerImpl;
 import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BasePresenter;
+import com.edufound.reader.bean.ActivityEventResultBean;
 import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.HttpResultBean;
+import com.edufound.reader.bean.HttpResultDataListBean;
 import com.edufound.reader.bean.SignBean;
 import com.edufound.reader.bean.UserBean;
 import com.edufound.reader.bean.UserEventEnum;
@@ -37,7 +38,6 @@ import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.MMKVEncodeKey;
 import com.edufound.reader.util.MMKVUtil;
 import com.edufound.reader.util.SizeUtils;
-import com.edufound.reader.util.TimeUtil;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
@@ -59,6 +59,7 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
     MainModel mModel;
     UserApiServerImpl mUserApi;
     OrderApiServerImpl mOrderApi;
+    ActivityEventServerImpl mEventApi;
     MyTabFragment mUserFragment;
     RecommendFragment mRecommendFragment;
     FragmentManager mFragmentManager;
@@ -70,6 +71,7 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
         mModel = new MainModel();
         mUserApi = new UserApiServerImpl();
         mOrderApi = new OrderApiServerImpl();
+        mEventApi = new ActivityEventServerImpl();
         mFragmentManager = fragmentManager;
         resumeFragment();
 
@@ -262,21 +264,44 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
                     //检查有没有用户信息
                     if (Consts.getmConstsUserBean() == null && Consts.getmConstsBaiDuUserBean() == null) {
                         //百度跟自己的都没有用户信息,请求有没有注册活动,有活动显示活动,没活动不显示
-                        PopWindowUtil.RegistrationEventsWindow(mView.getActivity(), mView.getRootView(), new PopUtilClickListener() {
+                        //请求接口
+                        mEventApi.getEventByType(ActivityEventServerImpl.EVENT_TYPE_LOIN, new Callback() {
                             @Override
-                            public void clickCancel() {
+                            public void onSuccess(HttpInfo info) throws IOException {
+                                Logger.e("获取活动成功:" + info.getRetDetail());
+                                ActivityEventResultBean activityBean = info.getRetDetail(new TypeToken<ActivityEventResultBean>() {
+                                }.getType());
+                                if (Boolean.valueOf(activityBean.getSuccess())) {
+                                    //接口返回成功
+                                    if (activityBean.getData().size() > 0) {
+                                        //有活动
+                                        PopWindowUtil.RegistrationEventsWindow(mView.getActivity(), mView.getRootView(), new PopUtilClickListener() {
+                                            @Override
+                                            public void clickCancel() {
+
+                                            }
+
+                                            @Override
+                                            public void clickSubmit(Object object) {
+                                                //点击进行登录逻辑
+                                                EfunboxUtil.checkLogin(mView.getActivity());
+                                            }
+                                        });
+                                    } else {
+                                        //没活动
+                                    }
+                                }
 
                             }
 
                             @Override
-                            public void clickSubmit(Object object) {
-                                //点击进行登录逻辑
-                                Logger.e("登录");
-                                EfunboxUtil.checkLogin(mView.getActivity());
+                            public void onFailure(HttpInfo info) throws IOException {
+                                Logger.e("获取活动失败:" + info.getRetDetail());
                             }
                         });
+
                     } else {
-                        EfunboxUtil.checkEvents(mView.getActivity(), mView.getRootView());
+                        EfunboxUtil.checkEvents(mView.getActivity(), mView.getRootView(), true);
                     }
                 }
 

+ 3 - 3
app/src/main/java/com/edufound/reader/presenter/MessagePresenter.java

@@ -61,12 +61,12 @@ public class MessagePresenter extends BasePresenter<MessageContract.View> implem
 
             }
         });
-        mMessageItemAdapter.setOnItemListener(new RecyclerItemClickListener() {
+        mMessageItemAdapter.setOnItemListener(new RecyclerItemClickListener<MessageBean>() {
             @Override
-            public void onClickListener(int position, View view, Object object) {
+            public void onClickListener(int position, View view, MessageBean bean) {
                 //已读
                 //id= object.toString();
-                doReadMessage(object.toString());
+                doReadMessage(bean.getId().toString());
                 mDataList.get(position).setStatus("DISABLE");
             }
         });

+ 0 - 1
app/src/main/java/com/edufound/reader/presenter/PayPresenter.java

@@ -142,7 +142,6 @@ public class PayPresenter extends BasePresenter<PayContract.View> implements Pay
             mModel.getPayQRCode(mView.getActivity(), mPayResult.get(position).getId(), new Callback() {
                 @Override
                 public void onSuccess(HttpInfo info) throws IOException {
-                    Logger.e("info.getD:" + info.getRetDetail());
                     handler.removeMessages(2);
                     HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
                     }.getType());

+ 1 - 1
app/src/main/java/com/edufound/reader/presenter/TmailPayPresenter.java

@@ -121,7 +121,7 @@ public class TmailPayPresenter extends BasePresenter<TmailPayContract.View> impl
 
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == 1234 && resultCode == Activity.RESULT_OK) {
+        if (requestCode == TMailSDKUtil.TMAIL_PAY_RESULT_CODE && resultCode == Activity.RESULT_OK) {
             if (data != null) {
                 boolean isPaySuccess = data.getBooleanExtra("isPaySuccess", false);
                 String paySuccessDataJson = data.getStringExtra("paySuccessData");

+ 4 - 2
app/src/main/java/com/edufound/reader/tmailsdk/TMailSDKUtil.java

@@ -46,6 +46,8 @@ import java.util.Map;
 
 public class TMailSDKUtil {
 
+    public static int TMAIL_PAY_RESULT_CODE = 0x1981;
+
     public static void TMailLogin(Context context) {
         Logger.e("调用天猫登录放大----TMailLogin");
         UserApiServerImpl mUserApi = new UserApiServerImpl();
@@ -114,7 +116,7 @@ public class TMailSDKUtil {
                                         }
                                     });
                                     //检查活动
-                                    EfunboxUtil.checkEvents(context, ((BaseActivity) context).getRootView());
+                                    EfunboxUtil.checkEvents(context, ((BaseActivity) context).getRootView(), true);
                                 }
 
                                 @Override
@@ -152,7 +154,7 @@ public class TMailSDKUtil {
                 Uri.parse("genie://com.alibaba.ailabs.genie.commonpay/qrcode"));
         Logger.e("json:" + json);
         intent.putExtra("data", json);
-        context.startActivityForResult(intent, 1234);
+        context.startActivityForResult(intent, TMAIL_PAY_RESULT_CODE);
     }
 
     public static void getUserId(Context context) {

+ 41 - 10
app/src/main/java/com/edufound/reader/util/EfunboxUtil.java

@@ -7,17 +7,24 @@ import android.text.TextUtils;
 import android.util.DisplayMetrics;
 import android.view.View;
 
+import com.edufound.reader.activity.EventPayActivity;
 import com.edufound.reader.activity.LoginAlertActivity;
 import com.edufound.reader.activity.PayActivity;
 import com.edufound.reader.activity.TmailPayActivity;
 import com.edufound.reader.activity.WebActivity;
+import com.edufound.reader.apiserver.ActivityEventServerImpl;
+import com.edufound.reader.bean.ActivityEventResultBean;
 import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.listener.PopUtilClickListener;
 import com.edufound.reader.popwindow.PopWindowUtil;
 import com.edufound.reader.tmailsdk.TMailSDKUtil;
+import com.google.gson.reflect.TypeToken;
+import com.okhttplib.HttpInfo;
+import com.okhttplib.callback.Callback;
 import com.orhanobut.logger.Logger;
 
+import java.io.IOException;
 import java.text.DecimalFormat;
 
 public class EfunboxUtil {
@@ -217,23 +224,47 @@ public class EfunboxUtil {
     /**
      * 检查是否有活动
      */
-    public static void checkEvents(Context context, View parent) {
+    public static void checkEvents(Context context, View parent, boolean needWindow) {
         //检查有没有活动
-
-        //如果这两个其中一个有用户信息,则请求有没有其他活动.如果有,就显示
-        PopWindowUtil.webviewEventsWindow(context, parent, new PopUtilClickListener() {
+        ActivityEventServerImpl mEventApi = new ActivityEventServerImpl();
+        mEventApi.getEventByType(ActivityEventServerImpl.EVENT_TYPE_FLOWER, new Callback() {
             @Override
-            public void clickCancel() {
+            public void onSuccess(HttpInfo info) throws IOException {
+                Logger.e("获取其他活动:" + info.getRetDetail());
+                ActivityEventResultBean activityBean = info.getRetDetail(new TypeToken<ActivityEventResultBean>() {
+                }.getType());
+                if (Boolean.valueOf(activityBean.getSuccess())) {
+                    //接口返回成功
+                    if (activityBean.getData().size() > 0) {
+                        //有活动
+                        PopWindowUtil.webviewEventsWindow(context, parent, new PopUtilClickListener() {
+                            @Override
+                            public void clickCancel() {
+
+                            }
+
+                            @Override
+                            public void clickSubmit(Object object) {
+                                //去webview界面,加载活动地址
+                                Intent intent = new Intent(context, WebActivity.class);
+                                intent.putExtra("loadUrl", "http://activity.ai160.com/index.html");
+                                context.startActivity(intent);
+//                               Intent intet = new Intent(context, EventPayActivity.class);
+//                                context.startActivity(intet);d
+                            }
+                        }, needWindow);
+                    } else {
+                        //没活动
+                    }
+                }
 
             }
 
             @Override
-            public void clickSubmit(Object object) {
-                //去webview界面,加载活动地址
-                Intent intent = new Intent(context, WebActivity.class);
-                intent.putExtra("loadUrl", "");
-                context.startActivity(intent);
+            public void onFailure(HttpInfo info) throws IOException {
+                Logger.e("获取活动失败:" + info.getRetDetail());
             }
         });
+
     }
 }

+ 29 - 14
app/src/main/java/com/edufound/reader/util/OkHttpClient.java

@@ -7,29 +7,25 @@ import android.os.Environment;
 
 import androidx.annotation.Nullable;
 
-import com.edufound.reader.bean.HttpResultBean;
-import com.edufound.reader.receiver.ShowFollowReceiver;
 import com.edufound.reader.receiver.ShowPageLoadingReceiver;
-import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.OkHttpUtil;
 import com.okhttplib.annotation.CacheType;
 import com.okhttplib.annotation.Encoding;
 import com.okhttplib.callback.BaseCallback;
-import com.okhttplib.callback.Callback;
-import com.okhttplib.callback.ProgressCallback;
 import com.okhttplib.cookie.PersistentCookieJar;
 import com.okhttplib.cookie.cache.SetCookieCache;
 import com.okhttplib.cookie.persistence.SharedPrefsCookiePersistor;
-import com.orhanobut.logger.Logger;
 
 import java.io.File;
-import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 public class OkHttpClient {
     //初始化OKHTTP
     private static String downloadFileDir = Environment.getExternalStorageDirectory().getPath() + "/okHttp_download/";
     private static String cacheDir = Environment.getExternalStorageDirectory().getPath() + "/okHttp_cache";
+    private static Map<String, String> mHeaders;
 
     public static void initOkHttpUtil(Context context) {
         OkHttpUtil.init(context)
@@ -52,8 +48,19 @@ public class OkHttpClient {
                 .addExceptionInterceptor(HttpInterceptor.ExceptionInterceptor)//请求链路异常拦截器
                 .setCookieJar(new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(context)))//持久化cookie
                 .build();
+        refHeader();
     }
 
+    private static void refHeader() {
+        if (mHeaders == null) {
+            mHeaders = new HashMap<>();
+        }
+        mHeaders.clear();
+        mHeaders.put("uid", Consts.getUID());
+        mHeaders.put("channelCode", Consts.getUmengChannel());
+    }
+
+
     public static void doGetAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         if (!info.build().getUrl().contains("posts/list")
                 && !info.build().getUrl().contains("/userRead/check")
@@ -61,7 +68,8 @@ public class OkHttpClient {
             Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
             Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
         }
-        OkHttpUtil.getDefault(activity).doGetAsync(info.addHead("uid", Consts.getUID()).addHead("channelCode", Consts.getUmengChannel()).build(), new EfunboxCallBack(callback));
+        refHeader();
+        OkHttpUtil.getDefault(activity).doGetAsync(info.addHeads(mHeaders).build(), new EfunboxCallBack(callback));
     }
 
     public static void doGetAsync(HttpInfo.Builder info, BaseCallback callback) {
@@ -71,14 +79,17 @@ public class OkHttpClient {
             Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
             Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
         }
-        OkHttpUtil.getDefault().doGetAsync(info.addHead("uid", Consts.getUID()).addHead("channelCode", Consts.getUmengChannel()).build(), new EfunboxCallBack(callback));
+        refHeader();
+        OkHttpUtil.getDefault().doGetAsync(info.addHeads(mHeaders).build(), new EfunboxCallBack(callback));
     }
 
 
     public static void doPostAsync(@Nullable Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
         Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
-        OkHttpUtil.getDefault(activity).doPostAsync(info.addHead("uid", Consts.getUID()).addHead("channelCode", Consts.getUmengChannel()).build(), new EfunboxCallBack(callback));
+        refHeader();
+        OkHttpUtil.getDefault(activity).doPostAsync(info.addHeads(mHeaders).build(), new EfunboxCallBack(callback));
+
     }
 
     public static void doPostAsync(HttpInfo.Builder info, BaseCallback callback) {
@@ -86,23 +97,27 @@ public class OkHttpClient {
             Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
             Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
         }
-        OkHttpUtil.getDefault().doPostAsync(info.addHead("uid", Consts.getUID()).addHead("channelCode", Consts.getUmengChannel()).build(), new EfunboxCallBack(callback));
+        refHeader();
+        OkHttpUtil.getDefault().doPostAsync(info.addHeads(mHeaders).build(), new EfunboxCallBack(callback));
     }
 
     public static void doPutAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
         Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
-        OkHttpUtil.getDefault(activity).doPutAsync(info.addHead("uid", Consts.getUID()).addHead("channelCode", Consts.getUmengChannel()).build(), new EfunboxCallBack(callback));
+        refHeader();
+        OkHttpUtil.getDefault(activity).doPutAsync(info.addHeads(mHeaders).build(), new EfunboxCallBack(callback));
     }
 
     public static void doDeleteAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
         Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
-        OkHttpUtil.getDefault(activity).doDeleteAsync(info.addHead("uid", Consts.getUID()).addHead("channelCode", Consts.getUmengChannel()).build(), new EfunboxCallBack(callback));
+        refHeader();
+        OkHttpUtil.getDefault(activity).doDeleteAsync(info.addHeads(mHeaders).build(), new EfunboxCallBack(callback));
     }
 
     public static void doUploadFile(Activity activity, HttpInfo.Builder info) {
-        OkHttpUtil.getDefault(activity).doUploadFileAsync(info.addHead("uid", Consts.getUID()).addHead("channelCode", Consts.getUmengChannel()).build());
+        refHeader();
+        OkHttpUtil.getDefault(activity).doUploadFileAsync(info.addHeads(mHeaders).build());
     }
 
 }

BIN
app/src/main/res/drawable/event_pay_into.png


+ 106 - 17
app/src/main/res/layout/activity_event_pay_item.xml

@@ -1,20 +1,109 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="365dp"
-    android:layout_height="346dp"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
     android:layout_gravity="center"
-    android:background="@drawable/event_pay_item_month">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="12个月"
-        android:textColor="#FF8A5215"
-        android:textSize="38dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.100000024" />
-</androidx.constraintlayout.widget.ConstraintLayout>
+    android:background="@color/transparent">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/event_pay_background"
+        android:layout_width="365dp"
+        android:layout_height="346dp"
+        android:layout_gravity="center"
+        android:background="@drawable/event_pay_item_month">
+
+        <TextView
+            android:id="@+id/event_pay_item_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="12个月"
+            android:textColor="#FF8A5215"
+            android:textSize="38dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.100000024" />
+
+        <TextView
+            android:id="@+id/event_pay_item_detail"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="原价348元 现价99元"
+            android:textColor="#666666"
+            android:textSize="16dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.28" />
+
+        <TextView
+            android:id="@+id/event_pay_item_redflower_detail"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="抵用券减10元 剩余小红花111111朵"
+            android:textColor="#EB4E0D"
+            android:textSize="16dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.40" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="实付金额"
+            android:textColor="#EB4E0D"
+            android:textSize="28dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.28"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.65" />
+
+        <TextView
+            android:id="@+id/textView2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="¥"
+            android:textColor="#EB4E0D"
+            android:textSize="36dp"
+            android:textStyle="bold"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.56"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.64" />
+
+        <TextView
+            android:id="@+id/event_pay_item_pay_money"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="94"
+            android:textColor="#EB4E0D"
+            android:textSize="46dp"
+            android:textStyle="bold"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.08"
+            app:layout_constraintStart_toEndOf="@+id/textView2"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.63" />
+
+        <ImageView
+            android:id="@+id/event_pay_item_pay_topay"
+            android:layout_width="150dp"
+            android:layout_height="49dp"
+            android:src="@drawable/event_pay_item_topay"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.9"></ImageView>
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</FrameLayout>

+ 159 - 160
app/src/main/res/layout/activity_saffloer.xml

@@ -1,83 +1,83 @@
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:roundframelayout="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:roundframelayout="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
 
 
     <FrameLayout
-            android:id="@+id/background"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="#55B77C"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"></FrameLayout>
+        android:id="@+id/background"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="#55B77C"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"></FrameLayout>
 
 
     <FrameLayout
-            android:id="@+id/activity_saffloer_mainlayout"
-            android:layout_width="1280dp"
-            android:layout_height="720dp"
-            android:orientation="vertical"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="h,16:9"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent">
+        android:id="@+id/activity_saffloer_mainlayout"
+        android:layout_width="1280dp"
+        android:layout_height="720dp"
+        android:orientation="vertical"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="h,16:9"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
 
         <LinearLayout
-                android:layout_width="1206dp"
-                android:layout_height="680dp"
-                android:layout_gravity="center"
-                android:background="@drawable/activity_safflower_bg"
-                android:orientation="vertical">
+            android:layout_width="1206dp"
+            android:layout_height="680dp"
+            android:layout_gravity="center"
+            android:background="@drawable/activity_safflower_bg"
+            android:orientation="vertical">
 
             <androidx.constraintlayout.widget.ConstraintLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:layout_weight="1.4">
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1.4">
 
                 <FrameLayout
-                        android:id="@+id/textView4"
-                        android:layout_width="203dp"
-                        android:layout_height="46dp"
-                        android:layout_marginTop="44dp"
-                        android:layout_marginBottom="250dp"
-                        android:gravity="center"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.58"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        app:layout_constraintVertical_bias="0.52">
+                    android:id="@+id/textView4"
+                    android:layout_width="203dp"
+                    android:layout_height="46dp"
+                    android:layout_marginTop="44dp"
+                    android:layout_marginBottom="250dp"
+                    android:gravity="center"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintHorizontal_bias="0.58"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent"
+                    app:layout_constraintVertical_bias="0.52">
 
 
                     <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="match_parent"
-                            android:layout_gravity="center"
-                            android:background="@drawable/activity_saffloer_follow_bg"
-                            android:gravity="center"
-                            android:orientation="horizontal">
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="center"
+                        android:background="@drawable/activity_saffloer_follow_bg"
+                        android:gravity="center"
+                        android:orientation="horizontal">
 
                         <ImageView
-                                android:layout_width="50dp"
-                                android:layout_height="40dp"
-                                android:src="@drawable/anim_red_follow"></ImageView>
+                            android:layout_width="50dp"
+                            android:layout_height="40dp"
+                            android:src="@drawable/anim_red_follow"></ImageView>
 
                         <TextView
-                                android:id="@+id/activity_saffloer_follow"
-                                android:layout_width="wrap_content"
-                                android:layout_height="match_parent"
-                                android:gravity="center"
-                                android:text="0"
-                                android:textColor="#F65641"
-                                android:textSize="23.4dp"
-                                android:textStyle="bold"></TextView>
+                            android:id="@+id/activity_saffloer_follow"
+                            android:layout_width="wrap_content"
+                            android:layout_height="match_parent"
+                            android:gravity="center"
+                            android:text="0"
+                            android:textColor="#F65641"
+                            android:textSize="23.4dp"
+                            android:textStyle="bold"></TextView>
                     </LinearLayout>
 
 
@@ -85,49 +85,49 @@
 
 
                 <com.edufound.reader.cusview.RoundFrameLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="211dp"
-                        android:layout_gravity="center"
-                        android:layout_marginLeft="60dp"
-                        android:layout_marginTop="100dp"
-                        android:layout_marginRight="60dp"
-                        android:background="#F1F9F4"
-                        android:divider="@drawable/activity_saffloer_sigin_layout_divier"
-                        android:gravity="center"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        app:layout_constraintVertical_bias="0.71000004"
-                        roundframelayout:radio="30">
+                    android:layout_width="match_parent"
+                    android:layout_height="211dp"
+                    android:layout_gravity="center"
+                    android:layout_marginLeft="60dp"
+                    android:layout_marginTop="100dp"
+                    android:layout_marginRight="60dp"
+                    android:background="#F1F9F4"
+                    android:divider="@drawable/activity_saffloer_sigin_layout_divier"
+                    android:gravity="center"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent"
+                    app:layout_constraintVertical_bias="0.71000004"
+                    roundframelayout:radio="30">
 
                     <FrameLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="match_parent"
-                            android:orientation="vertical">
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:orientation="vertical">
 
                         <TextView
-                                android:id="@+id/activity_saffloer_sign_day"
-                                android:layout_width="match_parent"
-                                android:layout_height="40dp"
-                                android:layout_gravity="center|top"
-                                android:layout_marginTop="16dp"
-                                android:gravity="center"
-                                android:text="已连续签到0天"
-                                android:textSize="28dp"></TextView>
+                            android:id="@+id/activity_saffloer_sign_day"
+                            android:layout_width="match_parent"
+                            android:layout_height="40dp"
+                            android:layout_gravity="center|top"
+                            android:layout_marginTop="16dp"
+                            android:gravity="center"
+                            android:text="已连续签到0天"
+                            android:textSize="28dp"></TextView>
 
 
                         <LinearLayout
-                                android:id="@+id/activity_saffloer_sign_layout"
-                                android:layout_width="match_parent"
-                                android:layout_height="match_parent"
-                                android:layout_marginLeft="70dp"
-                                android:layout_marginTop="16dp"
-                                android:layout_marginRight="70dp"
-                                android:divider="@drawable/activity_saffloer_sigin_layout_divier"
-                                android:dividerPadding="97dp"
-                                android:orientation="horizontal"
-                                android:showDividers="middle">
+                            android:id="@+id/activity_saffloer_sign_layout"
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:layout_marginLeft="70dp"
+                            android:layout_marginTop="16dp"
+                            android:layout_marginRight="70dp"
+                            android:divider="@drawable/activity_saffloer_sigin_layout_divier"
+                            android:dividerPadding="97dp"
+                            android:orientation="horizontal"
+                            android:showDividers="middle">
 
                         </LinearLayout>
                     </FrameLayout>
@@ -138,85 +138,84 @@
 
 
             <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:layout_weight="1"
-                    android:gravity="center"
-                    android:orientation="vertical">
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:orientation="vertical">
 
 
                 <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/activity_saffloer_recyclerview"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_gravity="center"
-                        android:layout_marginLeft="50dp"
-                        android:layout_marginRight="50dp"
-                        android:layout_marginBottom="50dp"></androidx.recyclerview.widget.RecyclerView>
+                    android:id="@+id/activity_saffloer_recyclerview"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_gravity="center"
+                    android:layout_marginLeft="50dp"
+                    android:layout_marginRight="50dp"
+                    android:layout_marginBottom="50dp"></androidx.recyclerview.widget.RecyclerView>
             </LinearLayout>
         </LinearLayout>
 
         <ImageView
-                android:id="@+id/activity_saffloer_back"
-                android:layout_width="77dp"
-                android:layout_height="77dp"
-                android:layout_gravity="left|top"
-                android:layout_marginLeft="32dp"
-                android:layout_marginTop="20dp"
-                android:src="@drawable/main_back"></ImageView>
+            android:id="@+id/activity_saffloer_back"
+            android:layout_width="77dp"
+            android:layout_height="77dp"
+            android:layout_gravity="left|top"
+            android:layout_marginLeft="32dp"
+            android:layout_marginTop="20dp"
+            android:src="@drawable/main_back"></ImageView>
 
         <ImageView
-                android:id="@+id/activity_saffloer_flower_des"
-                android:layout_width="154dp"
-                android:layout_height="94dp"
-                android:layout_gravity="right|top"
-                android:layout_marginTop="20dp"
-                android:layout_marginRight="55dp"
-                android:scaleX="1.5"
-                android:scaleY="1.5"
-                android:src="@drawable/activity_safflower_des"></ImageView>
+            android:id="@+id/event_pay_into"
+            android:layout_width="284dp"
+            android:layout_height="101dp"
+            android:layout_gravity="right|top"
+            android:layout_marginTop="20dp"
+            android:layout_marginRight="55dp"
+
+            android:src="@drawable/event_pay_into"></ImageView>
 
     </FrameLayout>
 
 
     <FrameLayout
-            android:id="@+id/activity_saffloer_window"
-            android:layout_width="1280dp"
-            android:layout_height="720dp"
-            android:orientation="vertical"
-            android:visibility="visible"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="h,16:9"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent">
+        android:id="@+id/activity_saffloer_window"
+        android:layout_width="1280dp"
+        android:layout_height="720dp"
+        android:orientation="vertical"
+        android:visibility="visible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="h,16:9"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
 
 
         <FrameLayout
-                android:layout_width="890dp"
-                android:layout_height="510dp"
-                android:layout_gravity="center"
-                android:background="@drawable/activity_safflower_des_pop_bg">
+            android:layout_width="890dp"
+            android:layout_height="510dp"
+            android:layout_gravity="center"
+            android:background="@drawable/activity_safflower_des_pop_bg">
 
             <ScrollView
-                    android:layout_width="match_parent"
-                    android:layout_height="280dp"
-                    android:layout_gravity="center"
-                    android:layout_marginLeft="30dp"
-                    android:layout_marginTop="30dp"
-                    android:layout_marginRight="30dp">
+                android:layout_width="match_parent"
+                android:layout_height="280dp"
+                android:layout_gravity="center"
+                android:layout_marginLeft="30dp"
+                android:layout_marginTop="30dp"
+                android:layout_marginRight="30dp">
 
                 <LinearLayout
-                        android:id="@+id/activity_saffloer_window_item_layout"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_gravity="center|top"
-                        android:layout_marginLeft="20dp"
-                        android:layout_marginRight="20dp"
-                        android:divider="@drawable/activity_saffloer_window_item_divier"
-                        android:gravity="center|top"
-                        android:orientation="vertical"
-                        android:showDividers="middle">
+                    android:id="@+id/activity_saffloer_window_item_layout"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_gravity="center|top"
+                    android:layout_marginLeft="20dp"
+                    android:layout_marginRight="20dp"
+                    android:divider="@drawable/activity_saffloer_window_item_divier"
+                    android:gravity="center|top"
+                    android:orientation="vertical"
+                    android:showDividers="middle">
 
 
                 </LinearLayout>
@@ -227,13 +226,13 @@
 
 
         <ImageView
-                android:id="@+id/activity_saffloer_window_back"
-                android:layout_width="77dp"
-                android:layout_height="77dp"
-                android:layout_gravity="left|top"
-                android:layout_marginLeft="32dp"
-                android:layout_marginTop="20dp"
-                android:src="@drawable/main_back"></ImageView>
+            android:id="@+id/activity_saffloer_window_back"
+            android:layout_width="77dp"
+            android:layout_height="77dp"
+            android:layout_gravity="left|top"
+            android:layout_marginLeft="32dp"
+            android:layout_marginTop="20dp"
+            android:src="@drawable/main_back"></ImageView>
 
 
     </FrameLayout>

+ 25 - 10
app/src/main/res/layout/activity_web.xml

@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:background="@color/white">
 
-    <FrameLayout
+        <FrameLayout
             android:id="@+id/web_frame"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"></FrameLayout>
+            android:layout_width="1280dp"
+            android:layout_height="720dp"
+            android:orientation="horizontal"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintDimensionRatio="h,16:9"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"></FrameLayout>
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
 
     <ImageView
-            android:id="@+id/web_back"
-            android:layout_width="77dp"
-            android:layout_height="77dp"
-            android:layout_marginLeft="32dp"
-            android:layout_marginTop="20dp"
-            android:src="@drawable/main_back"></ImageView>
+        android:id="@+id/web_back"
+        android:layout_width="77dp"
+        android:layout_height="77dp"
+        android:layout_marginLeft="32dp"
+        android:layout_marginTop="20dp"
+        android:src="@drawable/main_back"></ImageView>
 </FrameLayout>

+ 2 - 2
app/src/main/res/layout/popupwindow_registration_events.xml

@@ -8,8 +8,8 @@
         android:id="@+id/popupwindow_registration_events_img"
         android:layout_width="463dp"
         android:layout_height="376dp"
-        android:layout_gravity="center"
-        android:background="@color/green"></ImageView>
+        android:scaleType="fitXY"
+        android:layout_gravity="center"></ImageView>
 
     <ImageView
         android:id="@+id/popupwindow_registration_events_close"