瀏覽代碼

1.分享适配Android11

shihuiyun 2 年之前
父節點
當前提交
32cba17afe
共有 41 個文件被更改,包括 597 次插入354 次删除
  1. 1 1
      app/build.gradle
  2. 3 1
      app/src/main/AndroidManifest.xml
  3. 0 1
      app/src/main/java/com/zswc/creativity/App.kt
  4. 2 2
      app/src/main/java/com/zswc/creativity/activity/ComposeDetailsActivity.kt
  5. 0 79
      app/src/main/java/com/zswc/creativity/activity/CustomErrorActivity.kt
  6. 0 23
      app/src/main/java/com/zswc/creativity/activity/IntegralDetailsActivity.kt
  7. 5 0
      app/src/main/java/com/zswc/creativity/activity/MyCollectActivity.kt
  8. 25 22
      app/src/main/java/com/zswc/creativity/activity/TibetanDetailsActivity.kt
  9. 4 4
      app/src/main/java/com/zswc/creativity/adapter/RecommedAdapter.kt
  10. 5 3
      app/src/main/java/com/zswc/creativity/config/Config.kt
  11. 2 0
      app/src/main/java/com/zswc/creativity/config/ConfigRx.kt
  12. 6 0
      app/src/main/java/com/zswc/creativity/fragment/HomeMyFragment.kt
  13. 20 0
      app/src/main/java/com/zswc/creativity/fragment/MyCalendarFragment.kt
  14. 2 3
      app/src/main/java/com/zswc/creativity/fragment/RecommendFragment.kt
  15. 5 5
      app/src/main/java/com/zswc/creativity/model/CollectionList.kt
  16. 1 1
      app/src/main/java/com/zswc/creativity/model/TibetaDetails.kt
  17. 179 0
      app/src/main/java/com/zswc/creativity/utils/CalendarReminderUtils.java
  18. 28 18
      app/src/main/java/com/zswc/creativity/utils/PopuBuyUtils.kt
  19. 2 2
      app/src/main/java/com/zswc/creativity/utils/PopuDownWxUtils.kt
  20. 13 0
      app/src/main/java/com/zswc/creativity/utils/TimeUtils.kt
  21. 36 21
      app/src/main/java/com/zswc/creativity/utils/net/ApiService.kt
  22. 9 5
      app/src/main/java/com/zswc/creativity/vmodel/CollectDetailsVModel.kt
  23. 4 2
      app/src/main/java/com/zswc/creativity/vmodel/ComposeDetailsVModel.kt
  24. 3 1
      app/src/main/java/com/zswc/creativity/vmodel/IntegralDetailsVModel.kt
  25. 22 1
      app/src/main/java/com/zswc/creativity/vmodel/MyCalendarVModel.kt
  26. 12 0
      app/src/main/java/com/zswc/creativity/vmodel/OrderListFragmentVModel.kt
  27. 15 0
      app/src/main/java/com/zswc/creativity/vmodel/TibOrderVModel.kt
  28. 80 20
      app/src/main/java/com/zswc/creativity/vmodel/TibetanDetailsVModel.kt
  29. 二進制
      app/src/main/res/drawable-xxhdpi/ic_msg_one.webp
  30. 二進制
      app/src/main/res/drawable-xxhdpi/ic_my_account.webp
  31. 二進制
      app/src/main/res/drawable-xxhdpi/img_login_but.webp
  32. 二進制
      app/src/main/res/drawable-xxhdpi/login_line.webp
  33. 二進制
      app/src/main/res/drawable-xxhdpi/login_logo.webp
  34. 0 1
      app/src/main/res/layout/activity_all_collect_details.xml
  35. 2 1
      app/src/main/res/layout/activity_article_detail.xml
  36. 0 84
      app/src/main/res/layout/activity_error.xml
  37. 106 48
      app/src/main/res/layout/activity_tibetan_details.xml
  38. 1 1
      app/src/main/res/layout/item_calend.xml
  39. 2 2
      app/src/main/res/layout/item_recommed.xml
  40. 1 1
      app/src/main/res/layout/popu_open_no.xml
  41. 1 1
      app/src/main/res/layout/popu_open_tips.xml

+ 1 - 1
app/build.gradle

@@ -146,7 +146,7 @@ dependencies {
     //各种图标折线图
     implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
 
-    implementation 'cat.ereza:customactivityoncrash:2.3.0'
+   // implementation 'cat.ereza:customactivityoncrash:2.3.0'
 //二维码扫描页面
     implementation 'cn.yipianfengye.android:zxing-library:2.2'
     implementation 'androidx.multidex:multidex:2.0.0'

+ 3 - 1
app/src/main/AndroidManifest.xml

@@ -22,6 +22,9 @@
 
     <!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
     <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.SET_ALARM"/>
+    <uses-permission android:name="android.permission.WRITE_CALENDAR"/>
+    <uses-permission android:name="android.permission.READ_CALENDAR"/>
 
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
@@ -99,7 +102,6 @@
 <!--        <activity android:name=".activity.LoginActivity" />-->
         <activity android:name="com.zswc.creativity.activity.RegisterActivity" />
         <activity android:name="com.zswc.creativity.activity.WebViewActivity" />
-        <activity android:name="com.zswc.creativity.activity.CustomErrorActivity"/>
         <activity android:name="com.zswc.creativity.activity.TestMainActivity"/>
         <activity android:name="com.zswc.creativity.activity.SettingActivity"/>
         <activity android:name="com.zswc.creativity.activity.SpreadActivity"/>

+ 0 - 1
app/src/main/java/com/zswc/creativity/App.kt

@@ -1,7 +1,6 @@
 package com.zswc.creativity
 
 import android.speech.tts.TextToSpeech
-import cat.ereza.customactivityoncrash.config.CaocConfig
 import com.tencent.mmkv.MMKV
 import com.uuzuche.lib_zxing.activity.ZXingLibrary
 import com.ysnows.base.base.BApp

+ 2 - 2
app/src/main/java/com/zswc/creativity/activity/ComposeDetailsActivity.kt

@@ -17,9 +17,9 @@ class ComposeDetailsActivity : MBActivity<ComposeDetailsVModel, ActivityComposeD
 
     override fun init(savedInstanceState: Bundle?) {
         super.init(savedInstanceState)
-        var id=intent.extras?.getString("id","")
+        vm.id=intent.extras?.getString("id","")
 
-        vm.getInfo(id)
+        vm.getInfo()
 
         vm.data.observe(this){
 

+ 0 - 79
app/src/main/java/com/zswc/creativity/activity/CustomErrorActivity.kt

@@ -1,79 +0,0 @@
-package com.zswc.creativity.activity
-
-import android.content.ClipData
-import android.content.ClipboardManager
-import android.content.Context
-import android.os.Bundle
-import cat.ereza.customactivityoncrash.CustomActivityOnCrash
-import cat.ereza.customactivityoncrash.config.CaocConfig
-import com.qmuiteam.qmui.kotlin.onClick
-import com.zswc.creativity.base.MBActivity
-import com.zswc.creativity.databinding.ActivityErrorBinding
-import com.ysnows.base.base.BRepository
-import com.ysnows.base.base.BViewModel
-
-
-/**
- *Created by shihuiyun
- *on 2020/11/10
- */
-class CustomErrorActivity : MBActivity<BViewModel<BRepository>, ActivityErrorBinding>(){
-
-
-    override fun init(savedInstanceState: Bundle?) {
-        super.init(savedInstanceState)
-        var config: CaocConfig? =null
-        try {
-            binding.errorDetails.text=CustomActivityOnCrash.getStackTraceFromIntent(intent)
-             config = CustomActivityOnCrash.getConfigFromIntent(intent)
-
-        }catch (e:Exception){
-        }
-
-        binding.restartCopy.onClick {
-            //复制错误信息
-
-            val cm: ClipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
-            // 创建普通字符型ClipData
-            val mClipData = ClipData.newPlainText(null, binding.errorDetails.text)
-            // 将ClipData内容放到系统剪贴板里。
-            // 将ClipData内容放到系统剪贴板里。
-            cm.setPrimaryClip(mClipData)
-            toast("错误信息已复制到粘贴板")
-        }
-
-
-        if (config == null) {
-            finish()
-            return
-        }
-
-        if (config.isShowRestartButton && config.restartActivityClass != null) {
-            binding.restartButton.text="重启应用"
-
-            binding.restartButton.onClick {
-                CustomActivityOnCrash.restartApplication(this@CustomErrorActivity, config)
-            }
-
-
-        } else {
-
-            binding.restartButton.onClick {
-                CustomActivityOnCrash.closeApplication(this@CustomErrorActivity, config)
-            }
-
-        }
-
-
-    }
-
-
-    override fun title(): String? {
-        return "错误信息"
-
-    }
-
-    override fun binding(): ActivityErrorBinding {
-        return ActivityErrorBinding.inflate(layoutInflater)
-    }
-}

+ 0 - 23
app/src/main/java/com/zswc/creativity/activity/IntegralDetailsActivity.kt

@@ -382,31 +382,8 @@ class IntegralDetailsActivity : MBActivity<IntegralDetailsVModel, ActivityIntegr
 
         if (bean.choseType == 3) {
 
-            lifecycleScope.launch {
 
 
-                val it = vm.repository().lreq {
-                    NetEngine.service.setCreateOrder(
-                            "app", vm.data.value?.id, bean.num,
-                            "qb", bean.second_password
-                    )
-                }
-                if (it.ok(true)) {
-                    //todo:支付成功
-                    var price = bean.num.toInt() * vm.data.value?.price!!.toDouble()
-                    var orderid = it.result.toString()
-                    UiSwitch.bundle(
-                            context(), PaySuessActivity::class.java,
-                            B().putString("orderid", orderid)
-                                    .putString("type", "2")
-                                    .putString("price", price.toString())
-                                    .ok()
-                    )
-
-                }
-
-            }
-
         }
 
 

+ 5 - 0
app/src/main/java/com/zswc/creativity/activity/MyCollectActivity.kt

@@ -86,4 +86,9 @@ class MyCollectActivity : MBActivity<MyCollectVModel,  ActivityMyCollectBinding>
 
     }
 
+    @Subscribe(tags = [Tag(ConfigRx.REFRESH_OPEN)])
+    fun setOpen(type: String) {
+        vm.getList()
+    }
+
 }

+ 25 - 22
app/src/main/java/com/zswc/creativity/activity/TibetanDetailsActivity.kt

@@ -1,5 +1,6 @@
 package com.zswc.creativity.activity
 
+import android.Manifest
 import android.app.Activity
 import android.graphics.Color
 import android.os.Build
@@ -18,6 +19,8 @@ import coil.decode.ImageDecoderDecoder
 import coil.load
 import coil.request.Disposable
 import coil.transform.RoundedCornersTransformation
+import com.eazypermissions.common.model.PermissionResult
+import com.eazypermissions.coroutinespermission.PermissionManager
 import com.githang.statusbar.StatusBarCompat
 import com.hwangjr.rxbus.annotation.Subscribe
 import com.hwangjr.rxbus.annotation.Tag
@@ -163,6 +166,20 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
     override fun listeners() {
         super.listeners()
 
+        binding.llSetTime.onClick {
+            lifecycleScope.launch {
+                if (PermissionManager.requestPermissions(
+                                this@TibetanDetailsActivity, 1000,
+                                Manifest.permission.WRITE_CALENDAR,
+                                Manifest.permission.READ_CALENDAR
+                        ) is PermissionResult.PermissionGranted
+                ) {
+                    vm.toBuyTime()
+                }
+
+            }
+        }
+
 
 
 
@@ -400,32 +417,18 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
 
         if (bean.choseType == 3) {//钱包
 
-            lifecycleScope.launch {
+            vm.toBuy(bean.num, "ye")
 
+//            UiSwitch.bundle(
+//                    context(), PaySuessActivity::class.java,
+//                    B().putString("orderid", orderid)
+//                            .putString("type", "2")
+//                            .putString("price", price.toString())
+//                            .ok()
 
-                val it = vm.repository().lreq {
-                    NetEngine.service.setCreateOrder(
-                            "app", vm.data.value?.id, bean.num,
-                            "qb", bean.second_password
-                    )
-                }
-                if (it.ok(true)) {
-                    //todo:支付成功
-                    var price = bean.num.toInt() * vm.data.value?.price!!.toDouble()
-                    var orderid = it.result.toString()
-                    UiSwitch.bundle(
-                            context(), PaySuessActivity::class.java,
-                            B().putString("orderid", orderid)
-                                    .putString("type", "2")
-                                    .putString("price", price.toString())
-                                    .ok()
-                    )
-
-                }
+        }
 
-            }
 
-        }
 
 
 //        lifecycleScope.launch {

+ 4 - 4
app/src/main/java/com/zswc/creativity/adapter/RecommedAdapter.kt

@@ -25,17 +25,17 @@ class RecommedAdapter() : BAdapter<CollectionList,
 
 
         when (item.state) {
-            "1" -> {
+            1 -> {
                 holder.dataBinding?.tvState?.text = "热卖中 "
                 holder.dataBinding?.tvState?.setTextColor(Color.parseColor("#FFF488"))
                 holder.dataBinding?.imgState?.setImageResource(R.drawable.ct_time_ing)
             }
-            "2" -> {
-                holder.dataBinding?.tvState?.text = "即将开售 " + item.sell_time
+            2 -> {
+                holder.dataBinding?.tvState?.text = "即将开售 " + item.sellTime
                 holder.dataBinding?.tvState?.setTextColor(Color.parseColor("#62FFF0"))
                 holder.dataBinding?.imgState?.setImageResource(R.drawable.ct_time)
             }
-            "3" -> {
+            3 -> {
 
                 holder.dataBinding?.tvState?.text = "已售罄 "
                 holder.dataBinding?.tvState?.setTextColor(Color.parseColor("#999999"))

+ 5 - 3
app/src/main/java/com/zswc/creativity/config/Config.kt

@@ -13,13 +13,15 @@ object  Config : IConfig {
 
     }
 
+    override fun searchUrl(): String? {
+        return "https://cc.chuangchi.vip/web/"
+    }
+
     override fun BBDCUrl(): String? {
         return "https://1tyy.cn/"
     }
 
-    override fun searchUrl(): String? {
-        return null
-    }
+
 
     override fun imageUrl(): String? {
         return null

+ 2 - 0
app/src/main/java/com/zswc/creativity/config/ConfigRx.kt

@@ -55,6 +55,8 @@ object ConfigRx {
     const val REFRESH_SELL = "REFRESH_SELL" //二级市场-购买后
 
     const val SELL_SECOND_SUESS = "SELL_SECOND_SUESS" //出售到二级市场
+    const val REFRESH_OPEN = "REFRESH_OPEN" //盲盒打开后
+
 
 
 

+ 6 - 0
app/src/main/java/com/zswc/creativity/fragment/HomeMyFragment.kt

@@ -1,6 +1,7 @@
 package com.zswc.creativity.fragment
 
 import android.os.Bundle
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.ViewGroup
 import com.hwangjr.rxbus.annotation.Subscribe
@@ -146,5 +147,10 @@ class HomeMyFragment : MBFragment<HomeMyVModel, FragmentHomeMyBinding>() {
         vm.getMyCollection()
 
     }
+    @Subscribe(tags = [Tag(ConfigRx.REFRESH_OPEN)])
+    fun setOpen(type: String) {
+        Log.e("-shy-", "setClick: " )
+        vm.getMyCollection()
+    }
 
 }

+ 20 - 0
app/src/main/java/com/zswc/creativity/fragment/MyCalendarFragment.kt

@@ -1,14 +1,18 @@
 package com.zswc.creativity.fragment
 
+import android.Manifest
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.RecyclerView
 import coil.Coil
 import coil.ImageLoader
 import coil.request.CachePolicy
 import coil.util.CoilUtils
+import com.eazypermissions.common.model.PermissionResult
+import com.eazypermissions.coroutinespermission.PermissionManager
 import com.hwangjr.rxbus.RxBus
 import com.hwangjr.rxbus.annotation.Subscribe
 import com.hwangjr.rxbus.annotation.Tag
@@ -26,6 +30,7 @@ import com.zswc.creativity.model.CalendarBean
 import com.zswc.creativity.model.CollectionList
 import com.zswc.creativity.vmodel.MyCalendarVModel
 import com.zswc.creativity.vmodel.RecommendVModel
+import kotlinx.coroutines.launch
 
 
 /**
@@ -54,6 +59,21 @@ class MyCalendarFragment : MBFragment<MyCalendarVModel, FragmentMyCalendarBindin
             adapter?.notifyItemChanged(it)
         }
 
+        vm.bean.observe(this){
+            lifecycleScope.launch {
+                if (PermissionManager.requestPermissions(
+                                this@MyCalendarFragment, 1000,
+                                Manifest.permission.WRITE_CALENDAR,
+                                Manifest.permission.READ_CALENDAR
+                        ) is PermissionResult.PermissionGranted
+                ) {
+                    vm.RemindMe()
+                }
+
+            }
+
+        }
+
 
 
 

+ 2 - 3
app/src/main/java/com/zswc/creativity/fragment/RecommendFragment.kt

@@ -142,11 +142,10 @@ class RecommendFragment : MBFragment<RecommendVModel, FragmentRecommendBinding>(
         adapter?.addData(list)
         adapter?.setOnItemClickListener { adapter, view, position ->
 
-
-            vm.list.value?.get(position)?.id
+            var item=adapter.getItem(position) as CollectionList
 
             UiSwitch.bundle(context, TibetanDetailsActivity::class.java,
-                    B().putString("id", vm.list.value?.get(position)?.id)
+                    B().putString("id", item.id)
                             .ok())
         }
 

+ 5 - 5
app/src/main/java/com/zswc/creativity/model/CollectionList.kt

@@ -9,11 +9,11 @@ import com.ysnows.base.inter.IModel
  * state 1:进行中2:即将开售3:已售罄)
  * type:1:正常商品  3:盲盒
  */
-data class CollectionList(var id:String, var auth_img :String, var auth_name:String,
-                          var cover:String, var first_cid :String, var first_time:String,
-                          var inventory:String, var label :String, var name:String,
-                          var now_inventory:String, var price :String, var sell_time:String,
-                          var state:String, var type :String,
+data class CollectionList(var id:String,var label:String,var cover:String,
+                          var name:String,var detailImg:String,var type:String,
+                          var ddescribe:String,var sellTime:String,var endTime:String,
+                          var price:String,var authName:String,var authImg:String,
+                          var state:Int,var inventory:String,
                           ) : IModel {
 
 

+ 1 - 1
app/src/main/java/com/zswc/creativity/model/TibetaDetails.kt

@@ -10,7 +10,7 @@ import com.ysnows.base.inter.IModel
  */
 data class TibetaDetails(var authName:String, var authImg:String, var buyCount:Int,
                          var buyNotice:String, var cover:String,var ddescribe:String,
-                         var detailImg:String, var firstCid:String, var firstTime:String,
+                         var detailImg:String, var firstCid:Int, var firstTime:String,
                          var format:String, var id:String, var instructions:String,
                          var issuer:String, var label:String, var name:String,
                          var price:String, var sellTime:String, var shareImg:String,

+ 179 - 0
app/src/main/java/com/zswc/creativity/utils/CalendarReminderUtils.java

@@ -0,0 +1,179 @@
+package com.zswc.creativity.utils;
+
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.graphics.Color;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.CalendarContract;
+import android.text.TextUtils;
+
+import androidx.annotation.RequiresApi;
+
+import java.util.Calendar;
+import java.util.TimeZone;
+
+/**
+ * on 2022/8/15
+ */
+public class CalendarReminderUtils {
+    private static String CALENDER_URL = "content://com.android.calendar/calendars";
+    private static String CALENDER_EVENT_URL = "content://com.android.calendar/events";
+    private static String CALENDER_REMINDER_URL = "content://com.android.calendar/reminders";
+
+    private static String CALENDARS_NAME = "boohee";
+    private static String CALENDARS_ACCOUNT_NAME = "BOOHEE@boohee.com";
+    private static String CALENDARS_ACCOUNT_TYPE = "com.android.boohee";
+    private static String CALENDARS_DISPLAY_NAME = "BOOHEE账户";
+
+    /**
+     * 检查是否已经添加了日历账户,如果没有添加先添加一个日历账户再查询
+     * 获取账户成功返回账户id,否则返回-1
+     */
+    @RequiresApi(api = Build.VERSION_CODES.N)
+    private static int checkAndAddCalendarAccount(Context context) {
+        int oldId = checkCalendarAccount(context);
+        if (oldId >= 0) {
+            return oldId;
+        } else {
+            long addId = addCalendarAccount(context);
+            if (addId >= 0) {
+                return checkCalendarAccount(context);
+            } else {
+                return -1;
+            }
+        }
+    }
+
+    /**
+     * 检查是否存在现有账户,存在则返回账户id,否则返回-1
+     */
+    private static int checkCalendarAccount(Context context) {
+        Cursor userCursor = context.getContentResolver().query(Uri.parse(CALENDER_URL), null, null, null, null);
+        try {
+            if (userCursor == null) { //查询返回空值
+                return -1;
+            }
+            int count = userCursor.getCount();
+            if (count > 0) { //存在现有账户,取第一个账户的id返回
+                userCursor.moveToFirst();
+                return userCursor.getInt(userCursor.getColumnIndex(CalendarContract.Calendars._ID));
+            } else {
+                return -1;
+            }
+        } finally {
+            if (userCursor != null) {
+                userCursor.close();
+            }
+        }
+    }
+
+    /**
+     * 添加日历账户,账户创建成功则返回账户id,否则返回-1
+     */
+
+    private static long addCalendarAccount(Context context) {
+        TimeZone timeZone = TimeZone.getDefault();
+        ContentValues value = new ContentValues();
+        value.put(CalendarContract.Calendars.NAME, CALENDARS_NAME);
+        value.put(CalendarContract.Calendars.ACCOUNT_NAME, CALENDARS_ACCOUNT_NAME);
+        value.put(CalendarContract.Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE);
+        value.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, CALENDARS_DISPLAY_NAME);
+        value.put(CalendarContract.Calendars.VISIBLE, 1);
+        value.put(CalendarContract.Calendars.CALENDAR_COLOR, Color.BLUE);
+        value.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
+        value.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
+        value.put(CalendarContract.Calendars.CALENDAR_TIME_ZONE, timeZone.getID());
+        value.put(CalendarContract.Calendars.OWNER_ACCOUNT, CALENDARS_ACCOUNT_NAME);
+        value.put(CalendarContract.Calendars.CAN_ORGANIZER_RESPOND, 0);
+
+        Uri calendarUri = Uri.parse(CALENDER_URL);
+        calendarUri = calendarUri.buildUpon()
+                .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
+                .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, CALENDARS_ACCOUNT_NAME)
+                .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE)
+                .build();
+
+        Uri result = context.getContentResolver().insert(calendarUri, value);
+        long id = result == null ? -1 : ContentUris.parseId(result);
+        return id;
+    }
+
+    /**
+     * 添加日历事件
+     */
+    @RequiresApi(api = Build.VERSION_CODES.N)
+    public static void addCalendarEvent(Context context, String title, String description, long reminderTime, int previousDate) {
+        if (context == null) {
+            return;
+        }
+        int calId = checkAndAddCalendarAccount(context); //获取日历账户的id
+        if (calId < 0) { //获取账户id失败直接返回,添加日历事件失败
+            return;
+        }
+
+        //添加日历事件
+        Calendar mCalendar = Calendar.getInstance();
+        mCalendar.setTimeInMillis(reminderTime);//设置开始时间
+        long start = mCalendar.getTime().getTime();
+        mCalendar.setTimeInMillis(start + 10 * 60 * 1000);//设置终止时间,开始时间加10分钟
+        long end = mCalendar.getTime().getTime();
+        ContentValues event = new ContentValues();
+        event.put("title", title);
+        event.put("description", description);
+        event.put("calendar_id", calId); //插入账户的id
+        event.put(CalendarContract.Events.DTSTART, start);
+        event.put(CalendarContract.Events.DTEND, end);
+        event.put(CalendarContract.Events.HAS_ALARM, 1);//设置有闹钟提醒
+        event.put(CalendarContract.Events.EVENT_TIMEZONE, "Asia/Shanghai");//这个是时区,必须有
+        Uri newEvent = context.getContentResolver().insert(Uri.parse(CALENDER_EVENT_URL), event); //添加事件
+        if (newEvent == null) { //添加日历事件失败直接返回
+            return;
+        }
+
+        //事件提醒的设定
+        ContentValues values = new ContentValues();
+        values.put(CalendarContract.Reminders.EVENT_ID, ContentUris.parseId(newEvent));
+        values.put(CalendarContract.Reminders.MINUTES, 0);// 提前previousDate天有提醒
+        values.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT);
+        Uri uri = context.getContentResolver().insert(Uri.parse(CALENDER_REMINDER_URL), values);
+        if (uri == null) { //添加事件提醒失败直接返回
+            return;
+        }
+    }
+
+    /**
+     * 删除日历事件
+     */
+    public static void deleteCalendarEvent(Context context, String title) {
+        if (context == null) {
+            return;
+        }
+        Cursor eventCursor = context.getContentResolver().query(Uri.parse(CALENDER_EVENT_URL), null, null, null, null);
+        try {
+            if (eventCursor == null) { //查询返回空值
+                return;
+            }
+            if (eventCursor.getCount() > 0) {
+                //遍历所有事件,找到title跟需要查询的title一样的项
+                for (eventCursor.moveToFirst(); !eventCursor.isAfterLast(); eventCursor.moveToNext()) {
+                    String eventTitle = eventCursor.getString(eventCursor.getColumnIndex("title"));
+                    if (!TextUtils.isEmpty(title) && title.equals(eventTitle)) {
+                        int id = eventCursor.getInt(eventCursor.getColumnIndex(CalendarContract.Calendars._ID));//取得id
+                        Uri deleteUri = ContentUris.withAppendedId(Uri.parse(CALENDER_EVENT_URL), id);
+                        int rows = context.getContentResolver().delete(deleteUri, null, null);
+                        if (rows == -1) { //事件删除失败
+                            return;
+                        }
+                    }
+                }
+            }
+        } finally {
+            if (eventCursor != null) {
+                eventCursor.close();
+            }
+        }
+    }
+}

+ 28 - 18
app/src/main/java/com/zswc/creativity/utils/PopuBuyUtils.kt

@@ -15,6 +15,7 @@ import com.qmuiteam.qmui.kotlin.onClick
 import com.qmuiteam.qmui.layout.QMUIFrameLayout
 import com.qmuiteam.qmui.skin.QMUISkinValueBuilder
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.popup.QMUIFullScreenPopup
 import com.qmuiteam.qmui.widget.popup.QMUIPopup
 import com.qmuiteam.qmui.widget.popup.QMUIPopups
 import com.zswc.creativity.R
@@ -29,10 +30,10 @@ import java.lang.Exception
  */
 object PopuBuyUtils {
 
-
+    var mNormalPopup: QMUIFullScreenPopup?=null
     fun show(context: Context, cover: String?, name: String?, price: String?, buy_count:Int?, view: View) {
 
-        var mNormalPopup = QMUIPopups.fullScreenPopup(context)
+         mNormalPopup = QMUIPopups.fullScreenPopup(context)
         val builder: QMUISkinValueBuilder = QMUISkinValueBuilder.acquire()
         val frameLayout = QMUIFrameLayout(context)
         //自定义布局
@@ -193,18 +194,23 @@ object PopuBuyUtils {
             //输入支付密码
             if(choseType==3){//钱包支付
 
-                PopuSureUtils.show(context,view, object :ChoiceData{
-                    override fun onRestuse(password: String?) {
-                       //todo:
-                        var payTypeBen= PayTypeBen(choseType,all_nums,password)
-
-                        RxBus.get().post(ConfigRx.CHOSE_PAY_TYPE,payTypeBen)
+                var payTypeBen= PayTypeBen(choseType,all_nums,"")
 
-                      //  mNormalPopup.dismiss()
+                RxBus.get().post(ConfigRx.CHOSE_PAY_TYPE,payTypeBen)
 
-                    }
 
-                })
+//                PopuSureUtils.show(context,view, object :ChoiceData{
+//                    override fun onRestuse(password: String?) {
+//                       //todo:
+//                        var payTypeBen= PayTypeBen(choseType,all_nums,password)
+//
+//                        RxBus.get().post(ConfigRx.CHOSE_PAY_TYPE,payTypeBen)
+//
+//                      //  mNormalPopup.dismiss()
+//
+//                    }
+//
+//                })
 
              return@onClick
             }
@@ -213,10 +219,10 @@ object PopuBuyUtils {
         }
 
         butCancel.onClick {
-            mNormalPopup.dismiss()
+            mNormalPopup?.dismiss()
         }
         ll.onClick {
-            mNormalPopup.dismiss()
+            mNormalPopup?.dismiss()
         }
 
         builder.release();
@@ -230,17 +236,21 @@ object PopuBuyUtils {
         frameLayout.addView(layout, lp)
 
 
-        mNormalPopup.addView(frameLayout)
-        mNormalPopup.onDismiss() {
+        mNormalPopup?.addView(frameLayout)
+        mNormalPopup?.onDismiss() {
         }
 
-        mNormalPopup.dismissIfOutsideTouch(false)
-        mNormalPopup.animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
-        mNormalPopup.show(view)
+        mNormalPopup?.dismissIfOutsideTouch(false)
+        mNormalPopup?.animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+        mNormalPopup?.show(view)
 
 
     }
 
+    fun setDisMiss(){
+        mNormalPopup?.dismiss()
+    }
+
 
 
 

+ 2 - 2
app/src/main/java/com/zswc/creativity/utils/PopuDownWxUtils.kt

@@ -65,7 +65,7 @@ object PopuDownWxUtils {
     var uriToImage: Uri? = null
 
 
-    fun show(context: Context, url: String,name:String?,auth_name:String?, id:String?,view: View, contentResolver: ContentResolver) {
+    fun show(context: Context, url: String?,name:String?,auth_name:String?, id:String?,shareUrl: String,view: View, contentResolver: ContentResolver) {
         uriToImage=null
         tipDialog=null
         cr=null
@@ -94,7 +94,7 @@ object PopuDownWxUtils {
         tvTitle.text=name
         tvName.text= "作者:$auth_name"
         //生成二维码
-        var  mBitmap   = CodeUtils.createImage("https://cc.chuangchi.vip/web/h5//pages/index/goodsinfo?id=$id", 400, 400, null)
+        var  mBitmap   = CodeUtils.createImage(shareUrl+"?id=$id", 400, 400, null)
         imgCode.setImageBitmap(mBitmap)
 
 

+ 13 - 0
app/src/main/java/com/zswc/creativity/utils/TimeUtils.kt

@@ -1,6 +1,7 @@
 package com.zswc.creativity.utils
 
 import android.util.Log
+import java.text.ParseException
 import java.text.SimpleDateFormat
 import java.util.*
 
@@ -46,4 +47,16 @@ object  TimeUtils {
         return sDateFormat.format(Date())
     }
 
+    fun getHaoTime(startTime: String?):Long{//返回毫秒
+        val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+        var date = Date()
+        try {
+            date = simpleDateFormat.parse(startTime)
+        } catch (e: ParseException) {
+            e.printStackTrace()
+        }
+        return  date.time
+
+    }
+
 }

+ 36 - 21
app/src/main/java/com/zswc/creativity/utils/net/ApiService.kt

@@ -284,8 +284,37 @@ interface ApiService {
     suspend fun paySecondOrder(@Body body: JSONObject?): Resp<Any>
 
 
+    /**
+     * 购买-钱包购买
+     * @return
+     */
+    @POST("Order/createOrder")
+    suspend fun setCreateOrder( @Body body: JSONObject?): Resp<Any>
+
+    /**
+     * 设置购买提醒
+     * @return
+     */
+    @POST("Index/setRemind")
+    suspend fun setRemind(@Body body: JSONObject?): Resp<Any>
+
+    /**
+     * 待支付订单支付
+     * @return
+     */
 
+    @POST("Order/payOrder")
+    suspend fun payOrder(@Body body: JSONObject?): Resp<Any>
 
+    /**
+     * 打开盲盒
+     * @return
+     */
+    @FormUrlEncoded
+    @POST("User_center/openBoxCollection")
+    suspend fun openBoxCollection(
+            @Field("id") id: String?,
+    ): Resp<OpenBoxCollection>
 
 
 
@@ -299,13 +328,18 @@ interface ApiService {
 
 
 
-    //------------------------------//---------------------------//----------------------//-----------------
 
 
 
 
 
 
+    //------------------------------//---------------------------//----------------------//-----------------
+
+
+
+
+
 
 
 
@@ -366,7 +400,7 @@ interface ApiService {
      * @return
      */
     @GET("Index/CollectionCalendar")
-    suspend fun CollectionCalendar(): Resp<List<CollectionList>>
+    suspend fun CollectionCalendar(): Resp<List<CalendarBean>>
 
 
 
@@ -377,16 +411,6 @@ interface ApiService {
 
 
 
-    /**
-     * 购买-钱包购买
-     * @return
-     */
-    @POST("Order/createOrder")
-    @FormUrlEncoded
-    suspend fun setCreateOrder(@Field("from") from: String?, @Field("id") id: String?,
-                               @Field("num") num: String?, @Field("pay_type") pay_type: String?,
-                               @Field("second_password") second_password: String?
-    ): Resp<Any>
 
 
 
@@ -425,15 +449,6 @@ interface ApiService {
             @Field("mobile") mobile: String?,
     ): Resp<Any>
 
-    /**
-     * 打开盲盒
-     * @return
-     */
-    @FormUrlEncoded
-    @POST("User_center/openBoxCollection")
-    suspend fun openBoxCollection(
-            @Field("id") id: String?,
-    ): Resp<Any>
 
 
 

+ 9 - 5
app/src/main/java/com/zswc/creativity/vmodel/CollectDetailsVModel.kt

@@ -12,6 +12,7 @@ import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.viewModelScope
 import com.alibaba.fastjson.JSONObject
 import com.google.gson.Gson
+import com.hwangjr.rxbus.RxBus
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
 import com.ysnows.base.utils.B
@@ -19,6 +20,7 @@ import com.ysnows.base.utils.UiSwitch
 import com.zswc.creativity.activity.CollectDetailsActivity
 import com.zswc.creativity.activity.ResaleActivity
 import com.zswc.creativity.activity.TrannsferActivity
+import com.zswc.creativity.config.ConfigRx
 import com.zswc.creativity.inte.ChoiceData
 import com.zswc.creativity.model.MyTibetaDetails
 import com.zswc.creativity.model.OpenBoxCollection
@@ -127,16 +129,18 @@ class CollectDetailsVModel(application: Application) : BViewModel<BRepository>(a
 
                 viewModelScope.launch {
                     var it=repository().lreq { NetEngine.service.openBoxCollection(id.value) }
+
+                    if (it.code == 0) {
+                        toast(it.message)
+                    }
                     if(it.ok(true)){
-                        //todo:
                         is_destruction.value=0
-                        var  s=it.result.toString()
-                        if(TextUtils.isEmpty(s)){//没有开出
+                        RxBus.get().post(ConfigRx.REFRESH_OPEN, "")
 
+                        if(null==it.result){//没有开出
                             openDataNo.value=true
                         }else{//开出东西
-                            val item: OpenBoxCollection = Gson().fromJson(s, OpenBoxCollection::class.java)
-                            openData.value=item
+                            openData.value=it.result
                         }
 
                     }

+ 4 - 2
app/src/main/java/com/zswc/creativity/vmodel/ComposeDetailsVModel.kt

@@ -18,6 +18,7 @@ import kotlinx.coroutines.launch
 
 class ComposeDetailsVModel(application: Application) : BViewModel<BRepository>(application)  {
 
+    var id:String?=""
     var data = MutableLiveData<ComposeBean>()
 
 
@@ -41,7 +42,8 @@ class ComposeDetailsVModel(application: Application) : BViewModel<BRepository>(a
             viewModelScope.launch {
                 var it = repository().lreq{ NetEngine.service.synCollection(data.value?.id)}
                 if (it.ok(true)) {
-
+                    //刷新
+                    getInfo()
                 }
             }
         }else{
@@ -49,7 +51,7 @@ class ComposeDetailsVModel(application: Application) : BViewModel<BRepository>(a
         }
     }
 
-    fun getInfo(id:String?){
+    fun getInfo(){
 
         viewModelScope.launch {
             var it= repository().preq {NetEngine.service.SyCollectionDetail(id)}

+ 3 - 1
app/src/main/java/com/zswc/creativity/vmodel/IntegralDetailsVModel.kt

@@ -11,6 +11,7 @@ import android.widget.LinearLayout
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.viewModelScope
 import com.alibaba.fastjson.JSONObject
+import com.ysnows.base.base.BApp
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
 import com.ysnows.base.utils.B
@@ -94,8 +95,9 @@ class IntegralDetailsVModel(application: Application) : BViewModel<BRepository>(
         if (TextUtils.isEmpty(shareUrl)) {
             return
         }
+        var shareUrl= BApp.instance()!!.config()!!.searchUrl()+"h5/pages/index/goodsinfo"
 
-        PopuDownWxUtils.show(repository().context!!, shareUrl!!,data.value?.name,data.value?.authName,data.value?.id, ll!!,repository().context!!.contentResolver)
+        PopuDownWxUtils.show(repository().context!!, data.value?.cover,data.value?.name,data.value?.authName,data.value?.id,shareUrl, ll!!,repository().context!!.contentResolver)
 
        // PopuShareWxUtils.show(repository().context!!, shareUrl!!, ll!!,repository().context!!.contentResolver)
     }

+ 22 - 1
app/src/main/java/com/zswc/creativity/vmodel/MyCalendarVModel.kt

@@ -4,6 +4,7 @@ import android.app.Application
 import android.graphics.Color
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.viewModelScope
+import com.alibaba.fastjson.JSONObject
 import com.zswc.creativity.model.CollectionList
 import com.zswc.creativity.utils.net.NetEngine
 import com.ysnows.base.base.BRepository
@@ -24,10 +25,18 @@ open class MyCalendarVModel(application: Application) : BViewModel<BRepository>(
 
     var child_position:Int?=0
 
+    var bean=MutableLiveData<CalendarBean.ListBean>()
 
+    var  z_findx:Int?=null
+    var  z_index:Int?=null
+    var z_id:String?=null
 
-    fun toRemindMe(id:String?,findx:Int,index:Int?){
+    fun toRemindMe(id:String?,findx:Int,index:Int?,item:CalendarBean.ListBean?){
         //提醒我
+        z_id=id
+        z_findx=findx
+        z_index=index
+        bean.value= item
 
 //        viewModelScope.launch {
 //            var it=repository().lreq{repository().lreq { NetEngine.service.setRemind(id) }}
@@ -39,6 +48,18 @@ open class MyCalendarVModel(application: Application) : BViewModel<BRepository>(
 //        }
 
     }
+    fun RemindMe(){
+        var param= JSONObject()
+        param["id"]=z_id
+        viewModelScope.launch {
+            var it=repository().lreq{repository().lreq { NetEngine.service.setRemind(param) }}
+            if(it.ok(true)){
+                //刷新
+                position.value=z_findx
+                child_position=z_index
+            }
+        }
+    }
 
     fun getInfo() {//获取数据
         viewModelScope.launch {

+ 12 - 0
app/src/main/java/com/zswc/creativity/vmodel/OrderListFragmentVModel.kt

@@ -112,6 +112,18 @@ class OrderListFragmentVModel(application: Application) : BRViewModel<BRReposito
 
 
     fun toPay(order_no: String?, pay_type: String?, position: Int?) {
+        if(pay_type.equals("ye")){
+            var param=JSONObject()
+            param["order_no"]=order_no
+            viewModelScope.launch {
+                var it=repository().lreq { NetEngine.service.payOrder(param) }
+                if(it.ok(true)){
+                    index.value = position
+                }
+
+
+            }
+        }
 
     }
 

+ 15 - 0
app/src/main/java/com/zswc/creativity/vmodel/TibOrderVModel.kt

@@ -112,6 +112,21 @@ class TibOrderVModel(application: Application) : BViewModel<BRepository>(applica
     fun  toPay(){
         //todo:去支付
 
+        if(bean.value?.payType.equals("ye")){
+            var param=JSONObject()
+            param["order_no"]=bean.value?.orderNo
+            viewModelScope.launch {
+                var it=repository().lreq { NetEngine.service.payOrder(param) }
+                if(it.ok(true)){
+                    RxBus.get().post(ConfigRx.REFRESH_CANCEL_ORDER,"")
+                    (repository().context as Activity).finish()
+                }
+
+
+            }
+        }
+
+
     }
 
 

+ 80 - 20
app/src/main/java/com/zswc/creativity/vmodel/TibetanDetailsVModel.kt

@@ -5,6 +5,7 @@ import android.app.Application
 import android.content.ClipData
 import android.content.ClipboardManager
 import android.content.Context
+import android.os.Build
 import android.text.TextUtils
 import android.util.JsonToken
 import android.view.View
@@ -12,57 +13,67 @@ import android.widget.LinearLayout
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.viewModelScope
 import com.alibaba.fastjson.JSONObject
+import com.ysnows.base.base.BApp
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
+import com.ysnows.base.utils.B
+import com.ysnows.base.utils.UiSwitch
+import com.zswc.creativity.activity.PaySuessActivity
 import com.zswc.creativity.model.TibetaDetails
-import com.zswc.creativity.utils.PopuBuyUtils
-import com.zswc.creativity.utils.PopuDownWxUtils
-import com.zswc.creativity.utils.PopuShareWxUtils
+import com.zswc.creativity.model.bean.PayTypeBen
+import com.zswc.creativity.utils.*
 import com.zswc.creativity.utils.net.NetEngine
 import kotlinx.coroutines.launch
 
-class TibetanDetailsVModel(application: Application) : BViewModel<BRepository>(application)  {
+class TibetanDetailsVModel(application: Application) : BViewModel<BRepository>(application) {
     var ll: LinearLayout? = null
 
-    var data= MutableLiveData<TibetaDetails>()
+    var data = MutableLiveData<TibetaDetails>()
+
     //倒计时
     var isUp = true
     var time = MutableLiveData<String>()
 
+    var isRemind = MutableLiveData<Boolean>()
+
 
-    fun toCopy(){
+    fun toCopy() {
 
         val cm: ClipboardManager? = repository().context?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager?
-        val mClipData = ClipData.newPlainText("Label","蚂蚁链LASH" )
+        val mClipData = ClipData.newPlainText("Label", "蚂蚁链LASH")
         cm?.setPrimaryClip(mClipData)
         toast("文字已复制到粘贴板")
     }
 
-    fun toClose(){
+    fun toClose() {
 
         (repository().context as Activity).finish()
     }
 
-    fun getInfo(id:String){
+    fun getInfo(id: String) {
 
-        var param= JSONObject()
-        param["id"]=id
+        var param = JSONObject()
+        param["id"] = id
 
         viewModelScope.launch {
-            var it=repository().lreq { NetEngine.service.CollectionDetail(param) }
-            if(it.ok()){
+            var it = repository().lreq { NetEngine.service.CollectionDetail(param) }
+            if (it.ok()) {
+
+                data.value = it.result
+
+                isRemind.value = data.value?.firstCid != 0
 
-                data.value=it.result
 
             }
 
         }
     }
-    var popuBuyUtils:PopuBuyUtils?=null
 
-    fun  toBuy(view :View){//支付弹框
-        popuBuyUtils= PopuBuyUtils
-        popuBuyUtils?.show(repository().context!!, data.value?.cover,data.value?.name,data.value?.price,data.value?.buyCount, view)
+    var popuBuyUtils: PopuBuyUtils? = null
+
+    fun toBuy(view: View) {//支付弹框
+        popuBuyUtils = PopuBuyUtils
+        popuBuyUtils?.show(repository().context!!, data.value?.cover, data.value?.name, data.value?.price, data.value?.buyCount, view)
     }
 
     fun getUrl() {
@@ -87,10 +98,59 @@ class TibetanDetailsVModel(application: Application) : BViewModel<BRepository>(a
             return
         }
 
-        PopuDownWxUtils.show(repository().context!!, shareUrl!!,data.value?.name,data.value?.authName,data.value?.id, ll!!,repository().context!!.contentResolver)
+        var shareUrl = BApp.instance()!!.config()!!.searchUrl() + "h5/pages/index/goodsinfo"
+        PopuDownWxUtils.show(repository().context!!, data.value?.cover, data.value?.name, data.value?.authName, data.value?.id, shareUrl, ll!!, repository().context!!.contentResolver)
+
+        // PopuShareWxUtils.show(repository().context!!, shareUrl!!, ll!!,repository().context!!.contentResolver)
+    }
+
+    //设置购买提醒
+    fun toBuyTime() {
+        var param = JSONObject()
+        param["id"] = data.value?.id
+        viewModelScope.launch {
+            var it = repository().lreq { NetEngine.service.setRemind(param) }
+            if (it.ok(true)) {
+                //刷新
+                isRemind.value = true
+                setTime()
+            }
+
+        }
+
 
-       // PopuShareWxUtils.show(repository().context!!, shareUrl!!, ll!!,repository().context!!.contentResolver)
     }
 
+    fun setTime() {
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+            CalendarReminderUtils.addCalendarEvent(repository().context, data.value?.name, "",
+                    TimeUtils.getHaoTime(data.value?.sellTime), 2)
+        }
+
+    }
+
+    fun toBuy(num: String, pay_type: String) {
+        var param = JSONObject()
+        param["id"] = data.value?.id
+        param["num"] = num
+        param["pay_type"] = pay_type
+
+
+        viewModelScope.launch {
+            var it = repository().lreq { NetEngine.service.setCreateOrder(param) }
+            if (it.ok(true)) {
+                popuBuyUtils?.setDisMiss()
+
+//                UiSwitch.bundle(
+//                       repository().context, PaySuessActivity::class.java,
+//                        B().putString("orderid", orderid)
+//                                .putString("type", "2")
+//                                .putString("price", price.toString())
+//                                .ok())
+
+            }
+        }
+    }
 
 }

二進制
app/src/main/res/drawable-xxhdpi/ic_msg_one.webp


二進制
app/src/main/res/drawable-xxhdpi/ic_my_account.webp


二進制
app/src/main/res/drawable-xxhdpi/img_login_but.webp


二進制
app/src/main/res/drawable-xxhdpi/login_line.webp


二進制
app/src/main/res/drawable-xxhdpi/login_logo.webp


+ 0 - 1
app/src/main/res/layout/activity_all_collect_details.xml

@@ -342,7 +342,6 @@
                         </RelativeLayout>
 
 
-
                         <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"

+ 2 - 1
app/src/main/res/layout/activity_article_detail.xml

@@ -13,7 +13,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="#FFFFFF"
+        android:background="@color/color_bg"
         xmlns:tools="http://schemas.android.com/tools"
         android:orientation="vertical">
 
@@ -60,6 +60,7 @@
         </LinearLayout>
 
 
+
         <WebView
             android:id="@+id/web_content"
             android:layout_width="match_parent"

+ 0 - 84
app/src/main/res/layout/activity_error.xml

@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-   >
-
-    <data >
-
-        <import type="com.zswc.creativity.BuildConfig" />
-
-    </data >
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:gravity="center_horizontal"
-        android:orientation="vertical"
-        android:layout_height="match_parent" >
-
-        <ScrollView
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"
-            android:fillViewport="true">
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center"
-                android:orientation="vertical">
-
-                <ImageView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:contentDescription="@null"
-                    android:src="@drawable/customactivityoncrash_error_image" />
-
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="20dp"
-                    android:text="错误信息"
-                    android:textStyle="bold" />
-
-
-                <TextView
-                    android:id="@+id/error_details"
-                    android:layout_width="wrap_content"
-                    android:layout_marginStart="10dp"
-                    android:layout_marginEnd="10dp"
-                    android:textIsSelectable="true"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="6dp"
-                    android:text="未知异常" />
-            </LinearLayout>
-        </ScrollView>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:orientation="horizontal"
-            android:layout_marginTop="10dp"
-            android:layout_marginBottom="10dp"
-            android:gravity="center_horizontal"
-            android:layout_height="wrap_content">
-
-
-            <Button
-                android:id="@+id/restart_copy"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginEnd="20dp"
-                android:text="复制错误信息" />
-
-            <Button
-                android:id="@+id/restart_button"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="关闭程序" />
-
-        </LinearLayout>
-
-
-
-
-    </LinearLayout >
-</layout >

+ 106 - 48
app/src/main/res/layout/activity_tibetan_details.xml

@@ -25,7 +25,7 @@
             android:layout_height="0dp"
             android:layout_weight="1">
 
-            <com.zswc.creativity.view.MyScrollView
+            <androidx.core.widget.NestedScrollView
                 android:id="@+id/scroll"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
@@ -192,10 +192,10 @@
                                 android:textSize="12sp" />
 
                             <ImageView
-                                android:onClick="@{v->vm.toCopy()}"
                                 android:layout_width="17dp"
                                 android:layout_height="17dp"
                                 android:layout_marginEnd="14dp"
+                                android:onClick="@{v->vm.toCopy()}"
                                 android:src="@drawable/ct_copy" />
 
 
@@ -227,11 +227,11 @@
                         </LinearLayout>
 
 
-                        <LinearLayout
+                        <RelativeLayout
                             android:layout_width="match_parent"
-                            android:orientation="vertical"
+                            android:layout_height="wrap_content"
                             android:layout_marginTop="14dp"
-                            android:layout_height="wrap_content">
+                            >
 
 
                             <androidx.recyclerview.widget.RecyclerView
@@ -241,7 +241,7 @@
                                 app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                                 tools:listitem="@layout/item_images" />
 
-                        </LinearLayout>
+                        </RelativeLayout>
 
 
                         <LinearLayout
@@ -451,8 +451,9 @@
                     <LinearLayout
                         android:id="@+id/ll_show_one"
                         android:layout_width="match_parent"
-                        android:orientation="vertical"
-                        android:layout_height="wrap_content">
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
                         <LinearLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
@@ -465,6 +466,7 @@
                                 android:visibility="gone" />
 
                         </LinearLayout>
+
                         <LinearLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
@@ -497,19 +499,18 @@
                     </LinearLayout>
 
 
-
                 </FrameLayout>
 
-            </com.zswc.creativity.view.MyScrollView>
+            </androidx.core.widget.NestedScrollView>
             <!--             滑动时候显示的   -->
 
 
             <LinearLayout
                 android:id="@+id/ll_show_two"
                 android:layout_width="match_parent"
+                android:layout_height="wrap_content"
                 android:orientation="vertical"
-                android:visibility="gone"
-                android:layout_height="wrap_content">
+                android:visibility="gone">
 
                 <LinearLayout
                     android:layout_width="match_parent"
@@ -529,8 +530,7 @@
                     android:layout_height="wrap_content"
                     android:orientation="horizontal"
                     android:paddingTop="10dp"
-                    android:paddingBottom="10dp"
-                   >
+                    android:paddingBottom="10dp">
 
                     <ImageView
                         android:layout_width="38dp"
@@ -562,7 +562,6 @@
             </LinearLayout>
 
 
-
         </FrameLayout>
 
 
@@ -627,50 +626,109 @@
 
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="48dp"
-            android:layout_marginBottom="10dp"
-            android:orientation="horizontal"
-            android:visibility="@{vm.data.state==2?View.VISIBLE:View.GONE}"
-            tools:visibility="visible">
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:visibility="@{vm.data.state==2?View.VISIBLE:View.GONE}">
 
-            <TextView
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_vertical"
-                android:layout_marginStart="16dp"
-                android:layout_weight="1"
-                android:text="@{`¥`+vm.data.price}"
-                android:textColor="@color/text_title"
-                android:textSize="30sp" />
 
-            <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
-                android:layout_width="180dp"
-                android:layout_height="40dp"
-                android:layout_marginTop="8dp"
-                android:layout_marginEnd="25dp"
-                android:gravity="center"
-                android:orientation="vertical"
-                app:qmui_backgroundColor="#38D3D3"
-                app:qmui_borderColor="@color/translucent"
-                app:qmui_radius="4dp">
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="48dp"
+                android:layout_marginBottom="10dp"
+                android:orientation="horizontal"
+                android:visibility="@{vm.isRemind?View.GONE:View.VISIBLE}"
+                tools:visibility="visible">
 
                 <TextView
-                    android:layout_width="wrap_content"
+                    android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:text="设置购买提醒"
-                    android:textColor="@color/white"
-                    android:textSize="16sp" />
+                    android:layout_gravity="center_vertical"
+                    android:layout_marginStart="16dp"
+                    android:layout_weight="1"
+                    android:text="@{`¥`+vm.data.price}"
+                    android:textColor="@color/text_title"
+                    android:textSize="30sp" />
+
+                <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
+                    android:id="@+id/ll_set_time"
+                    android:layout_width="180dp"
+                    android:layout_height="40dp"
+                    android:layout_marginTop="8dp"
+                    android:layout_marginEnd="25dp"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    app:qmui_backgroundColor="#38D3D3"
+                    app:qmui_borderColor="@color/translucent"
+                    app:qmui_radius="4dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="设置购买提醒"
+                        android:textColor="@color/white"
+                        android:textSize="16sp" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@{vm.data.sellTime}"
+                        android:textColor="@color/white"
+                        android:textSize="12sp" />
+
+
+                </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
+
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="48dp"
+                android:layout_marginBottom="10dp"
+                android:orientation="horizontal"
+                android:visibility="@{vm.isRemind?View.VISIBLE:View.GONE}"
+                tools:visibility="visible">
 
                 <TextView
-                    android:layout_width="wrap_content"
+                    android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:text="12:13:18"
-                    android:textColor="@color/white"
-                    android:textSize="12sp" />
+                    android:layout_gravity="center_vertical"
+                    android:layout_marginStart="16dp"
+                    android:layout_weight="1"
+                    android:text="@{`¥`+vm.data.price}"
+                    android:textColor="@color/text_title"
+                    android:textSize="30sp" />
+
+                <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
+                    android:layout_width="180dp"
+                    android:layout_height="40dp"
+                    android:layout_marginTop="8dp"
+                    android:layout_marginEnd="25dp"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    app:qmui_backgroundColor="#C4C1C4"
+                    app:qmui_borderColor="@color/translucent"
+                    app:qmui_radius="4dp">
 
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="已设置购买提醒"
+                        android:textColor="@color/white"
+                        android:textSize="16sp" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@{vm.data.sellTime}"
+                        android:textColor="@color/white"
+                        android:textSize="12sp" />
 
-            </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
 
+                </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
+
+
+            </LinearLayout>
 
         </LinearLayout>
 

+ 1 - 1
app/src/main/res/layout/item_calend.xml

@@ -137,7 +137,7 @@
 
                 <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
                     android:layout_width="60dp"
-                    android:onClick="@{v->vm.toRemindMe(item.id,fposition,position)}"
+                    android:onClick="@{v->vm.toRemindMe(item.id,fposition,position,item)}"
                     android:text="提醒我"
                     android:visibility="@{item.is_remind?View.GONE:View.VISIBLE}"
                     android:textColor="@color/white"

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

@@ -127,7 +127,7 @@
                             android:src="@drawable/bg_need_error"
                             app:qmui_border_color="@color/translucent"
                             app:qmui_is_circle="true"
-                            app:url="@{item.auth_img}" />
+                            app:url="@{item.authImg}" />
 
                         <TextView
                             android:layout_width="0dp"
@@ -135,7 +135,7 @@
                             android:layout_gravity="center_vertical"
                             android:layout_marginStart="6dp"
                             android:layout_weight="1"
-                            android:text="@{item.auth_name}"
+                            android:text="@{item.authName}"
                             android:textColor="#D2D2D2"
                             android:textSize="12sp" />
 

+ 1 - 1
app/src/main/res/layout/popu_open_no.xml

@@ -60,7 +60,7 @@
                 android:background="@drawable/bg_logo_but"
                 android:gravity="center"
                 android:text="我知道了"
-                android:textColor="@color/text_title"
+                android:textColor="@color/white"
                 android:textSize="20sp" />
 
 

+ 1 - 1
app/src/main/res/layout/popu_open_tips.xml

@@ -60,7 +60,7 @@
                 android:background="@drawable/bg_logo_but"
                 android:gravity="center"
                 android:text="开心收下"
-                android:textColor="@color/text_title"
+                android:textColor="@color/white"
                 android:textSize="20sp" />