From 35c747a3344c7a052ee4d11bf314a8bc92401d46 Mon Sep 17 00:00:00 2001 From: fanhuitong <981964879@qq.com> Date: Tue, 27 Sep 2022 18:20:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8A=95=E5=B1=8F=E5=BC=80?= =?UTF-8?q?=E5=85=B3=EF=BC=8C=E5=8F=91=E9=80=81=E6=AD=A3=E5=9C=A8=E8=BF=90?= =?UTF-8?q?=E8=A1=8Capp=EF=BC=8Capp=E5=86=85=E9=83=A8=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uiui/sn/activity/main/MainAPresenter.java | 9 +- .../java/com/uiui/sn/bean/MyAppUsageBean.java | 9 ++ .../java/com/uiui/sn/config/CommonConfig.java | 5 +- .../uiui/sn/desktop/RunningAppManager.java | 74 ++++++--- .../uiui/sn/desktop/TimeControlManager.java | 13 +- .../com/uiui/sn/manager/ControlManager.java | 14 +- .../uiui/sn/network/NetInterfaceManager.java | 122 +++++++++++---- .../com/uiui/sn/service/RemoteService.java | 1 + .../uiui/sn/service/main/MainSContact.java | 6 + .../uiui/sn/service/main/MainSPresenter.java | 44 ++++-- .../com/uiui/sn/service/main/MainService.java | 72 ++++++++- .../com/uiui/sn/tpush/MessageReceiver.java | 31 +++- .../com/uiui/sn/utils/AppUsedTimeUtils.java | 148 ++++++++++-------- 13 files changed, 396 insertions(+), 152 deletions(-) diff --git a/app/src/main/java/com/uiui/sn/activity/main/MainAPresenter.java b/app/src/main/java/com/uiui/sn/activity/main/MainAPresenter.java index fed9309..c3d7d0a 100644 --- a/app/src/main/java/com/uiui/sn/activity/main/MainAPresenter.java +++ b/app/src/main/java/com/uiui/sn/activity/main/MainAPresenter.java @@ -2,14 +2,11 @@ package com.uiui.sn.activity.main; import android.content.Context; import android.graphics.Bitmap; -import android.provider.Settings; import android.util.Log; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; -import com.uiui.sn.bean.AppInfo; import com.uiui.sn.bean.BaseResponse; import com.uiui.sn.bean.SnInfo; import com.uiui.sn.config.CommonConfig; @@ -20,9 +17,7 @@ import com.uiui.sn.utils.CXAESUtil; import com.uiui.sn.utils.Utils; import java.lang.reflect.Type; -import java.util.List; -import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.subjects.BehaviorSubject; @@ -132,7 +127,7 @@ public class MainAPresenter implements MainAContact.Presenter { @Override public void getForceInstall() { - NetInterfaceManager.getInstance().getForceInstall(false, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().getForceInstall(false, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { Log.e("getForceInstall", "onComplete: "); @@ -143,7 +138,7 @@ public class MainAPresenter implements MainAContact.Presenter { @Override public void getOverallApp() { - NetInterfaceManager.getInstance().getOverallApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().getOverallApp(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { mView.setOverallApp(); diff --git a/app/src/main/java/com/uiui/sn/bean/MyAppUsageBean.java b/app/src/main/java/com/uiui/sn/bean/MyAppUsageBean.java index e7185b9..bf65117 100644 --- a/app/src/main/java/com/uiui/sn/bean/MyAppUsageBean.java +++ b/app/src/main/java/com/uiui/sn/bean/MyAppUsageBean.java @@ -12,6 +12,7 @@ public class MyAppUsageBean implements Serializable { int id; String app_name; + String app_package; String app_img; String class_name; long use_time;//s @@ -32,6 +33,14 @@ public class MyAppUsageBean implements Serializable { this.app_name = app_name; } + public String getApp_package() { + return app_package; + } + + public void setApp_package(String app_package) { + this.app_package = app_package; + } + public String getApp_img() { return app_img; } diff --git a/app/src/main/java/com/uiui/sn/config/CommonConfig.java b/app/src/main/java/com/uiui/sn/config/CommonConfig.java index 288fae2..2a71841 100644 --- a/app/src/main/java/com/uiui/sn/config/CommonConfig.java +++ b/app/src/main/java/com/uiui/sn/config/CommonConfig.java @@ -38,9 +38,10 @@ public class CommonConfig { public final static String AOLE_ACTION_USB_USB_MTP = "aole_action_usb_usb_mtp"; /*USB模式-MIDI*/ public final static String AOLE_ACTION_USB_USB_MIDI = "aole_action_usb_usb_midi"; - + /*投屏开关*/ public final static String AOLE_ACTION_SCREEN_SHARE = "aole_app_screen_share"; - + /*内部黑名单*/ + public final static String AOLE_APP_WEB_WHITE_LIST ="app_web_white_list"; /*应用安装白名单*/ public final static String AOLE_ACTION_APP_FORBID = "aole_app_forbid"; /*强制安装应用,禁止卸载*/ diff --git a/app/src/main/java/com/uiui/sn/desktop/RunningAppManager.java b/app/src/main/java/com/uiui/sn/desktop/RunningAppManager.java index 4e46e7c..1458da9 100644 --- a/app/src/main/java/com/uiui/sn/desktop/RunningAppManager.java +++ b/app/src/main/java/com/uiui/sn/desktop/RunningAppManager.java @@ -40,6 +40,7 @@ import com.uiui.sn.disklrucache.CacheHelper; import com.uiui.sn.gson.GsonUtils; import com.uiui.sn.network.NetInterfaceManager; import com.uiui.sn.network.UrlAddress; +import com.uiui.sn.utils.AppUsedTimeUtils; import com.uiui.sn.utils.JGYUtils; import com.uiui.sn.utils.ToastUtil; @@ -57,8 +58,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicLong; -import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -187,10 +186,12 @@ public class RunningAppManager { Log.i(TAG, "checkForegroundAppName: topPackage = " + topPackage); String appPackageName = getAppPackageName(); Log.d(TAG, "checkForegroundAppName: appPackageName = " + appPackageName); - if (allowPackage.contains(topPackage)) { + if (allowPackage.contains(topPackage)) {//排除在外的包名都写入空值 if (!TextUtils.isEmpty(appPackageName)) { if (!topPackage.equals(appPackageName)) { - NetInterfaceManager.getInstance().sendCloseApp(appPackageName, new NetInterfaceManager.onCompleteCallback() { + //切换出去了 + Log.i(TAG, "checkForegroundAppName: 切换应用1:" + topPackage); + NetInterfaceManager.getInstance().sendCloseApp(appPackageName, new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { Log.i(TAG, "onComplete: "); @@ -198,14 +199,28 @@ public class RunningAppManager { NetInterfaceManager.getInstance().getAppTimeControl(); } }); + NetInterfaceManager.getInstance().getMyAppList(new NetInterfaceManager.MyAppListCallback() { + @Override + public void setMyAppList(List myAppList) { + syncAllAppUsageTime(myAppList); + } + }); + AppUsedTimeUtils.getInstance().setApp_package(topPackage); + AppUsedTimeUtils.getInstance().setStart_time(System.currentTimeMillis() / 1000); + NetInterfaceManager.getInstance().sendRunningApp(); } } mMMKV.encode(RUNNING_APP_PACKAGENAME, ""); Log.d(TAG, "checkForegroundAppName: allow: " + topPackage); return; } + //如果appPackageName 为空则topPackage是才打开 if (TextUtils.isEmpty(appPackageName)) { + Log.d(TAG, "checkForegroundAppName: open: " + topPackage); recordPackageOpenTime(topPackage); + AppUsedTimeUtils.getInstance().setApp_package(topPackage); + AppUsedTimeUtils.getInstance().setStart_time(System.currentTimeMillis() / 1000); + NetInterfaceManager.getInstance().sendRunningApp(); return; } long onClickTime = getOnClickTime(); @@ -221,17 +236,26 @@ public class RunningAppManager { reduceAppRemainingTime(topPackage, 1); } } else { - Log.i(TAG, "checkForegroundAppName: 切换应用:" + topPackage); - NetInterfaceManager.getInstance().sendCloseApp(appPackageName, new NetInterfaceManager.onCompleteCallback() { + Log.i(TAG, "checkForegroundAppName: 切换应用2:" + topPackage); + NetInterfaceManager.getInstance().sendCloseApp(appPackageName, new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { NetInterfaceManager.getInstance().getSnTimeControl(); NetInterfaceManager.getInstance().getAppTimeControl(); } }); + NetInterfaceManager.getInstance().getMyAppList(new NetInterfaceManager.MyAppListCallback() { + @Override + public void setMyAppList(List myAppList) { + syncAllAppUsageTime(myAppList); + } + }); reduceAppRemainingTime(topPackage, 1); appPackageName = topPackage; + AppUsedTimeUtils.getInstance().setApp_package(appPackageName); onClickTime = System.currentTimeMillis() / 1000; + NetInterfaceManager.getInstance().sendRunningApp(); + AppUsedTimeUtils.getInstance().setStart_time(onClickTime); if (RunningAppManager.getInstance().inControlTime(appPackageName)) { Log.i(TAG, "checkForegroundAppName: 没有剩余时间2"); removeTask(topPackage); @@ -289,10 +313,13 @@ public class RunningAppManager { long time = System.currentTimeMillis(); String finaWayDate = sdf.format(time); if ("00:00:00".equals(finaWayDate)) { + //清除数据保证及时性 mMMKV.encode(RemainingTimeMap, ""); mMMKV.encode(GlobalUsageTimeMap, ""); + mMMKV.encode(AllApplUsageTimeMap, ""); mRemainingTimeMap.clear(); mGlobalUsageTime.clear(); + mAllAppUsageTime.clear(); } } } @@ -457,16 +484,25 @@ public class RunningAppManager { } /*同步所有应用使用时间*/ - public void synvAllAppUsageTime(List myAppList) { + public void syncAllAppUsageTime(List myAppList) { if (myAppList == null || myAppList.size() == 0) { mAllAppUsageTime.clear(); } else { // mAllAppUsageTime.clear(); for (MyAppUsageBean bean : myAppList) { + if (TextUtils.isEmpty(bean.getApp_package())) { + continue; + } AppUsageTime appUsageTime = new AppUsageTime(); - appUsageTime.setPkg(bean.getApp_name()); + appUsageTime.setPkg(bean.getApp_package()); + appUsageTime.setAppName(bean.getApp_name()); + appUsageTime.setUsageTime(bean.getUse_time()); + mAllAppUsageTime.put(bean.getApp_package(), appUsageTime); } } + String singleString = GsonUtils.toJSONString(mAllAppUsageTime); + mMMKV.encode(AllApplUsageTimeMap, singleString); + Log.e(TAG, "syncAllAppUsageTime: " + mAllAppUsageTime); } /** @@ -600,7 +636,7 @@ public class RunningAppManager { if (TextUtils.isEmpty(pkg)) { return "未知"; } - String jsonString = mCacheHelper.getAsString(UrlAddress.GET_ALL_PACKAGE); + String jsonString = mMMKV.decodeString(UrlAddress.GET_ALL_PACKAGE, ""); if (!TextUtils.isEmpty(jsonString)) { Type type = new TypeToken>() { }.getType(); @@ -784,6 +820,12 @@ public class RunningAppManager { public String getDisableContent(String pkg) { + NetInterfaceManager.getInstance().getMyAppList(new NetInterfaceManager.MyAppListCallback() { + @Override + public void setMyAppList(List myAppList) { + + } + }); RemainTime remainTime = new RemainTime(); remainTime.setPkg(pkg); // if (allowPackage.contains(pkg)) { @@ -944,9 +986,12 @@ public class RunningAppManager { public int compare(AppUsageTime o1, AppUsageTime o2) { if (o1.getUsageTime() > o2.getUsageTime()) { return 1; - } else { + } else if (o1.getUsageTime() == o2.getUsageTime()) { return 0; + } else if (o1.getUsageTime() < o2.getUsageTime()) { + return -1; } + return 1; } }); if (tempTime < allTime) { @@ -1343,15 +1388,6 @@ public class RunningAppManager { } } - public void checkTopAppPackageName() { - String topPackage = getTopActivityInfo(); - Log.i(TAG, "onReceive: " + topPackage); -// Log.i(TAG, "onReceive: getWeekDay: " + getWeekDay()); -// Log.i(TAG, "onReceive: getWeekDayString: " + getWeekDayString()); -// Log.i(TAG, "onReceive: inWeekDay: " + inWeekDay()); - } - - private String getTopActivityInfo() { ActivityManager manager = ((ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE)); if (Build.VERSION.SDK_INT >= 21) { diff --git a/app/src/main/java/com/uiui/sn/desktop/TimeControlManager.java b/app/src/main/java/com/uiui/sn/desktop/TimeControlManager.java index 02124f1..ac1e827 100644 --- a/app/src/main/java/com/uiui/sn/desktop/TimeControlManager.java +++ b/app/src/main/java/com/uiui/sn/desktop/TimeControlManager.java @@ -2,11 +2,13 @@ package com.uiui.sn.desktop; import android.annotation.SuppressLint; import android.content.Context; +import android.text.TextUtils; import android.util.Log; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.uiui.sn.disklrucache.CacheHelper; +import com.uiui.sn.gson.GsonUtils; import com.uiui.sn.network.UrlAddress; import java.lang.reflect.Type; @@ -35,6 +37,14 @@ public class TimeControlManager { } this.mContext = context; this.mCacheHelper = new CacheHelper(context); + String appTimeControlJson = mCacheHelper.getAsString(UrlAddress.GET_APP_TIME_CONTROL); + if (!TextUtils.isEmpty(appTimeControlJson)) { + Gson gson = new Gson(); + Type type = new TypeToken>() { + }.getType(); + List appTimeControls = gson.fromJson(appTimeControlJson, type); + setAppTimeControlMap(appTimeControls); + } } public static void init(Context context) { @@ -50,7 +60,7 @@ public class TimeControlManager { return mTimeControlManager; } - public HashMap getAppTimeControlMap(){ + public HashMap getAppTimeControlMap() { return mAppTimeControlMap; } @@ -81,7 +91,6 @@ public class TimeControlManager { * @return */ public MachineControl getGlobalMachineControl() { - Log.e(TAG, "getGlobalMachineControl: "); if (mGlobalMachineControl == null) { String jsonString = mCacheHelper.getAsString(UrlAddress.GET_SN_TIME_CONTROL); //为 "" 是已经请求成功的 diff --git a/app/src/main/java/com/uiui/sn/manager/ControlManager.java b/app/src/main/java/com/uiui/sn/manager/ControlManager.java index b0e254b..75ca230 100644 --- a/app/src/main/java/com/uiui/sn/manager/ControlManager.java +++ b/app/src/main/java/com/uiui/sn/manager/ControlManager.java @@ -72,6 +72,7 @@ public class ControlManager { SystemSettings systemSettings = GsonUtils.toJavaObject(jsonString, SystemSettings.class); if (null != systemSettings) { setUSBstate(systemSettings); + setScreenShared(systemSettings); // ControlPanelManager.getInstance().setUsbStatus(systemSettings.getSetting_usb()); setPhoneList(systemSettings); setBluetooth(systemSettings); @@ -126,6 +127,7 @@ public class ControlManager { public void setDisableSetting() { Log.e("setDisableSetting", "Close all settings: "); setUSBstate(1); + setScreenShared(1); setPhoneList(1); setBluetooth(0); setHotspot(0); @@ -201,7 +203,7 @@ public class ControlManager { } Intent usbIntent = new Intent(usbStatus).setPackage("com.android.settings"); // if (!BuildConfig.DEBUG) - mContext.sendBroadcast(usbIntent); + mContext.sendBroadcast(usbIntent); } /** @@ -791,16 +793,16 @@ public class ControlManager { private void setScreenShared(SystemSettings settings) { int projection_screen = settings.getProjection_screen(); - setScreenShared(projection_screen); + setScreenShared(changeNum(projection_screen)); } - private void setScreenShared(int state) { - Settings.System.putInt(mResolver, "projection_screen", state); + public void setScreenShared(int state) { + Settings.System.putInt(mResolver, CommonConfig.AOLE_ACTION_SCREEN_SHARE, state); } private void setHotPoint(SystemSettings settings) { int hot_point = settings.getHot_point(); - setScreenShared(hot_point); + setHotPoint(hot_point); } private void setHotPoint(int state) { @@ -873,4 +875,6 @@ public class ControlManager { private void closeSettingsApp() { JGYUtils.getInstance().killBackgroundProcesses("com.android.settings"); } + + } diff --git a/app/src/main/java/com/uiui/sn/network/NetInterfaceManager.java b/app/src/main/java/com/uiui/sn/network/NetInterfaceManager.java index 6735ce7..45828e5 100644 --- a/app/src/main/java/com/uiui/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/uiui/sn/network/NetInterfaceManager.java @@ -26,6 +26,7 @@ import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.uiui.sn.BuildConfig; import com.uiui.sn.bean.AppInfo; +import com.uiui.sn.bean.AppJump; import com.uiui.sn.bean.AppStart; import com.uiui.sn.bean.MyAppUsageBean; import com.uiui.sn.bean.OverallAppBean; @@ -486,6 +487,13 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } + public Observable>> getAppJumpObservable() { + return getAppJumpControl() + .getSNJump(Utils.getSerial()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } + /* * * execution @@ -567,7 +575,7 @@ public class NetInterfaceManager { void onComplete(); } - public interface onCompleteCallback { + public interface CompleteCallback { void onComplete(); } @@ -664,7 +672,7 @@ public class NetInterfaceManager { * @param lifecycle * @param callback */ - public void setPushTags(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + public void setPushTags(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.SIX_HOUR; if (refresh) { connectMode = ConnectMode.ONE_HOUR; @@ -685,7 +693,7 @@ public class NetInterfaceManager { } } - public void setPushTags(BehaviorSubject lifecycle, onCompleteCallback callback) { + public void setPushTags(BehaviorSubject lifecycle, CompleteCallback callback) { Set set = new HashSet(); JGYUtils.getInstance().getAppPlatform(platform -> { if (platform == JGYUtils.MTKPlatform) { @@ -951,7 +959,7 @@ public class NetInterfaceManager { } - public void checkAllAppUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + public void checkAllAppUpdate(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.SIX_HOUR; if (refresh) { connectMode = ConnectMode.ONE_HOUR; @@ -974,7 +982,7 @@ public class NetInterfaceManager { } } - public void checkAllAppUpdate(BehaviorSubject lifecycle, onCompleteCallback callback) { + public void checkAllAppUpdate(BehaviorSubject lifecycle, CompleteCallback callback) { Observable.zip( getUpdateObservable(BuildConfig.APPLICATION_ID), getUpdateObservable(JGYUtils.PACKAGE_APPSTORE), @@ -1030,7 +1038,7 @@ public class NetInterfaceManager { }); } - public void checkFXYAppUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + public void checkFXYAppUpdate(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.SIX_HOUR; if (refresh) { connectMode = ConnectMode.ONE_HOUR; @@ -1053,7 +1061,7 @@ public class NetInterfaceManager { } } - public void checkFXYAppUpdate(BehaviorSubject lifecycle, onCompleteCallback callback) { + public void checkFXYAppUpdate(BehaviorSubject lifecycle, CompleteCallback callback) { Observable.zip( getUpdateObservable(JGYUtils.gkwxhd), getUpdateObservable(JGYUtils.fuxiaoying), @@ -1171,7 +1179,7 @@ public class NetInterfaceManager { } } - private void getCloudLessonSetting(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + private void getCloudLessonSetting(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.ONE_HOUR; if (refresh) { connectMode = ConnectMode.DEFAULT; @@ -1193,7 +1201,7 @@ public class NetInterfaceManager { } } - private void getCloudLessonSetting(BehaviorSubject lifecycle, onCompleteCallback callback) { + private void getCloudLessonSetting(BehaviorSubject lifecycle, CompleteCallback callback) { getCloudLessonSettingApiControl() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(new Observer>() { @@ -1865,7 +1873,7 @@ public class NetInterfaceManager { Log.e("getAllappPackage", "onNext: " + listBaseResponse); List appInfoList = listBaseResponse.data; if (null != appInfoList && appInfoList.size() != 0) { - mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, appInfoList.toString()); + mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, GsonUtils.toJSONString(appInfoList)); HashSet allAppPkg = new HashSet<>(); for (AppInfo appInfo : appInfoList) { allAppPkg.add(appInfo.getApp_package()); @@ -1875,11 +1883,11 @@ public class NetInterfaceManager { ApkUtils.writeAppPackageList(mContext, allPkgSet); getAppStart(appInfoList); } else { - mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, ""); + mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, ""); ApkUtils.writeAppPackageList(mContext, ""); } } else { - mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, ""); + mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, ""); ApkUtils.writeAppPackageList(mContext, ""); } } @@ -1896,7 +1904,7 @@ public class NetInterfaceManager { }); } - public void getForceInstall(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getForceInstall(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.ONE_DAY; if (refresh) { connectMode = ConnectMode.ONE_HOUR; @@ -1919,13 +1927,13 @@ public class NetInterfaceManager { } } - public void getForceInstall(BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getForceInstall(BehaviorSubject lifecycle, CompleteCallback callback) { getForceInstallControl() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(getForceInstallObserver(callback)); } - public void getForceInstall(onCompleteCallback callback) { + public void getForceInstall(CompleteCallback callback) { getForceInstallControl() .subscribe(getForceInstallObserver(callback)); } @@ -1935,7 +1943,7 @@ public class NetInterfaceManager { .subscribe(getForceInstallObserver(null)); } - private Observer>> getForceInstallObserver(onCompleteCallback callback) { + private Observer>> getForceInstallObserver(CompleteCallback callback) { return new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -2108,12 +2116,12 @@ public class NetInterfaceManager { } public void sendRunningApp() { - String packageName = AppUsedTimeUtils.getInstance().getAppPackageName(); - long time = AppUsedTimeUtils.getInstance().getStartTime(); + String packageName = AppUsedTimeUtils.getInstance().getApp_package(); + long time = AppUsedTimeUtils.getInstance().getStart_time(); JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("app_package", packageName); jsonObject.addProperty("version_name", ApkUtils.getAPPVersionName(mContext, packageName)); - jsonObject.addProperty("start_time", time / 1000); + jsonObject.addProperty("start_time", time); String jsonString = jsonObject.toString(); Log.e(TAG, "sendRunningApp: " + jsonString); getRunningAppObservable(jsonString) @@ -2259,7 +2267,7 @@ public class NetInterfaceManager { public static final String APP_TIME_CONTROL_UPDATE = "APP_TIME_CONTROL_UPDATE"; public static final String SN_TIME_CONTROL_UPDATE = "SN_TIME_CONTROL_UPDATE"; - public void getAppTimeControl(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getAppTimeControl(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.ONE_MINUTE; if (refresh) { connectMode = ConnectMode.DEFAULT; @@ -2275,7 +2283,8 @@ public class NetInterfaceManager { Gson gson = new Gson(); Type type = new TypeToken>() { }.getType(); - List appInfos = gson.fromJson(jsonString, type); + List appTimeControls = gson.fromJson(jsonString, type); + TimeControlManager.getInstance().setAppTimeControlMap(appTimeControls); callback.onComplete(); } } @@ -2285,13 +2294,13 @@ public class NetInterfaceManager { return mCacheHelper.getAsString(UrlAddress.GET_APP_TIME_CONTROL); } - public void getAppTimeControl(BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getAppTimeControl(BehaviorSubject lifecycle, CompleteCallback callback) { getAppTimeControlObservable() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(getAppTimeControlObserver(callback)); } - public void getAppTimeControl(onCompleteCallback callback) { + public void getAppTimeControl(CompleteCallback callback) { getAppTimeControlObservable() .subscribe(getAppTimeControlObserver(callback)); } @@ -2301,7 +2310,7 @@ public class NetInterfaceManager { .subscribe(getAppTimeControlObserver(null)); } - private Observer>> getAppTimeControlObserver(onCompleteCallback callback) { + private Observer>> getAppTimeControlObserver(CompleteCallback callback) { return new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -2345,7 +2354,7 @@ public class NetInterfaceManager { } - public void getSnTimeControl(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getSnTimeControl(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.ONE_MINUTE; if (refresh) { connectMode = ConnectMode.DEFAULT; @@ -2371,13 +2380,13 @@ public class NetInterfaceManager { return mCacheHelper.getAsString(UrlAddress.GET_SN_TIME_CONTROL); } - public void getSnTimeControl(BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getSnTimeControl(BehaviorSubject lifecycle, CompleteCallback callback) { getMachineTimeControlObservable() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(getSnTimeControlObserver(callback)); } - public void getSnTimeControl(onCompleteCallback callback) { + public void getSnTimeControl(CompleteCallback callback) { getMachineTimeControlObservable() .subscribe(getSnTimeControlObserver(callback)); } @@ -2387,7 +2396,7 @@ public class NetInterfaceManager { .subscribe(getSnTimeControlObserver(null)); } - public Observer> getSnTimeControlObserver(onCompleteCallback callback) { + public Observer> getSnTimeControlObserver(CompleteCallback callback) { return new Observer>() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -2425,7 +2434,7 @@ public class NetInterfaceManager { }; } - public void sendCloseApp(String packageName, onCompleteCallback completeCallback) { + public void sendCloseApp(String packageName, CompleteCallback completeCallback) { PackageManager pm = mContext.getPackageManager(); PackageInfo appInfo = null; try { @@ -2464,7 +2473,7 @@ public class NetInterfaceManager { } } - public void getOverallApp(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getOverallApp(boolean refresh, BehaviorSubject lifecycle, CompleteCallback callback) { ConnectMode connectMode = ConnectMode.ONE_MINUTE; if (refresh) { connectMode = ConnectMode.DEFAULT; @@ -2486,13 +2495,13 @@ public class NetInterfaceManager { } } - public void getOverallApp(BehaviorSubject lifecycle, onCompleteCallback callback) { + public void getOverallApp(BehaviorSubject lifecycle, CompleteCallback callback) { getOverallAppObservable() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(getOverallAppObserver(callback)); } - public void getOverallApp(onCompleteCallback callback) { + public void getOverallApp(CompleteCallback callback) { getOverallAppObservable() .subscribe(getOverallAppObserver(callback)); } @@ -2502,7 +2511,7 @@ public class NetInterfaceManager { .subscribe(getOverallAppObserver(null)); } - public Observer>> getOverallAppObserver(onCompleteCallback callback) { + public Observer>> getOverallAppObserver(CompleteCallback callback) { return new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -2580,7 +2589,7 @@ public class NetInterfaceManager { } } - interface MyAppListCallback { + public interface MyAppListCallback { void setMyAppList(List myAppList); } @@ -2611,4 +2620,49 @@ public class NetInterfaceManager { } }); } + + public void getAppJump(CompleteCallback completeCallback) { + getAppJumpObservable() + .subscribe(new Observer>>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppJump", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse> listBaseResponse) { + Log.e("getAppJump", "onNext: " + listBaseResponse); + if (listBaseResponse.code == 200) { + List appJumpList = listBaseResponse.data; + if (appJumpList == null || appJumpList.size() == 0) { + boolean putString = Settings.System.putString(crv, CommonConfig.AOLE_APP_WEB_WHITE_LIST, ""); + Log.e(TAG, "getAppJump: " + putString); + } else { + List urls = appJumpList.stream().map(new java.util.function.Function() { + @Override + public String apply(AppJump appJump) { + return appJump.getAddress(); + } + }).collect(Collectors.toList()); + boolean putString = Settings.System.putString(crv, CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", urls)); + Log.e(TAG, "getAppJump: " + putString); + } + } else { + boolean putString = Settings.System.putString(crv, CommonConfig.AOLE_APP_WEB_WHITE_LIST, ""); + Log.e(TAG, "getAppJump: " + putString); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppJump", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAppJump", "onComplete: "); + } + }); + } } diff --git a/app/src/main/java/com/uiui/sn/service/RemoteService.java b/app/src/main/java/com/uiui/sn/service/RemoteService.java index 8b2a2d5..7c2c808 100644 --- a/app/src/main/java/com/uiui/sn/service/RemoteService.java +++ b/app/src/main/java/com/uiui/sn/service/RemoteService.java @@ -10,6 +10,7 @@ import android.util.Log; import com.google.gson.JsonObject; import com.uiui.sn.BuildConfig; import com.uiui.sn.IGetInfoInterface; +import com.uiui.sn.bean.MyAppUsageBean; import com.uiui.sn.config.CommonConfig; import com.uiui.sn.desktop.RunningAppManager; import com.uiui.sn.network.NetInterfaceManager; diff --git a/app/src/main/java/com/uiui/sn/service/main/MainSContact.java b/app/src/main/java/com/uiui/sn/service/main/MainSContact.java index c70843d..25071ca 100644 --- a/app/src/main/java/com/uiui/sn/service/main/MainSContact.java +++ b/app/src/main/java/com/uiui/sn/service/main/MainSContact.java @@ -19,9 +19,11 @@ public class MainSContact { void setSystemSettings(); void setBrowserLabel(); void setBrowserWhiteList(); + void setAppJump(); void setAppStart(); void setAppTimeControl(); void setSnTimeControl(); + void setMyAppList(); void setScreenLock(); } @@ -50,12 +52,16 @@ public class MainSContact { void getBrowserLabel(); //获取浏览器黑白名单 void getBrowserWhiteList(); + //获取内部网址管控 + void getAppJump(); //应用自启 void getAppStart(); //获取时间管控 void getAppTimeControl(); //获取整机管控 void getSnTimeControl(); + //获取所有应用使用时间 + void getMyAppList(); //获取锁屏管控 void getScreenLock(); diff --git a/app/src/main/java/com/uiui/sn/service/main/MainSPresenter.java b/app/src/main/java/com/uiui/sn/service/main/MainSPresenter.java index 90a26bc..01e3e3b 100644 --- a/app/src/main/java/com/uiui/sn/service/main/MainSPresenter.java +++ b/app/src/main/java/com/uiui/sn/service/main/MainSPresenter.java @@ -10,17 +10,19 @@ import android.util.Log; import com.google.gson.Gson; import com.google.gson.JsonObject; +import com.tencent.mmkv.MMKV; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.uiui.sn.bean.AppInfo; import com.uiui.sn.bean.AppStart; import com.uiui.sn.bean.BaseResponse; import com.uiui.sn.bean.Label; -import com.uiui.sn.bean.SystemSettings; +import com.uiui.sn.bean.MyAppUsageBean; import com.uiui.sn.bean.SystemSettingsSet; import com.uiui.sn.bean.browser.BrowserApiData; import com.uiui.sn.bean.browser.BrowserBean; import com.uiui.sn.config.CommonConfig; +import com.uiui.sn.desktop.RunningAppManager; import com.uiui.sn.disklrucache.CacheHelper; import com.uiui.sn.manager.ControlManager; import com.uiui.sn.network.NetInterfaceManager; @@ -31,7 +33,6 @@ import com.uiui.sn.gson.GsonUtils; import com.uiui.sn.utils.JGYUtils; import com.uiui.sn.utils.SPUtils; import com.uiui.sn.utils.ServiceAliveUtils; -import com.uiui.sn.utils.TimeUtils; import com.uiui.sn.utils.URLUtils; import com.uiui.sn.utils.Utils; @@ -56,6 +57,7 @@ public class MainSPresenter implements MainSContact.Presenter { private MainSContact.MainView mView; private Context mContext; private CacheHelper mCacheHelper; + private MMKV mMMKV = MMKV.defaultMMKV(); public MainSPresenter(Context context) { this.mContext = context; @@ -123,7 +125,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void checkUpdate() { - NetInterfaceManager.getInstance().checkAllAppUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().checkAllAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { mView.checkUpdateFinish(); @@ -133,7 +135,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void checkFXYUpdate() { - NetInterfaceManager.getInstance().checkFXYAppUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().checkFXYAppUpdate(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { mView.checkFXYUpdateFinish(); @@ -160,10 +162,10 @@ public class MainSPresenter implements MainSContact.Presenter { if (code == 200) { List appInfoList = listBaseResponse.data; if (appInfoList == null || appInfoList.size() == 0) { - mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, ""); + mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, ""); ApkUtils.writeAppPackageList(mContext, ""); } else { - mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, appInfoList.toString()); + mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, GsonUtils.toJSONString(appInfoList)); HashSet allPkgSet = new HashSet(); for (AppInfo pkg : appInfoList) { allPkgSet.add(pkg.getApp_package()); @@ -176,7 +178,7 @@ public class MainSPresenter implements MainSContact.Presenter { } JGYUtils.getInstance().deleteOtherApp(); } else { - mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, ""); + mMMKV.encode(UrlAddress.GET_ALL_PACKAGE, ""); ApkUtils.writeAppPackageList(mContext, ""); } } @@ -197,7 +199,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getOverallApp() { - NetInterfaceManager.getInstance().getOverallApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().getOverallApp(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { mView.setOverallApp(); @@ -248,7 +250,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getForceInstall() { - NetInterfaceManager.getInstance().getForceInstall(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().getForceInstall(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { mView.setForceInstall(); @@ -429,6 +431,16 @@ public class MainSPresenter implements MainSContact.Presenter { }); } + @Override + public void getAppJump() { + NetInterfaceManager.getInstance().getAppJump(new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + mView.setAppJump(); + } + }); + } + @Override public void getAppStart() { NetInterfaceManager.getInstance() @@ -468,7 +480,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getAppTimeControl() { - NetInterfaceManager.getInstance().getAppTimeControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().getAppTimeControl(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { mView.setAppTimeControl(); @@ -478,7 +490,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getSnTimeControl() { - NetInterfaceManager.getInstance().getSnTimeControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().getSnTimeControl(true, getLifecycle(), new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { mView.setSnTimeControl(); @@ -486,6 +498,16 @@ public class MainSPresenter implements MainSContact.Presenter { }); } + @Override + public void getMyAppList() { + NetInterfaceManager.getInstance().getMyAppList(new NetInterfaceManager.MyAppListCallback() { + @Override + public void setMyAppList(List myAppList) { + RunningAppManager.getInstance().syncAllAppUsageTime(myAppList); + } + }); + } + @Override public void getScreenLock() { NetInterfaceManager.getInstance() diff --git a/app/src/main/java/com/uiui/sn/service/main/MainService.java b/app/src/main/java/com/uiui/sn/service/main/MainService.java index d01ca36..65cc657 100644 --- a/app/src/main/java/com/uiui/sn/service/main/MainService.java +++ b/app/src/main/java/com/uiui/sn/service/main/MainService.java @@ -15,6 +15,7 @@ import android.os.AsyncTask; import android.os.Binder; import android.os.IBinder; import android.os.SystemClock; +import android.text.TextUtils; import android.util.Log; import com.blankj.utilcode.util.NetworkUtils; @@ -205,6 +206,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo lifecycleSubject.onNext(ActivityEvent.DESTROY); NetworkUtils.unregisterNetworkStatusChangedListener(this); mPresenter.detachView(); + unregisterReceivers(); } public static MainSPresenter getPresenter() { @@ -229,7 +231,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); am.setTime(aLong); tPushInit(); - NetInterfaceManager.getInstance().setPushTags(true, lifecycleSubject, new NetInterfaceManager.onCompleteCallback() { + NetInterfaceManager.getInstance().setPushTags(true, lifecycleSubject, new NetInterfaceManager.CompleteCallback() { @Override public void onComplete() { Log.e("TimeTask", "onComplete: "); @@ -268,12 +270,23 @@ public class MainService extends Service implements MainSContact.MainView, Netwo }); } - private WifiReceiver mWifiReceiver; - private void registerReceivers() { registerWiFiReceiver(); + registerScreenReceiver(); } + private void unregisterReceivers() { + if (mWifiReceiver != null) { + unregisterReceiver(mWifiReceiver); + } + if (mScreenReceiver != null) { + unregisterReceiver(mScreenReceiver); + } + } + + + private WifiReceiver mWifiReceiver; + private void registerWiFiReceiver() { if (mWifiReceiver == null) { mWifiReceiver = new WifiReceiver(); @@ -342,6 +355,49 @@ public class MainService extends Service implements MainSContact.MainView, Netwo } } + private ScreenReceiver mScreenReceiver; + + private void registerScreenReceiver() { + if (mScreenReceiver == null) { + mScreenReceiver = new ScreenReceiver(); + } + IntentFilter filter = new IntentFilter(); + filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); + filter.addAction(Intent.ACTION_USER_PRESENT); + filter.addAction(Intent.ACTION_SCREEN_ON); + filter.addAction(Intent.ACTION_SCREEN_OFF); + filter.addAction(Intent.ACTION_USER_UNLOCKED); + registerReceiver(mScreenReceiver, filter); + } + + private class ScreenReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + Log.e(TAG, "onReceive: " + action); + if (TextUtils.isEmpty(action)) { + Log.e(TAG, "onReceive: action is NULL"); + return; + } + switch (action) { + case Intent.ACTION_USER_PRESENT: + mPresenter.getAppTimeControl(); + break; + case Intent.ACTION_SCREEN_ON: + + break; + case Intent.ACTION_SCREEN_OFF: + + break; + case Intent.ACTION_USER_UNLOCKED: + + break; + default: + break; + } + } + } + private interface Start { void onstar(String key); } @@ -465,6 +521,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void setBrowserWhiteList() { + mPresenter.getAppJump(); + } + + @Override + public void setAppJump() { mPresenter.getAppStart(); } @@ -480,6 +541,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void setSnTimeControl() { + mPresenter.getMyAppList(); + } + + @Override + public void setMyAppList() { mPresenter.getScreenLock(); } diff --git a/app/src/main/java/com/uiui/sn/tpush/MessageReceiver.java b/app/src/main/java/com/uiui/sn/tpush/MessageReceiver.java index f76b074..fad0556 100644 --- a/app/src/main/java/com/uiui/sn/tpush/MessageReceiver.java +++ b/app/src/main/java/com/uiui/sn/tpush/MessageReceiver.java @@ -37,7 +37,6 @@ import com.uiui.sn.config.CommonConfig; import com.uiui.sn.dialog.CustomDialog; import com.uiui.sn.disklrucache.CacheHelper; import com.uiui.sn.manager.ControlManager; -import com.uiui.sn.manager.ControlPanelManager; import com.uiui.sn.manager.DeviceManager; import com.uiui.sn.network.NetInterfaceManager; import com.uiui.sn.receiver.BootReceiver; @@ -466,7 +465,7 @@ public class MessageReceiver extends XGPushBaseReceiver { //显示所有的admin应用 private static final String JIGUANG_ADMIN_APP = "63"; /*投屏开关*/ - private static final String SCRENN_SHARED = "74"; + private static final String SCREEN_SHARED = "74"; /*移动热点开关*/ private static final String HOT_SPOT = "75"; /*桌面默认应用*/ @@ -583,7 +582,7 @@ public class MessageReceiver extends XGPushBaseReceiver { break; case JIGUANG_APP_WEBSITE: ToastUtil.debugShow("收到推送消息: app内部网址管控"); -// NetInterfaceManager.getInstance().getAppJump(context); + setAppInsideNetwork(context, extras); break; case JIGUANG_REBOOT_DEVICES: ToastUtil.debugShow("收到推送消息: 重启"); @@ -765,8 +764,9 @@ public class MessageReceiver extends XGPushBaseReceiver { case JIGUANG_ADMIN_APP: setAdminApp(context, extras); break; - case SCRENN_SHARED: + case SCREEN_SHARED: ToastUtil.debugShow("收到推送消息: 投屏开关"); + setScreenShared(context, extras); break; case HOT_SPOT: ToastUtil.debugShow("收到推送消息: 热点开关"); @@ -1229,6 +1229,22 @@ public class MessageReceiver extends XGPushBaseReceiver { Log.e("setAppUpdate", Settings.System.getString(context.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID)); } + private void setAppInsideNetwork(Context context, String extras) { + JsonObject jsonObject = GsonUtils.getJsonObject(extras); + int is_ground = jsonObject.get("is_ground").getAsInt(); + if (is_ground == 0) { + boolean putString = Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, ""); + Log.e(TAG, "setAppInsideNetwork: " + putString); + } else if (is_ground == 1) { + NetInterfaceManager.getInstance().getAppJump(new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + + } + }); + } + } + private void setLock_screen(Context context, String jsonString) { int type = 0; JsonObject jSONObject = GsonUtils.getJsonObject(jsonString); @@ -1477,6 +1493,11 @@ public class MessageReceiver extends XGPushBaseReceiver { String app_url = jsonObject.get("app_url").getAsString(); } + private void setScreenShared(Context context, String extras) { + JsonObject jsonObject = GsonUtils.getJsonObject(extras); + int projection_screen = jsonObject.get("projection_screen").getAsInt(); + ControlManager.getInstance().setScreenShared(changeNum(projection_screen)); + } /** * @param context @@ -1553,4 +1574,6 @@ public class MessageReceiver extends XGPushBaseReceiver { JGYUtils.getInstance().restorrNetwork(); } } + + } diff --git a/app/src/main/java/com/uiui/sn/utils/AppUsedTimeUtils.java b/app/src/main/java/com/uiui/sn/utils/AppUsedTimeUtils.java index 2d57c44..1b8f922 100644 --- a/app/src/main/java/com/uiui/sn/utils/AppUsedTimeUtils.java +++ b/app/src/main/java/com/uiui/sn/utils/AppUsedTimeUtils.java @@ -25,12 +25,14 @@ public class AppUsedTimeUtils { @SuppressLint("StaticFieldLeak") private static AppUsedTimeUtils sInstance; private Context mContext; + private String app_package; + private long start_time; - private AppTimeinfo appTimeinfo; +// private AppTimeinfo appTimeinfo; private AppUsedTimeUtils(Context context) { this.mContext = context; - appTimeinfo = getAppTimeinfo(); +// appTimeinfo = getAppTimeinfo(); } public static void init(Context context) { @@ -46,75 +48,91 @@ public class AppUsedTimeUtils { return sInstance; } - static class AppTimeinfo implements Serializable { - private static final long serialVersionUID = 5373751133823666192L; - - AppTimeinfo() { - this.appPackageName = ""; - this.endTime = 0; - this.startTime = 0; - } - - private String appPackageName; - private long endTime; - private long startTime; - - public String getAppPackageName() { - return appPackageName; - } - - public void setAppPackageName(String appPackageName) { - this.appPackageName = appPackageName; - } - - public long getEndTime() { - return endTime; - } - - public void setEndTime(long endTime) { - this.endTime = endTime; - } - - public long getStartTime() { - return startTime; - } - - public void setStartTime(long startTime) { - this.startTime = startTime; - } - - @NonNull - @Override - public String toString() { - return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString(); - } + public String getApp_package() { + return app_package; } - synchronized public String getAppPackageName() { - appTimeinfo = getAppTimeinfo(); - return appTimeinfo.getAppPackageName(); + public void setApp_package(String app_package) { + this.app_package = app_package; } - synchronized public long getStartTime() { - appTimeinfo = getAppTimeinfo(); - return appTimeinfo.getStartTime(); + public long getStart_time() { + return start_time; } - synchronized public long getEndTime() { - appTimeinfo = getAppTimeinfo(); - return appTimeinfo.getEndTime(); + public void setStart_time(long start_time) { + this.start_time = start_time; } - synchronized private AppTimeinfo getAppTimeinfo() { - String jsonString = Settings.System.getString(mContext.getContentResolver(), "runningAppInfo"); - if (TextUtils.isEmpty(jsonString)) { - return new AppTimeinfo(); - } - Log.e(TAG, "getAppTimeinfo: " + jsonString); - Type type = new TypeToken() { - }.getType(); - Gson gson = new Gson(); - AppTimeinfo appTimeinfo = gson.fromJson(jsonString, type); - return appTimeinfo; - } + // static class AppTimeinfo implements Serializable { +// private static final long serialVersionUID = 5373751133823666192L; +// +// AppTimeinfo() { +// this.appPackageName = ""; +// this.endTime = 0; +// this.startTime = 0; +// } +// +// private String appPackageName; +// private long endTime; +// private long startTime; +// +// public String getAppPackageName() { +// return appPackageName; +// } +// +// public void setAppPackageName(String appPackageName) { +// this.appPackageName = appPackageName; +// } +// +// public long getEndTime() { +// return endTime; +// } +// +// public void setEndTime(long endTime) { +// this.endTime = endTime; +// } +// +// public long getStartTime() { +// return startTime; +// } +// +// public void setStartTime(long startTime) { +// this.startTime = startTime; +// } +// +// @NonNull +// @Override +// public String toString() { +// return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString(); +// } +// } + +// synchronized public String getAppPackageName() { +// appTimeinfo = getAppTimeinfo(); +// return appTimeinfo.getAppPackageName(); +// } +// +// synchronized public long getStartTime() { +// appTimeinfo = getAppTimeinfo(); +// return appTimeinfo.getStartTime(); +// } +// +// synchronized public long getEndTime() { +// appTimeinfo = getAppTimeinfo(); +// return appTimeinfo.getEndTime(); +// } +// +// synchronized private AppTimeinfo getAppTimeinfo() { +// String jsonString = Settings.System.getString(mContext.getContentResolver(), "runningAppInfo"); +// if (TextUtils.isEmpty(jsonString)) { +// return new AppTimeinfo(); +// } +// Log.e(TAG, "getAppTimeinfo: " + jsonString); +// Type type = new TypeToken() { +// }.getType(); +// Gson gson = new Gson(); +// AppTimeinfo appTimeinfo = gson.fromJson(jsonString, type); +// return appTimeinfo; +// } }