diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt index 7adc10e..e2901d5 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/CloudActivity.kt @@ -8,6 +8,7 @@ import com.yinuo.safetywatcher.databinding.ActivityCloudBinding import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity import com.yinuo.safetywatcher.watcher.db.DBUtils import com.yinuo.safetywatcher.watcher.net.api.UploadFileApi +import com.yinuo.safetywatcher.watcher.ui.view.SyncDialog import com.yinuo.safetywatcher.xls.utils.PathUtils import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.GlobalScope @@ -22,6 +23,10 @@ class CloudActivity : NoOptionsActivity() { UploadFileApi() } + private val syncDialog by lazy { + SyncDialog() + } + override fun getTopBarTitle(): String? { return getString(R.string.cloud) } @@ -33,17 +38,24 @@ class CloudActivity : NoOptionsActivity() { override fun initView() { mBinding.apply { syncSensor.setOnClickListener { + showDialog() uploadSensorData() } syncVedio.setOnClickListener { + showDialog() uploadVideo() } syncOnce.setOnClickListener { + showDialog() uploadOnece() } } } + private fun showDialog() { + syncDialog.showNow(supportFragmentManager, "sync") + } + private fun uploadOnece() { uploadSensorData() uploadVideo() diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/CommonToast.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/CommonToast.kt new file mode 100644 index 0000000..2778a88 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/CommonToast.kt @@ -0,0 +1,32 @@ +package com.yinuo.safetywatcher.watcher.ui.view + +import android.content.Context +import android.view.Gravity +import android.view.LayoutInflater +import android.widget.Toast +import com.yinuo.safetywatcher.databinding.LayoutCommonToastBinding + +open class CommonToast(context: Context?) : Toast(context) { + + var mBinding: LayoutCommonToastBinding? = null + + init { + mBinding = LayoutCommonToastBinding.inflate(LayoutInflater.from(context), null, false) + view = mBinding!!.root + } + + override fun setText(text: CharSequence) { + mBinding!!.tv.text = text + } + + open fun makeCommonText( + context: Context, + text: CharSequence, duration: Int + ): Toast { + val result = CommonToast(context) + result.setText(text) + result.setGravity(Gravity.CENTER, 0, 0) + result.duration = duration + return result + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/SyncDialog.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/SyncDialog.kt new file mode 100644 index 0000000..ca35ad3 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/SyncDialog.kt @@ -0,0 +1,41 @@ +package com.yinuo.safetywatcher.watcher.ui.view + +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.DialogFragment +import com.yinuo.safetywatcher.databinding.LayoutSyncDialogBinding + +class SyncDialog : DialogFragment() { + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + val dialogBinding = LayoutSyncDialogBinding.inflate(inflater, container, false) + return dialogBinding.root + } + + @Deprecated("Deprecated in Java") + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + initWindow() + } + + private fun initWindow() { + //初始化window相关表现 + val window = dialog?.window + //设备背景为透明(默认白色) + window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + //设置window宽高(单位px) + window?.attributes?.width = 320 + window?.attributes?.height = 320 + //设置window位置 + window?.attributes?.gravity = Gravity.CENTER//居中 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/Exts.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/Exts.kt index 5898f3e..ba0fef4 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/Exts.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/Exts.kt @@ -2,7 +2,8 @@ package com.yinuo.safetywatcher.watcher.utils import android.content.Context import android.widget.Toast +import com.yinuo.safetywatcher.watcher.ui.view.CommonToast fun Context.showToast(msg: String) { - Toast.makeText(this, msg, Toast.LENGTH_SHORT).show() + CommonToast(this).makeCommonText(this, msg, Toast.LENGTH_SHORT).show() } \ No newline at end of file diff --git a/app/src/main/res/layout/layout_common_toast.xml b/app/src/main/res/layout/layout_common_toast.xml new file mode 100644 index 0000000..9ae95b5 --- /dev/null +++ b/app/src/main/res/layout/layout_common_toast.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_sync_dialog.xml b/app/src/main/res/layout/layout_sync_dialog.xml new file mode 100644 index 0000000..214e880 --- /dev/null +++ b/app/src/main/res/layout/layout_sync_dialog.xml @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_sync.png b/app/src/main/res/mipmap-hdpi/ic_sync.png new file mode 100644 index 0000000..ef0be5a Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_sync.png differ diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 2133bf9..3419dda 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -57,4 +57,5 @@ 6px 28px 580px + 320px \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5d6ce70..dcfc097 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,4 +53,5 @@ 开始时间和结束时间间隔不能超过24小时!请调整 开始时间必须小于结束时间!请调整 请先插入U盘! + 数据同步中