From 7ef514e07b092daff61aa185dc7f31bf13f1a75e Mon Sep 17 00:00:00 2001 From: Administrator <981964879@qq.com> Date: Wed, 30 Dec 2020 10:27:00 +0800 Subject: [PATCH] =?UTF-8?q?update:2020.12.30=20fix:=E5=8F=91=E7=89=88=20ad?= =?UTF-8?q?d:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../java/com/appstore/uiui/MyApplication.java | 5 -- .../uiui/activity/KindDetailActivity.java | 2 - .../appstore/uiui/activity/MainActivity.java | 14 +++- .../uiui/activity/SearcherActivity.java | 2 - .../uiui/fragment/FeaturedFragment.java | 3 - .../appstore/uiui/fragment/KindFragment.java | 1 - .../uiui/fragment/ManageFragment.java | 1 - .../appstore/uiui/fragment/RankFragment.java | 2 - .../network/{OKGO.java => HTTPInterface.java} | 79 ++++++++++++++++++- .../appstore/uiui/network/NetWorkManager.java | 15 ++++ .../uiui/network/URLs/UrlAddress.java | 2 + .../uiui/network/api/NewestAppUpdate.java | 19 +++++ .../uiui/receiver/AppManagerReceiver.java | 1 - .../appstore/uiui/receiver/BootReceiver.java | 1 - .../uiui/service/InitJpushServer.java | 14 +++- 16 files changed, 138 insertions(+), 27 deletions(-) rename app/src/main/java/com/appstore/uiui/network/{OKGO.java => HTTPInterface.java} (88%) create mode 100644 app/src/main/java/com/appstore/uiui/network/api/NewestAppUpdate.java diff --git a/app/build.gradle b/app/build.gradle index 0f5f558..cc7a9ee 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "com.appstore.uiui" minSdkVersion 23 targetSdkVersion 29 - versionCode 24 - versionName "1.2.4" + versionCode 27 + versionName "1.2.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //极光 ndk { diff --git a/app/src/main/java/com/appstore/uiui/MyApplication.java b/app/src/main/java/com/appstore/uiui/MyApplication.java index 5243d2d..32c50ec 100644 --- a/app/src/main/java/com/appstore/uiui/MyApplication.java +++ b/app/src/main/java/com/appstore/uiui/MyApplication.java @@ -13,11 +13,8 @@ import android.provider.Settings; import androidx.annotation.NonNull; import com.appstore.uiui.jpush.Logger; -import com.appstore.uiui.network.OKGO; import com.appstore.uiui.receiver.AppManagerReceiver; -import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.LogUtils; -import com.appstore.uiui.utils.SPUtils; import com.appstore.uiui.utils.ToastUtil; import com.arialyy.aria.core.Aria; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -32,8 +29,6 @@ import com.scwang.smartrefresh.layout.header.ClassicsHeader; import org.json.JSONException; import org.json.JSONObject; -import java.io.File; - import cn.jpush.android.api.CustomMessage; import cn.jpush.android.api.JPushInterface; diff --git a/app/src/main/java/com/appstore/uiui/activity/KindDetailActivity.java b/app/src/main/java/com/appstore/uiui/activity/KindDetailActivity.java index 5d69263..20f073c 100644 --- a/app/src/main/java/com/appstore/uiui/activity/KindDetailActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/KindDetailActivity.java @@ -15,8 +15,6 @@ import com.appstore.uiui.adapter.AppAdapter; import com.appstore.uiui.base.BaseActivity; import com.appstore.uiui.base.RefreshManager; import com.appstore.uiui.bean.AppInfo; -import com.appstore.uiui.network.OKGO; -import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.SPUtils; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout; diff --git a/app/src/main/java/com/appstore/uiui/activity/MainActivity.java b/app/src/main/java/com/appstore/uiui/activity/MainActivity.java index a2be5bb..2b1afdc 100644 --- a/app/src/main/java/com/appstore/uiui/activity/MainActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/MainActivity.java @@ -30,17 +30,17 @@ import com.appstore.uiui.bean.AppInfo; import com.appstore.uiui.bean.BaseResponse; import com.appstore.uiui.bean.UserInfo; import com.appstore.uiui.fragment.FeaturedFragment; -import com.appstore.uiui.fragment.KindFragment; import com.appstore.uiui.fragment.ManageFragment; import com.appstore.uiui.jpush.ExampleUtil; import com.appstore.uiui.jpush.LocalBroadcastManager; import com.appstore.uiui.jpush.TagAliasOperatorHelper; import com.appstore.uiui.network.NetWorkManager; -import com.appstore.uiui.network.OKGO; import com.appstore.uiui.network.api.QueryAllApp; import com.appstore.uiui.network.api.SNInfo; +import com.appstore.uiui.service.GuardService; +import com.appstore.uiui.service.InitJpushServer; import com.appstore.uiui.service.MyDownloadService; -import com.appstore.uiui.utils.ApkUtils; +import com.appstore.uiui.service.StepService; import com.appstore.uiui.utils.LogUtils; import com.appstore.uiui.utils.SPUtils; import com.appstore.uiui.utils.ToastUtil; @@ -101,6 +101,14 @@ public class MainActivity extends BaseActivity { // pm.setApplicationEnabledSetting("com.tencent.qqmusic", PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0); startService(new Intent(MainActivity.this, MyDownloadService.class)); CheckUpdateBySNinfo(); + starService(); + } + + private void starService() { + startService(new Intent(this, GuardService.class)); + startService(new Intent(this, StepService.class)); + startService(new Intent(this, InitJpushServer.class)); + startService(new Intent(this, MyDownloadService.class)); } @Override diff --git a/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java b/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java index a62eb70..47fcbd4 100644 --- a/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java @@ -15,8 +15,6 @@ import com.appstore.uiui.R; import com.appstore.uiui.adapter.AppAdapter; import com.appstore.uiui.base.BaseActivity; import com.appstore.uiui.bean.AppInfo; -import com.appstore.uiui.network.OKGO; -import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.LogUtils; import java.util.ArrayList; diff --git a/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java b/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java index c506359..9b20146 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java @@ -27,10 +27,8 @@ import com.appstore.uiui.bean.AppInfos; import com.appstore.uiui.bean.BaseResponse; import com.appstore.uiui.bean.ImageUrl; import com.appstore.uiui.network.NetWorkManager; -import com.appstore.uiui.network.OKGO; import com.appstore.uiui.network.api.BannerImage; import com.appstore.uiui.network.api.QueryAllApp; -import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.LogUtils; import com.appstore.uiui.utils.Utils; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -44,7 +42,6 @@ import com.zhpan.bannerview.utils.BannerUtils; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; diff --git a/app/src/main/java/com/appstore/uiui/fragment/KindFragment.java b/app/src/main/java/com/appstore/uiui/fragment/KindFragment.java index cad55cc..45808f4 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/KindFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/KindFragment.java @@ -19,7 +19,6 @@ import com.appstore.uiui.adapter.KindAdapter; import com.appstore.uiui.base.BaseFragment; import com.appstore.uiui.base.RefreshManager; import com.appstore.uiui.bean.Kind; -import com.appstore.uiui.network.OKGO; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.listener.OnRefreshListener; diff --git a/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java b/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java index c93f07d..d7737ec 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java @@ -26,7 +26,6 @@ import com.appstore.uiui.base.LazyLoadFragment; import com.appstore.uiui.bean.AppInfo; import com.appstore.uiui.bean.LocalApp; import com.appstore.uiui.bean.UpdateAppInfo; -import com.appstore.uiui.network.OKGO; import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.ToastUtil; diff --git a/app/src/main/java/com/appstore/uiui/fragment/RankFragment.java b/app/src/main/java/com/appstore/uiui/fragment/RankFragment.java index 19756e2..18aa8e0 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/RankFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/RankFragment.java @@ -16,8 +16,6 @@ import com.appstore.uiui.adapter.AppAdapter; import com.appstore.uiui.base.LazyLoadFragment; import com.appstore.uiui.base.RefreshManager; import com.appstore.uiui.bean.AppInfo; -import com.appstore.uiui.network.OKGO; -import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.LogUtils; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout; diff --git a/app/src/main/java/com/appstore/uiui/network/OKGO.java b/app/src/main/java/com/appstore/uiui/network/HTTPInterface.java similarity index 88% rename from app/src/main/java/com/appstore/uiui/network/OKGO.java rename to app/src/main/java/com/appstore/uiui/network/HTTPInterface.java index b546bfe..db3a931 100644 --- a/app/src/main/java/com/appstore/uiui/network/OKGO.java +++ b/app/src/main/java/com/appstore/uiui/network/HTTPInterface.java @@ -1,19 +1,24 @@ package com.appstore.uiui.network; import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.os.Build; import android.os.Handler; import android.os.Message; import android.util.Log; -import androidx.annotation.NonNull; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.appstore.uiui.BuildConfig; import com.appstore.uiui.TextCode.MessageWhat; import com.appstore.uiui.bean.AppInfo; +import com.appstore.uiui.bean.BaseResponse; import com.appstore.uiui.bean.bannerImage; import com.appstore.uiui.network.URLs.UrlAddress; +import com.appstore.uiui.network.api.NewestAppUpdate; import com.appstore.uiui.network.api.SNInfo; +import com.appstore.uiui.utils.FileUtils; import com.appstore.uiui.utils.LogUtils; import com.appstore.uiui.utils.SPUtils; import com.appstore.uiui.utils.ToastUtil; @@ -25,15 +30,83 @@ import java.util.List; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; -public class OKGO { +public class HTTPInterface { private static final int GET_ALL_APPINFO = 0; private static final int GET_USERINFO = 1; private static final int GET_SORTAPP = 2; + + public static void checkUpdate(final Context context, String packageName, String versionCode) { + NewestAppUpdate newestAppUpdate = NetWorkManager.getNewestAppUpdateControl(); + newestAppUpdate.getAppUpdate(packageName, versionCode) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) { + + } + + @Override + public void onNext(@io.reactivex.annotations.NonNull BaseResponse appInfoBaseResponse) { + int code = appInfoBaseResponse.code; + if (code == 200) { + AppInfo appInfo = appInfoBaseResponse.data; + if (null != appInfo) { + JSONObject jsonObject = (JSONObject) JSON.toJSON(appInfo); + FileUtils.ariaDownload(context, appInfo.getApp_url(), jsonObject); + } + Log.e("checkUpdate", "update now"); + } else { + Log.e("checkUpdate", "not find update"); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("checkUpdate", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + + } + }); + + } + + public static void checkUpdate(Context context) { + String packageName = BuildConfig.APPLICATION_ID; + String versionCode = String.valueOf(BuildConfig.VERSION_CODE); + checkUpdate(context, packageName, versionCode); + } + + public static void checkUpdate(Context context, String packageName) { + PackageManager pm = context.getPackageManager(); + PackageInfo info = null; + try { + info = pm.getPackageInfo(packageName, 0); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + if (null != info) { + long appVersionCode; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + appVersionCode = info.getLongVersionCode(); + } else { + appVersionCode = info.versionCode; + } + checkUpdate(context, packageName, String.valueOf(appVersionCode)); + } else { + checkUpdate(context, packageName, "0"); + } + } + // private Handler mhandler = new Handler() { // @Override // public void handleMessage(@NonNull Message msg) { diff --git a/app/src/main/java/com/appstore/uiui/network/NetWorkManager.java b/app/src/main/java/com/appstore/uiui/network/NetWorkManager.java index e746021..641f011 100644 --- a/app/src/main/java/com/appstore/uiui/network/NetWorkManager.java +++ b/app/src/main/java/com/appstore/uiui/network/NetWorkManager.java @@ -5,6 +5,7 @@ import android.os.Environment; import com.appstore.uiui.network.URLs.UrlAddress; import com.appstore.uiui.network.api.BannerImage; import com.appstore.uiui.network.api.DownloadApp; +import com.appstore.uiui.network.api.NewestAppUpdate; import com.appstore.uiui.network.api.QueryAllApp; import com.appstore.uiui.network.api.SNInfo; @@ -46,6 +47,7 @@ public class NetWorkManager { private static QueryAllApp queryAllAppControl; private static BannerImage bannerImageControl; private static DownloadApp downloadAppControl; + private static NewestAppUpdate newestAppUpdateControl; public static SNInfo getuserInfoControl() { @@ -100,4 +102,17 @@ public class NetWorkManager { return downloadAppControl; } + public static NewestAppUpdate getNewestAppUpdateControl() { + if (null == newestAppUpdateControl) { + Retrofit retrofit = new Retrofit.Builder() + .client(client) + .baseUrl(ROOT_URL) + .addConverterFactory(gsonConverterFactory) + .addCallAdapterFactory(rxJavaCallAdapterFactory) + .build(); + newestAppUpdateControl = retrofit.create(NewestAppUpdate.class); + } + return newestAppUpdateControl; + } + } diff --git a/app/src/main/java/com/appstore/uiui/network/URLs/UrlAddress.java b/app/src/main/java/com/appstore/uiui/network/URLs/UrlAddress.java index d613e92..c750ea0 100644 --- a/app/src/main/java/com/appstore/uiui/network/URLs/UrlAddress.java +++ b/app/src/main/java/com/appstore/uiui/network/URLs/UrlAddress.java @@ -27,4 +27,6 @@ public class UrlAddress { //获取应用分类 public final static String SEND_DOWNLOADAPP = ROOT_URL + "app/downloadApp"; + public final static String GET_NEWESTAPPUPDATE = ROOT_URL + "app/newestAppUpdate"; + //根据包名获取更新 } diff --git a/app/src/main/java/com/appstore/uiui/network/api/NewestAppUpdate.java b/app/src/main/java/com/appstore/uiui/network/api/NewestAppUpdate.java new file mode 100644 index 0000000..872a90d --- /dev/null +++ b/app/src/main/java/com/appstore/uiui/network/api/NewestAppUpdate.java @@ -0,0 +1,19 @@ +package com.appstore.uiui.network.api; + + + +import com.appstore.uiui.bean.AppInfo; +import com.appstore.uiui.bean.BaseResponse; +import com.appstore.uiui.network.URLs.UrlAddress; + +import io.reactivex.Observable; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface NewestAppUpdate { + @GET(UrlAddress.GET_NEWESTAPPUPDATE) + Observable> getAppUpdate( + @Query("packageName") String packageName, + @Query("versionCode") String versionCode + ); +} diff --git a/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java b/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java index b8f4136..8d12aac 100644 --- a/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java +++ b/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java @@ -5,7 +5,6 @@ import android.content.Context; import android.content.Intent; import android.util.Log; -import com.appstore.uiui.network.OKGO; import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.LogUtils; import com.appstore.uiui.utils.SPUtils; diff --git a/app/src/main/java/com/appstore/uiui/receiver/BootReceiver.java b/app/src/main/java/com/appstore/uiui/receiver/BootReceiver.java index b31dfcc..9bc7ce1 100644 --- a/app/src/main/java/com/appstore/uiui/receiver/BootReceiver.java +++ b/app/src/main/java/com/appstore/uiui/receiver/BootReceiver.java @@ -4,7 +4,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import com.appstore.uiui.network.OKGO; import com.appstore.uiui.service.GuardService; import com.appstore.uiui.service.InitJpushServer; import com.appstore.uiui.service.StepService; diff --git a/app/src/main/java/com/appstore/uiui/service/InitJpushServer.java b/app/src/main/java/com/appstore/uiui/service/InitJpushServer.java index 0e9a5e3..bdf1777 100644 --- a/app/src/main/java/com/appstore/uiui/service/InitJpushServer.java +++ b/app/src/main/java/com/appstore/uiui/service/InitJpushServer.java @@ -4,6 +4,9 @@ import android.app.Service; import android.content.Intent; import android.os.IBinder; +import com.appstore.uiui.KeepAliveConnection; +import com.appstore.uiui.network.HTTPInterface; + public class InitJpushServer extends Service { public InitJpushServer() { } @@ -11,6 +14,15 @@ public class InitJpushServer extends Service { @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. - throw new UnsupportedOperationException("Not yet implemented"); +// throw new UnsupportedOperationException("Not yet implemented"); + return new KeepAliveConnection.Stub() { + }; + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + HTTPInterface.checkUpdate(InitJpushServer.this); + HTTPInterface.checkUpdate(InitJpushServer.this, "com.info.sn"); + return START_STICKY; } }