diff --git a/.idea/.name b/.idea/.name
index b2bb3a4..b24dfeb 100644
--- a/.idea/.name
+++ b/.idea/.name
@@ -1 +1 @@
-WebEBook
\ No newline at end of file
+WebScreen
\ No newline at end of file
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..59c87ac
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index ef4ea95..73e1b9d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,6 +5,8 @@
diff --git a/app/build.gradle b/app/build.gradle
index 9649139..53c9321 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
// minSdkVersion 26
minSdkVersion 21
targetSdkVersion 25
- versionCode 3
- versionName "2.0.1"
+ versionCode 5
+ versionName "2.0.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// ndk {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 062ea7b..81e03ac 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,7 +33,7 @@
android:name="com.yzx.escreen.MainActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask"
- android:windowSoftInputMode="adjustResize|stateHidden"
+ android:windowSoftInputMode="adjustPan|stateHidden"
android:screenOrientation="landscape">
diff --git a/app/src/main/java/com/yzx/escreen/App.kt b/app/src/main/java/com/yzx/escreen/App.kt
index 88094bc..6734034 100644
--- a/app/src/main/java/com/yzx/escreen/App.kt
+++ b/app/src/main/java/com/yzx/escreen/App.kt
@@ -4,10 +4,12 @@ import android.app.Application
import com.blankj.utilcode.util.Utils
import com.lzy.okgo.OkGo
import com.lzy.okgo.model.HttpHeaders
+import com.lzy.okgo.model.HttpParams
import com.tencent.smtt.export.external.TbsCoreSettings
import com.tencent.smtt.sdk.QbSdk
import com.umeng.analytics.MobclickAgent
import com.umeng.commonsdk.UMConfigure
+import com.yzx.escreen.config.Config
import com.yzx.escreen.model.User
@@ -29,8 +31,11 @@ class App : Application() {
val user = User.getUser()
headers.put("phone",user.phone)
headers.put("token",user.token)
+ val params = HttpParams()
+ params.put("app_id",Config.APP_ID)
OkGo.getInstance()
.addCommonHeaders(headers)
+ .addCommonParams(params)
.init(this)
diff --git a/app/src/main/java/com/yzx/escreen/MainActivity.kt b/app/src/main/java/com/yzx/escreen/MainActivity.kt
index 5ba95de..24a2a96 100644
--- a/app/src/main/java/com/yzx/escreen/MainActivity.kt
+++ b/app/src/main/java/com/yzx/escreen/MainActivity.kt
@@ -1,40 +1,76 @@
package com.yzx.escreen
import android.annotation.SuppressLint
+import android.app.Dialog
+import android.content.Context
import android.content.Intent
+import android.text.InputType
+import android.util.Log
import android.view.KeyEvent
+import android.view.View
+import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.widget.ContentLoadingProgressBar
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
+import com.allenliu.versionchecklib.v2.AllenVersionChecker
+import com.allenliu.versionchecklib.v2.builder.UIData
+import com.allenliu.versionchecklib.v2.callback.CustomDownloadingDialogListener
+import com.blankj.utilcode.constant.PermissionConstants
+import com.blankj.utilcode.util.*
import com.flyco.tablayout.listener.CustomTabEntity
import com.flyco.tablayout.listener.OnTabSelectListener
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.lzy.okgo.OkGo
+import com.lzy.okgo.callback.StringCallback
+import com.lzy.okgo.model.Response
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog
import com.yzx.escreen.activity.WebActivity
import com.yzx.escreen.activity.base.BaseActivity
import com.yzx.escreen.config.Config
import com.yzx.escreen.fragment.HomeFragment
import com.yzx.escreen.fragment.MyFragment
+import com.yzx.escreen.model.BaseBean
import com.yzx.escreen.model.TabEntity
import com.yzx.escreen.model.User
+import com.yzx.escreen.model.Version
import com.yzx.escreen.presenter.base.BasePresenter
+import com.yzx.escreen.utils.hideNavigationBar
+import com.yzx.escreen.widget.BaseDialog
import kotlinx.android.synthetic.main.activity_main.*
+import org.jetbrains.anko.find
+import org.jetbrains.anko.toast
+import java.util.*
+import kotlin.system.exitProcess
/**
* Yun.Lei
* 2020年5月6日14:49:10
*/
-class MainActivity : BaseActivity>() {
+class MainActivity : BaseActivity>(), NetworkUtils.OnNetworkStatusChangedListener {
override val inflateId: Int
get() = R.layout.activity_main
-
+ var netLoadingDialog:QMUIDialog? = null
+ var netErrorDialog:QMUIDialog? = null
+ private val netLoadingRun = Runnable {
+ showNetworkError()
+ }
override fun initView() {
- if (!User.isLogin()) {
- WebActivity.active(this, "${Config.OA_URL}/login")
- finish()
+
+ if(NetworkUtils.isConnected()){
+ if (!User.isLogin()) {
+ WebActivity.active(this, "${Config.OA_URL}/login")
+ finish()
+ }
+ checkVersion()
+ }else{
+ showNetworkLoading() //显示网络检查中
}
val tabData = arrayListOf()
tabData.add(TabEntity("首页", R.mipmap.home_select, R.mipmap.home_unselect))
@@ -51,6 +87,7 @@ class MainActivity : BaseActivity>() {
tabLayout.setOnTabSelectListener(object : OnTabSelectListener {
override fun onTabSelect(position: Int) {
viewPager2.currentItem = position
+ KeyboardUtils.hideSoftInput( viewPager2)
}
override fun onTabReselect(position: Int) {
@@ -60,10 +97,55 @@ class MainActivity : BaseActivity>() {
}
override fun initData() {
+ NetworkUtils.registerNetworkStatusChangedListener(this)
+ PermissionUtils.permissionGroup(PermissionConstants.STORAGE)
+ .rationale { activity, shouldRequest ->
+ }.callback(object : PermissionUtils.FullCallback {
+ override fun onGranted(granted: MutableList) {
+ LogUtils.d("权限通过", granted)
+ }
+
+ override fun onDenied(
+ deniedForever: MutableList,
+ denied: MutableList
+ ) {
+ LogUtils.d("权限拒绝", denied)
+ }
+
+ }).theme { activity -> ScreenUtils.setFullScreen(activity) }
+ .request()
}
+ private fun showNetworkError(){
+ val builder = QMUIDialog.MessageDialogBuilder(this)
+
+ builder.setMessage("你还没有连接网络,请先连接网络!")
+ .setTitle("温馨提示")
+ .addAction("去设置"
+ ) { dialog, index ->
+ NetworkUtils.openWirelessSettings()
+ }
+ .setCancelable(false)
+ .setCanceledOnTouchOutside(false)
+ netErrorDialog = builder.show()
+ netErrorDialog?.hideNavigationBar()
+ }
+
+ private fun showNetworkLoading(){
+ val builder = QMUIDialog.MessageDialogBuilder(this)
+
+ builder.setMessage("网络检查中,请稍后...")
+ .setTitle("温馨提示")
+ .setCancelable(false)
+ .setCanceledOnTouchOutside(false)
+ netLoadingDialog = builder.show()
+ netLoadingDialog?.hideNavigationBar()
+
+ viewPager2.postDelayed(netLoadingRun,5000)
+ }
+
override fun initPresenter(): BasePresenter<*>? {
return null
}
@@ -83,6 +165,129 @@ class MainActivity : BaseActivity>() {
}
return super.onKeyUp(keyCode, event)
}
+
+ override fun onDisconnected() {
+ showNetworkError()
+ }
+
+ override fun onConnected(networkType: NetworkUtils.NetworkType?) {
+ netLoadingDialog?.apply {
+ if(isShowing){
+ dismiss()
+ }
+ }
+ netErrorDialog?.apply {
+ if(isShowing){
+ dismiss()
+ }
+ }
+ if (!User.isLogin()) {
+ WebActivity.active(this, "${Config.OA_URL}/login?logout=1")
+ finish()
+ }
+ checkVersion()
+ }
+
+ private fun checkVersion(userCheck: Boolean = false): Unit {
+ val BASE_URL = Config.BASE_URL
+ OkGo.post("$BASE_URL/parent/common/getInkBottleMaxVersion")
+ .tag(this)
+ .params("app_id",Config.APP_ID)
+ .execute(object : StringCallback() {
+
+ override fun onSuccess(response: Response) {
+ val json = response.body()
+ Log.d("checkVersion", "onSuccess: ${json}")
+ val resultType = object : TypeToken>() {}.type
+ val gson = Gson()
+ val res = gson.fromJson>(json, resultType)
+ if (res.code == 0) {
+ val appVersion = AppUtils.getAppVersionName()
+ val appVersionCode = AppUtils.getAppVersionCode()
+ val versionCode = res?.data?.version_code ?: 0
+ val curr = Date().time
+ val lastTipTime = SPUtils.getInstance()
+ .getLong("last_tip_time${res.data.version_code}", 0)
+ if (versionCode > appVersionCode) { //有新版本
+ when {
+ res.data.type == 1 -> { //强制升级
+ updateApp(res.data)
+ }
+ curr - lastTipTime > 24 * 60 * 60 * 1000 -> { //非强制一天以内提示一次
+ updateApp(res.data)
+ }
+ userCheck -> { //
+ updateApp(res.data)
+ }
+ }
+
+ } else {
+ if (userCheck) {
+ toast("已经是最新版本了!")
+ }
+ }
+ }
+ }
+
+ })
+
+
+ }
+
+
+ private fun updateApp(version: Version) {
+ AllenVersionChecker
+ .getInstance()
+ .downloadOnly(
+ UIData.create()
+ .setTitle("检测到新版本")
+ .setContent(version.explain)
+ .setDownloadUrl(version.app_src)
+ )
+ .setCustomVersionDialogListener { context, versionBundle ->
+ val dialog = BaseDialog(context, R.style.BaseDialog, R.layout.version_dialog)
+ val title = dialog.find(R.id.tv_title)
+ title.text = "检测到新版本"
+ val content = dialog.find(R.id.tv_msg)
+ content.text = version.explain
+ val cancelBtn = dialog.find(R.id.cancel_btn)
+ if (version.type == 1) {
+ cancelBtn.visibility = View.GONE
+ }
+ dialog.hideNavigationBar()
+ return@setCustomVersionDialogListener dialog
+ }
+ .setOnCancelListener {
+ SPUtils.getInstance().put("last_tip_time${version.version_code}", Date().time)
+ }
+ .setCustomDownloadingDialogListener(object : CustomDownloadingDialogListener {
+ @SuppressLint("SetTextI18n")
+ override fun updateUI(dialog: Dialog?, progress: Int, versionBundle: UIData?) {
+ val tvProgress: TextView = dialog!!.findViewById(R.id.tv_progress)
+ val progressBar: ContentLoadingProgressBar = dialog.findViewById(R.id.pb)
+ progressBar.progress = progress
+ tvProgress.text = "$progress%"
+
+ Log.d("checkVersion", "onSuccess: ${progress}")
+ }
+
+ override fun getCustomDownloadingDialog(
+ context: Context?,
+ progress: Int,
+ versionBundle: UIData?
+ ): Dialog {
+ val downDialog = BaseDialog(
+ context!!,
+ R.style.BaseDialog,
+ R.layout.download_dialog
+ )
+ downDialog.hideNavigationBar()
+ return downDialog
+ }
+
+ })
+ .executeMission(this)
+ }
}
class HomePagerAdapter(act: AppCompatActivity) : FragmentStateAdapter(act) {
diff --git a/app/src/main/java/com/yzx/escreen/activity/base/BaseActivity.kt b/app/src/main/java/com/yzx/escreen/activity/base/BaseActivity.kt
index 521cc31..a1d6184 100644
--- a/app/src/main/java/com/yzx/escreen/activity/base/BaseActivity.kt
+++ b/app/src/main/java/com/yzx/escreen/activity/base/BaseActivity.kt
@@ -43,11 +43,12 @@ abstract class BaseActivity> : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ hideBottomUIMenu()
setContentView(inflateId)
initView()
initData()
setStatusBar()
- hideBottomUIMenu()
+
}
open fun setStatusBar() {
@@ -66,6 +67,15 @@ abstract class BaseActivity> : AppCompatActivity() {
params.systemUiVisibility =
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE
window.attributes = params
+
+// window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+// window.decorView.setOnSystemUiVisibilityChangeListener {
+// val uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
+// View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
+// View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
+// View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+// window.decorView.systemUiVisibility = uiOptions
+// }
}
diff --git a/app/src/main/java/com/yzx/escreen/config/Config.kt b/app/src/main/java/com/yzx/escreen/config/Config.kt
index 9d6b5c3..495ec40 100644
--- a/app/src/main/java/com/yzx/escreen/config/Config.kt
+++ b/app/src/main/java/com/yzx/escreen/config/Config.kt
@@ -7,4 +7,5 @@ object Config {
var APP_NAME = BuildConfig.APP_NAME
var M_URL = BuildConfig.M_URL
var OA_URL = BuildConfig.OA_URL
+ val APP_ID = 602
}
\ No newline at end of file
diff --git a/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt b/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt
index ec36eb7..78767c4 100644
--- a/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt
+++ b/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt
@@ -5,12 +5,17 @@ import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Handler
import android.os.Looper
+import android.text.Editable
+import android.text.TextWatcher
import android.view.KeyEvent
import android.view.View
import android.widget.ImageView
import android.widget.TextView
+import androidx.core.widget.addTextChangedListener
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.blankj.utilcode.util.KeyboardUtils
+import com.blankj.utilcode.util.NetworkUtils
import com.blankj.utilcode.util.SPUtils
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
import com.yzx.escreen.R
@@ -23,16 +28,21 @@ import com.yzx.escreen.adapter.HomeListAdapter
import com.yzx.escreen.model.LeaveID
import com.yzx.escreen.presenter.HomePresenter
import com.yzx.escreen.presenter.HomeView
+import com.yzx.escreen.utils.hideNavigationBar
import com.yzx.escreen.utils.setSrc
import com.yzx.escreen.utils.toTime
import com.yzx.escreen.widget.BaseDialog
+import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_home.*
+import kotlinx.android.synthetic.main.layout_loading.*
+import kotlinx.android.synthetic.main.layout_loading.view.*
import org.jetbrains.anko.find
import org.jetbrains.anko.support.v4.act
import org.jetbrains.anko.support.v4.ctx
import org.jetbrains.anko.textColor
-class HomeFragment : BaseFragment(), HomeView {
+class HomeFragment : BaseFragment(), HomeView,
+ NetworkUtils.OnNetworkStatusChangedListener {
companion object {
@@ -63,15 +73,19 @@ class HomeFragment : BaseFragment(), HomeView {
mHandler.postDelayed(this, 2000)
}
}
+ private val refreshRun = Runnable {
+ refreshData()
+ }
override val inflateId: Int
get() = R.layout.fragment_home
override fun initView() {
+ NetworkUtils.registerNetworkStatusChangedListener(this)
recyclerView.layoutManager =
LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
recyclerView.adapter = mAdapter
- mAdapter.setEmptyView(R.layout.layout_empty)
+
preTxtBtn.setOnClickListener { pre() }
nextTxtBtn.setOnClickListener { next() }
allBtn.setOnClickListener { changeStatus(0) }
@@ -94,6 +108,7 @@ class HomeFragment : BaseFragment(), HomeView {
clearBtn.setOnClickListener {
keyword = ""
keywordInput.setText("")
+ KeyboardUtils.hideSoftInput(keywordInput)
initData()
}
@@ -120,6 +135,27 @@ class HomeFragment : BaseFragment(), HomeView {
switchBtnTxt.setOnClickListener {
switchBtn.isChecked = !switchBtn.isChecked
}
+ keywordInput.addTextChangedListener(object : TextWatcher {
+ override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
+
+ }
+
+ override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
+ if (s != null && s.isNotEmpty()) {
+ clearBtn.visibility = View.VISIBLE
+ } else {
+ clearBtn.visibility = View.INVISIBLE
+ }
+ }
+
+ override fun afterTextChanged(s: Editable?) {
+
+ }
+
+ })
+ filterLayout.setOnClickListener {
+ KeyboardUtils.hideSoftInput( keywordInput)
+ }
}
private fun changeSwitchBtnTxt(isChecked: Boolean) {
@@ -178,6 +214,7 @@ class HomeFragment : BaseFragment(), HomeView {
}
}
dialog.show()
+ dialog.hideNavigationBar()
dialog.setLeaveId(detail.id)
mShowDialogList.add(dialog)
}
@@ -197,6 +234,7 @@ class HomeFragment : BaseFragment(), HomeView {
}
private fun changeStatus(status: Int) {
+ KeyboardUtils.hideSoftInput( keywordInput)
if (isLoading) {
return
}
@@ -212,8 +250,41 @@ class HomeFragment : BaseFragment(), HomeView {
override fun initData() {
mPager.page_no = 1
- isLoading = true
- mPresenter?.getLeaveList(mPager.page_no, keyword, status)
+ if (NetworkUtils.isConnected()) {
+ showEmpty(1)
+ isLoading = true
+ mPresenter?.getLeaveList(mPager.page_no, keyword, status)
+ } else {
+ showEmpty(2)
+ }
+
+ }
+
+ /**
+ * type 1 loading 2 neterror 3 empty
+ */
+ private fun showEmpty(type: Int) {
+ when (type) {
+ 1 -> {
+ mAdapter.setEmptyView(R.layout.layout_loading)
+ mAdapter.emptyLayout?.apply {
+ this.QMUIEmptyView.setLoadingShowing(true)
+ this.QMUIEmptyView.setTitleText("数据加载中")
+ }
+ }
+ 2 -> {
+ mAdapter.setEmptyView(R.layout.layout_loading)
+ mAdapter.emptyLayout?.apply {
+ this.QMUIEmptyView.show(false, null, "网络连接异常,请检查", "去设置") {
+ NetworkUtils.openWirelessSettings()
+ }
+ }
+ }
+ 3 -> {
+ mAdapter.setEmptyView(R.layout.layout_empty)
+ }
+ }
+
}
private fun refreshData() {
@@ -225,6 +296,7 @@ class HomeFragment : BaseFragment(), HomeView {
}
private fun pre() {
+ KeyboardUtils.hideSoftInput( keywordInput)
if (isLoading) {
return
}
@@ -236,6 +308,7 @@ class HomeFragment : BaseFragment(), HomeView {
}
private fun next() {
+ KeyboardUtils.hideSoftInput( keywordInput)
if (isLoading) {
return
}
@@ -250,29 +323,37 @@ class HomeFragment : BaseFragment(), HomeView {
@SuppressLint("SetTextI18n")
override fun onLeaveListSuccess(list: MutableList, pager: Pager) {
- mAdapter.setList(list)
- mPager = pager
- pageTv.text = "${pager.page_no} / ${pager.total_pages}"
- totalTv.text = "共${pager.total_count}条"
-
- val disabledColor = Color.parseColor("#666666")
- val color = Color.parseColor("#3ca0e9")
- if (pager.page_no <= 1) {
- preTxtBtn.textColor = disabledColor
- } else {
- preTxtBtn.textColor = color
- }
+ pageTv?.apply {
+ mAdapter.setList(list)
+ mPager = pager
+ pageTv.text = "${pager.page_no} / ${pager.total_pages}"
+ totalTv.text = "共${pager.total_count}条"
+
+ val disabledColor = Color.parseColor("#666666")
+ val color = Color.parseColor("#3ca0e9")
+ if (pager.page_no <= 1) {
+ preTxtBtn.textColor = disabledColor
+ } else {
+ preTxtBtn.textColor = color
+ }
- if (pager.page_no >= pager.total_pages) {
- nextTxtBtn.textColor = disabledColor
- } else {
- nextTxtBtn.textColor = color
+ if (pager.page_no >= pager.total_pages) {
+ nextTxtBtn.textColor = disabledColor
+ } else {
+ nextTxtBtn.textColor = color
+ }
+ isLoading = false
+ showEmpty(3)
+ pageTv.postDelayed({
+ refreshData()
+ }, 30 * 1000)
}
- isLoading = false
+ }
- pageTv.postDelayed({
- refreshData()
- }, 30 * 1000)
+ override fun onStop() {
+ super.onStop()
+ pageTv.removeCallbacks(refreshRun)
+ mHandler.removeCallbacks(runnable)
}
override fun onLeaveListError(error: String) {
@@ -280,23 +361,25 @@ class HomeFragment : BaseFragment(), HomeView {
}
override fun onLeaveDetailSuccess(detail: StuLeave) {
- val item = mShowList.find { it.id == detail.id }
- if (item != null) {
- //替换新的数据
- val index = mShowList.indexOf(item)
- mShowList[index] = detail
-
- //移除原本的dialog
- val dialogIndex = mShowDialogList.indexOfFirst { it.getLeaveId() == item.id }
- if (dialogIndex > -1) {
- mShowDialogList[dialogIndex].hide()
- mShowDialogList.removeAt(dialogIndex)
- }
+ pageTv?.apply {
+ val item = mShowList.find { it.id == detail.id }
+ if (item != null) {
+ //替换新的数据
+ val index = mShowList.indexOf(item)
+ mShowList[index] = detail
+
+ //移除原本的dialog
+ val dialogIndex = mShowDialogList.indexOfFirst { it.getLeaveId() == item.id }
+ if (dialogIndex > -1) {
+ mShowDialogList[dialogIndex].hide()
+ mShowDialogList.removeAt(dialogIndex)
+ }
- } else {
- mShowList.add(detail)
+ } else {
+ mShowList.add(detail)
+ }
+ showLeaveDialog(detail)
}
- showLeaveDialog(detail)
}
override fun onLeaveDetailError(error: String) {
@@ -308,4 +391,12 @@ class HomeFragment : BaseFragment(), HomeView {
mPresenter?.getDetail(leaveID.id)
}
}
+
+ override fun onDisconnected() {
+
+ }
+
+ override fun onConnected(networkType: NetworkUtils.NetworkType?) {
+ refreshData()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/yzx/escreen/fragment/MyFragment.kt b/app/src/main/java/com/yzx/escreen/fragment/MyFragment.kt
index e4e3ecb..825dbcb 100644
--- a/app/src/main/java/com/yzx/escreen/fragment/MyFragment.kt
+++ b/app/src/main/java/com/yzx/escreen/fragment/MyFragment.kt
@@ -1,6 +1,7 @@
package com.yzx.escreen.fragment
import android.text.InputType
+import com.blankj.utilcode.util.KeyboardUtils
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.blankj.utilcode.util.ToastUtils
@@ -15,6 +16,7 @@ import com.yzx.escreen.model.TeacherInfo
import com.yzx.escreen.model.User
import com.yzx.escreen.presenter.MyPresenter
import com.yzx.escreen.presenter.MyView
+import com.yzx.escreen.utils.hideNavigationBar
import kotlinx.android.synthetic.main.activity_home.*
import kotlinx.android.synthetic.main.fragment_my.*
import org.jetbrains.anko.startActivity
@@ -53,24 +55,30 @@ class MyFragment : BaseFragment(), MyView {
builder.setPlaceholder("输入密码")
.setTitle("请输入密码")
- .setInputType(InputType.TYPE_CLASS_PHONE)
- .addAction("取消"
- ) { dialog, index -> dialog?.dismiss() }
- .addAction("确定"
+ .setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD or InputType.TYPE_CLASS_NUMBER)
+ .addAction(
+ "取消"
+ ) { dialog, index ->
+ KeyboardUtils.hideSoftInput(builder.editText)
+ dialog?.dismiss()
+ }
+ .addAction(
+ "确定"
) { dialog, index ->
val text = builder.editText.text
LogUtils.d(text)
LogUtils.d("112233".equals(text))
- if("112233" == text.toString()){
+ if ("112233" == text.toString()) {
activity?.finish()
exitProcess(0)
- }else{
+ } else {
ToastUtils.showShort("密码不正确")
}
}
.setCancelable(false)
.setCanceledOnTouchOutside(false)
- .show()
+ val dialog = builder.show()
+ dialog.hideNavigationBar()
}
override fun initData() {
@@ -104,7 +112,11 @@ class MyFragment : BaseFragment(), MyView {
val group = unit.teacherUnitGroups[0]
unitName.text = unit.unit_name
groupName.text = group.group_name
- jobType.text = group.job_type_name
+ jobType.text = if (group.job_type_name.isNotEmpty()) {
+ group.job_type_name
+ } else {
+ "-"
+ }
isLeader.text = if (group.is_leader == 0) {
"是"
} else {
diff --git a/app/src/main/java/com/yzx/escreen/presenter/base/JsonCallBack.java b/app/src/main/java/com/yzx/escreen/presenter/base/JsonCallBack.java
index 071dd9c..0e5ab6d 100644
--- a/app/src/main/java/com/yzx/escreen/presenter/base/JsonCallBack.java
+++ b/app/src/main/java/com/yzx/escreen/presenter/base/JsonCallBack.java
@@ -1,9 +1,17 @@
package com.yzx.escreen.presenter.base;
+import android.content.Intent;
+
+import com.blankj.utilcode.util.ActivityUtils;
+import com.blankj.utilcode.util.AppUtils;
import com.google.gson.stream.JsonReader;
import com.lzy.okgo.callback.AbsCallback;
import com.lzy.okgo.model.HttpHeaders;
import com.lzy.okgo.request.base.Request;
+import com.yzx.escreen.App;
+import com.yzx.escreen.MainActivity;
+import com.yzx.escreen.activity.WebActivity;
+import com.yzx.escreen.config.Config;
import com.yzx.escreen.model.User;
import com.yzx.escreen.utils.Monitor;
@@ -137,6 +145,12 @@ public abstract class JsonCallBack extends AbsCallback {
//noinspection unchecked
return (T) yzxResponse;
} else if (code == 406) {
+ User.Companion.clearUserInfo();
+ Intent intent = new Intent(App.Companion.getContext(),WebActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.putExtra("link", Config.INSTANCE.getOA_URL()+"/login?logout=1");
+ ActivityUtils.startActivity(intent);
+ ActivityUtils.finishActivity(MainActivity.class);
throw new IllegalStateException("错误代码:" + code + ",错误信息:" + yzxResponse.msg);
} else {
// 直接将服务端的错误信息抛出,onError中可以获取
diff --git a/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt b/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt
index 81dd075..2a40730 100644
--- a/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt
+++ b/app/src/main/java/com/yzx/escreen/utils/KotlinX.kt
@@ -1,10 +1,10 @@
package com.yzx.escreen.utils
+import android.app.Dialog
+import android.view.View
import android.widget.ImageView
import com.blankj.utilcode.util.TimeUtils
import com.bumptech.glide.Glide
-import java.lang.Float.parseFloat
-import java.lang.Integer.parseInt
import java.util.*
fun ImageView.setSrc(identity: String, key: String) {
@@ -56,4 +56,45 @@ fun Int.durationStr(): String {
}
return "${day}天${hour.toInt()}小时"
}
-}
\ No newline at end of file
+}
+
+fun Dialog.hideNavigationBar(){
+ val window = this.window
+ window?.apply {
+ window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ window.decorView.setOnSystemUiVisibilityChangeListener {
+ val uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
+ View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
+ View.SYSTEM_UI_FLAG_FULLSCREEN or
+ View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
+ View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
+ View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+ window.decorView.systemUiVisibility = uiOptions
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/yzx/escreen/utils/Monitor.kt b/app/src/main/java/com/yzx/escreen/utils/Monitor.kt
index 44e2527..deba011 100644
--- a/app/src/main/java/com/yzx/escreen/utils/Monitor.kt
+++ b/app/src/main/java/com/yzx/escreen/utils/Monitor.kt
@@ -61,7 +61,7 @@ object Monitor {
"errorMessage:${errorMessage}\n" +
"errorStack:\n${errorStack}"
val stringBuffer = StringBuffer()
- stringBuffer.append("墨水屏异常上报:").append("\n")
+ stringBuffer.append("电子屏异常上报:").append("\n")
stringBuffer.append("系统信息:").append(AppUtils.getAppInfo().versionName).append("\n")
val user = User.getUser()
if (user.user_id > 0) {
diff --git a/app/src/main/res/drawable/shape_corner.xml b/app/src/main/res/drawable/shape_corner.xml
index 777cc6a..2090f7e 100644
--- a/app/src/main/res/drawable/shape_corner.xml
+++ b/app/src/main/res/drawable/shape_corner.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_corner_plain.xml b/app/src/main/res/drawable/shape_corner_plain.xml
index e467575..b8f78db 100644
--- a/app/src/main/res/drawable/shape_corner_plain.xml
+++ b/app/src/main/res/drawable/shape_corner_plain.xml
@@ -2,5 +2,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_test.xml b/app/src/main/res/layout/dialog_test.xml
new file mode 100644
index 0000000..706a2af
--- /dev/null
+++ b/app/src/main/res/layout/dialog_test.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index cafff19..0490d11 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -38,17 +38,19 @@
android:thumb="@drawable/switch_ios_thumb"
android:track="@drawable/switch_ios_track_selector"
tools:ignore="UseSwitchCompatOrMaterialXml" />
+
+ android:text="自动弹出请假单"
+ android:textColor="#53a051" />
+ android:src="@mipmap/ic_clear"
+ android:visibility="invisible" />
+ android:text="岗位类别" />
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:orientation="vertical">
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_loading.xml b/app/src/main/res/layout/layout_loading.xml
new file mode 100644
index 0000000..629349f
--- /dev/null
+++ b/app/src/main/res/layout/layout_loading.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/version_dialog.xml b/app/src/main/res/layout/version_dialog.xml
index 157e276..c90dd79 100644
--- a/app/src/main/res/layout/version_dialog.xml
+++ b/app/src/main/res/layout/version_dialog.xml
@@ -11,8 +11,8 @@
android:orientation="vertical">
@@ -31,7 +31,7 @@
android:layout_marginTop="10dp"
android:text="@string/update_title"
android:textColor="@android:color/black"
- android:textSize="18sp" />
+ android:textSize="20sp" />
+ android:textSize="18sp" />
+ android:textSize="20sp"
+ android:textColor="@color/gray" />
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index bbd3e02..0000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index bbd3e02..0000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
index 898f3ed..cead312 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
index dffca36..f2498e7 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/empty.png b/app/src/main/res/mipmap-mdpi/empty.png
new file mode 100644
index 0000000..0b0a9aa
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/empty.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
index 64ba76f..8b96981 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
index dae5e08..3ecfbae 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index e5ed465..c93a222 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
index 14ed0af..361bafe 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index b0907ca..aa60188 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
index d8ae031..9d2d299 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 2c18de9..545d1c6 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
index beed3cd..0fe1c38 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 526e071..c00240e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- 云智学
+ 一体化平台
检测到新版本
解决了若干bug
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index be75505..1115c24 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -18,6 +18,9 @@
- @android:color/transparent
- true
- @null
+ - true
+ - true
+ - @null
diff --git a/settings.gradle b/settings.gradle
index fe9d8d9..9d4e854 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,2 @@
include ':app'
-rootProject.name='WebEBook'
+rootProject.name='WebScreen'