From ab2842d427504c531c79ddb9c5a9ef1df7833014 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 06 二月 2025 10:11:44 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/discovery/DiscoveryFragment.kt | 8 +- app/src/main/java/com/sinata/xqmuse/ui/login/RegisterActivity.kt | 4 - app/src/main/res/mipmap-xxhdpi/bg_login.png | 0 app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/tree/GiftActivity.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt | 4 app/src/main/res/layout/activity_setting.xml | 2 app/src/main/java/com/sinata/xqmuse/ui/mine/WalletDetailFragment.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/discovery/SearchPlaceActivity.kt | 4 app/src/main/res/layout/item_course_grid.xml | 8 +- app/src/main/java/com/sinata/xqmuse/network/Functions.kt | 1 app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt | 5 - app/src/main/java/com/sinata/xqmuse/ui/mine/ServiceActivity.kt | 2 app/src/main/res/layout/activity_level.xml | 2 app/src/main/res/layout/item_banner_card.xml | 6 +- app/src/main/res/mipmap-xxhdpi/bg_shop.png | 0 app/src/main/java/com/sinata/xqmuse/XQApplication.kt | 9 +- app/src/main/java/com/sinata/xqmuse/ui/H5Activity.kt | 5 - app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java | 7 +- app/build.gradle | 1 app/src/main/java/com/sinata/xqmuse/ui/mine/MsgActivity.kt | 2 app/src/main/java/com/sinata/xqmuse/dialog/ChooseBirthDialog.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt | 6 +- app/src/main/java/com/sinata/xqmuse/ui/mine/RuleFragment.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt | 2 app/src/main/AndroidManifest.xml | 2 app/src/main/java/com/sinata/xqmuse/ui/mine/WithdrawActivity.kt | 2 app/src/main/java/com/sinata/xqmuse/utils/Const.kt | 9 --- app/src/main/java/com/sinata/xqmuse/ui/TransparentStatusBarActivity.kt | 4 app/src/main/java/com/sinata/xqmuse/dialog/ChooseMonthDialog.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt | 4 app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt | 2 /dev/null | 3 - app/src/main/res/layout/fragment_discovery.xml | 3 - app/src/main/java/com/sinata/xqmuse/ui/mine/BindActivity.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/mine/MineGridFragment.kt | 2 app/src/main/java/com/sinata/xqmuse/MainActivity.kt | 2 app/src/main/java/com/sinata/xqmuse/ui/mine/ChangePhoneActivity.kt | 3 - 38 files changed, 50 insertions(+), 78 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 39b610c..159b4a3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,7 +46,6 @@ } } - buildTypes { release { minifyEnabled false diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c52e11e..9a0861f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,7 +34,7 @@ </queries> <application - android:name=".JkApplication" + android:name=".XQApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" diff --git a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt index 8183333..74da337 100644 --- a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt @@ -217,7 +217,7 @@ thinkHandler?.removeMessages(0) cl_player.gone() (fragments[0] as HomeFragment).refreshTodayPlayingState() //对比当前音频是否是每日疗愈 - if (JkApplication.isForeground){ + if (XQApplication.isForeground){ if (isBGMChanged) //BGM已经被切换,重新播放新BGM startBgm() else //BGM未改变,直接续播 diff --git a/app/src/main/java/com/sinata/xqmuse/JkApplication.kt b/app/src/main/java/com/sinata/xqmuse/XQApplication.kt similarity index 95% rename from app/src/main/java/com/sinata/xqmuse/JkApplication.kt rename to app/src/main/java/com/sinata/xqmuse/XQApplication.kt index bedb30f..901b8b4 100644 --- a/app/src/main/java/com/sinata/xqmuse/JkApplication.kt +++ b/app/src/main/java/com/sinata/xqmuse/XQApplication.kt @@ -16,7 +16,7 @@ import xyz.doikki.videoplayer.player.VideoViewManager -class JkApplication :BaseApplication(), Application.ActivityLifecycleCallbacks { +class XQApplication :BaseApplication(), Application.ActivityLifecycleCallbacks { override fun getSPName() = "JKSp" private val activities = ArrayList<Activity>() @@ -36,7 +36,6 @@ UMConfigure.init(this, Const.UMENG_KEY, "", UMConfigure.DEVICE_TYPE_PHONE, "") UMConfigure.setLogEnabled(true) PlatformConfig.setWeixin(Const.WX_APP_ID, Const.WX_SECRET) - PlatformConfig.setQQZone(Const.QQ_APP_ID, Const.QQ_SECRET) initPlayer() } @@ -101,10 +100,10 @@ var lat:Double? = null var lon:Double? = null var isForeground = true - var appContext: JkApplication? = null - fun getInstance(): JkApplication? { + var appContext: XQApplication? = null + fun getInstance(): XQApplication? { if (appContext == null) { - appContext = JkApplication() + appContext = XQApplication() } return appContext } diff --git a/app/src/main/java/com/sinata/xqmuse/dialog/ChooseBirthDialog.kt b/app/src/main/java/com/sinata/xqmuse/dialog/ChooseBirthDialog.kt index f127f8c..ce43568 100644 --- a/app/src/main/java/com/sinata/xqmuse/dialog/ChooseBirthDialog.kt +++ b/app/src/main/java/com/sinata/xqmuse/dialog/ChooseBirthDialog.kt @@ -48,7 +48,7 @@ setMonth(true) setDay(true) - wv_1.setOnWheelViewListener { _, item -> + wv_1.setOnWheelViewListener { _, _ -> setMonth() setDay() } diff --git a/app/src/main/java/com/sinata/xqmuse/dialog/ChooseMonthDialog.kt b/app/src/main/java/com/sinata/xqmuse/dialog/ChooseMonthDialog.kt index 47c6104..01712c1 100644 --- a/app/src/main/java/com/sinata/xqmuse/dialog/ChooseMonthDialog.kt +++ b/app/src/main/java/com/sinata/xqmuse/dialog/ChooseMonthDialog.kt @@ -42,7 +42,7 @@ setYear() setMonth(true) - wv_1.setOnWheelViewListener { _, item -> + wv_1.setOnWheelViewListener { _, _ -> setMonth(false) } diff --git a/app/src/main/java/com/sinata/xqmuse/network/Functions.kt b/app/src/main/java/com/sinata/xqmuse/network/Functions.kt index d7b0179..580a3fe 100644 --- a/app/src/main/java/com/sinata/xqmuse/network/Functions.kt +++ b/app/src/main/java/com/sinata/xqmuse/network/Functions.kt @@ -6,7 +6,6 @@ import cn.sinata.xldutils.fragment.BaseFragment import cn.sinata.xldutils.rxutils.ResultDataSubscriber import cn.sinata.xldutils.utils.SPUtils -import com.sinata.xqmuse.JkApplication import com.sinata.xqmuse.ui.login.LoginActivity import com.sinata.xqmuse.utils.Const import io.reactivex.Flowable diff --git a/app/src/main/java/com/sinata/xqmuse/network/SignUtil.java b/app/src/main/java/com/sinata/xqmuse/network/SignUtil.java deleted file mode 100644 index 0e1cbbd..0000000 --- a/app/src/main/java/com/sinata/xqmuse/network/SignUtil.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.sinata.xqmuse.network; -import android.util.Base64; -import android.util.Log; - - -import com.sinata.xqmuse.utils.Const; -import com.sinata.xqmuse.utils.HMACSHA1; - -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -import cn.sinata.util.Base64DES; - -public class SignUtil { - - /* - * 不要写成:Cipher cipher = Cipher.getInstance("DES"); - * 或:Cipher cipher = Cipher.getInstance("DES/CBC/NoPadding"); - * 原因是Cipher cipher = Cipher.getInstance("DES"); - * 与Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); - * 等同,填充方式错误,加密的时候会得到16长度的字节数组。 - * 应该写成 - * Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding"); - */ - - /** - * 生成签名 - * @param map - * @return - */ - public static String getSign(Map<String, Object> map) { - - String result = ""; - try { - List<Map.Entry<String, Object>> infoIds = new ArrayList<>(map.entrySet()); - if (infoIds.size()>0){ - // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) - Collections.sort(infoIds, new Comparator<Map.Entry<String, Object>>() { - @Override - public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) { - return (o1.getKey()).compareTo(o2.getKey()); - } - }); - // 构造签名键值对的格式 - StringBuilder sb = new StringBuilder(); - for (Map.Entry<String, Object> item : infoIds) { - if (item.getKey() == null) { - item.getKey(); - } - String key = item.getKey(); - Object val = item.getValue(); - if (!(val == "" || val == null)) { - sb.append(key).append("=").append(val).append("&"); - } - } - result = sb.toString(); - result = result.substring(0,result.length() - 1); - Log.e(Const.Tag, "getSign: ====》"+result); - } - result = Base64DES.INSTANCE.encode(HMACSHA1.HmacSHA1Encrypt(result, Const.APP_KEY)); - } catch (Exception e) { - return null; - } - return result; - } - private static final String MAC_NAME = "HmacSHA1"; - private static final String ENCODING = "UTF-8"; - public static String genHMAC(String data, String key) { - byte[] result = null; - try { - //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 - SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(), MAC_NAME); - //生成一个指定 Mac 算法 的 Mac 对象 - Mac mac = Mac.getInstance(MAC_NAME); - //用给定密钥初始化 Mac 对象 - mac.init(signinKey); - //完成 Mac 操作 - byte[] rawHmac = mac.doFinal(data.getBytes()); - result = Base64.encode(rawHmac, Base64.DEFAULT); - } catch (NoSuchAlgorithmException e) { - System.err.println(e.getMessage()); - } catch (InvalidKeyException e) { - System.err.println(e.getMessage()); - } - if (null != result) { - return new String(result); - } else { - return null; - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt index 37fc997..94add77 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt @@ -30,7 +30,7 @@ iv_silent.setOnClickListener { sb_voice.progress = 0 } - banner_landscape.setOnBannerListener { data, position -> + banner_landscape.setOnBannerListener { _, position -> cardBannerAdapter.playPosition = position cardBannerAdapter.notifyDataSetChanged() player.startPlayMusic(this,list[position].audioFile) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/H5Activity.kt b/app/src/main/java/com/sinata/xqmuse/ui/H5Activity.kt index f3a5140..5bc4aec 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/H5Activity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/H5Activity.kt @@ -14,9 +14,8 @@ import cn.sinata.xldutils.visible import com.github.zackratos.ultimatebar.UltimateBar import com.sinata.xqmuse.R -import com.sinata.xqmuse.JkApplication +import com.sinata.xqmuse.XQApplication import com.sinata.xqmuse.dialog.TipDialog -import com.sinata.xqmuse.network.Apis import com.sinata.xqmuse.network.HttpManager import com.sinata.xqmuse.network.request import com.sinata.xqmuse.ui.login.LoginActivity @@ -80,7 +79,7 @@ HttpManager.cancellation().request(this@H5Activity){ _, _-> myToast("注销成功") SPUtils.instance().remove(Const.User.TOKEN).apply() - (application as JkApplication).exit() + (application as XQApplication).exit() startActivity<LoginActivity>() } } diff --git a/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt index 0a7a0fa..ebf80a3 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt @@ -16,12 +16,11 @@ import com.amap.apis.utils.core.api.AMapUtilCoreApi import com.sinata.xqmuse.MainActivity import com.sinata.xqmuse.R -import com.sinata.xqmuse.JkApplication +import com.sinata.xqmuse.XQApplication import com.sinata.xqmuse.dialog.UserRuleDialog import com.sinata.xqmuse.network.Apis import com.sinata.xqmuse.network.HttpManager import com.sinata.xqmuse.network.request -import com.sinata.xqmuse.ui.guide.GuideActivity import com.sinata.xqmuse.utils.Const import com.umeng.commonsdk.UMConfigure import kotlinx.android.synthetic.main.activity_splash.* @@ -154,7 +153,7 @@ */ private fun startNext(){ UMConfigure.preInit(this, Const.UMENG_KEY, "") - (application as JkApplication).initSdk() + (application as XQApplication).initSdk() if (SPUtils.instance().getBoolean(Const.FIRST_LAUNCH,true)){ //第一次启动显示引导页 SPUtils.instance().put(Const.FIRST_LAUNCH,false).apply() startActivity<MainActivity>("code" to code,"isFirst" to true) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/TransparentStatusBarActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/TransparentStatusBarActivity.kt index d42b075..c068963 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/TransparentStatusBarActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/TransparentStatusBarActivity.kt @@ -4,13 +4,13 @@ import cn.sinata.xldutils.activity.TitleActivity import com.github.zackratos.ultimatebar.UltimateBar import com.sinata.xqmuse.R -import com.sinata.xqmuse.JkApplication +import com.sinata.xqmuse.XQApplication import org.jetbrains.anko.backgroundColorResource import org.jetbrains.anko.backgroundResource abstract class TransparentStatusBarActivity : TitleActivity() { protected val app by lazy { - application as JkApplication + application as XQApplication } override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt index 59c2391..8493853 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt @@ -103,7 +103,7 @@ scroll2Position(2) checkTab(2) } - scrollView.setOnScrollChangeListener { v: NestedScrollView?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int -> + scrollView.setOnScrollChangeListener { _: NestedScrollView?, _: Int, scrollY: Int, _: Int, _: Int -> if (!scrollByTab) when { scrollY>=tv_2.top -> checkTab(2) @@ -111,13 +111,13 @@ else -> checkTab(0) } } - chapterAdapter.setOnItemClickListener { view, position -> + chapterAdapter.setOnItemClickListener { _, position -> if (tv_action.text == "立即学习") startActivity<StudyActivity>("id" to data?.list?.get(position)?.id,"index" to position) else getData(false) } - courseAdapter.setOnItemClickListener { view, position -> + courseAdapter.setOnItemClickListener { _, position -> showDialog() HttpManager.getPayCourseInfoById(courseList[position].id?:"").request(this,success = { _, data-> dismissDialog() diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt index e056b12..da518e8 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt @@ -24,7 +24,7 @@ private val freeAdapter = CourseGridAdapter(freeList) override fun initClick() { - myAdapter.setOnItemClickListener { view, position -> + myAdapter.setOnItemClickListener { _, position -> showDialog() HttpManager.getPayCourseInfoById(myList[position].id).request(this,success = { _, data-> dismissDialog() @@ -33,7 +33,7 @@ dismissDialog() } } - freeAdapter.setOnItemClickListener { view, position -> + freeAdapter.setOnItemClickListener { _, position -> showDialog() HttpManager.getPayCourseInfoById(freeList[position].id).request(this,success = { _, data-> dismissDialog() diff --git a/app/src/main/java/com/sinata/xqmuse/ui/discovery/DiscoveryFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/discovery/DiscoveryFragment.kt index aaf4593..a87ccf4 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/discovery/DiscoveryFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/discovery/DiscoveryFragment.kt @@ -6,7 +6,7 @@ import cn.sinata.xldutils.utils.SPUtils import com.amap.api.location.AMapLocationClient import com.amap.api.location.AMapLocationClientOption -import com.sinata.xqmuse.JkApplication +import com.sinata.xqmuse.XQApplication import com.sinata.xqmuse.R import com.sinata.xqmuse.dialog.TipDialog import com.sinata.xqmuse.network.HttpManager @@ -102,8 +102,8 @@ locationClient = null } locationClient?.setLocationListener { - JkApplication.lat = it.latitude - JkApplication.lon = it.longitude + XQApplication.lat = it.latitude + XQApplication.lon = it.longitude refreshLayout.autoRefresh() } val option = AMapLocationClientOption() @@ -116,7 +116,7 @@ } private fun getData(){ - HttpManager.getMeditationPage(page, search, JkApplication.lat, JkApplication.lon).requestByF( + HttpManager.getMeditationPage(page, search, XQApplication.lat, XQApplication.lon).requestByF( this, success = { _, data -> if (page == 1) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/discovery/SearchPlaceActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/discovery/SearchPlaceActivity.kt index 4d48744..80d5d60 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/discovery/SearchPlaceActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/discovery/SearchPlaceActivity.kt @@ -2,7 +2,7 @@ import android.view.inputmethod.EditorInfo import androidx.recyclerview.widget.GridLayoutManager -import com.sinata.xqmuse.JkApplication +import com.sinata.xqmuse.XQApplication import com.sinata.xqmuse.R import com.sinata.xqmuse.network.HttpManager import com.sinata.xqmuse.network.entity.Place @@ -52,7 +52,7 @@ } private fun getData(){ - HttpManager.getMeditationPage(page,search, JkApplication.lat, JkApplication.lon).request(this,success = { _, data-> + HttpManager.getMeditationPage(page,search, XQApplication.lat, XQApplication.lon).request(this,success = { _, data-> if (page == 1) list.clear() list.addAll(data?.list?: arrayListOf()) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/login/RegisterActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/login/RegisterActivity.kt index c1d9d3d..c6c13e2 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/login/RegisterActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/login/RegisterActivity.kt @@ -3,13 +3,9 @@ import android.app.Activity import android.content.Intent import android.os.CountDownTimer -import android.text.method.HideReturnsTransformationMethod -import android.text.method.PasswordTransformationMethod import cn.sinata.xldutils.gone import cn.sinata.xldutils.utils.* -import cn.sinata.xldutils.visible import com.sinata.xqmuse.R -import com.sinata.xqmuse.JkApplication import com.sinata.xqmuse.dialog.LoginRuleDialog import com.sinata.xqmuse.network.HttpManager import com.sinata.xqmuse.network.request diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/BindActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/BindActivity.kt index cd5191d..43fac83 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/BindActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/BindActivity.kt @@ -57,7 +57,7 @@ showDialog() val openid = p2?.get("openid") val nickname = p2?.get("name") - HttpManager.bindVx(openid?:"",nickname?:"").request(this,success = { _, data -> + HttpManager.bindVx(openid?:"",nickname?:"").request(this,success = { _, _ -> toast("绑定成功") tv_wx.text = nickname this.data?.wxOpenId = openid diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/ChangePhoneActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/ChangePhoneActivity.kt index 35b8fdf..5a09fd8 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/ChangePhoneActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/ChangePhoneActivity.kt @@ -4,18 +4,15 @@ import cn.sinata.xldutils.utils.SPUtils import cn.sinata.xldutils.utils.isValidPhone import cn.sinata.xldutils.utils.myToast -import com.sinata.xqmuse.JkApplication import com.sinata.xqmuse.R import com.sinata.xqmuse.network.HttpManager import com.sinata.xqmuse.network.request import com.sinata.xqmuse.ui.TransparentStatusBarActivity -import com.sinata.xqmuse.ui.login.LoginActivity import com.sinata.xqmuse.utils.Const import kotlinx.android.synthetic.main.activity_change_phone.* import org.jetbrains.anko.sdk27.coroutines.onClick import org.jetbrains.anko.startActivity -import org.jetbrains.anko.support.v4.startActivity class ChangePhoneActivity:TransparentStatusBarActivity() { override fun setContentView() = R.layout.activity_change_phone diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/MineGridFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/MineGridFragment.kt index 1247962..9f7d938 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/MineGridFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/MineGridFragment.kt @@ -52,7 +52,7 @@ getData() } refreshLayout.autoRefresh() - adapter.setOnItemClickListener { view, position -> + adapter.setOnItemClickListener { _, position -> val courseBean = list[position] if (adapter.isOrder&&courseBean.paymentStatus == 1) { HttpManager.payOrder(courseBean.id).requestByF(this){_,data-> diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/MsgActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/MsgActivity.kt index 6b01caf..649d14b 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/MsgActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/MsgActivity.kt @@ -17,7 +17,7 @@ private val adapter = MsgAdapter(list) override fun initClick() { - adapter.setOnItemClickListener { view, position -> + adapter.setOnItemClickListener { _, position -> val msg = list[position] HttpManager.noticeDetail(msg.id).request(this){_,data-> msg.readStatus = 2 diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/RuleFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/RuleFragment.kt index 936d1bb..a53a566 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/RuleFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/RuleFragment.kt @@ -34,7 +34,7 @@ HttpManager.getH5(type).requestByF(this){_,data-> val sHead = "<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>" - webView!!.loadDataWithBaseURL( + webView.loadDataWithBaseURL( null, sHead + data?.content, "text/html", diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/ServiceActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/ServiceActivity.kt index ae0412a..ca7ee4c 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/ServiceActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/ServiceActivity.kt @@ -19,7 +19,7 @@ private val adapter = QAAdapter(list) override fun initClick() { - adapter.setOnItemClickListener { view, position -> + adapter.setOnItemClickListener { _, position -> startActivity<QaDetailActivity>("data" to list[position]) } } diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt index b1d7394..d82e1a7 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt @@ -72,7 +72,7 @@ HttpManager.getH5(LoginRuleDialog.TYPE_ABOUT).request(this){ _, data-> data?.let { startActivity<H5Activity>( - "title" to "关于泉", + "title" to "关于泉疗愈", "url" to it.content, "showClose" to false ) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt index e7fbf25..c900d65 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt @@ -80,13 +80,13 @@ file.createNewFile() } val fors = FileOutputStream(file) - layout_share.drawToBitmap()?.compress(Bitmap.CompressFormat.PNG, 0, fors) + layout_share.drawToBitmap().compress(Bitmap.CompressFormat.PNG, 0, fors) fors.flush() fors.close() MediaStore.Images.Media.insertImage(this@ShareActivity.contentResolver, file.absolutePath, copyPath, null); toast("保存成功") } catch (e: Exception) { - Log.e(Const.Tag,e?.message?:"") + Log.e(Const.Tag, e.message ?:"") toast("保存失败") } } diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt index b4f7307..153629f 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt @@ -34,7 +34,7 @@ override fun initClick() { iv_back.setOnClickListener { finish() } - adapter.setOnItemClickListener { view, position -> + adapter.setOnItemClickListener { _, position -> adapter.checked = position adapter.notifyDataSetChanged() } diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletDetailFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletDetailFragment.kt index a10e1db..8378bb1 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletDetailFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletDetailFragment.kt @@ -33,7 +33,7 @@ getData() } refreshLayout.autoRefresh() - adapter.setOnItemClickListener { view, position -> + adapter.setOnItemClickListener { _, position -> startActivity<BalanceChangeDetailActivity>("id" to list[position].id) } } diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/WithdrawActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/WithdrawActivity.kt index 806dc67..fe82fb5 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/WithdrawActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/WithdrawActivity.kt @@ -42,7 +42,7 @@ tipDialog.setCallback(object : TipDialog.OnClickCallback { override fun onOk() { HttpManager.deleteBank(list[position].id ?: "") - .request(this@WithdrawActivity) { _, data -> + .request(this@WithdrawActivity) { _, _ -> list.removeAt(position) adapter.notifyDataSetChanged() } diff --git a/app/src/main/java/com/sinata/xqmuse/ui/tree/GiftActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/tree/GiftActivity.kt index 3a85d43..05aa8a8 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/tree/GiftActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/tree/GiftActivity.kt @@ -24,7 +24,7 @@ private var code = "" override fun initClick() { - adapter.setOnItemClickListener { view, position -> + adapter.setOnItemClickListener { _, position -> exchange(position) } } diff --git a/app/src/main/java/com/sinata/xqmuse/utils/Const.kt b/app/src/main/java/com/sinata/xqmuse/utils/Const.kt index b9630a7..26bd66a 100644 --- a/app/src/main/java/com/sinata/xqmuse/utils/Const.kt +++ b/app/src/main/java/com/sinata/xqmuse/utils/Const.kt @@ -11,10 +11,6 @@ const val UMENG_KEY = "6620bc0fcac2a664de1f77eb" const val WX_APP_ID = "wx4b9c1d814c2902a3" const val WX_SECRET = "60fed4b6f52603ba6769e1118b4a57ae" - const val QQ_APP_ID = "101912859" - const val QQ_SECRET = "692a092b65a6ec830fb62d1dc2270813" - - const val APP_KEY = "BT7NPhA0f775uzcUuftWjCE1TYZlWmHZ" //接口秘钥 const val FIRST_LAUNCH = "isFirst" const val IS_PUSH = "isPush" @@ -43,12 +39,7 @@ object User { const val TOKEN = "token" const val USER_ID = "userId" - const val APP_ID = "appid" const val IS_AGREE = "isAgree" //是否同意用户协议和隐私协议 - const val IS_READ = "isRead" //是否阅读并同意过登录协议 - const val USER_HEAD = "userHead" - const val USER_NAME = "userName" - const val USER_PWD = "pwd" const val USER_PHONE = "userPhone" const val SEARCH_HIS_HOME = "SEARCH_HIS_HOME" const val SEARCH_HIS_COURSE = "SEARCH_HIS_COURSE" diff --git a/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java b/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java index b46a880..f5e7bfe 100644 --- a/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java +++ b/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java @@ -18,12 +18,11 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.FitCenter; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; -import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.Target; import com.sinata.xqmuse.R; -import com.sinata.xqmuse.JkApplication; +import com.sinata.xqmuse.XQApplication; import java.util.concurrent.ExecutionException; @@ -291,7 +290,7 @@ .error(R.color.page_bg) .placeholder(R.color.page_bg) .diskCacheStrategy(diskCacheStrategy) - .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(DensityUtil.dip2px(JkApplication.Companion.getInstance(), num)))); + .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(DensityUtil.dip2px(XQApplication.Companion.getInstance(), num)))); } return chatcricleFoursUserHead; } @@ -310,7 +309,7 @@ .error(R.color.black) .placeholder(R.color.black) .diskCacheStrategy(diskCacheStrategy) - .apply(new RequestOptions().transform(new FitCenter(), new RoundedCorners(DensityUtil.dip2px(JkApplication.Companion.getInstance(), num)))); + .apply(new RequestOptions().transform(new FitCenter(), new RoundedCorners(DensityUtil.dip2px(XQApplication.Companion.getInstance(), num)))); } return chatcricleFoursUserHead; } diff --git a/app/src/main/res/layout/activity_level.xml b/app/src/main/res/layout/activity_level.xml index 30873c1..9731a88 100644 --- a/app/src/main/res/layout/activity_level.xml +++ b/app/src/main/res/layout/activity_level.xml @@ -88,7 +88,7 @@ android:id="@+id/tv_rule" app:layout_constraintTop_toBottomOf="@id/cl_level" android:layout_marginTop="23dp" - android:text="泉・疗愈 升级规则" + android:text="泉疗愈 升级规则" android:textColor="@color/white" android:textSize="14sp" android:textStyle="bold" diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 9dd7026..dac8377 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -65,7 +65,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/style_form_text" - android:text="关于泉" + android:text="关于泉疗愈" android:paddingHorizontal="12dp" android:drawableEnd="@mipmap/more_black"/> <View diff --git a/app/src/main/res/layout/fragment_discovery.xml b/app/src/main/res/layout/fragment_discovery.xml index 87cc8c0..2f7af4d 100644 --- a/app/src/main/res/layout/fragment_discovery.xml +++ b/app/src/main/res/layout/fragment_discovery.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:background="@color/page_bg" @@ -35,7 +34,6 @@ android:paddingHorizontal="25dp" android:drawableStart="@mipmap/ic_search_black"/> - <com.scwang.smart.refresh.layout.SmartRefreshLayout android:id="@+id/refreshLayout" android:layout_width="match_parent" @@ -46,7 +44,6 @@ <com.scwang.smart.refresh.header.ClassicsHeader android:layout_width="match_parent" android:layout_height="wrap_content" /> - <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" diff --git a/app/src/main/res/layout/item_banner_card.xml b/app/src/main/res/layout/item_banner_card.xml index 2a6fd75..c52f53e 100644 --- a/app/src/main/res/layout/item_banner_card.xml +++ b/app/src/main/res/layout/item_banner_card.xml @@ -28,7 +28,7 @@ app:layout_constraintEnd_toStartOf="@id/play" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" - android:layout_marginTop="15dp" + android:layout_marginTop="7dp" android:layout_marginStart="16dp" android:layout_marginEnd="4dp" android:text="缓解压力" @@ -40,11 +40,11 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="5dp" + android:layout_marginTop="3dp" app:layout_constraintTop_toBottomOf="@id/tv_title" app:layout_constraintStart_toStartOf="@id/tv_title" app:layout_constraintBottom_toBottomOf="parent" - android:layout_marginBottom="17dp" + android:layout_marginBottom="9dp" android:text="缓解压力" android:textSize="6sp" android:textColor="@color/white" diff --git a/app/src/main/res/layout/item_course_grid.xml b/app/src/main/res/layout/item_course_grid.xml index 478498a..a1978fa 100644 --- a/app/src/main/res/layout/item_course_grid.xml +++ b/app/src/main/res/layout/item_course_grid.xml @@ -28,10 +28,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" - android:layout_marginTop="15dp" + android:layout_marginTop="7dp" android:layout_marginHorizontal="16dp" android:text="缓解压力" - android:textSize="18sp" + android:textSize="16sp" android:singleLine="true" android:ellipsize="end" android:textColor="@color/white" @@ -39,7 +39,7 @@ <TextView android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginTop="5dp" + android:layout_marginTop="3dp" app:layout_constraintTop_toBottomOf="@id/tv_title" app:layout_constraintStart_toStartOf="@id/tv_title" app:layout_constraintEnd_toStartOf="@id/iv" @@ -47,7 +47,7 @@ android:singleLine="true" android:ellipsize="end" app:layout_constraintBottom_toBottomOf="parent" - android:layout_marginBottom="15dp" + android:layout_marginBottom="8dp" android:text="缓解压力" android:textSize="11sp" android:textColor="@color/white" diff --git a/app/src/main/res/mipmap-xxhdpi/bg_login.png b/app/src/main/res/mipmap-xxhdpi/bg_login.png index d234722..a7861b6 100644 --- a/app/src/main/res/mipmap-xxhdpi/bg_login.png +++ b/app/src/main/res/mipmap-xxhdpi/bg_login.png Binary files differ diff --git a/app/src/main/res/mipmap-xxhdpi/bg_shop.png b/app/src/main/res/mipmap-xxhdpi/bg_shop.png index b137e60..09eff81 100644 --- a/app/src/main/res/mipmap-xxhdpi/bg_shop.png +++ b/app/src/main/res/mipmap-xxhdpi/bg_shop.png Binary files differ diff --git a/rxnetty/.gitignore b/rxnetty/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/rxnetty/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/rxnetty/build.gradle b/rxnetty/build.gradle deleted file mode 100644 index bfe3f82..0000000 --- a/rxnetty/build.gradle +++ /dev/null @@ -1,30 +0,0 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion 28 - defaultConfig { - minSdkVersion 14 - targetSdkVersion 28 - versionCode 1 - versionName "1.0" - - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - api fileTree(include: ['*.jar'], dir: 'libs') - api 'io.reactivex:rxnetty:0.4.20' - api 'androidx.appcompat:appcompat:1.1.0' - api 'io.netty:netty-buffer:4.1.5.Final' - api 'io.netty:netty-handler:4.1.5.Final' - api 'io.reactivex:rxandroid:1.2.1' - api 'io.reactivex:rxjava:1.1.6' -} diff --git a/rxnetty/proguard-rules.pro b/rxnetty/proguard-rules.pro deleted file mode 100644 index f1b4245..0000000 --- a/rxnetty/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/rxnetty/src/main/AndroidManifest.xml b/rxnetty/src/main/AndroidManifest.xml deleted file mode 100644 index ac81f22..0000000 --- a/rxnetty/src/main/AndroidManifest.xml +++ /dev/null @@ -1,19 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="cn.sinata.rxnetty" > - - <uses-permission android:name="android.permission.INTERNET"/> - <!--允许读取网络状态--> - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> - <!--允许读取wifi网络状态--> - <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> - <!--NJobService 需要--> - <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> - <uses-permission android:name="android.permission.WAKE_LOCK" /> - <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> - <application> - <receiver android:name=".netStatus.NetStateReceiver"/> - <service android:name="cn.sinata.rxnetty.CoreService"/> - <service android:name="cn.sinata.rxnetty.NJobService" - android:permission="android.permission.BIND_JOB_SERVICE"/> - </application> -</manifest> diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/Config.java b/rxnetty/src/main/java/cn/sinata/rxnetty/Config.java deleted file mode 100644 index fa35181..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/Config.java +++ /dev/null @@ -1,11 +0,0 @@ -package cn.sinata.rxnetty; - -/** - * - */ -final class Config { - public static String SOCKET_SERVER; - public static int SOCKET_PORT; - public static boolean isStartForeground = false; - public static final int NOTIFICATION_ID = 101; -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java b/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java deleted file mode 100644 index 71bbec4..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java +++ /dev/null @@ -1,341 +0,0 @@ -package cn.sinata.rxnetty; - -import android.app.*; -import android.content.Context; -import android.content.Intent; -import android.graphics.Color; -import android.os.IBinder; - -import androidx.annotation.Nullable; -import androidx.core.app.NotificationCompat; - -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.concurrent.TimeUnit; -import cn.sinata.rxnetty.netStatus.NetChangeObserver; -import cn.sinata.rxnetty.netStatus.NetStateReceiver; -import cn.sinata.rxnetty.netStatus.NetUtils; -import cn.sinata.rxnetty.pipeline.LengthFieldConfigurator; -import io.netty.buffer.ByteBuf; -import io.reactivex.netty.RxNetty; -import io.reactivex.netty.channel.ObservableConnection; -import rx.Observable; -import rx.Subscriber; -import rx.functions.Action1; -import rx.functions.Func1; -import rx.schedulers.Schedulers; - -/** - * 长链接基本service。修改为监听器(接口方式)实现。 - */ -public class CoreService extends Service { - - private WakeLockUtils wakeLockUtils; - @Nullable - @Override - public IBinder onBind(Intent intent) { - return null; - } - - @Override - public void onCreate() { - super.onCreate(); -// wakeLockUtils = new WakeLockUtils(); 常亮 -// wakeLockUtils.acquireWakeLock(this); - Observable.interval(60, TimeUnit.SECONDS).subscribe(new Subscriber<Long>() { - - @Override - public void onNext(Long aLong) { - checkState(); - } - - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - Logger.e("netty", "重连功能断开" + e.getLocalizedMessage()); - } - }); - } - - void init() { - /* - * 注册发送消息事件监听。 - */ - NettyClient.getInstance().setSendListener(new OnSendListener() { - @Override - public void onSend(String s) { - //先检查通道状态,如果断开,则重连。 - checkState(); - Observable<Void> send = send(s + "\n"); -// Observable<Void> send = send(s); - Logger.e("netty", "发送消息:"+s); - if (send != null) { - send.subscribe(new Subscriber<Void>() { - @Override - public void onCompleted() { - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - checkState(); - Logger.e("netty", "消息发送失败" + e.getLocalizedMessage()); - } - - @Override - public void onNext(Void aVoid) { - } - }); - } - } - }); - initCheckOb(); - } - - public void checkState() { - if (mConnection == null || mConnection.getChannel() == null - || !mConnection.getChannel().isActive() - || !mConnection.getChannel().isWritable() - || !mConnection.getChannel().isOpen() - || !mConnection.getChannel().isRegistered()) { - reConnect(); - } - } - - void initCheckOb() { - NettyClient.getInstance().setOnCheckListener(new OnCheckListener() { - @Override - public void doCheck() { - checkState(); - } - }); - } - - protected NetChangeObserver mNetChangeObserver = null; - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - - init(); - - NetStateReceiver.registerNetworkStateReceiver(this); - mNetChangeObserver = new NetChangeObserver() { - @Override - public void onNetConnected(NetUtils.NetType type) { - super.onNetConnected(type); - checkState(); - } - @Override - public void onNetDisConnect() { - super.onNetDisConnect(); - Logger.e("netty", "网络断开了"); - } - }; - NetStateReceiver.registerObserver(mNetChangeObserver); - if (Config.isStartForeground) { - startForeground(Config.NOTIFICATION_ID,getNotification()); - } - return START_NOT_STICKY; - } - - private Notification getNotification(){ - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { - //8.0以上创建channel - NotificationManager notificationManager = - (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - if (notificationManager != null) { - NotificationChannel channel; - channel = new NotificationChannel("101", "服务", NotificationManager.IMPORTANCE_DEFAULT); - channel.enableLights(true); - channel.setLightColor(Color.GREEN); - channel.setShowBadge(true); - notificationManager.createNotificationChannel(channel); - } - } - Context context = this; - NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, "101"); - mBuilder.setShowWhen(true); - mBuilder.setAutoCancel(false); - int icon = context.getResources().getIdentifier("icon_pt", "mipmap", context.getPackageName()); - mBuilder.setSmallIcon(icon); - mBuilder.setContentText("正在运行"); - int name = context.getResources().getIdentifier("app_name", "string", context.getPackageName()); - mBuilder.setContentTitle(getString(name)); - String action = getPackageName() + ".ACTION.CLICK"; - Intent intent = new Intent(action); - intent.setClassName(getPackageName(), getPackageName() + ".broadcast.MBroadcastReceiver"); - PendingIntent contentIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); - mBuilder.setContentIntent(contentIntent); - return mBuilder.build(); - } - - private boolean isDestroy = false; - - @Override - public void onDestroy() { - super.onDestroy(); - isDestroy = true; - if (wakeLockUtils!=null) - wakeLockUtils.releaseWakeLock(); - NetStateReceiver.unRegisterNetworkStateReceiver(this); - if (subscriber != null && !subscriber.isUnsubscribed()) { - subscriber.unsubscribe(); - } - if (receiveSub != null && !receiveSub.isUnsubscribed()) { - receiveSub.unsubscribe(); - } - if (mConnection != null) { - mConnection.close(); - } - Logger.e("netty", "service关闭了"); - } - - private void connectServer() { - - if (NetUtils.isNetworkAvailable(this)) { - connectionSub(); - connect(Config.SOCKET_SERVER, Config.SOCKET_PORT) - .subscribeOn(Schedulers.io()) - .subscribe(subscriber); - } - - } - - private Subscriber<Boolean> subscriber; - - private void connectionSub() { - if (subscriber != null) { - if (!subscriber.isUnsubscribed()) { - subscriber.unsubscribe(); - } - subscriber = null; - } - subscriber = new Subscriber<Boolean>() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - checkState(); - Logger.e("netty", "连接失败" + e.getLocalizedMessage()); - } - - @Override - public void onNext(Boolean aBoolean) { - - Observable<ByteBuf> observable = receive(); - if (observable != null) { - if (receiveSub == null || receiveSub.isUnsubscribed()) { - receiveSub = null; - initReceiveOb(); - } - observable.subscribe(receiveSub); - } - } - }; - - } - - private Subscriber<ByteBuf> receiveSub; - - private void initReceiveOb() { - receiveSub = new Subscriber<ByteBuf>() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - checkState(); - Logger.e("netty", "接收器注册失败" + e.getLocalizedMessage()); - } - - @Override - public void onNext(ByteBuf byteBuf) { - String s = byteBuf.toString(Charset.forName("utf-8")); - boolean contains = s.contains("�"); - if (contains) { - //乱码了 - s = byteBuf.toString(Charset.forName("gbk")); - } - Logger.e("netty", "收到消息" + s); - ArrayList<OnMessageListener> listeners = NettyClient.getInstance().getListeners(); - if (listeners != null) { - for (OnMessageListener listener : listeners) { - if (listener != null) { - listener.onMessageReceived(s); - } - } - } - } - }; - } - - - private void reConnect() { - Logger.e("netty", "开始重新链接"); - if (isDestroy) { - Logger.e("netty", "service已经关闭"); - return; - } - //reconnect - Observable.timer(3, TimeUnit.SECONDS).subscribe(new Action1<Long>() { - @Override - public void call(Long aLong) { - if (mConnection != null) { - mConnection.close(); - mConnection = null; - } - connectServer(); - } - }); - - } - - - ObservableConnection<ByteBuf, ByteBuf> mConnection; - - public Observable<Boolean> connect(final String url, final int port) { - return RxNetty.createTcpClient(url, port, new LengthFieldConfigurator()) - .connect() - .flatMap(new Func1<ObservableConnection<ByteBuf, ByteBuf>, Observable<Boolean>>() { - @Override - public Observable<Boolean> call(ObservableConnection<ByteBuf, ByteBuf> byteBufByteBufObservableConnection) { - mConnection = byteBufByteBufObservableConnection; - Logger.e("netty", "连接成功"); - OnConnectListener listener = NettyClient.getInstance().getConnectListener(); - if (listener != null) { - listener.onConnected(); - } - return Observable.create(new Observable.OnSubscribe<Boolean>() { - @Override - public void call(Subscriber<? super Boolean> subscriber) { - subscriber.onNext(true); - } - }); - } - }); - } - - public Observable<ByteBuf> receive() { - if (mConnection != null) { - return mConnection.getInput(); - } - return null; - } - - public Observable<Void> send(String s) { - if (mConnection != null) { - return mConnection.writeBytesAndFlush(s.getBytes()); - } - return null; - } -} \ No newline at end of file diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/Logger.java b/rxnetty/src/main/java/cn/sinata/rxnetty/Logger.java deleted file mode 100644 index 8dc497c..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/Logger.java +++ /dev/null @@ -1,100 +0,0 @@ -package cn.sinata.rxnetty; - -import android.os.Environment; -import android.util.Log; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Locale; - - -/** - * author:Created by ZHT on 2020/05/26 22:44 - * email:526309416@qq.com - * desc: - */ -public class Logger { - - //设为false关闭日志 - private static final boolean LOG_ENABLE = BuildConfig.DEBUG; - //写入文件需要开启权限 日志记录不强行做权限判断 - private static final boolean SAVE_FILE = false; - - public static void i(String tag, String msg) { - if (LOG_ENABLE) { - Log.i(tag, msg); - if (SAVE_FILE) { - writeLogtoFile(tag, msg); - } - } - } - - public static void v(String tag, String msg) { - if (LOG_ENABLE) { - Log.v(tag, msg); - } - } - - public static void d(String tag, String msg) { - if (LOG_ENABLE) { - Log.d(tag, msg); - if (SAVE_FILE) { - writeLogtoFile(tag, msg); - } - } - } - - public static void w(String tag, String msg) { - if (LOG_ENABLE) { - Log.w(tag, msg); - if (SAVE_FILE) { - writeLogtoFile(tag, msg); - } - } - } - - public static void e(String tag, String msg) { - if (LOG_ENABLE) { - Log.e(tag, msg); - if (SAVE_FILE) { - writeLogtoFile(tag, msg); - } - } - } - - /** - * 將日志保存到文件中 - * - * @param tag - * @param text - */ - private static void writeLogtoFile(String tag, String text) {// 新建或打开日志文件 - SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm", Locale.CHINA); - String needWriteMessage = tag + ": " + text; - try { - File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "com.sinata.qkt.log", format.format(System.currentTimeMillis())+".txt"); - File parentFile = file.getParentFile(); - if (!parentFile.exists()) { - boolean mkdirs = parentFile.mkdirs(); - } - if (!file.exists()) { - boolean newFile = file.createNewFile(); - } - try { - FileWriter filerWriter = new FileWriter(file, true);// 后面这个参数代表是不是要接上文件中原来的数据,不进行覆盖 - BufferedWriter bufWriter = new BufferedWriter(filerWriter); - bufWriter.write(needWriteMessage); - bufWriter.newLine(); - bufWriter.close(); - filerWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/NJobService.java b/rxnetty/src/main/java/cn/sinata/rxnetty/NJobService.java deleted file mode 100644 index 2b616c7..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/NJobService.java +++ /dev/null @@ -1,135 +0,0 @@ -package cn.sinata.rxnetty; - -import android.Manifest; -import android.annotation.TargetApi; -import android.app.ActivityManager; -import android.app.job.JobInfo; -import android.app.job.JobParameters; -import android.app.job.JobScheduler; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.os.Build; -import androidx.core.content.ContextCompat; - -import java.util.List; - -/** - * - * Created by liaoxiang on 17/1/22. - */ - -@TargetApi(Build.VERSION_CODES.LOLLIPOP) -public class NJobService extends android.app.job.JobService { - - @Override - public void onCreate() { - super.onCreate(); - jobScheduler(); - } - - public void jobScheduler() { - try { - int id = 2010; - JobInfo.Builder builder = new JobInfo.Builder(id, - new ComponentName(getPackageName(), NJobService.class.getName())); - builder.setPeriodic(60000); - builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); - if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_BOOT_COMPLETED) == PackageManager.PERMISSION_GRANTED) { - builder.setPersisted(true); - } - JobScheduler jobScheduler = (JobScheduler) this.getSystemService(Context.JOB_SCHEDULER_SERVICE); - jobScheduler.schedule(builder.build()); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - System.err.println("-----p name ---0--->"+getPackageName()); - //如果app已经没有运行,停止 - if (!isAppRun(this, getPackageName())) { - stopSelf(); - return START_NOT_STICKY; - } - if (Build.VERSION.SDK_INT >= 24) { - if (!isServiceWork(this, "cn.sinata.rxnetty.CoreService")) { - this.startService(new Intent(this.getApplicationContext(), CoreService.class)); -// this.jobFinished(params, false); - } - } - return START_NOT_STICKY; - } - - @Override - public boolean onStartJob(JobParameters params) { - System.err.println("-----p name --1---->"+getPackageName()); - //如果app已经没有运行,停止 - if (!isAppRun(this, getPackageName())) { - stopSelf(); - return false; - } - if (!isServiceWork(this, "cn.sinata.rxnetty.CoreService")) { - this.startService(new Intent(this.getApplicationContext(), CoreService.class)); - this.jobFinished(params, false); - } - return false; - } - - @Override - public boolean onStopJob(JobParameters params) { - return false; - } - - // 判断服务是否正在运行 - public boolean isServiceWork(Context mContext, String serviceName) { - boolean isWork = false; - ActivityManager myAM = (ActivityManager) mContext - .getSystemService(Context.ACTIVITY_SERVICE); - if (myAM == null) { - return false; - } - List<ActivityManager.RunningServiceInfo> myList = myAM.getRunningServices(100); - if (myList.size() <= 0) { - return false; - } - for (int i = 0; i < myList.size(); i++) { - String mName = myList.get(i).service.getClassName(); - if (mName.equals(serviceName)) { - isWork = true; - break; - } - } - return isWork; - } - - // 判断app是否正在运行 - public boolean isAppRun(Context mContext, String packegeName) { - boolean isWork = false; - ActivityManager myAM = (ActivityManager) mContext - .getSystemService(Context.ACTIVITY_SERVICE); - if (myAM == null) { - return false; - } - List<ActivityManager.RunningTaskInfo> myList = myAM.getRunningTasks(100); - if (myList.size() <= 0) { - return false; - } - for (int i = 0; i < myList.size(); i++) { - String mName = myList.get(i).baseActivity.getPackageName(); - if (mName.equals(packegeName)) { - isWork = true; - break; - } - } - return isWork; - } - - @Override - public void onDestroy() { - super.onDestroy(); - System.err.println("-------onDestroy--job-->"); - } -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java b/rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java deleted file mode 100644 index 9ec3989..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java +++ /dev/null @@ -1,182 +0,0 @@ -package cn.sinata.rxnetty; - -import android.app.job.JobScheduler; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.ServiceConnection; -import android.os.Build; -import android.os.IBinder; - -import java.util.ArrayList; - -/** - * 使用的是rxjava1。而不是rxjava2。所以尽量不要在主项目中使用rxjava1相关类。以免交叉。不好维护修改。 - */ - -public class NettyClient { - - public boolean isStop = false; - private Context mContext; - private ArrayList<OnMessageListener> listeners ; - private OnSendListener sendListener; - private OnConnectListener connectListener; - private OnCheckListener onCheckListener; - - public void init(Context context,String server,int port) { - init(context,server,port,false); - } - - public void init(Context context,String server,int port,boolean isStartForeground) { - mContext = context.getApplicationContext(); - Config.SOCKET_SERVER = server; - Config.SOCKET_PORT = port; - Config.isStartForeground= isStartForeground; - } - - public OnConnectListener getConnectListener() { - return connectListener; - } - - private static final class Singleton { - private final static NettyClient INSTANCE = new NettyClient(); - } - - public static NettyClient getInstance() { - return Singleton.INSTANCE; - } - - ArrayList<OnMessageListener> getListeners() { - return listeners; - } - - - - /** - * 添加消息监听 - * @param listener - */ - public void addOnMessageListener(OnMessageListener listener) { - if (listeners == null) { - listeners = new ArrayList<>(); - } - if (listener != null && !listeners.contains(listener)) { - listeners.add(listener); - } - } - - /** - * 连接完成监听 - * @param listener - */ - public void setOnConnectListener(OnConnectListener listener) { - this.connectListener = listener; - } - - /** - * 移除消息监听 - * @param listener - */ - public void removeOnMessageListener(OnMessageListener listener) { - if (listeners == null) { - return; - } - if (listener != null && listeners.contains(listener)) { - listeners.remove(listener); - } - } - - void setSendListener(OnSendListener listener) { - this.sendListener = listener; - } - - void setOnCheckListener(OnCheckListener listener) { - this.onCheckListener = listener; - } - - /** - * 发送消息给服务器 - * @param msg - */ - public void sendMessage(String msg) { - if (sendListener != null) { - sendListener.onSend(msg); - } - } - - /** - * 检测netty连接状况 - */ - public void checkNettyState() { - if (onCheckListener != null) { - onCheckListener.doCheck(); - } - } - - public void startService() { - if (mContext == null) { - return; - } - if (!isStop) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - try { - Intent intent = new Intent(this.getContext(), NJobService.class); - this.mContext.stopService(intent); - } catch (Exception e) { - e.printStackTrace(); - } - } else { - this.mContext.unbindService(serviceConnection); - this.mContext.stopService(new Intent(this.mContext, CoreService.class)); - } - } - isStop = false; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - try { - Intent intent = new Intent(this.getContext(), NJobService.class); - this.mContext.startService(intent); - this.mContext.bindService(intent,serviceConnection, Context.BIND_AUTO_CREATE); - } catch (Exception e) { - e.printStackTrace(); - } - } else { - this.mContext.startService(new Intent(this.mContext, CoreService.class)); - } - } - private ServiceConnection serviceConnection = new ServiceConnection() { - - @Override - public void onServiceConnected(ComponentName name, IBinder service) { - } - - @Override - public void onServiceDisconnected(ComponentName name) { - - } - }; - - public void stopService() { - if (mContext == null) { - return; - } - isStop = true; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - try { - JobScheduler jobScheduler = (JobScheduler) this.mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE); - if(jobScheduler!=null) - jobScheduler.cancel(11); - this.mContext.stopService(new Intent(this.mContext, NJobService.class)); - this.mContext.unbindService(serviceConnection); - this.mContext.stopService(new Intent(this.mContext, CoreService.class)); - } catch (Exception e) { - e.printStackTrace(); - } - } else { - this.mContext.stopService(new Intent(this.mContext, CoreService.class)); - } - } - - private Context getContext() { - return mContext; - } -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/OnCheckListener.java b/rxnetty/src/main/java/cn/sinata/rxnetty/OnCheckListener.java deleted file mode 100644 index 5ca217e..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/OnCheckListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.sinata.rxnetty; - -/** - * 检查网络连接 - */ - -interface OnCheckListener { - void doCheck(); -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/OnConnectListener.java b/rxnetty/src/main/java/cn/sinata/rxnetty/OnConnectListener.java deleted file mode 100644 index 8e1923f..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/OnConnectListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.sinata.rxnetty; - -/** - * netty连接状态 - */ - -public interface OnConnectListener { - void onConnected(); -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/OnMessageListener.java b/rxnetty/src/main/java/cn/sinata/rxnetty/OnMessageListener.java deleted file mode 100644 index 0bc7fa3..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/OnMessageListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.sinata.rxnetty; - -/** - * netty消息监听器 - */ - -public interface OnMessageListener { - void onMessageReceived(String message); -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/OnSendListener.java b/rxnetty/src/main/java/cn/sinata/rxnetty/OnSendListener.java deleted file mode 100644 index d19a96e..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/OnSendListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.sinata.rxnetty; - -/** - * netty发送消息监听器 - */ - -public interface OnSendListener { - void onSend(String s); -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/WakeLockUtils.java b/rxnetty/src/main/java/cn/sinata/rxnetty/WakeLockUtils.java deleted file mode 100644 index 25bd726..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/WakeLockUtils.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.sinata.rxnetty; - -import android.content.Context; -import android.os.PowerManager; - -public class WakeLockUtils { - /** - * 设备电源锁。 - */ - private PowerManager.WakeLock mWakeLock; - - /** - * 申请设备电源锁 设置屏幕常亮 - */ - public final void acquireWakeLock(Context context) { - if (mWakeLock == null) { - PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, context.getPackageName()); - } - if (mWakeLock != null) { - //30分后自动释放设备锁 -// mWakeLock.acquire(30 * 60 * 1000L /*30 minutes*/); - mWakeLock.acquire(); - } - } - - /** - * 释放设备电源锁 - */ - public final void releaseWakeLock() { - if (mWakeLock != null) { - mWakeLock.release(); - mWakeLock = null; - } - } -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetChangeObserver.java b/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetChangeObserver.java deleted file mode 100644 index ad25f4c..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetChangeObserver.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.sinata.rxnetty.netStatus; - -/** - * 网络改变 - */ -public class NetChangeObserver { - - /** - * when network connected callback - */ - public void onNetConnected(NetUtils.NetType type) { - - } - - /** - * when network disconnected callback - */ - public void onNetDisConnect() { - - } -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java b/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java deleted file mode 100644 index 5e32442..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java +++ /dev/null @@ -1,110 +0,0 @@ -package cn.sinata.rxnetty.netStatus; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; - -import java.util.ArrayList; - -/** - *网络状态监听 - */ -public class NetStateReceiver extends BroadcastReceiver { - - public final static String CUSTOM_ANDROID_NET_CHANGE_ACTION = "cn.sinata.net.conn.CONNECTIVITY_CHANGE"; - private final static String ANDROID_NET_CHANGE_ACTION = "android.net.conn.CONNECTIVITY_CHANGE"; - private static boolean isNetAvailable = false; - private static NetUtils.NetType mNetType; - private static ArrayList<NetChangeObserver> mNetChangeObservers = new ArrayList<>(); - private static BroadcastReceiver mBroadcastReceiver; - - private static BroadcastReceiver getReceiver() { - if (null == mBroadcastReceiver) { - synchronized (NetStateReceiver.class) { - if (null == mBroadcastReceiver) { - mBroadcastReceiver = new NetStateReceiver(); - } - } - } - return mBroadcastReceiver; - } - - @Override - public void onReceive(Context context, Intent intent) { - mBroadcastReceiver = NetStateReceiver.this; - if (intent.getAction().equalsIgnoreCase(ANDROID_NET_CHANGE_ACTION) || intent.getAction().equalsIgnoreCase(CUSTOM_ANDROID_NET_CHANGE_ACTION)) { -// Utils.systemErr("111111111"); - if (!NetUtils.isNetworkAvailable(context)) { - isNetAvailable = false; - } else { - isNetAvailable = true; - mNetType = NetUtils.getAPNType(context); - } - notifyObserver(); - } - } - - public static void registerNetworkStateReceiver(Context mContext) { - IntentFilter filter = new IntentFilter(); - filter.addAction(CUSTOM_ANDROID_NET_CHANGE_ACTION); - filter.addAction(ANDROID_NET_CHANGE_ACTION); - mContext.getApplicationContext().registerReceiver(getReceiver(), filter); - } - - public static void checkNetworkState(Context mContext) { - Intent intent = new Intent(); - intent.setAction(CUSTOM_ANDROID_NET_CHANGE_ACTION); - mContext.sendBroadcast(intent); - } - - public static void unRegisterNetworkStateReceiver(Context mContext) { - if (mBroadcastReceiver != null) { - try { - mContext.getApplicationContext().unregisterReceiver(mBroadcastReceiver); - } catch (Exception e) { - e.printStackTrace(); - } - } - - } - - public static boolean isNetworkAvailable() { - return isNetAvailable; - } - - public static NetUtils.NetType getNetType() { - return mNetType; - } - - private void notifyObserver() { - if (!mNetChangeObservers.isEmpty()) { - int size = mNetChangeObservers.size(); - for (int i = 0; i < size; i++) { - NetChangeObserver observer = mNetChangeObservers.get(i); - if (observer != null) { - if (isNetworkAvailable()) { - observer.onNetConnected(mNetType); - } else { - observer.onNetDisConnect(); - } - } - } - } - } - - public static void registerObserver(NetChangeObserver observer) { - if (mNetChangeObservers == null) { - mNetChangeObservers = new ArrayList<>(); - } - mNetChangeObservers.add(observer); - } - - public static void removeRegisterObserver(NetChangeObserver observer) { - if (mNetChangeObservers != null) { - if (mNetChangeObservers.contains(observer)) { - mNetChangeObservers.remove(observer); - } - } - } -} \ No newline at end of file diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetUtils.java b/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetUtils.java deleted file mode 100644 index fc2e8ce..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetUtils.java +++ /dev/null @@ -1,103 +0,0 @@ -package cn.sinata.rxnetty.netStatus; - -import android.Manifest; -import android.content.Context; -import android.content.pm.PackageManager; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; -import androidx.core.content.ContextCompat; - -import java.util.Locale; - -/** - * 网络状态工具 - */ -public class NetUtils { - - public static enum NetType { - WIFI, CMNET, CMWAP, NONE - } - - public static boolean isNetworkAvailable(Context context) { - if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) { - return false; - } - ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - if (mgr == null) { - return false; - } - NetworkInfo[] info = mgr.getAllNetworkInfo(); - if (info != null) { - for (NetworkInfo anInfo : info) { - if (anInfo.getState() == NetworkInfo.State.CONNECTED) { - return true; - } - } - } - return false; - } - - public static boolean isNetworkConnected(Context context) { - if (context != null) { - ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); - if (mNetworkInfo != null) { - return mNetworkInfo.isAvailable(); - } - } - return false; - } - - public static boolean isWifiConnected(Context context) { - if (context != null) { - ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - if (mWiFiNetworkInfo != null) { - return mWiFiNetworkInfo.isAvailable(); - } - } - return false; - } - - public static boolean isMobileConnected(Context context) { - if (context != null) { - ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); - if (mMobileNetworkInfo != null) { - return mMobileNetworkInfo.isAvailable(); - } - } - return false; - } - - public static int getConnectedType(Context context) { - if (context != null) { - ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); - if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { - return mNetworkInfo.getType(); - } - } - return -1; - } - - public static NetType getAPNType(Context context) { - ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); - if (networkInfo == null) { - return NetType.NONE; - } - int nType = networkInfo.getType(); - - if (nType == ConnectivityManager.TYPE_MOBILE) { - if (networkInfo.getExtraInfo()!=null && networkInfo.getExtraInfo().toLowerCase(Locale.getDefault()).equals("cmnet")) { - return NetType.CMNET; - }else { - return NetType.CMWAP; - } - } else if (nType == ConnectivityManager.TYPE_WIFI) { - return NetType.WIFI; - } - return NetType.NONE; - } -} diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/pipeline/LengthFieldConfigurator.java b/rxnetty/src/main/java/cn/sinata/rxnetty/pipeline/LengthFieldConfigurator.java deleted file mode 100644 index 4d40763..0000000 --- a/rxnetty/src/main/java/cn/sinata/rxnetty/pipeline/LengthFieldConfigurator.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.sinata.rxnetty.pipeline; - -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelPipeline; -import io.netty.handler.codec.LengthFieldBasedFrameDecoder; -import io.netty.handler.codec.LengthFieldPrepender; -import io.reactivex.netty.pipeline.PipelineConfigurator; - -public class LengthFieldConfigurator implements PipelineConfigurator<ByteBuf,ByteBuf> { - - @Override - public void configureNewPipeline(ChannelPipeline pipeline) { - pipeline.addLast("decoder", new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE, 0, 4, 0, 4)); - pipeline.addLast("encoder", new LengthFieldPrepender(4)); - } -} \ No newline at end of file diff --git a/rxnetty/src/main/res/values/strings.xml b/rxnetty/src/main/res/values/strings.xml deleted file mode 100644 index cf78ed3..0000000 --- a/rxnetty/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ -<resources> - <string name="app_name">RxNetty</string> -</resources> -- Gitblit v1.7.1