From 86cc291dc835f6f33fd6cf04caf80d4e49c8b804 Mon Sep 17 00:00:00 2001 From: Fanhuitong <981964879@qq.com> Date: Fri, 31 May 2024 10:47:24 +0800 Subject: [PATCH] =?UTF-8?q?version:5.6=20fix:=20update:=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=EF=BC=8C=E4=BC=98=E5=8C=96databinding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 91 +------- app/keystore/G10PMTK11.jks | Bin 2352 -> 0 bytes app/keystore/TeclastMTK12.jks | Bin 2553 -> 0 bytes app/keystore/mtkAndroid12.keystore | Bin 2701 -> 0 bytes app/keystore/xueshibaoos.jks | Bin 2552 -> 0 bytes app/keystore/zhanxun.keystore | Bin 2617 -> 0 bytes app/src/main/AndroidManifest.xml | 71 +++++- .../uiuios/aios/activity/APPListActivity.java | 20 +- .../uiuios/aios/activity/AddIconActivity.java | 19 +- .../uiuios/aios/activity/AddItemActivity.java | 22 +- .../uiuios/aios/activity/AddressActivity.java | 13 +- .../uiuios/aios/activity/ArticleActivity.java | 34 +-- .../uiuios/aios/activity/ControlActivity.java | 28 +-- .../aios/activity/DailyAppActivity.java | 19 +- .../uiuios/aios/activity/DetailsActivity.java | 12 +- .../aios/activity/EmergencyActivity.java | 3 + .../uiuios/aios/activity/ExpressActivity.java | 12 +- .../uiuios/aios/activity/GoodsActivity.java | 17 +- .../aios/activity/InfoListActivity.java | 30 +-- .../aios/activity/InformationActivity.java | 19 +- .../activity/InformationDetailsActivity.java | 20 +- .../uiuios/aios/activity/OrderActivity.java | 89 +++++-- .../aios/activity/OrderListActivity.java | 12 +- .../com/uiuios/aios/activity/PayActivity.java | 11 +- .../aios/activity/QuickAppActivity.java | 19 +- .../aios/activity/ScreenLockActivity.java | 19 +- .../aios/activity/SpikeListActivity.java | 32 +-- .../uiuios/aios/activity/SplashActivity.java | 23 +- .../aios/activity/alarm/AlarmActivity.java | 22 +- .../alarm/port/PortAlarmActivity.java | 7 +- .../alarmclock/AlarmClockActivity.java | 10 - .../alarmclock/AlarmClockAddActivity.java | 10 - .../port/PortAlarmClockAddActivity.java | 7 +- .../activity/code/FamilySpaceActivity.java | 20 +- .../activity/contact/AddContactActivity.java | 18 +- .../activity/contact/ContactActivity.java | 19 +- .../aios/activity/dialer/DialerActivity.java | 19 +- .../activity/location/LocationAcivity.java | 27 +-- .../aios/activity/main/BaseMainActivity.java | 146 +++++++++--- .../aios/activity/main/MainActivity.java | 16 +- .../aios/activity/main/PhoneMainActivity.java | 11 +- .../activity/weather/WeatherActivity.java | 13 +- .../activity/weather/WeatherViewModel.java | 3 +- .../activity/wifi/WiFiManagerActivity.java | 17 +- .../uiuios/aios/adapter/DailyAppAdapter.java | 2 +- .../com/uiuios/aios/base/BaseActivity.java | 32 --- .../com/uiuios/aios/base/BaseApplication.java | 2 + .../aios/base/BaseDataBindingActivity.java | 39 +++- .../com/uiuios/aios/base/BaseFragment.java | 109 +-------- .../uiuios/aios/base/BaseLazyFragment.java | 100 ++++++++ .../aios/base/BaseTransparentActivity.java | 11 +- .../aios/base/{ => rx}/BaseRxActivity.java | 2 +- .../uiuios/aios/base/rx/BaseRxFragment.java | 123 ++++++++++ .../BaseRxService.java} | 6 +- .../com/uiuios/aios/config/CommonConfig.java | 3 + .../uiuios/aios/fragment/AppListFragment.java | 8 +- .../uiuios/aios/fragment/ControlFragment.java | 5 +- .../aios/fragment/custom/CustomFragment.java | 157 +------------ .../aios/fragment/home/HomeFragment.java | 10 +- .../aios/fragment/second/SecondFragment.java | 2 +- .../com/uiuios/aios/manager/AmapManager.java | 217 ++++++++++++++++++ .../uiuios/aios/manager/RemoteManager.java | 148 ++---------- .../aios/network/NetInterfaceManager.java | 8 + .../com/uiuios/aios/network/UrlAddress.java | 2 + .../aios/network/api/sn/UpdateAddressApi.java | 20 ++ .../uiuios/aios/service/main/MainService.java | 9 +- app/src/main/res/values/styles.xml | 4 +- niceimageview/build.gradle | 7 - verification-view/build.gradle | 19 -- 69 files changed, 967 insertions(+), 1078 deletions(-) delete mode 100644 app/keystore/G10PMTK11.jks delete mode 100644 app/keystore/TeclastMTK12.jks delete mode 100644 app/keystore/mtkAndroid12.keystore delete mode 100644 app/keystore/xueshibaoos.jks delete mode 100644 app/keystore/zhanxun.keystore delete mode 100644 app/src/main/java/com/uiuios/aios/base/BaseActivity.java create mode 100644 app/src/main/java/com/uiuios/aios/base/BaseLazyFragment.java rename app/src/main/java/com/uiuios/aios/base/{ => rx}/BaseRxActivity.java (98%) create mode 100644 app/src/main/java/com/uiuios/aios/base/rx/BaseRxFragment.java rename app/src/main/java/com/uiuios/aios/base/{BaseService.java => rx/BaseRxService.java} (90%) create mode 100644 app/src/main/java/com/uiuios/aios/manager/AmapManager.java create mode 100644 app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAddressApi.java diff --git a/app/build.gradle b/app/build.gradle index 2e942a4..e04528c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "com.uiuios.aios" minSdkVersion 24 targetSdkVersion 29 - versionCode 46 - versionName "5.5" + versionCode 47 + versionName "5.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -27,8 +27,7 @@ android { } manifestPlaceholders = [ - XG_ACCESS_ID : "1500033697", - XG_ACCESS_KEY: "A0PFUHEPEKKM", + AMAP_KEY : "372937d213ff288dc150c31967a200cd" ] } @@ -59,89 +58,9 @@ android { keyPassword "123456" v2SigningEnabled false } - - zhanRui { - storeFile file("keystore/zhanxun.keystore") - storePassword "123456" - keyAlias "zhanxun" - keyPassword "123456" - v1SigningEnabled true - v2SigningEnabled true - } - - mtk { - storeFile file("keystore/xueshibaoos.jks") - storePassword "123456" - keyAlias "xueshibaoos" - keyPassword "123456" - v2SigningEnabled false - } - - mtk12 { - storeFile file("keystore/mtkAndroid12.keystore") - storePassword "123456" - keyAlias "mtk12" - keyPassword "123456" - v1SigningEnabled true - v2SigningEnabled true - } - - MTK8183 { - storeFile file("keystore/TeclastMTK12.jks") - storePassword "123456" - keyAlias "teclastmtk12" - keyPassword "123456" - v1SigningEnabled true - v2SigningEnabled true - } - - G10P { - storeFile file("keystore/G10PMTK11.jks") - storePassword "123456" - keyAlias "G10PMTK11" - keyPassword "123456" - v1SigningEnabled true - v2SigningEnabled true - } } buildTypes { -// MTK8183Debug.initWith(debug) -// MTK8183Debug { -// versionNameSuffix "-debug" -// debuggable true -// signingConfig signingConfigs.MTK8183 -// } -// -// MTK8183Release.initWith(release) -// MTK8183Release { -// signingConfig signingConfigs.MTK8183 -// } -// -// G10PDebug.initWith(debug) -// G10PDebug { -// versionNameSuffix "-debug" -// debuggable true -// signingConfig signingConfigs.G10P -// } -// -// G10PRelease.initWith(release) -// G10PRelease { -// signingConfig signingConfigs.G10P -// } -// -// zhanRuiRelease.initWith(release) -// zhanRuiRelease { -// signingConfig signingConfigs.zhanRui -// } -// -// zhanRuiDebug.initWith(debug) -// zhanRuiDebug { -// versionNameSuffix "-debug" -// debuggable true -// signingConfig signingConfigs.zhanRui -// } - debug { // 显示Log versionNameSuffix "-debug" @@ -237,8 +156,12 @@ dependencies { //bindView implementation 'com.jakewharton:butterknife:10.2.3' annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' + implementation 'com.jakewharton.rxbinding4:rxbinding:4.0.0' + implementation 'com.jeremyliao:live-event-bus-x:1.7.3' implementation 'com.facebook.rebound:rebound:0.3.8' + //高德地图定位 + implementation 'com.amap.api:location:5.1.0' //百度地图 // implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8' //MMKV diff --git a/app/keystore/G10PMTK11.jks b/app/keystore/G10PMTK11.jks deleted file mode 100644 index 324fa3165901bfe56095885d02ba319749535507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2352 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 diff --git a/app/keystore/mtkAndroid12.keystore b/app/keystore/mtkAndroid12.keystore deleted file mode 100644 index 860f30f3fb87fbfeac382d4ac144be5ba998cd0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2701 zcmY+EWmFRk7sof)7>t^f-~dHRLfi&Ohe$U#N~ENu#ss7!=fp{k5h5Z88$+c*LP|io zQzRYIC?O((U_89NIluqC_uKs;aL|WzKzalYs>Q%08K)n2zzT!_^KejE z5Dt3j1WO@sV9$R=U|SFlj6T8UCuPjQ{J$+0D3C4>2RcUJKnDm32I&9s$#FP{OBXny zY;ISh=C^0pCkEUGl#HDAq@xG4n}cwmp2adw32An(^%5o9l9H8q*Oi_MJUKk&?s6w+ z{zj9b_#gPtzz-Ze{D;H%8s6@JCxSoGF>}?m&7-Qicg@lU&M$V`lNQ?D<`z!n8>%d$FHEqbu3Wb>I&j=+Tjy|za%@lo{5mF8Ycy2|3)p|^XI%vb%H(6E zAs_15-!`y4Z|-*}$_DwvhBKCe&m@KWzod7ndeT+)N>9=AljZHL_u#-N(z}a>}(RnyKEsAW@`~wXxd7rc?Okt+zExEY8;dmZME8zm@G3& zi-F5LhBrWRWcl&a_5cB5L*C$)L@w)tfQDEbaKD<+SEqP(f^8$@;<+dGS2*9aS0@7& zy11FWHN{8L<{4gSUGLUni`P^8CGs=nv7VXIzJBlXE|t5kNw8mnhg$ZCn zG3?;z#m3v0g>t7RU9Cf$9xX>v-^a*w$3_F}SSalJ_P7BeTIbcO`_Y_PkWZy3tK(fu z@p+33W62w{{q!Lh}mYD=_`vk6oOh&RK?_fvN<3u*y zwb6p3L(b`LD33qLxWWcC;}_iq=!p@Nha|^`l1WmLSrRbVJM0)FMaId&@YR!e>YxuY zsm(@*@8`QFl~(8W%#Py4FQGHnDzaDj#}lw-8EC^*3{i~TjP#-hXNkfJcx>oNpm_tw znK0;_IpD%0+)YA&zON=~MNTW_y*}C5m%Y=BzgIWYDV5{OJhK5>azIt|RmN}t8xySw z^1&e6V2dZf7&D^XX!?IZu3DqV|mC5NPc<=K5LcyQ2d zzZY&=<6T!19qiH7Upv&A@W!U!$ge`fwr}2% zO-ZPK4w-VWDq3N5jgG2Hi;UDW;C|gJbK$kPru7Gr*P#I|I0>Um8ur$QhaXcD7426( z6QqhdX2>}mnxx*+e0}dGo*e~YT0H~5Tts{B%zX3+;eDUd%beA;Tjwl<`;?^53X0a0 z)mB!(Y4{1558RgWEI8b*<&Q&(fmWqa2|_f>jW zKiry(%)&roR~HM@uiTY8!3Ojt{1k5Qk=c zkr!Ko37NN^O||@IlBSRmsGKWD$e{`~X1!9{>`7LJ0j6aU;1v9B3~;_jAb03J4Smi9*RMDaoCvv+3_4 z2*Zg@OHa^CIw0Vrk^f16|MDxtfBc%!a&Ym3u4$0inBI|hOTB1BM6vFF{ThP<-AWgo z){Zw0hPnIj?v6<$5c|j9dB{UJ^y+4^mL_1WTSv{a`EWe#v5Zx(M;@~atf@|aBTJp| z_<;OO>nVtlq;{9@3*ej(Bk{+bO%+sSQSi$qgvBr&m$KOBJi-1>NulKm^8;*# z#Z_g4i*6knH=Q1y39VW>1aYf;jIW?R^<1KUZQNxdLK*u=pHwcZdih#+XkReYGp((} z+jw289q65C3lyfm?C-%^JaU}QlCKt!SWcS0Rdu%L`~r4Kl5JpX#g)yyRC#J!2geCd z`YK2;+djLJ_GsqP9VKfsL4$Z(!3b^3AM&piajB^wM9p+kP(cWF+9-}flRhl~t|fo} zHeHOGyK|QQsqshYbl5j^P|^I0*bMu~%(i?+ zp%}7hz>*@=@yGd;+MYgpv`5Kcp+S=`v_%CdFn7T3vGH^cVS-3Gqiu_=g z0(!V~BgW%1FAGS*W6Nsrh6|uswN)^Jd2>%#Ekm0TIypLet8l=IB2-ra8+MCxzlYux>@xz(W@qEO2f zfM@aTt>&Z|re`?F2Yhg$&4O>%72=|QV(n}>CYU>O1bR`f|!WenW*C>n;vO+H-D&uaYCVG^;#iRB0cpN{_gn6n;jeV$>HRMbP#;Hk(4QH$ z@D~u>nB>&^=Ew_jzt`J*OpbQZW$K2t?ybORextTs)SE8}=Kcy3W{Y|#V;}bG=P}qV zPz;yYco>hh%RIOzY@wC!0i|SJc0{{)v?Dh7lykFjL|RTatvzU0V=VojO1LrDPywj`)Mj*9P$00ueP1+vgUr7GUPN~I-y>7!hAoxvv_C% z8OQ8cpzxVUJ9rPZ1i+zzyJ^z4+lJk vv2;?yLkC@v(XBl0=8k9waaBLz6k>3SSG!J>LysK1pJk5t38te5#^wD5Jca3{ diff --git a/app/keystore/xueshibaoos.jks b/app/keystore/xueshibaoos.jks deleted file mode 100644 index b94a626a1e59b41e0d2b0e1725c1d164b6a8f5ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2552 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 KiHH~&lJ##+rq5Ua diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 040bd19..cae341c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,6 +28,8 @@ + + @@ -68,6 +70,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + android:name="com.amap.api.v2.apikey" + android:value="${AMAP_KEY}" /> + + + + + + + + + + + + + mGoodsTypeMap; - /** - * 设置布局 - */ - @Override - protected int getLayoutId() { - return R.layout.activity_goods; - } - /** - * @return 是否是黑色状态栏 - */ @Override - protected boolean setNightMode() { + public boolean setNightMode() { return true; } @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + mBinding = DataBindingUtil.setContentView(this, R.layout.activity_goods); } /** @@ -67,7 +57,6 @@ public class GoodsActivity extends BaseDataBindingActivity { */ @Override public void initView() { - mBinding = DataBindingUtil.setContentView(this, getLayoutId()); mBinding.setListener(new Listener()); // UltimateBarX.statusBarOnly(this) // .transparent() diff --git a/app/src/main/java/com/uiuios/aios/activity/InfoListActivity.java b/app/src/main/java/com/uiuios/aios/activity/InfoListActivity.java index 69262a2..28cc641 100644 --- a/app/src/main/java/com/uiuios/aios/activity/InfoListActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/InfoListActivity.java @@ -4,15 +4,15 @@ import android.util.Log; import android.view.View; import android.widget.ImageView; +import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; -import com.trello.rxlifecycle4.android.FragmentEvent; import com.uiuios.aios.R; import com.uiuios.aios.adapter.ArticleAdapter; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.bean.ArticleInfo; import com.uiuios.aios.bean.ArticleList; import com.uiuios.aios.bean.BaseResponse; @@ -27,7 +27,7 @@ import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -public class InfoListActivity extends BaseActivity { +public class InfoListActivity extends BaseDataBindingActivity { @BindView(R.id.iv_back) ImageView iv_back; @BindView(R.id.iv1) @@ -38,28 +38,8 @@ public class InfoListActivity extends BaseActivity { private ArticleAdapter mArticleAdapter; @Override - public int getLayoutId() { - UltimateBarX.statusBar(this) - .transparent() - .colorRes(R.color.colorPrimaryDark) - .light(true) - .apply(); - UltimateBarX.navigationBar(this) - .transparent() - .colorRes(R.color.colorPrimaryDark) - .light(true) - .apply(); - return R.layout.activity_info_list; - } - - @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + DataBindingUtil.setContentView(this,R.layout.activity_info_list); } @Override diff --git a/app/src/main/java/com/uiuios/aios/activity/InformationActivity.java b/app/src/main/java/com/uiuios/aios/activity/InformationActivity.java index 94a2a64..ca3b016 100644 --- a/app/src/main/java/com/uiuios/aios/activity/InformationActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/InformationActivity.java @@ -50,31 +50,18 @@ public class InformationActivity extends BaseDataBindingActivity { private HashMap mCategoryMap; - /** - * 设置布局 - */ @Override - protected int getLayoutId() { - return R.layout.activity_information; - } - - /** - * @return 是否是黑色状态栏 - */ - @Override - protected boolean setNightMode() { + public boolean setNightMode() { return true; } - @Override - protected boolean setfitWindow() { - return false; + protected void initDataBinding() { + mBinding = DataBindingUtil.setContentView(this, R.layout.activity_information); } @Override public void initView() { - mBinding = DataBindingUtil.setContentView(this, getLayoutId()); ButterKnife.bind(this); // UltimateBarX.statusBarOnly(this) // .transparent() diff --git a/app/src/main/java/com/uiuios/aios/activity/InformationDetailsActivity.java b/app/src/main/java/com/uiuios/aios/activity/InformationDetailsActivity.java index c67d91f..29edaad 100644 --- a/app/src/main/java/com/uiuios/aios/activity/InformationDetailsActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/InformationDetailsActivity.java @@ -11,30 +11,17 @@ import com.uiuios.aios.databinding.ActivityInfoDetailsBinding; public class InformationDetailsActivity extends BaseDataBindingActivity { -// @BindView(R.id.tv_title) -// TextView tv_title; -// @BindView(R.id.tv_time) -// TextView tv_time; -// @BindView(R.id.niceImageView) -// NiceImageView niceImageView; -// @BindView(R.id.tv_content) -// TextView tv_content; - private ActivityInfoDetailsBinding mBinding; - @Override - protected int getLayoutId() { - return R.layout.activity_info_details; - } @Override - protected boolean setNightMode() { + public boolean setNightMode() { return true; } @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + mBinding = DataBindingUtil.setContentView(this, R.layout.activity_info_details); } /** @@ -42,7 +29,6 @@ public class InformationDetailsActivity extends BaseDataBindingActivity { */ @Override public void initView() { - mBinding = DataBindingUtil.setContentView(this, getLayoutId()); } diff --git a/app/src/main/java/com/uiuios/aios/activity/OrderActivity.java b/app/src/main/java/com/uiuios/aios/activity/OrderActivity.java index 602988d..e4d7709 100644 --- a/app/src/main/java/com/uiuios/aios/activity/OrderActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/OrderActivity.java @@ -63,19 +63,15 @@ public class OrderActivity extends BaseDataBindingActivity { ActivityResultLauncher launcher; - @Override - protected int getLayoutId() { - return R.layout.activity_order; - } @Override - protected boolean setNightMode() { + public boolean setNightMode() { return true; } @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + mBinding = DataBindingUtil.setContentView(this, R.layout.activity_order); } /** @@ -83,7 +79,6 @@ public class OrderActivity extends BaseDataBindingActivity { */ @Override public void initView() { - mBinding = DataBindingUtil.setContentView(this, getLayoutId()); launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override public void onActivityResult(ActivityResult result) { @@ -186,19 +181,6 @@ public class OrderActivity extends BaseDataBindingActivity { GoodsInfo goodsInfo = (GoodsInfo) intent.getSerializableExtra("GoodsInfo"); if (goodsInfo == null) return; - mAddressId = mMMKV.decodeInt(CommonConfig.MAP_DEFAULT_ADDRESS_ID_KEY, -1); - Log.e(TAG, "initData: mAddressId = " + mAddressId); - String addressJson = mMMKV.decodeString(CommonConfig.MAP_DEFAULT_ADDRESS_JSON_KEY, ""); - Gson gson = new Gson(); - Type type = new TypeToken() { - }.getType(); - mAddressInfo = gson.fromJson(addressJson, type); - if (mAddressInfo != null) { - mBinding.setAddressInfo(mAddressInfo); - String area = mAddressInfo.getArea(); - List areaList = new ArrayList<>(Arrays.asList(area.split(","))); - mBinding.tvAddress.setText(String.join(" ", areaList) + " " + mAddressInfo.getAddress()); - } mGoodsInfo = goodsInfo; mBinding.setGoodsInfo(mGoodsInfo); mBinding.tvPrice.setText("券后¥" + mGoodsInfo.getBuying_price()); @@ -212,6 +194,69 @@ public class OrderActivity extends BaseDataBindingActivity { creactOrder(); } }); + getAdrress(); + } + + @Override + protected void onResume() { + super.onResume(); + mAddressId = mMMKV.decodeInt(CommonConfig.MAP_DEFAULT_ADDRESS_ID_KEY, -1); + Log.e(TAG, "initData: mAddressId = " + mAddressId); + String addressJson = mMMKV.decodeString(CommonConfig.MAP_DEFAULT_ADDRESS_JSON_KEY, ""); + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + mAddressInfo = gson.fromJson(addressJson, type); + if (mAddressInfo != null) { + mBinding.setAddressInfo(mAddressInfo); + String area = mAddressInfo.getArea(); + List areaList = new ArrayList<>(Arrays.asList(area.split(","))); + mBinding.tvAddress.setText(String.join(" ", areaList) + " " + mAddressInfo.getAddress()); + } + + } + + private void getAdrress() { + NetInterfaceManager.getInstance().getAddressIndexObservable() + .subscribe(new Observer>>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAddressIndexObservable", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse> listBaseResponse) { + Log.e("getAddressIndexObservable", "onNext: " + listBaseResponse); + if (listBaseResponse.code == 200) { + List addressInfos = listBaseResponse.data; + if (addressInfos != null && addressInfos.size() != 0) { + AddressInfo defaultAddressInfo = addressInfos.get(0); + mMMKV.encode(CommonConfig.MAP_DEFAULT_ADDRESS_ID_KEY, defaultAddressInfo.getId()); + mMMKV.encode(CommonConfig.MAP_DEFAULT_ADDRESS_JSON_KEY, GsonUtils.toJSONString(defaultAddressInfo)); + mAddressInfo = defaultAddressInfo; + mAddressId = mAddressInfo.getId(); + mBinding.setAddressInfo(mAddressInfo); + String area = mAddressInfo.getArea(); + List areaList = new ArrayList<>(Arrays.asList(area.split(","))); + mBinding.tvAddress.setText(String.join(" ", areaList) + " " + mAddressInfo.getAddress()); + } else { + Toaster.show("没有获取到收货地址"); + } + } else { + Toaster.show("没有获取到收货地址"); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAddressIndexObservable", "onError: "); + } + + @Override + public void onComplete() { + Log.e("getAddressIndexObservable", "onComplete: "); + } + }); } private void creactOrder() { @@ -241,7 +286,7 @@ public class OrderActivity extends BaseDataBindingActivity { intent1.putExtra("OrderBean", orderBean); startActivity(intent1); } else { - Toaster.show("下单失败"); + Toaster.show(baseResponse.msg); } } diff --git a/app/src/main/java/com/uiuios/aios/activity/OrderListActivity.java b/app/src/main/java/com/uiuios/aios/activity/OrderListActivity.java index c87c0d7..2b8ac63 100644 --- a/app/src/main/java/com/uiuios/aios/activity/OrderListActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/OrderListActivity.java @@ -31,18 +31,13 @@ public class OrderListActivity extends BaseDataBindingActivity { private OrderAdapter mOrderAdapter; @Override - protected int getLayoutId() { - return R.layout.activity_order_list; - } - - @Override - protected boolean setNightMode() { + public boolean setNightMode() { return true; } @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + mBinding = DataBindingUtil.setContentView(this, R.layout.activity_order_list); } /** @@ -50,7 +45,6 @@ public class OrderListActivity extends BaseDataBindingActivity { */ @Override public void initView() { - mBinding = DataBindingUtil.setContentView(this, getLayoutId()); mOrderAdapter = new OrderAdapter(); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); diff --git a/app/src/main/java/com/uiuios/aios/activity/PayActivity.java b/app/src/main/java/com/uiuios/aios/activity/PayActivity.java index be883a8..c95f6ff 100644 --- a/app/src/main/java/com/uiuios/aios/activity/PayActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/PayActivity.java @@ -36,19 +36,15 @@ public class PayActivity extends BaseDataBindingActivity { private OrderBean mOrderBean; - @Override - protected int getLayoutId() { - return R.layout.activity_pay; - } @Override - protected boolean setNightMode() { + public boolean setNightMode() { return true; } @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pay); } /** @@ -56,7 +52,6 @@ public class PayActivity extends BaseDataBindingActivity { */ @Override public void initView() { - mBinding = DataBindingUtil.setContentView(this, getLayoutId()); mBinding.tvRefresh.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java b/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java index 89588a7..90fdc04 100644 --- a/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java @@ -5,13 +5,14 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.Configuration; +import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.uiuios.aios.BuildConfig; import com.uiuios.aios.R; import com.uiuios.aios.adapter.AppSelectedAdapter; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.bean.AppSelectBean; import com.uiuios.aios.view.GridSpaceItemDecoration; @@ -21,7 +22,7 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -public class QuickAppActivity extends BaseActivity { +public class QuickAppActivity extends BaseDataBindingActivity { private static final String TAG = QuickAppActivity.class.getSimpleName(); public static final String QUICK_APP_KEY = "QuickAppPackageKey"; @@ -34,18 +35,8 @@ public class QuickAppActivity extends BaseActivity { RecyclerView recyclerView; @Override - public int getLayoutId() { - return R.layout.activity_quick_app; - } - - @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + DataBindingUtil.setContentView(this,R.layout.activity_quick_app); } @Override diff --git a/app/src/main/java/com/uiuios/aios/activity/ScreenLockActivity.java b/app/src/main/java/com/uiuios/aios/activity/ScreenLockActivity.java index 306ac97..3f9ba75 100644 --- a/app/src/main/java/com/uiuios/aios/activity/ScreenLockActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/ScreenLockActivity.java @@ -16,17 +16,18 @@ import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.Nullable; +import androidx.databinding.DataBindingUtil; import com.tuo.customview.VerificationCodeView; import com.uiuios.aios.R; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.config.CommonConfig; import com.uiuios.aios.manager.RemoteManager; import butterknife.BindView; import butterknife.ButterKnife; -public class ScreenLockActivity extends BaseActivity { +public class ScreenLockActivity extends BaseDataBindingActivity { private static final String TAG = ScreenLockActivity.class.getSimpleName(); @@ -86,18 +87,8 @@ public class ScreenLockActivity extends BaseActivity { } @Override - public int getLayoutId() { - return R.layout.activity_screen_lock; - } - - @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + DataBindingUtil.setContentView(this,R.layout.activity_screen_lock); } @Override diff --git a/app/src/main/java/com/uiuios/aios/activity/SpikeListActivity.java b/app/src/main/java/com/uiuios/aios/activity/SpikeListActivity.java index 8a33f64..6f3e478 100644 --- a/app/src/main/java/com/uiuios/aios/activity/SpikeListActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/SpikeListActivity.java @@ -4,15 +4,15 @@ import android.util.Log; import android.view.View; import android.widget.ImageView; +import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.uiuios.aios.R; -import com.uiuios.aios.adapter.GoodsAdapter; import com.uiuios.aios.adapter.GoodsListAdapter; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.bean.BaseResponse; import com.uiuios.aios.bean.GoodsInfo; import com.uiuios.aios.bean.GoodsList; @@ -27,7 +27,7 @@ import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -public class SpikeListActivity extends BaseActivity { +public class SpikeListActivity extends BaseDataBindingActivity { @BindView(R.id.recyclerView) RecyclerView recyclerView; @BindView(R.id.iv1) @@ -37,31 +37,9 @@ public class SpikeListActivity extends BaseActivity { private GoodsListAdapter mGoodsAdapter; - @Override - public int getLayoutId() { - getLifecycleSubject().onNext(ActivityEvent.CREATE); - UltimateBarX.statusBar(this) - .transparent() - .colorRes(R.color.colorPrimaryDark) - .light(true) - .apply(); - UltimateBarX.navigationBar(this) - .transparent() - .colorRes(R.color.colorPrimaryDark) - .light(true) - .apply(); - return R.layout.activity_spike_list; - } - - @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + DataBindingUtil.setContentView(this,R.layout.activity_spike_list); } @Override diff --git a/app/src/main/java/com/uiuios/aios/activity/SplashActivity.java b/app/src/main/java/com/uiuios/aios/activity/SplashActivity.java index 56012b2..816921a 100644 --- a/app/src/main/java/com/uiuios/aios/activity/SplashActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/SplashActivity.java @@ -3,31 +3,20 @@ package com.uiuios.aios.activity; import android.content.Intent; import android.os.Handler; +import androidx.databinding.DataBindingUtil; + import com.uiuios.aios.R; import com.uiuios.aios.activity.main.MainActivity; import com.uiuios.aios.activity.main.PhoneMainActivity; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.utils.Utils; -public class SplashActivity extends BaseActivity { - - /** - * 设置布局 - */ - @Override - public int getLayoutId() { - return R.layout.activity_splash; - } +public class SplashActivity extends BaseDataBindingActivity { @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + DataBindingUtil.setContentView(this, R.layout.activity_splash); } /** diff --git a/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmActivity.java b/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmActivity.java index 69e5481..bf72e7f 100644 --- a/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmActivity.java @@ -7,6 +7,7 @@ import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -18,12 +19,11 @@ import com.uiuios.aios.activity.alarmclock.AlarmClockAddActivity; import com.uiuios.aios.alarm.AlarmAdapter; import com.uiuios.aios.alarm.AlarmClockData; import com.uiuios.aios.alarm.AlarmUtils; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.bean.BaseResponse; import com.uiuios.aios.dialog.DeleteDialog; import com.uiuios.aios.network.NetInterfaceManager; - import java.util.List; import butterknife.BindView; @@ -31,7 +31,7 @@ import butterknife.ButterKnife; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -public class AlarmActivity extends BaseActivity implements AlarmContact.AlarmView { +public class AlarmActivity extends BaseDataBindingActivity implements AlarmContact.AlarmView { private static final String TAG = AlarmActivity.class.getSimpleName(); @BindView(R.id.cl_exit) @@ -74,23 +74,11 @@ public class AlarmActivity extends BaseActivity implements AlarmContact.AlarmVie private AlarmAdapter mAlarmAdapter; private int mType = 0; - /** - * 设置布局 - */ @Override - public int getLayoutId() { - return R.layout.activity_alarm; + protected void initDataBinding() { + DataBindingUtil.setContentView(this, R.layout.activity_alarm); } - @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; - } /** * 初始化视图 */ diff --git a/app/src/main/java/com/uiuios/aios/activity/alarm/port/PortAlarmActivity.java b/app/src/main/java/com/uiuios/aios/activity/alarm/port/PortAlarmActivity.java index 3173b12..a76643b 100644 --- a/app/src/main/java/com/uiuios/aios/activity/alarm/port/PortAlarmActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/alarm/port/PortAlarmActivity.java @@ -43,12 +43,7 @@ public class PortAlarmActivity extends BaseMvvmActivity soundMap = new HashMap<>(); @Override - public int getLayoutId() { - return R.layout.activity_dialer; - } - - @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + DataBindingUtil.setContentView(this,R.layout.activity_dialer); } @Override diff --git a/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java b/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java index b5c6a3e..0c37220 100644 --- a/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java @@ -15,17 +15,17 @@ import android.widget.EditText; import android.widget.TextView; import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; - import com.uiuios.aios.R; import com.uiuios.aios.adapter.CityAdapter; import com.uiuios.aios.adapter.DistrictAdapter; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.bean.AddressBean; -import com.uiuios.aios.manager.RemoteManager; +import com.uiuios.aios.manager.AmapManager; import com.uiuios.aios.view.RecyclerViewSpacesItemDecoration; import java.util.ArrayList; @@ -37,7 +37,7 @@ import java.util.stream.Collectors; import butterknife.BindView; import butterknife.ButterKnife; -public class LocationAcivity extends BaseActivity implements LocationContact.LocationView, CityAdapter.CityCallback, DistrictAdapter.DistrictCallback { +public class LocationAcivity extends BaseDataBindingActivity implements LocationContact.LocationView, CityAdapter.CityCallback, DistrictAdapter.DistrictCallback { @BindView(R.id.bg) ConstraintLayout bg; @@ -80,22 +80,9 @@ public class LocationAcivity extends BaseActivity implements LocationContact.Loc private List mDistrict; private AddressBean mAddressBean; - /** - * 设置布局 - */ @Override - public int getLayoutId() { - return R.layout.activity_location; - } - - @Override - protected boolean setNightMode() { - return false; - } - - @Override - protected boolean setfitWindow() { - return true; + protected void initDataBinding() { + DataBindingUtil.setContentView(this, R.layout.activity_location); } /** @@ -122,7 +109,7 @@ public class LocationAcivity extends BaseActivity implements LocationContact.Loc cl_location.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - mAddressBean = new AddressBean(RemoteManager.getInstance().getDistrict()); + mAddressBean = new AddressBean(AmapManager.getInstance().getDistrict()); setIntent(); } }); diff --git a/app/src/main/java/com/uiuios/aios/activity/main/BaseMainActivity.java b/app/src/main/java/com/uiuios/aios/activity/main/BaseMainActivity.java index d3be8a3..f6acd3d 100644 --- a/app/src/main/java/com/uiuios/aios/activity/main/BaseMainActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/main/BaseMainActivity.java @@ -36,7 +36,7 @@ import com.hjq.permissions.XXPermissions; import com.hjq.toast.Toaster; import com.uiuios.aios.BuildConfig; import com.uiuios.aios.R; -import com.uiuios.aios.base.BaseActivity; +import com.uiuios.aios.base.BaseDataBindingActivity; import com.uiuios.aios.base.BaseFragmentPagerAdapter; import com.uiuios.aios.bean.AlarmItem; import com.uiuios.aios.bean.DesktopIcon; @@ -45,6 +45,7 @@ import com.uiuios.aios.fragment.AppListFragment; import com.uiuios.aios.fragment.ControlFragment; import com.uiuios.aios.fragment.home.HomeFragment; import com.uiuios.aios.fragment.second.SecondFragment; +import com.uiuios.aios.manager.AmapManager; import com.uiuios.aios.manager.RemoteManager; import com.uiuios.aios.service.NotificationService; import com.uiuios.aios.utils.ApkUtils; @@ -62,7 +63,7 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -public abstract class BaseMainActivity extends BaseActivity implements MainContact.MainView ,RemoteManager.ConnectedListener{ +public abstract class BaseMainActivity extends BaseDataBindingActivity implements MainContact.MainView, RemoteManager.ConnectedListener { private static final String TAG = BaseMainActivity.class.getSimpleName(); private MainPresenter mMainPresenter; @@ -88,11 +89,6 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta private int appListIndex = 3; private int defaultCurrent = 2; - @Override - protected boolean setfitWindow() { - return false; - } - @Override public void onConnected() { setDefaultDesktop(); @@ -100,6 +96,8 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta @Override public void initView() { + getLocationPermission(); + ButterKnife.bind(this); toggleNotificationListenerService(this); mMainPresenter = new MainPresenter(this); @@ -205,9 +203,8 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta @Override public void initData() { - registmNewAppReceiver(); - registerSOSNumberReceiver(); - registerUpdateDesktopReceiver(); + registReceiver(); + mAlarmServiceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { @@ -386,45 +383,86 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta Permission.WRITE_SETTINGS, Permission.READ_CALL_LOG, Permission.WRITE_CALL_LOG, + Permission.READ_CONTACTS, + Permission.WRITE_CONTACTS, }; private void getPermission() { XXPermissions.with(this) // 申请单个权限 -// .permission(Permission.RECORD_AUDIO) - // 申请多个权限 .permission(permission) + // 申请多个权限 +// .permission(Permission.Group.STORAGE) // 设置权限请求拦截器(局部设置) //.interceptor(new PermissionInterceptor()) // 设置不触发错误检测机制(局部设置) //.unchecked() .request(new OnPermissionCallback() { - @Override public void onGranted(@NonNull List permissions, boolean allGranted) { + Log.e(TAG, "onGranted: permissions = " + permissions + " allGranted = " + allGranted); if (!allGranted) { Toaster.show("获取部分权限成功,但部分权限未正常授予"); return; } -// Toaster.show("获取录音和日历权限成功"); - Log.e(TAG, "onGranted: 获取存储权限成功"); + Log.e(TAG, "onGranted: 获取权限成功"); addData(); } @Override public void onDenied(@NonNull List permissions, boolean doNotAskAgain) { + Log.e(TAG, "onDenied: permissions = " + permissions + " doNotAskAgain = " + doNotAskAgain); if (doNotAskAgain) { - Toaster.show("被永久拒绝授权,请手动授予存储权限"); + Toaster.show("被永久拒绝授权,请手动授予权限"); // 如果是被永久拒绝就跳转到应用权限系统设置页面 XXPermissions.startPermissionActivity(BaseMainActivity.this, permissions); } else { -// Toaster.show("获取录音和日历权限失败"); - Log.e(TAG, "onGranted: 获取存储权限权限失败"); + Log.e(TAG, "onGranted: 获取权限失败"); } } }); } + private String[] mLocationPermission = new String[]{ + Permission.ACCESS_COARSE_LOCATION, + Permission.ACCESS_FINE_LOCATION, + Permission.ACCESS_BACKGROUND_LOCATION, + }; + + private void getLocationPermission() { + XXPermissions.with(this) + // 申请单个权限 + .permission(mLocationPermission) + // 申请多个权限 +// .permission(Permission.Group.STORAGE) + // 设置权限请求拦截器(局部设置) + //.interceptor(new PermissionInterceptor()) + // 设置不触发错误检测机制(局部设置) + //.unchecked() + .request(new OnPermissionCallback() { + @Override + public void onGranted(@NonNull List permissions, boolean allGranted) { + Log.e(TAG, "onGranted: permissions = " + permissions + " allGranted = " + allGranted); + if (!allGranted) { + Toaster.show("获取部分权限成功,但部分权限未正常授予"); + return; + } + Log.e(TAG, "onGranted: 获取定位权限成功"); + } + + @Override + public void onDenied(@NonNull List permissions, boolean doNotAskAgain) { + Log.e(TAG, "onDenied: permissions = " + permissions + " doNotAskAgain = " + doNotAskAgain); +// if (doNotAskAgain) { +// Toaster.show("被永久拒绝授权,请手动授予定位权限"); +// // 如果是被永久拒绝就跳转到应用权限系统设置页面 +// XXPermissions.startPermissionActivity(BaseMainActivity.this, permissions); +// } else { +// Log.e(TAG, "onGranted: 获取定位权限失败"); +// } + } + }); + } private static final String ENABLED_NOTIFICATION_LISTENERS = "enabled_notification_listeners"; @@ -474,8 +512,8 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta @Override protected void onRestart() { super.onRestart(); - mMainPresenter.sendAPPUsage(); - mMainPresenter.sendRunningInfo(); +// mMainPresenter.sendAPPUsage(); +// mMainPresenter.sendRunningInfo(); } @Override @@ -493,16 +531,11 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta protected void onDestroy() { super.onDestroy(); mMainPresenter.detachView(); - if (mNewAppReceiver != null) { - unregisterReceiver(mNewAppReceiver); - } - if (updateDesktopReceiver != null) { - unregisterReceiver(updateDesktopReceiver); - } + unregisterAllReceiver(); RemoteManager.removeListener(this); } - @Override + @Override protected void onSaveInstanceState(@NonNull Bundle outState) { // super.onSaveInstanceState(outState); } @@ -512,7 +545,29 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta // super.onRestoreInstanceState(savedInstanceState); } - private void registmNewAppReceiver() { + private void registReceiver() { + registNewAppReceiver(); + registerSOSNumberReceiver(); + registerUpdateDesktopReceiver(); + registmUpdateAddressReceiver(); + } + + private void unregisterAllReceiver() { + if (mNewAppReceiver != null) { + unregisterReceiver(mNewAppReceiver); + } + if (mSOSNumberReceiver != null) { + unregisterReceiver(mSOSNumberReceiver); + } + if (mUpdateDesktopReceiver != null) { + unregisterReceiver(mUpdateDesktopReceiver); + } + if (mUpdateAddressReceiver != null) { + unregisterReceiver(mUpdateAddressReceiver); + } + } + + private void registNewAppReceiver() { mNewAppReceiver = new NewAppReceiver(); IntentFilter filter = new IntentFilter(); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); @@ -539,16 +594,16 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta } } - private SOSNumberReceiver sosNumberReceiver; + private SOSNumberReceiver mSOSNumberReceiver; private void registerSOSNumberReceiver() { - if (sosNumberReceiver == null) { - sosNumberReceiver = new SOSNumberReceiver(); + if (mSOSNumberReceiver == null) { + mSOSNumberReceiver = new SOSNumberReceiver(); } IntentFilter filter = new IntentFilter(); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); filter.addAction("setting_sos"); - registerReceiver(sosNumberReceiver, filter); + registerReceiver(mSOSNumberReceiver, filter); } class SOSNumberReceiver extends BroadcastReceiver { @@ -563,17 +618,17 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta public static final String ACTION_PACKAGE_HIDE = "com.uiui.aios.ACTION_PACKAGE_HIDE"; - private UpdateDesktopReceiver updateDesktopReceiver; + private UpdateDesktopReceiver mUpdateDesktopReceiver; private void registerUpdateDesktopReceiver() { - if (updateDesktopReceiver == null) { - updateDesktopReceiver = new UpdateDesktopReceiver(); + if (mUpdateDesktopReceiver == null) { + mUpdateDesktopReceiver = new UpdateDesktopReceiver(); } IntentFilter filter = new IntentFilter(); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); filter.addAction("UPDATE_DESKTOP_ICON"); filter.addAction(ACTION_PACKAGE_HIDE); - registerReceiver(updateDesktopReceiver, filter); + registerReceiver(mUpdateDesktopReceiver, filter); } class UpdateDesktopReceiver extends BroadcastReceiver { @@ -585,6 +640,25 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta } } + private UpdateAddressReceiver mUpdateAddressReceiver; + + private void registmUpdateAddressReceiver() { + mUpdateAddressReceiver = new UpdateAddressReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction(CommonConfig.UIUIAIOS_UPDATE_ADDRESS_ACTION); + registerReceiver(mUpdateAddressReceiver, filter); + } + + class UpdateAddressReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (CommonConfig.UIUIAIOS_UPDATE_ADDRESS_ACTION.equals(action)) { + AmapManager.getInstance().startLocation(); + } + } + } + @Override public void setSystemSettings() { // mMainPresenter.getDesktopLayout(); diff --git a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java index 952bc4b..6b34f8e 100644 --- a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java @@ -5,28 +5,24 @@ import android.os.Bundle; import android.util.Log; import androidx.annotation.Nullable; +import androidx.databinding.DataBindingUtil; import com.uiuios.aios.R; public class MainActivity extends BaseMainActivity { private static final String TAG = MainActivity.class.getSimpleName(); - @Override - public int getLayoutId() { - return R.layout.activity_main; - } - - @Override - protected boolean setNightMode() { - return false; - } - @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG, "onCreate: "); } + @Override + protected void initDataBinding() { + DataBindingUtil.setContentView(this, R.layout.activity_main); + } + @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); diff --git a/app/src/main/java/com/uiuios/aios/activity/main/PhoneMainActivity.java b/app/src/main/java/com/uiuios/aios/activity/main/PhoneMainActivity.java index f223b02..d933893 100644 --- a/app/src/main/java/com/uiuios/aios/activity/main/PhoneMainActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/main/PhoneMainActivity.java @@ -1,17 +1,14 @@ package com.uiuios.aios.activity.main; +import androidx.databinding.DataBindingUtil; + import com.uiuios.aios.R; public class PhoneMainActivity extends BaseMainActivity { private static final String TAG = PhoneMainActivity.class.getSimpleName(); @Override - public int getLayoutId() { - return R.layout.phone_activity_main; - } - - @Override - protected boolean setNightMode() { - return false; + protected void initDataBinding() { + DataBindingUtil.setContentView(this, R.layout.phone_activity_main); } } diff --git a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java index ddcdadf..7807d8b 100644 --- a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java @@ -34,6 +34,7 @@ import com.uiuios.aios.bean.JsonBean; import com.uiuios.aios.bean.MapGeoResult; import com.uiuios.aios.config.CommonConfig; import com.uiuios.aios.databinding.ActivityWeatherBinding; +import com.uiuios.aios.manager.AmapManager; import com.uiuios.aios.manager.RemoteManager; import com.uiuios.aios.utils.DataUtil; import com.uiuios.aios.utils.TimeUtils; @@ -94,16 +95,6 @@ public class WeatherActivity extends BaseMvvmActivity { - public final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); +public abstract class BaseFragment extends BaseRxFragment { protected boolean isViewInitiated; protected boolean isVisibleToUser; protected boolean isDataInitiated; - @Override - @NonNull - @CheckResult - public final Observable lifecycle() { - return lifecycleSubject.hide(); - } - - @Override - @NonNull - @CheckResult - public final LifecycleTransformer bindUntilEvent(@NonNull FragmentEvent event) { - return RxLifecycle.bindUntilEvent(lifecycleSubject, event); - } - - @Override - @NonNull - @CheckResult - public final LifecycleTransformer bindToLifecycle() { - return RxLifecycleAndroid.bindFragment(lifecycleSubject); - } - - @Override - @CallSuper - public void onAttach(android.app.Activity activity) { - super.onAttach(activity); - lifecycleSubject.onNext(FragmentEvent.ATTACH); - } - - @Override - @CallSuper - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - lifecycleSubject.onNext(FragmentEvent.CREATE); - } @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -83,65 +34,11 @@ public abstract class BaseFragment extends Fragment implements LifecycleProvider public boolean prepareFetchData(boolean forceUpdate) { if (isVisibleToUser && isViewInitiated && (!isDataInitiated || forceUpdate)) { fetchData(); + //注释掉保证每次都更新数据 // isDataInitiated = true; return true; } return false; } - @Override - @CallSuper - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - lifecycleSubject.onNext(FragmentEvent.CREATE_VIEW); - } - - @Override - @CallSuper - public void onStart() { - super.onStart(); - lifecycleSubject.onNext(FragmentEvent.START); - } - - @Override - @CallSuper - public void onResume() { - super.onResume(); - lifecycleSubject.onNext(FragmentEvent.RESUME); - } - - @Override - @CallSuper - public void onPause() { - lifecycleSubject.onNext(FragmentEvent.PAUSE); - super.onPause(); - } - - @Override - @CallSuper - public void onStop() { - lifecycleSubject.onNext(FragmentEvent.STOP); - super.onStop(); - } - - @Override - @CallSuper - public void onDestroyView() { - lifecycleSubject.onNext(FragmentEvent.DESTROY_VIEW); - super.onDestroyView(); - } - - @Override - @CallSuper - public void onDestroy() { - lifecycleSubject.onNext(FragmentEvent.DESTROY); - super.onDestroy(); - } - - @Override - @CallSuper - public void onDetach() { - lifecycleSubject.onNext(FragmentEvent.DETACH); - super.onDetach(); - } } diff --git a/app/src/main/java/com/uiuios/aios/base/BaseLazyFragment.java b/app/src/main/java/com/uiuios/aios/base/BaseLazyFragment.java new file mode 100644 index 0000000..46d6253 --- /dev/null +++ b/app/src/main/java/com/uiuios/aios/base/BaseLazyFragment.java @@ -0,0 +1,100 @@ +package com.uiuios.aios.base; + + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +/** + * Author: wangjie + * Email: tiantian.china.2@gmail.com + * Date: 1/23/15. + */ +public abstract class BaseLazyFragment extends Fragment { + private static final String TAG = BaseLazyFragment.class.getSimpleName(); + private boolean isPrepared; + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + initPrepare(); + } + + + /** + * 第一次onResume中的调用onUserVisible避免操作与onFirstUserVisible操作重复 + */ + private boolean isFirstResume = true; + + @Override + public void onResume() { + super.onResume(); + if (isFirstResume) { + isFirstResume = false; + return; + } + if (getUserVisibleHint()) { + onUserVisible(); + } + } + + @Override + public void onPause() { + super.onPause(); + if (getUserVisibleHint()) { + onUserInvisible(); + } + } + + private boolean isFirstVisible = true; + private boolean isFirstInvisible = true; + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + if (isVisibleToUser) { + if (isFirstVisible) { + isFirstVisible = false; + initPrepare(); + } else { + onUserVisible(); + } + } else { + if (isFirstInvisible) { + isFirstInvisible = false; + onFirstUserInvisible(); + } else { + onUserInvisible(); + } + } + } + + public synchronized void initPrepare() { + if (isPrepared) { + onFirstUserVisible(); + } else { + isPrepared = true; + } + } + + /** + * 第一次fragment可见(进行初始化工作) + */ + public abstract void onFirstUserVisible(); + + /** + * fragment可见(切换回来或者onResume) + */ + public abstract void onUserVisible(); + + /** + * 第一次fragment不可见(不建议在此处理事件) + */ + public abstract void onFirstUserInvisible(); + + /** + * fragment不可见(切换掉或者onPause) + */ + public abstract void onUserInvisible(); + +} diff --git a/app/src/main/java/com/uiuios/aios/base/BaseTransparentActivity.java b/app/src/main/java/com/uiuios/aios/base/BaseTransparentActivity.java index fa9bc71..caea2ec 100644 --- a/app/src/main/java/com/uiuios/aios/base/BaseTransparentActivity.java +++ b/app/src/main/java/com/uiuios/aios/base/BaseTransparentActivity.java @@ -6,6 +6,7 @@ import androidx.annotation.CallSuper; import androidx.annotation.Nullable; import com.uiuios.aios.R; +import com.uiuios.aios.base.rx.BaseRxActivity; import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX; public abstract class BaseTransparentActivity extends BaseRxActivity { @@ -41,10 +42,16 @@ public abstract class BaseTransparentActivity extends BaseRxActivity { /** * @return 是否是黑色状态栏 */ - protected abstract boolean setNightMode(); +// protected abstract boolean setNightMode(); + public boolean setNightMode() { + return false; + } /** * @return 是否是入侵 */ - protected abstract boolean setfitWindow(); +// protected abstract boolean setNightMode(); + public boolean setfitWindow() { + return false; + } } \ No newline at end of file diff --git a/app/src/main/java/com/uiuios/aios/base/BaseRxActivity.java b/app/src/main/java/com/uiuios/aios/base/rx/BaseRxActivity.java similarity index 98% rename from app/src/main/java/com/uiuios/aios/base/BaseRxActivity.java rename to app/src/main/java/com/uiuios/aios/base/rx/BaseRxActivity.java index 001cef2..a4bcf7b 100644 --- a/app/src/main/java/com/uiuios/aios/base/BaseRxActivity.java +++ b/app/src/main/java/com/uiuios/aios/base/rx/BaseRxActivity.java @@ -1,4 +1,4 @@ -package com.uiuios.aios.base; +package com.uiuios.aios.base.rx; import android.os.Bundle; diff --git a/app/src/main/java/com/uiuios/aios/base/rx/BaseRxFragment.java b/app/src/main/java/com/uiuios/aios/base/rx/BaseRxFragment.java new file mode 100644 index 0000000..a5b837a --- /dev/null +++ b/app/src/main/java/com/uiuios/aios/base/rx/BaseRxFragment.java @@ -0,0 +1,123 @@ +package com.uiuios.aios.base.rx; + +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.CallSuper; +import androidx.annotation.CheckResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.trello.rxlifecycle4.LifecycleProvider; +import com.trello.rxlifecycle4.LifecycleTransformer; +import com.trello.rxlifecycle4.RxLifecycle; +import com.trello.rxlifecycle4.android.FragmentEvent; +import com.trello.rxlifecycle4.android.RxLifecycleAndroid; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; + +/** + * {@link com.trello.rxlifecycle4.components.RxFragment} + * copied form RxFragment} + */ +public class BaseRxFragment extends Fragment implements LifecycleProvider { + private final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); + + public BehaviorSubject getLifecycleSubject() { + return lifecycleSubject; + } + + @Override + @NonNull + @CheckResult + public final Observable lifecycle() { + return lifecycleSubject.hide(); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer bindUntilEvent(@NonNull FragmentEvent event) { + return RxLifecycle.bindUntilEvent(lifecycleSubject, event); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer bindToLifecycle() { + return RxLifecycleAndroid.bindFragment(lifecycleSubject); + } + + @Override + @CallSuper + public void onAttach(android.app.Activity activity) { + super.onAttach(activity); + lifecycleSubject.onNext(FragmentEvent.ATTACH); + } + + @Override + @CallSuper + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + lifecycleSubject.onNext(FragmentEvent.CREATE); + } + + @Override + @CallSuper + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + lifecycleSubject.onNext(FragmentEvent.CREATE_VIEW); + } + + @Override + @CallSuper + public void onStart() { + super.onStart(); + lifecycleSubject.onNext(FragmentEvent.START); + } + + @Override + @CallSuper + public void onResume() { + super.onResume(); + lifecycleSubject.onNext(FragmentEvent.RESUME); + } + + @Override + @CallSuper + public void onPause() { + lifecycleSubject.onNext(FragmentEvent.PAUSE); + super.onPause(); + } + + @Override + @CallSuper + public void onStop() { + lifecycleSubject.onNext(FragmentEvent.STOP); + super.onStop(); + } + + @Override + @CallSuper + public void onDestroyView() { + lifecycleSubject.onNext(FragmentEvent.DESTROY_VIEW); + super.onDestroyView(); + } + + @Override + @CallSuper + public void onDestroy() { + lifecycleSubject.onNext(FragmentEvent.DESTROY); + super.onDestroy(); + } + + @Override + @CallSuper + public void onDetach() { + lifecycleSubject.onNext(FragmentEvent.DETACH); + super.onDetach(); + } +} + diff --git a/app/src/main/java/com/uiuios/aios/base/BaseService.java b/app/src/main/java/com/uiuios/aios/base/rx/BaseRxService.java similarity index 90% rename from app/src/main/java/com/uiuios/aios/base/BaseService.java rename to app/src/main/java/com/uiuios/aios/base/rx/BaseRxService.java index 82c0345..effe69d 100644 --- a/app/src/main/java/com/uiuios/aios/base/BaseService.java +++ b/app/src/main/java/com/uiuios/aios/base/rx/BaseRxService.java @@ -1,4 +1,4 @@ -package com.uiuios.aios.base; +package com.uiuios.aios.base.rx; import android.app.Service; import android.content.Intent; @@ -15,10 +15,10 @@ import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.subjects.BehaviorSubject; -public abstract class BaseService extends Service implements LifecycleProvider { +public abstract class BaseRxService extends Service implements LifecycleProvider { public final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); - public BaseService() { + public BaseRxService() { super(); } diff --git a/app/src/main/java/com/uiuios/aios/config/CommonConfig.java b/app/src/main/java/com/uiuios/aios/config/CommonConfig.java index bc22dfd..f879222 100644 --- a/app/src/main/java/com/uiuios/aios/config/CommonConfig.java +++ b/app/src/main/java/com/uiuios/aios/config/CommonConfig.java @@ -17,6 +17,9 @@ public class CommonConfig { public static final String LOCK_SCREEN_PASSWORD = "aios_lockScreenPasswordKey"; public static final String DEFAULT_PASSWORD = "6666"; + /*让桌面更新定位信息*/ + public static final String UIUIAIOS_UPDATE_ADDRESS_ACTION = "UIUIAIOS_UPDATE_ADDRESS"; + /*应用市场所有包名*/ public static final String UIUI_APPSTORE_PACKAGE_LIST = "UIUI_APPSTORE_PACKAGE_LIST_KEY"; /*首次进入桌面*/ diff --git a/app/src/main/java/com/uiuios/aios/fragment/AppListFragment.java b/app/src/main/java/com/uiuios/aios/fragment/AppListFragment.java index 6bc6cc1..ddebac8 100644 --- a/app/src/main/java/com/uiuios/aios/fragment/AppListFragment.java +++ b/app/src/main/java/com/uiuios/aios/fragment/AppListFragment.java @@ -257,7 +257,7 @@ public class AppListFragment extends BaseFragment { ApkUtils.openPackage(v.getContext(), desktopIcon.getPackage(), desktopIcon.getClazz()); AppUsedTimeUtils.getInstance().setAppPackageName(desktopIcon.getPackage()); AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis()); - SendRunningApp(getActivity()); +// SendRunningApp(getActivity()); // } break; case "com.uiuios.aios": @@ -267,7 +267,7 @@ public class AppListFragment extends BaseFragment { ApkUtils.openPackage(v.getContext(), desktopIcon.getPackage(), desktopIcon.getClazz()); AppUsedTimeUtils.getInstance().setAppPackageName(desktopIcon.getPackage()); AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis()); - SendRunningApp(getActivity()); +// SendRunningApp(getActivity()); break; default: int setting_other_appInstaller = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.SETTING_OTHER_APPINSTALLER_KEY, 1); @@ -279,7 +279,7 @@ public class AppListFragment extends BaseFragment { ApkUtils.openPackage(v.getContext(), desktopIcon.getPackage(), desktopIcon.getClazz()); AppUsedTimeUtils.getInstance().setAppPackageName(desktopIcon.getPackage()); AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis()); - SendRunningApp(getActivity()); +// SendRunningApp(getActivity()); } } } @@ -311,7 +311,7 @@ public class AppListFragment extends BaseFragment { private void updateAppDisableStatus(String pkg, String label) { AppManager.getInstance().addAddPakcage(pkg); NetInterfaceManager.getInstance().getUpdateAppIconObservable(pkg, label, 0) - .compose(RxLifecycle.bindUntilEvent(lifecycleSubject, FragmentEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycleSubject(), FragmentEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { diff --git a/app/src/main/java/com/uiuios/aios/fragment/ControlFragment.java b/app/src/main/java/com/uiuios/aios/fragment/ControlFragment.java index 6c5ac7f..697805d 100644 --- a/app/src/main/java/com/uiuios/aios/fragment/ControlFragment.java +++ b/app/src/main/java/com/uiuios/aios/fragment/ControlFragment.java @@ -49,6 +49,7 @@ import com.uiuios.aios.activity.main.PhoneMainActivity; import com.uiuios.aios.base.BaseFragment; import com.uiuios.aios.config.CommonConfig; import com.uiuios.aios.disklrucache.CacheHelper; +import com.uiuios.aios.manager.AmapManager; import com.uiuios.aios.manager.RemoteManager; import com.uiuios.aios.utils.BrightnessUtils; @@ -106,7 +107,6 @@ public class ControlFragment extends BaseFragment { private View rootView; private Context mContext; private ContentResolver mCRv; - private CacheHelper mCacheHelper; // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER @@ -180,7 +180,6 @@ public class ControlFragment extends BaseFragment { } mContext = rootView.getContext(); mCRv = mContext.getContentResolver(); - mCacheHelper = new CacheHelper(mContext); ButterKnife.bind(this, rootView); initView(); initData(); @@ -845,7 +844,7 @@ public class ControlFragment extends BaseFragment { cl_location.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - RemoteManager.getInstance().getLocation(); + AmapManager.getInstance().startLocation(); } }); } diff --git a/app/src/main/java/com/uiuios/aios/fragment/custom/CustomFragment.java b/app/src/main/java/com/uiuios/aios/fragment/custom/CustomFragment.java index f36ca2e..f1c2cb8 100644 --- a/app/src/main/java/com/uiuios/aios/fragment/custom/CustomFragment.java +++ b/app/src/main/java/com/uiuios/aios/fragment/custom/CustomFragment.java @@ -71,6 +71,7 @@ import com.uiuios.aios.config.CommonConfig; import com.uiuios.aios.dialog.PasswordDialog; import com.uiuios.aios.dialog.SingleDialog; import com.uiuios.aios.disklrucache.CacheHelper; +import com.uiuios.aios.manager.AmapManager; import com.uiuios.aios.manager.RemoteManager; import com.uiuios.aios.network.NetInterfaceManager; import com.uiuios.aios.network.UrlAddress; @@ -161,6 +162,8 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom ImageView iv_battery; private static final String TAG = CustomFragment.class.getSimpleName(); + private MMKV mMMKV= MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); + // private int[] mShaderColors = new int[]{0xFFfa3db5, 0xFFF8867E, 0xFFF79F6B, 0xFFF79F6B, 0xFFF79F6B, 0xFFF8867E, 0xFFfa3db5}; private int[] mShaderColors = new int[]{0xFF05d192, 0xFF05d192, 0xFF05d192, 0xFF05d192, 0xFF05d192, 0xFF05d192, 0xFF05d192}; private int[] mShaderColorsRed = new int[]{0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000}; @@ -169,7 +172,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom private NotificationAdapter notificationAdapter; // private AlarmClockAdapter alarmClockAdapter; private SOSNnmberAdapter sosNnmberAdapter; - private MMKV mMMKV; private Activity mContext; private ContentResolver mCRv; private CacheHelper mCacheHelper; @@ -219,14 +221,13 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } - mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); } @Override public void fetchData() { Log.e(TAG, "fetchData: "); initData(); - RemoteManager.getInstance().getLocation(); + AmapManager.getInstance().startLocation(); } @Override @@ -376,26 +377,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom iv_battery.setImageBitmap(bitmap); } - private BroadcastReceiver mbatteryReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - Log.i(TAG, "onReceive: " + action); - if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { - int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN); - if (status == BatteryManager.BATTERY_STATUS_CHARGING) { - if (rootView != null) { -// iv_charging.setVisibility(View.VISIBLE); - } - } else { - if (rootView != null) { -// iv_charging.setVisibility(View.GONE); - } - } - } - } - }; - //监听时间和日期变化 public void registerTimeReceiver() { mTimeChangedReceiver = new TimeChangedReceiver(); @@ -460,7 +441,7 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom mContext = (Activity) rootView.getContext(); mCustomPresenter = new CustomPresenter(mContext); mCustomPresenter.attachView(this); - mCustomPresenter.setLifecycle(lifecycleSubject); + mCustomPresenter.setLifecycle(getLifecycleSubject()); mCacheHelper = new CacheHelper(mContext); mCRv = mContext.getContentResolver(); ButterKnife.bind(this, rootView); @@ -476,7 +457,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom registerTimeReceiver(); wifi_ssid.requestFocus(); setTiem(); - mContext.registerReceiver(mbatteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); if (Settings.Global.getInt(mCRv, "is_aihealth", 0) == 1) { cl_appstore.setVisibility(View.GONE); cl_ai.setVisibility(View.VISIBLE); @@ -484,19 +464,12 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom cl_appstore.setVisibility(View.VISIBLE); cl_ai.setVisibility(View.GONE); } -// tv_battery.setText(Utils.getBatteryLevel(mContext) + "%"); cpv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { killBackgroundApp(); } }); -// cl_alarm.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// ApkUtils.openPackage(mContext, "com.alarmclock.uiui"); -// } -// }); cl_guard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -548,20 +521,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom @Override public void onClick(View v) { killBackgroundApp(); -// SingleDialog dialog = new SingleDialog(mContext); -// dialog.setTitle("温馨提示") -// .setMessage("此功能暂未上线") -// .setPositive("确定") -//// .setNegtive("拒绝") -//// .setSingle(true) -// -// .setOnClickBottomListener(new SingleDialog.OnClickBottomListener() { -// @Override -// public void onPositiveClick() { -// dialog.dismiss(); -// } -// }); -// dialog.show(); } }); cl_health.setOnClickListener(new View.OnClickListener() { @@ -610,7 +569,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom cl_appstore.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { -// ApkUtils.openPackage(mContext, "com.uiuios.appstore"); ApkUtils.openPackage(mContext, "com.uiui.videoplayer", "com.uiui.videoplayer.activity.main.MainActivity"); } }); @@ -620,7 +578,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); -// startActivity(new Intent(mContext, WiFiManagerActivity.class)); } }); cl_activation.setOnClickListener(new View.OnClickListener() { @@ -629,12 +586,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom ApkUtils.openPackage(mContext, "com.uiuios.sn"); } }); -// cl_exit.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View view) { -// showPassword(); -// } -// }); cl_control.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -714,42 +665,10 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom } private void checkContact() { -// int aole_call_forbid = Settings.System.getInt(mContext.getContentResolver(), "aole_call_forbid", 0); -// if (aole_call_forbid == 1) { -// Toaster.show("电话功能被禁用"); -// return; -// } startActivity(new Intent(mContext, ContactActivity.class)); } private void initData() { -// NetInterfaceManager.getInstance().getUserAvatarInfoControl() -// .subscribe(new Observer>() { -// @Override -// public void onSubscribe(@NonNull Disposable d) { -// Log.e("getUserAvatarInfoControl", "onSubscribe: "); -// } -// -// @Override -// public void onNext(@NonNull BaseResponse userAvatarInfoBaseResponse) { -// Log.e("getUserAvatarInfoControl", "onNext: " + userAvatarInfoBaseResponse); -// if (userAvatarInfoBaseResponse.code == 200) { -// if (!mContext.isDestroyed()) { -//// Glide.with(iv_head).load(userAvatarInfoBaseResponse.data.getAvatar()).into(iv_head); -// } -// } -// } -// -// @Override -// public void onError(@NonNull Throwable e) { -// Log.e("getUserAvatarInfoControl", "onError: " + e.getMessage()); -// } -// -// @Override -// public void onComplete() { -// Log.e("getUserAvatarInfoControl", "onComplete: "); -// } -// }); mCustomPresenter.getSnInfo(); initAmap(); getAlarmCache(); @@ -768,19 +687,9 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom @Override public void onResume() { super.onResume(); -// setAlarm(); + initAmap(); setSosNumber(); setQuickApp(); - checkActivation(); - } - - private void checkActivation() { - int activation = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); - if (activation == 0) { -// tv_name.setText("未激活"); - } else { -// tv_name.setText("已激活"); - } } private String quickAppPackagesName; @@ -864,44 +773,14 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom } } - private void setAlarm() { - if (rootView == null) return; - if (alarmItemList == null) { -// tv_add.setVisibility(View.VISIBLE); -// rv_clock.setVisibility(View.GONE); - } else { -// tv_add.setVisibility(View.GONE); -// rv_clock.setVisibility(View.VISIBLE); -// alarmClockAdapter.setAlarmItemList(alarmItemList); - } - } - private void initAmap() { - String city = RemoteManager.getInstance().getCity(); + String city = AmapManager.getInstance().getCity(); tv_location.setText(city); - getweather(RemoteManager.getInstance().getLongitude(), RemoteManager.getInstance().getLatitude()); + getweather(AmapManager.getInstance().getLocationTude()); } private void getAlarm() { startActivity(new Intent(mContext, PortAlarmActivity.class)); -// NetInterfaceManager.getInstance().getAlarmClock(new NetInterfaceManager.AlarmClockCallback() { -// @Override -// public void setAlarmClock(List alarmClockList) { -// startActivity(new Intent(mContext, AlarmClockActivity.class)); -// } -// -// @Override -// public void setAlarmClockEmpty() { -// showNoData("温馨提示", "请在小程序上设置爱心闹钟"); -// rv_noti.setVisibility(View.GONE); -// iv_note_nodata.setVisibility(View.VISIBLE); -// } -// -// @Override -// public void onError() { -// -// } -// }); } private void getAlarmCache() { @@ -988,8 +867,7 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom private String nowString; - private void getweather(double longitude, double latitude) { - String location = longitude + "," + latitude; + private void getweather(String location) { Log.e(TAG, "getweather: " + location); /** * 实况天气数据 @@ -1114,20 +992,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom } private void killBackgroundProcesses(String packageName) { -// ActivityManager activityManager; -// try { -// activityManager = (ActivityManager) -// mContext.getSystemService(Context.ACTIVITY_SERVICE); -// activityManager.killBackgroundProcesses(packageName); -// Method forceStopPackage = activityManager.getClass() -// .getDeclaredMethod("forceStopPackage", String.class); -//// Log.e(TAG, "killBackgroundProcesses: " + packageName); -// forceStopPackage.setAccessible(true); -// forceStopPackage.invoke(activityManager, packageName); -// } catch (Exception e) { -// Log.e(TAG, "killBackgroundProcesses: " + e.getMessage()); -// e.printStackTrace(); -// } RemoteManager.getInstance().killBackgroundProcesses(packageName); } @@ -1152,9 +1016,6 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom if (batteryReceiver != null) { mContext.unregisterReceiver(batteryReceiver); } - if (mbatteryReceiver != null) { - mContext.unregisterReceiver(mbatteryReceiver); - } if (mAlarmClockReceiver != null) { mContext.unregisterReceiver(mAlarmClockReceiver); } diff --git a/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java b/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java index 4c227d2..8c8f43b 100644 --- a/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java +++ b/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java @@ -48,6 +48,7 @@ import com.uiuios.aios.bean.Contact; import com.uiuios.aios.bean.DesktopIcon; import com.uiuios.aios.config.CommonConfig; import com.uiuios.aios.dialog.SingleDialog; +import com.uiuios.aios.manager.AmapManager; import com.uiuios.aios.manager.RemoteManager; import com.uiuios.aios.network.NetInterfaceManager; import com.uiuios.aios.push.PushManager; @@ -187,7 +188,7 @@ public class HomeFragment extends BaseFragment implements HomeContact.PrecisionV mContext = (FragmentActivity) rootView.getContext(); mHomePresenter = new HomePresenter(mContext); mHomePresenter.attachView(this); - mHomePresenter.setLifecycle(lifecycleSubject); + mHomePresenter.setLifecycle(getLifecycleSubject()); ButterKnife.bind(this, rootView); initView(); @@ -499,9 +500,9 @@ public class HomeFragment extends BaseFragment implements HomeContact.PrecisionV } private void initAmap() { - String city = RemoteManager.getInstance().getCity(); + String city = AmapManager.getInstance().getCity(); tv_location.setText(city); - getweather(RemoteManager.getInstance().getLongitude(), RemoteManager.getInstance().getLatitude()); + getweather(AmapManager.getInstance().getLocationTude()); } @@ -515,8 +516,7 @@ public class HomeFragment extends BaseFragment implements HomeContact.PrecisionV private String nowString; - private void getweather(double longitude, double latitude) { - String location = longitude + "," + latitude; + private void getweather(String location) { Log.e(TAG, "getweather: " + location); /** * 实况天气数据 diff --git a/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java b/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java index 775d978..2b8e532 100644 --- a/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java +++ b/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java @@ -165,7 +165,7 @@ public class SecondFragment extends BaseFragment implements SecondContact.View, ButterKnife.bind(this, rootView); mPresenter = new SecondPresenter(mContext); mPresenter.attachView(this); - mPresenter.setLifecycle(lifecycleSubject); + mPresenter.setLifecycle(getLifecycleSubject()); initView(); initData(); } diff --git a/app/src/main/java/com/uiuios/aios/manager/AmapManager.java b/app/src/main/java/com/uiuios/aios/manager/AmapManager.java new file mode 100644 index 0000000..53f81fb --- /dev/null +++ b/app/src/main/java/com/uiuios/aios/manager/AmapManager.java @@ -0,0 +1,217 @@ +package com.uiuios.aios.manager; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.text.TextUtils; +import android.util.Log; + +import com.amap.api.location.AMapLocation; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationClientOption; +import com.amap.api.location.AMapLocationListener; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.jeremyliao.liveeventbus.LiveEventBus; +import com.tencent.mmkv.MMKV; +import com.uiuios.aios.bean.BaseResponse; +import com.uiuios.aios.bean.MapBean; +import com.uiuios.aios.config.CommonConfig; +import com.uiuios.aios.gson.GsonUtils; +import com.uiuios.aios.network.NetInterfaceManager; + +import java.lang.reflect.Type; + +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; + +public class AmapManager { + private static final String TAG = AmapManager.class.getSimpleName(); + + MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); + + @SuppressLint("StaticFieldLeak") + private static AmapManager sInstance; + private Context mContext; + + private AMapLocationClient mAMapLocationClient; + private AMapLocationClientOption mAMapLocationClientOption; + private MapBean mMapBean; + + private AmapManager(Context context) { + this.mContext = context; + initAmap(); + } + + public static void init(Context context) { + if (context == null) { + throw new RuntimeException("Context is NULL"); + } + if (sInstance == null) { + sInstance = new AmapManager(context); + } + } + + public static AmapManager getInstance() { + if (sInstance == null) { + throw new IllegalStateException("You must be init AmapManager first"); + } + + return sInstance; + } + + private AMapLocationClientOption getDefaultOption() { + if (mAMapLocationClientOption == null) { + mAMapLocationClientOption = new AMapLocationClientOption(); + } + mAMapLocationClientOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn); + //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 + mAMapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); + mAMapLocationClientOption.setNeedAddress(true); + //获取一次定位结果: + //该方法默认为false。 + mAMapLocationClientOption.setOnceLocation(true); + //获取最近3s内精度最高的一次定位结果: + //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。 + // 如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。 + mAMapLocationClientOption.setOnceLocationLatest(true); + return mAMapLocationClientOption; + } + + public void initAmap() { + if (mAMapLocationClient == null) { + mAMapLocationClient = new AMapLocationClient(mContext); + } + mAMapLocationClient.setLocationOption(getDefaultOption()); + + //设置定位监听 + mAMapLocationClient.setLocationListener(mAMapLocationListener); + //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效 + + startLocation(); + + String jsonString = mMMKV.decodeString(CommonConfig.MAP_LOCATION_JSON_KEY, ""); + if (!TextUtils.isEmpty(jsonString)) { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + mMapBean = gson.fromJson(jsonString, type); + } else { + Log.e(TAG, "initAmap: jsonString is empty"); + } + + } + + public void startLocation() { + mAMapLocationClient.stopLocation(); + mAMapLocationClient.startLocation(); + Log.e(TAG, "initAmap: " + "startLocation"); + } + + private AMapLocationListener mAMapLocationListener = new AMapLocationListener() { + @Override + public void onLocationChanged(AMapLocation aMapLocation) { + StringBuilder sb = new StringBuilder(); + //errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明 + if (aMapLocation.getErrorCode() == 0) { + Log.e(TAG, "onLocationChanged: " + "定位成功"); + updateAddress(aMapLocation); + mMapBean = getMapBean(aMapLocation); + saveMapResult(mMapBean); + LiveEventBus + .get("MapBean") + .post(mMapBean); + Log.e(TAG, "onLocationChanged: " + aMapLocation.getAddress()); + sb.append(aMapLocation.getAddress()).append("\n"); + + } else { + //定位失败 + sb.append("定位失败" + "\n"); + sb.append(aMapLocation.getErrorInfo()); + Log.e(TAG, "onLocationChanged: " + "定位失败"); + } + Log.e(TAG, "amap: " + sb.toString()); + } + }; + + private void updateAddress(AMapLocation aMapLocation) { + NetInterfaceManager.getInstance().getUpdateAddressObservable(aMapLocation.getAddress() + , aMapLocation.getLongitude(), aMapLocation.getLatitude() + ) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("updateAddress", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("updateAddress", "onNext: " + baseResponse); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("updateAddress", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("updateAddress", "onComplete: "); + } + }); + } + + public String getLocationTude() { + if (mMapBean != null) { + return mMapBean.getLongitude() + "," + mMapBean.getLatitude(); + } else { + startLocation(); + return CommonConfig.DEFAULT_LOCATION_TUDE; + } + } + + public String getDistrict() { + if (mMapBean != null) { + return mMapBean.getDistrict(); + } else { + startLocation(); + return CommonConfig.DEFAULT_LOCATION_DISTRICT; + } + } + + public String getCity() { + if (mMapBean != null) { + return mMapBean.getCity(); + } else { + startLocation(); + return CommonConfig.DEFAULT_LOCATION_DISTRICT; + } + } + + private MapBean getMapBean(AMapLocation location) { + MapBean mapBean = new MapBean(); + mapBean.setLongitude(location.getLongitude()); + mapBean.setLatitude(location.getLatitude()); + mapBean.setAdcode(location.getAdCode()); + mapBean.setAddress(location.getAddress()); + mapBean.setCity(location.getCity()); + mapBean.setCityCode(location.getCityCode()); + mapBean.setCountry(location.getCountry()); + mapBean.setCountryCode(location.getAdCode()); + mapBean.setDistrict(location.getDistrict()); + mapBean.setProvince(location.getProvince()); + mapBean.setStreet(location.getStreet()); + mapBean.setStreetNumber(location.getStreetNum()); + mapBean.setTown(location.getStreet()); + mapBean.setLocationDescribe(location.getLocationDetail()); + Log.e(TAG, "getMapBean: " + GsonUtils.toJSONString(mapBean)); + return mapBean; + + } + + private void saveMapResult(MapBean mapBean) { + Log.e(TAG, "saveMapResult: " + GsonUtils.toJSONString(mapBean)); + mMMKV.encode(CommonConfig.MAP_LOCATION_JSON_KEY, GsonUtils.toJSONString(mapBean)); + } + +} diff --git a/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java index 2fc2dd1..a125a86 100644 --- a/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java +++ b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java @@ -7,39 +7,28 @@ import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; import android.os.RemoteException; -import android.text.TextUtils; import android.util.Log; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; import com.tencent.bugly.crashreport.CrashReport; import com.tencent.mmkv.MMKV; -import com.uiuios.aios.BuildConfig; -import com.uiuios.aios.bean.MapBean; import com.uiuios.aios.config.CommonConfig; import com.uiuios.aios.disklrucache.CacheHelper; import com.uiuios.sn.IGetInfoInterface; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; public class RemoteManager { private static final String TAG = RemoteManager.class.getSimpleName(); - private static final String SN_KEY = "sn_serial_key"; + private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); @SuppressLint("StaticFieldLeak") private static RemoteManager sInstance; private Context mContext; - private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private static boolean mServiceConnected = false; - private CacheHelper mCacheHelper; - private IGetInfoInterface mGetInfoInterface; + private IGetInfoInterface mIGetInfoInterface; private ServiceConnection mIGetInfoConnection; private RemoteManager(Context context) { @@ -47,12 +36,11 @@ public class RemoteManager { throw new RuntimeException("Context is NULL"); } this.mContext = context; - this.mCacheHelper = new CacheHelper(context); mIGetInfoConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { Log.e(TAG, "onServiceConnected: mIGetInfoConnection"); - mGetInfoInterface = IGetInfoInterface.Stub.asInterface(service); + mIGetInfoInterface = IGetInfoInterface.Stub.asInterface(service); mServiceConnected = true; for (ConnectedListener listener : mListeners) { if (listener != null) { @@ -60,20 +48,19 @@ public class RemoteManager { } } try { - String sn = mGetInfoInterface.getSerial(); + String sn = mIGetInfoInterface.getSerial(); CrashReport.setDeviceModel(mContext, sn); mMMKV.encode(SN_KEY, sn); Log.e(TAG, "onServiceConnected: sn = " + sn); } catch (RemoteException e) { e.printStackTrace(); } - getLocation(); } @Override public void onServiceDisconnected(ComponentName name) { Log.e(TAG, "onServiceDisconnected: mIGetInfoConnection"); - mGetInfoInterface = null; + mIGetInfoInterface = null; mServiceConnected = false; bindInfoService(); } @@ -117,7 +104,7 @@ public class RemoteManager { } private void bindInfoService() { - if (mGetInfoInterface == null) { + if (mIGetInfoInterface == null) { //这是连接aidl服务的代码 Intent intent = new Intent(); intent.setAction("com.uiuios.sn.IGetInfoInterface"); @@ -132,9 +119,9 @@ public class RemoteManager { */ public String getSerial() { // if (BuildConfig.DEBUG) return "MTK0002306120556370"; - if (mGetInfoInterface != null) { + if (mIGetInfoInterface != null) { try { - return mGetInfoInterface.getSerial(); + return mIGetInfoInterface.getSerial(); } catch (Exception e) { Log.e(TAG, "getSerial: " + e.getMessage()); } @@ -144,105 +131,10 @@ public class RemoteManager { return mMMKV.decodeString(SN_KEY, ""); } - public void getLocation() { - if (mGetInfoInterface != null) { - try { - String jsonString = mGetInfoInterface.getMapResult(); - mMMKV.encode(CommonConfig.MAP_LOCATION_JSON_KEY, jsonString); - } catch (Exception e) { - Log.e(TAG, "getMapResult: " + e.getMessage()); - } - } else { - bindInfoService(); - } - } - - public MapBean getMapBean() { - String jsonString = mMMKV.decodeString(CommonConfig.MAP_LOCATION_JSON_KEY); - if (TextUtils.isEmpty(jsonString)) { - return null; - } else { - Gson gson = new Gson(); - Type type = new TypeToken() { - }.getType(); - MapBean mapBean = gson.fromJson(jsonString, type); - mMMKV.encode(CommonConfig.MAP_ADDRESS_KEY, mapBean.getAddress() + mapBean.getLocationDescribe()); - mMMKV.encode(CommonConfig.MAP_LONGITUDE_KEY, String.valueOf(mapBean.getLongitude())); - mMMKV.encode(CommonConfig.MAP_LATITUDE_KEY, String.valueOf(mapBean.getLatitude())); - mMMKV.encode(CommonConfig.MAP_PROVINCE_KEY, mapBean.getProvince()); - mMMKV.encode(CommonConfig.MAP_CITY_KEY, mapBean.getCity()); - mMMKV.encode(CommonConfig.MAP_DISTRICT_KEY, mapBean.getDistrict()); - mMMKV.encode(CommonConfig.MAP_STREET_KEY, mapBean.getTown() + mapBean.getStreet()); - mMMKV.encode(CommonConfig.MAP_LOCATION_DESCRIBE_KEY, mapBean.getStreet() + mapBean.getLocationDescribe()); - return mapBean; - } - } - - public String getCity() { - MapBean mapBean = getMapBean(); - if (mapBean == null) { - getLocation(); - return "北京"; - } else { - return mapBean.getCity(); - } - } - - - public String getCityDistrict() { - MapBean mapBean = getMapBean(); - if (mapBean == null) { - getLocation(); - return "北京"; - } else { - return mapBean.getCity() + "\t" + mapBean.getDistrict(); - } - } - - public String getDistrict() { - getLocation(); - MapBean mapBean = getMapBean(); - if (mapBean == null) { - return "北京"; - } else { - return mapBean.getDistrict(); - } - } - - public double getLongitude() { - MapBean mapBean = getMapBean(); - if (mapBean == null) { - getLocation(); - return 0.0; - } else { - return mapBean.getLongitude(); - } - } - - public double getLatitude() { - MapBean mapBean = getMapBean(); - if (mapBean == null) { - getLocation(); - return 0.0; - } else { - return mapBean.getLatitude(); - } - } - - public String getLocationTude() { - MapBean mapBean = getMapBean(); - if (mapBean == null) { - getLocation(); - return "0.0"; - } else { - return mapBean.getLongitude() + "," + mapBean.getLatitude(); - } - } - public boolean putSystemInt(String name, int value) { - if (mGetInfoInterface != null) { + if (mIGetInfoInterface != null) { try { - return mGetInfoInterface.SystemPutInt(name, value); + return mIGetInfoInterface.SystemPutInt(name, value); } catch (Exception e) { Log.e(TAG, "putSystemInt: " + e.getMessage()); } @@ -253,9 +145,9 @@ public class RemoteManager { } public void killBackgroundProcesses(String pkg) { - if (mGetInfoInterface != null) { + if (mIGetInfoInterface != null) { try { - mGetInfoInterface.killBackgroundProcesses(pkg); + mIGetInfoInterface.killBackgroundProcesses(pkg); } catch (Exception e) { Log.e(TAG, "killBackgroundProcesses: " + e.getMessage()); } @@ -265,9 +157,9 @@ public class RemoteManager { } public String getConnectWifiSsid() { - if (mGetInfoInterface != null) { + if (mIGetInfoInterface != null) { try { - return mGetInfoInterface.getWifiSsid(); + return mIGetInfoInterface.getWifiSsid(); } catch (Exception e) { Log.e(TAG, "killBackgroundProcesses: " + e.getMessage()); } @@ -278,9 +170,9 @@ public class RemoteManager { } public String getBluetoothDeviceName() { - if (mGetInfoInterface != null) { + if (mIGetInfoInterface != null) { try { - return mGetInfoInterface.getBluetoothSsid(); + return mIGetInfoInterface.getBluetoothSsid(); } catch (Exception e) { Log.e(TAG, "killBackgroundProcesses: " + e.getMessage()); } @@ -291,9 +183,9 @@ public class RemoteManager { } public void openLauncher3() { - if (mGetInfoInterface != null) { + if (mIGetInfoInterface != null) { try { - mGetInfoInterface.openLauncher3(); + mIGetInfoInterface.openLauncher3(); } catch (Exception e) { Log.e(TAG, "openLauncher3: " + e.getMessage()); } @@ -303,9 +195,9 @@ public class RemoteManager { } public void setDefaultDesktop(String pkgName, String className) { - if (mGetInfoInterface != null) { + if (mIGetInfoInterface != null) { try { - mGetInfoInterface.setDefaultDesktop(pkgName, className); + mIGetInfoInterface.setDefaultDesktop(pkgName, className); } catch (Exception e) { Log.e(TAG, "setDefaultDesktop: " + e.getMessage()); } diff --git a/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java b/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java index 4f45630..896e5b5 100644 --- a/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java +++ b/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java @@ -77,6 +77,7 @@ import com.uiuios.aios.network.api.sn.SnInfoApi; import com.uiuios.aios.network.api.sn.SosRecordApi; import com.uiuios.aios.network.api.sn.SendScreenshotApi; import com.uiuios.aios.network.api.sn.SettingApi; +import com.uiuios.aios.network.api.sn.UpdateAddressApi; import com.uiuios.aios.network.api.sn.UpdateAlarmClockApi; import com.uiuios.aios.network.api.UpdateAppIconApi; import com.uiuios.aios.network.api.desktop.UpdateDesktopApi; @@ -511,6 +512,13 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } + public Observable getUpdateAddressObservable(String address, double longitude, double latitude) { + return mRetrofit.create(UpdateAddressApi.class) + .updateAddress(RemoteManager.getInstance().getSerial(), address, longitude, latitude) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } + public RegionListApi getRegionListApi() { return mRetrofit.create(RegionListApi.class); diff --git a/app/src/main/java/com/uiuios/aios/network/UrlAddress.java b/app/src/main/java/com/uiuios/aios/network/UrlAddress.java index 18a9aad..2135c45 100644 --- a/app/src/main/java/com/uiuios/aios/network/UrlAddress.java +++ b/app/src/main/java/com/uiuios/aios/network/UrlAddress.java @@ -24,6 +24,8 @@ public class UrlAddress { public final static String GET_SETTINGS = "control/getSetting"; /*sos记录*/ public static final String SOS_RECORD = "sosRecord"; + /*上传地址信息*/ + public static final String UPDATE_ADDRESS = "sn/update-address"; /*获取抢购列表*/ public static final String GET_GOODS_LIST = "getGoodsList"; diff --git a/app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAddressApi.java b/app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAddressApi.java new file mode 100644 index 0000000..5a1f6d9 --- /dev/null +++ b/app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAddressApi.java @@ -0,0 +1,20 @@ +package com.uiuios.aios.network.api.sn; + +import com.uiuios.aios.bean.BaseResponse; +import com.uiuios.aios.network.UrlAddress; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.POST; + +public interface UpdateAddressApi { + @FormUrlEncoded + @POST(UrlAddress.UPDATE_ADDRESS) + Observable updateAddress( + @Field("sn") String sn, + @Field("address") String address, + @Field("longitude") double longitude, + @Field("latitude") double latitude + ); +} diff --git a/app/src/main/java/com/uiuios/aios/service/main/MainService.java b/app/src/main/java/com/uiuios/aios/service/main/MainService.java index 90202a4..dc332e5 100644 --- a/app/src/main/java/com/uiuios/aios/service/main/MainService.java +++ b/app/src/main/java/com/uiuios/aios/service/main/MainService.java @@ -8,7 +8,6 @@ import android.content.IntentFilter; import android.os.IBinder; import android.os.PowerManager; import android.text.TextUtils; -import android.text.format.Formatter; import android.util.Log; import com.arialyy.annotations.Download; @@ -18,7 +17,7 @@ import com.blankj.utilcode.util.NetworkUtils; import com.uiuios.aios.BuildConfig; import com.uiuios.aios.activity.NoticeActivity; import com.uiuios.aios.alarm.AlarmUtils; -import com.uiuios.aios.base.BaseService; +import com.uiuios.aios.base.rx.BaseRxService; import com.uiuios.aios.alarm.AlarmClockData; import com.uiuios.aios.bean.BaseResponse; import com.uiuios.aios.manager.RemoteManager; @@ -28,8 +27,6 @@ import com.uiuios.aios.utils.AppUsedTimeUtils; import com.uiuios.aios.utils.CmdUtil; import com.uiuios.aios.utils.ForegroundAppUtil; -import com.uiuios.aios.utils.Utils; - import java.io.File; import java.io.FileNotFoundException; import java.util.Calendar; @@ -49,7 +46,7 @@ import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.RequestBody; -public class MainService extends BaseService implements MainSContact.MainSView, NetworkUtils.OnNetworkStatusChangedListener { +public class MainService extends BaseRxService implements MainSContact.MainSView, NetworkUtils.OnNetworkStatusChangedListener { private static final String TAG = MainService.class.getSimpleName(); @SuppressLint("StaticFieldLeak") public MainSPresenter mPresenter; @@ -407,7 +404,7 @@ public class MainService extends BaseService implements MainSContact.MainSView, break; case Intent.ACTION_SCREEN_OFF: //关闭屏幕上传数据 - sendAppUsed(context); +// sendAppUsed(context); break; } } diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 10d4dc3..33ebe22 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -28,7 +28,8 @@ true - false + + true true @@ -37,6 +38,7 @@ @android:style/Animation.Dialog true + true