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 @@ + + @@ -17,12 +19,16 @@ + + + + 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 @@ + + + + + +