version:2.3
fix: add:优化上传app信息失败
This commit is contained in:
@@ -70,8 +70,8 @@ android {
|
|||||||
productFlavors {
|
productFlavors {
|
||||||
beta {
|
beta {
|
||||||
flavorDimensions "default"
|
flavorDimensions "default"
|
||||||
versionCode 13
|
versionCode 14
|
||||||
versionName "2.2"
|
versionName "2.3"
|
||||||
}
|
}
|
||||||
|
|
||||||
official {
|
official {
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
package com.uiui.sn.activity;
|
package com.uiui.sn.activity;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.media.AudioManager;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import com.uiui.sn.BuildConfig;
|
|
||||||
import com.uiui.sn.R;
|
import com.uiui.sn.R;
|
||||||
import com.uiui.sn.activity.main.MainActivity;
|
import com.uiui.sn.activity.main.MainActivity;
|
||||||
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
|
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
|
||||||
@@ -29,19 +26,6 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
startActivity(new Intent(SplashActivity.this, MainActivity.class));
|
startActivity(new Intent(SplashActivity.this, MainActivity.class));
|
||||||
finish();
|
finish();
|
||||||
}, 2000);
|
}, 2000);
|
||||||
|
|
||||||
if (BuildConfig.DEBUG){
|
|
||||||
//静音
|
|
||||||
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
|
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
|
|
||||||
int ringMax = audioManager.getStreamMinVolume(AudioManager.STREAM_RING);
|
|
||||||
int musicMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_MUSIC);
|
|
||||||
int voiceMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_VOICE_CALL);
|
|
||||||
audioManager.setStreamVolume(AudioManager.STREAM_RING, ringMax, 0);
|
|
||||||
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, voiceMax, 0);
|
|
||||||
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicMax, 0); //音乐音量
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setBar() {
|
private void setBar() {
|
||||||
|
|||||||
@@ -6,17 +6,23 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.trello.rxlifecycle4.RxLifecycle;
|
import com.trello.rxlifecycle4.RxLifecycle;
|
||||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||||
import com.uiui.sn.bean.AppInfo;
|
import com.uiui.sn.bean.AppInfo;
|
||||||
import com.uiui.sn.bean.AppletQRCode;
|
import com.uiui.sn.bean.AppletQRCode;
|
||||||
import com.uiui.sn.bean.BaseResponse;
|
import com.uiui.sn.bean.BaseResponse;
|
||||||
|
import com.uiui.sn.bean.SnInfo;
|
||||||
import com.uiui.sn.config.CommonConfig;
|
import com.uiui.sn.config.CommonConfig;
|
||||||
|
import com.uiui.sn.disklrucache.CacheHelper;
|
||||||
import com.uiui.sn.network.NetInterfaceManager;
|
import com.uiui.sn.network.NetInterfaceManager;
|
||||||
|
import com.uiui.sn.network.UrlAddress;
|
||||||
import com.uiui.sn.utils.CXAESUtil;
|
import com.uiui.sn.utils.CXAESUtil;
|
||||||
import com.uiui.sn.utils.JGYUtils;
|
import com.uiui.sn.utils.JGYUtils;
|
||||||
import com.uiui.sn.utils.Utils;
|
import com.uiui.sn.utils.Utils;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import io.reactivex.rxjava3.core.Observer;
|
import io.reactivex.rxjava3.core.Observer;
|
||||||
@@ -31,9 +37,11 @@ public class MainAPresenter implements MainAContact.Presenter {
|
|||||||
|
|
||||||
private MainAContact.MainView mView;
|
private MainAContact.MainView mView;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private CacheHelper mCacheHelper;
|
||||||
|
|
||||||
public MainAPresenter(Context context) {
|
public MainAPresenter(Context context) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
|
this.mCacheHelper = new CacheHelper(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BehaviorSubject<ActivityEvent> lifecycle;
|
private BehaviorSubject<ActivityEvent> lifecycle;
|
||||||
@@ -62,7 +70,7 @@ public class MainAPresenter implements MainAContact.Presenter {
|
|||||||
.getSnInfo(true, getLifecycle(), new NetInterfaceManager.ObserverCallback() {
|
.getSnInfo(true, getLifecycle(), new NetInterfaceManager.ObserverCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
|
Log.e("getSnInfo", "onSubscribe: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -72,12 +80,18 @@ public class MainAPresenter implements MainAContact.Presenter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
|
Log.e("getSnInfo", "onError: " + e.getMessage());
|
||||||
|
String jsonString = mCacheHelper.getAsString(UrlAddress.SNINFO);
|
||||||
|
Gson gson = new Gson();
|
||||||
|
Type type = new TypeToken<BaseResponse<SnInfo>>() {
|
||||||
|
}.getType();
|
||||||
|
BaseResponse<SnInfo> userInfoBaseResponse = gson.fromJson(jsonString, type);
|
||||||
|
mView.setSnInfo(userInfoBaseResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onComplete() {
|
public void onComplete() {
|
||||||
|
Log.e("getSnInfo", "onComplete: ");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -101,7 +115,7 @@ public class MainAPresenter implements MainAContact.Presenter {
|
|||||||
@Override
|
@Override
|
||||||
public void getQRCode() {
|
public void getQRCode() {
|
||||||
String encryptString = CXAESUtil.encrypt(CommonConfig.AES_KEY, Utils.getSerial());
|
String encryptString = CXAESUtil.encrypt(CommonConfig.AES_KEY, Utils.getSerial());
|
||||||
Log.e(TAG + TAG, "setImageAndText: " + encryptString);
|
Log.e("getQRCode", "setImageAndText: " + encryptString);
|
||||||
Bitmap bitmap = Utils.createQRImage(encryptString, 400, 400);
|
Bitmap bitmap = Utils.createQRImage(encryptString, 400, 400);
|
||||||
mView.setQRCode(bitmap);
|
mView.setQRCode(bitmap);
|
||||||
}
|
}
|
||||||
@@ -119,12 +133,12 @@ public class MainAPresenter implements MainAContact.Presenter {
|
|||||||
.subscribe(new Observer<BaseResponse<List<AppInfo>>>() {
|
.subscribe(new Observer<BaseResponse<List<AppInfo>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
Log.e(TAG + "getForceInstall", "onSubscribe: ");
|
Log.e("getForceInstall", "onSubscribe: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNext(BaseResponse<List<AppInfo>> listBaseResponse) {
|
public void onNext(BaseResponse<List<AppInfo>> listBaseResponse) {
|
||||||
Log.e(TAG + "getForceInstall", "onNext: " + listBaseResponse);
|
Log.e("getForceInstall", "onNext: " + listBaseResponse);
|
||||||
int code = listBaseResponse.code;
|
int code = listBaseResponse.code;
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
List<AppInfo> appInfos = listBaseResponse.data;
|
List<AppInfo> appInfos = listBaseResponse.data;
|
||||||
@@ -133,19 +147,19 @@ public class MainAPresenter implements MainAContact.Presenter {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
boolean aole_force_app = JGYUtils.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, "invalid");
|
boolean aole_force_app = JGYUtils.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, "invalid");
|
||||||
Log.e(TAG + TAG, "aole_force_app: invalid: " + aole_force_app);
|
Log.e("getForceInstall", "aole_force_app: invalid: " + aole_force_app);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
Log.e(TAG + "getForceInstall", "onError: " + e.getMessage());
|
Log.e("getForceInstall", "onError: " + e.getMessage());
|
||||||
onComplete();
|
onComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onComplete() {
|
public void onComplete() {
|
||||||
Log.e(TAG + "getForceInstall", "onComplete: ");
|
Log.e("getForceInstall", "onComplete: ");
|
||||||
mView.setForceInstall();
|
mView.setForceInstall();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
import android.media.AudioManager;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -41,6 +42,7 @@ import com.uiui.sn.service.GuardService;
|
|||||||
import com.uiui.sn.service.ManagerService;
|
import com.uiui.sn.service.ManagerService;
|
||||||
import com.uiui.sn.service.StepService;
|
import com.uiui.sn.service.StepService;
|
||||||
import com.uiui.sn.service.main.MainService;
|
import com.uiui.sn.service.main.MainService;
|
||||||
|
import com.uiui.sn.utils.ApkUtils;
|
||||||
import com.uiui.sn.utils.JGYUtils;
|
import com.uiui.sn.utils.JGYUtils;
|
||||||
import com.uiui.sn.utils.SPUtils;
|
import com.uiui.sn.utils.SPUtils;
|
||||||
import com.uiui.sn.utils.TimeUtils;
|
import com.uiui.sn.utils.TimeUtils;
|
||||||
@@ -78,7 +80,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
|||||||
@BindView(R.id.iv_exit)
|
@BindView(R.id.iv_exit)
|
||||||
ImageView iv_exit;
|
ImageView iv_exit;
|
||||||
|
|
||||||
private MainAPresenter mPresenter = new MainAPresenter(this);
|
private MainAPresenter mPresenter ;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisconnected() {
|
public void onDisconnected() {
|
||||||
@@ -101,11 +103,24 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
|||||||
Utils.getAndroiodScreenProperty(this);
|
Utils.getAndroiodScreenProperty(this);
|
||||||
|
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
|
mPresenter = new MainAPresenter(this);
|
||||||
mPresenter.setLifecycle(lifecycleSubject);
|
mPresenter.setLifecycle(lifecycleSubject);
|
||||||
mPresenter.attachView(this);
|
mPresenter.attachView(this);
|
||||||
|
|
||||||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||||||
|
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
ApkUtils.openApp(this, "com.android.settings");
|
||||||
|
//静音
|
||||||
|
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
|
||||||
|
int ringMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_RING);
|
||||||
|
audioManager.setStreamVolume(AudioManager.STREAM_RING, ringMax, 0);
|
||||||
|
int musicMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_MUSIC);
|
||||||
|
int voiceMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_VOICE_CALL);
|
||||||
|
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, voiceMax, 0);
|
||||||
|
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicMax, 0); //音乐音量
|
||||||
|
}
|
||||||
|
|
||||||
setOnClickListener();
|
setOnClickListener();
|
||||||
tv_customversion.setText(JGYUtils.getCustomVersion());
|
tv_customversion.setText(JGYUtils.getCustomVersion());
|
||||||
tv_sn.setText("SN:" + Utils.getSerial());
|
tv_sn.setText("SN:" + Utils.getSerial());
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ public class AppUploadInfo implements Serializable {
|
|||||||
long app_version_code;
|
long app_version_code;
|
||||||
long firstInstallTime;
|
long firstInstallTime;
|
||||||
long lastUpdateTime;
|
long lastUpdateTime;
|
||||||
|
long app_size;
|
||||||
|
|
||||||
public String getApp_name() {
|
public String getApp_name() {
|
||||||
return app_name;
|
return app_name;
|
||||||
@@ -50,4 +51,12 @@ public class AppUploadInfo implements Serializable {
|
|||||||
public void setLastUpdateTime(long lastUpdateTime) {
|
public void setLastUpdateTime(long lastUpdateTime) {
|
||||||
this.lastUpdateTime = lastUpdateTime;
|
this.lastUpdateTime = lastUpdateTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getApp_size() {
|
||||||
|
return app_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApp_size(long app_size) {
|
||||||
|
this.app_size = app_size;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ public class SnInfo implements Serializable {
|
|||||||
String grade;
|
String grade;
|
||||||
String name;
|
String name;
|
||||||
int admin_id;
|
int admin_id;
|
||||||
|
String mobile;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*3 商用——企业用户
|
*3 商用——企业用户
|
||||||
4 C端——老人用户
|
4 C端——老人用户
|
||||||
@@ -173,6 +175,14 @@ public class SnInfo implements Serializable {
|
|||||||
this.type_id = type_id;
|
this.type_id = type_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getMobile() {
|
||||||
|
return mobile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMobile(String mobile) {
|
||||||
|
this.mobile = mobile;
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|||||||
@@ -40,6 +40,12 @@ public class SystemSettings implements Serializable {
|
|||||||
int setting_luminance;
|
int setting_luminance;
|
||||||
String setting_typeface;
|
String setting_typeface;
|
||||||
int setting_admin_app;
|
int setting_admin_app;
|
||||||
|
int projection_screen;
|
||||||
|
int hot_point;
|
||||||
|
String desktop_app;
|
||||||
|
String browser_app;
|
||||||
|
String typewriting_app;
|
||||||
|
int is_control;
|
||||||
|
|
||||||
public int getQch_restore() {
|
public int getQch_restore() {
|
||||||
return qch_restore;
|
return qch_restore;
|
||||||
@@ -282,6 +288,54 @@ public class SystemSettings implements Serializable {
|
|||||||
this.setting_admin_app = setting_admin_app;
|
this.setting_admin_app = setting_admin_app;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getProjection_screen() {
|
||||||
|
return projection_screen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProjection_screen(int projection_screen) {
|
||||||
|
this.projection_screen = projection_screen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHot_point() {
|
||||||
|
return hot_point;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHot_point(int hot_point) {
|
||||||
|
this.hot_point = hot_point;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDesktop_app() {
|
||||||
|
return desktop_app;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDesktop_app(String desktop_app) {
|
||||||
|
this.desktop_app = desktop_app;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBrowser_app() {
|
||||||
|
return browser_app;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBrowser_app(String browser_app) {
|
||||||
|
this.browser_app = browser_app;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTypewriting_app() {
|
||||||
|
return typewriting_app;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTypewriting_app(String typewriting_app) {
|
||||||
|
this.typewriting_app = typewriting_app;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIs_control() {
|
||||||
|
return is_control;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIs_control(int is_control) {
|
||||||
|
this.is_control = is_control;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
|
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class CacheHelper {
|
|||||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||||
|
|
||||||
private static final String DIR_NAME = "diskCache";
|
private static final String DIR_NAME = "diskCache";
|
||||||
private static final int MAX_COUNT = 5 * 1024 * 1024;
|
private static final int MAX_COUNT = 1024 * 1024 * 1024;
|
||||||
private static final int DEFAULT_APP_VERSION = 1;
|
private static final int DEFAULT_APP_VERSION = 1;
|
||||||
|
|
||||||
private DiskLruCache mDiskLruCache;
|
private DiskLruCache mDiskLruCache;
|
||||||
@@ -103,8 +103,9 @@ public class CacheHelper {
|
|||||||
// =======================================
|
// =======================================
|
||||||
|
|
||||||
public void put(String key, String value) {
|
public void put(String key, String value) {
|
||||||
Log.e(TAG, "put: " + key);
|
Log.e(TAG, "put: key = " + key + " value = " + value);
|
||||||
mMMKV.encode(key, System.currentTimeMillis());
|
mMMKV.encode(key, System.currentTimeMillis());
|
||||||
|
mMMKV.encode(key + "_mmkv", value);
|
||||||
|
|
||||||
DiskLruCache.Editor edit = null;
|
DiskLruCache.Editor edit = null;
|
||||||
BufferedWriter bw = null;
|
BufferedWriter bw = null;
|
||||||
@@ -119,11 +120,13 @@ public class CacheHelper {
|
|||||||
edit.commit();//write CLEAN
|
edit.commit();//write CLEAN
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
Log.e(TAG, "put: " + e.getMessage());
|
||||||
try {
|
try {
|
||||||
//s
|
//s
|
||||||
edit.abort();//write REMOVE
|
edit.abort();//write REMOVE
|
||||||
} catch (IOException e1) {
|
} catch (IOException e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
|
Log.e(TAG, "put: " + e1.getMessage());
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
@@ -132,6 +135,7 @@ public class CacheHelper {
|
|||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
Log.e(TAG, "put: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,7 +147,7 @@ public class CacheHelper {
|
|||||||
//write READ
|
//write READ
|
||||||
inputStream = get(key);
|
inputStream = get(key);
|
||||||
if (inputStream == null) {
|
if (inputStream == null) {
|
||||||
return null;
|
return mMMKV.decodeString(key + "_mmkv", null);
|
||||||
}
|
}
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
int len = 0;
|
int len = 0;
|
||||||
@@ -152,15 +156,15 @@ public class CacheHelper {
|
|||||||
sb.append(new String(buf, 0, len));
|
sb.append(new String(buf, 0, len));
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
Log.e(TAG, "getAsString: " + e.getMessage());
|
||||||
if (inputStream != null) {
|
if (inputStream != null) {
|
||||||
try {
|
try {
|
||||||
inputStream.close();
|
inputStream.close();
|
||||||
} catch (IOException e1) {
|
} catch (IOException e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
|
Log.e(TAG, "getAsString: " + e1.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -374,6 +378,7 @@ public class CacheHelper {
|
|||||||
|
|
||||||
public void delete() throws IOException {
|
public void delete() throws IOException {
|
||||||
mDiskLruCache.delete();
|
mDiskLruCache.delete();
|
||||||
|
mMMKV.clearAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void flush() throws IOException {
|
public void flush() throws IOException {
|
||||||
@@ -417,6 +422,7 @@ public class CacheHelper {
|
|||||||
return edit;
|
return edit;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
Log.e(TAG, "editor: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -86,11 +86,6 @@ public class ControlManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setAppstoreAdmin(SystemSettings settings) {
|
|
||||||
int setting_admin_app = settings.getSetting_admin_app();
|
|
||||||
Settings.System.putInt(mResolver, "setting_admin_app", setting_admin_app);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关闭所有功能
|
* 关闭所有功能
|
||||||
*/
|
*/
|
||||||
@@ -675,10 +670,50 @@ public class ControlManager {
|
|||||||
mContext.sendBroadcast(intent);
|
mContext.sendBroadcast(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setAppstoreAdmin(SystemSettings settings) {
|
||||||
|
int setting_admin_app = settings.getSetting_admin_app();
|
||||||
|
Settings.System.putInt(mResolver, "setting_admin_app", setting_admin_app);
|
||||||
|
}
|
||||||
|
|
||||||
private void setSetting(SystemSettings settings) {
|
private void setSetting(SystemSettings settings) {
|
||||||
int setting_volume = settings.getSetting_volume();
|
int setting_volume = settings.getSetting_volume();
|
||||||
int setting_luminance = settings.getSetting_luminance();
|
int setting_luminance = settings.getSetting_luminance();
|
||||||
String setting_typeface = settings.getSetting_typeface();
|
String setting_typeface = settings.getSetting_typeface();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setScreenShared(SystemSettings settings) {
|
||||||
|
int projection_screen = settings.getProjection_screen();
|
||||||
|
setScreenShared(projection_screen);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setScreenShared(int state) {
|
||||||
|
Settings.System.putInt(mResolver, "projection_screen", state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setHotPoint(SystemSettings settings) {
|
||||||
|
int hot_point = settings.getHot_point();
|
||||||
|
setScreenShared(hot_point);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setHotPoint(int state) {
|
||||||
|
Settings.System.putInt(mResolver, "hot_point", state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDefaultApp(SystemSettings settings) {
|
||||||
|
String desktop_app = settings.getDesktop_app();
|
||||||
|
String browser_app = settings.getBrowser_app();
|
||||||
|
String typewriting_app = settings.getTypewriting_app();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setIsControl(SystemSettings settings) {
|
||||||
|
int is_control = settings.getIs_control();
|
||||||
|
setIsControl(is_control);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setIsControl(int state) {
|
||||||
|
Settings.System.putInt(mResolver, "is_control", state);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ import com.uiui.sn.network.interceptor.RepeatRequestInterceptor;
|
|||||||
import com.uiui.sn.service.ManagerService;
|
import com.uiui.sn.service.ManagerService;
|
||||||
import com.uiui.sn.utils.ApkUtils;
|
import com.uiui.sn.utils.ApkUtils;
|
||||||
import com.uiui.sn.utils.AppUsedTimeUtils;
|
import com.uiui.sn.utils.AppUsedTimeUtils;
|
||||||
|
import com.uiui.sn.utils.CacheUtils;
|
||||||
import com.uiui.sn.utils.CmdUtil;
|
import com.uiui.sn.utils.CmdUtil;
|
||||||
import com.uiui.sn.utils.FileUtils;
|
import com.uiui.sn.utils.FileUtils;
|
||||||
import com.uiui.sn.utils.GsonUtils;
|
import com.uiui.sn.utils.GsonUtils;
|
||||||
@@ -499,7 +500,7 @@ public class NetInterfaceManager {
|
|||||||
public void getSnInfo(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, ObserverCallback callback) {
|
public void getSnInfo(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, ObserverCallback callback) {
|
||||||
ConnectMode connectMode = ConnectMode.SIX_HOUR;
|
ConnectMode connectMode = ConnectMode.SIX_HOUR;
|
||||||
if (refresh) {
|
if (refresh) {
|
||||||
connectMode = ConnectMode.ONE_HOUR;
|
connectMode = ConnectMode.ONE_MINUTE;
|
||||||
}
|
}
|
||||||
if (ConnectManager.getInstance().isNeedConnect(UrlAddress.SNINFO, connectMode)) {
|
if (ConnectManager.getInstance().isNeedConnect(UrlAddress.SNINFO, connectMode)) {
|
||||||
getSnInfo(lifecycle, callback);
|
getSnInfo(lifecycle, callback);
|
||||||
@@ -668,6 +669,28 @@ public class NetInterfaceManager {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> showPackages = new ArrayList<String>() {{
|
||||||
|
this.add("com.uiui.browser");
|
||||||
|
this.add("com.uiui.aios");
|
||||||
|
this.add("com.uiui.os");
|
||||||
|
this.add("com.uiui.appstore");
|
||||||
|
this.add("com.uiui.sn");
|
||||||
|
this.add("com.uiui.health");
|
||||||
|
this.add("com.uiui.city");
|
||||||
|
//扶小鹰
|
||||||
|
this.add("com.fuying.fuxiaoying");
|
||||||
|
this.add("com.fuying.aobama.pad");
|
||||||
|
this.add("com.fuying.english");
|
||||||
|
this.add("com.moshujiamm.moshujia");
|
||||||
|
this.add("com.pengren.growthspace");
|
||||||
|
this.add("com.zhiduoke.fxy");
|
||||||
|
}};
|
||||||
|
|
||||||
|
public static long getPackageSize(Context context, String filePath) {
|
||||||
|
long size = new File(filePath).length();
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送app安装情况
|
* 发送app安装情况
|
||||||
*/
|
*/
|
||||||
@@ -687,6 +710,11 @@ public class NetInterfaceManager {
|
|||||||
}
|
}
|
||||||
Log.e("SendAppInstallInfo", "pkgs: " + pkgs);
|
Log.e("SendAppInstallInfo", "pkgs: " + pkgs);
|
||||||
for (PackageInfo info : list) {
|
for (PackageInfo info : list) {
|
||||||
|
//排除掉部分系统应用
|
||||||
|
if (ApkUtils.isSystemApp(mContext, info.packageName) && !showPackages.contains(info.packageName)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//排除掉没有图标的应用
|
||||||
if (!pkgs.contains(info.packageName)) {
|
if (!pkgs.contains(info.packageName)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -700,6 +728,7 @@ public class NetInterfaceManager {
|
|||||||
}
|
}
|
||||||
uploadInfo.setFirstInstallTime(info.firstInstallTime / 1000);
|
uploadInfo.setFirstInstallTime(info.firstInstallTime / 1000);
|
||||||
uploadInfo.setLastUpdateTime(info.lastUpdateTime / 1000);
|
uploadInfo.setLastUpdateTime(info.lastUpdateTime / 1000);
|
||||||
|
uploadInfo.setApp_size(getPackageSize(mContext, info.applicationInfo.publicSourceDir));
|
||||||
uploadInfos.add(uploadInfo);
|
uploadInfos.add(uploadInfo);
|
||||||
}
|
}
|
||||||
String json = GsonUtils.toJsonString(uploadInfos);
|
String json = GsonUtils.toJsonString(uploadInfos);
|
||||||
@@ -1653,12 +1682,12 @@ public class NetInterfaceManager {
|
|||||||
.subscribe(new Observer<BaseResponse>() {
|
.subscribe(new Observer<BaseResponse>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(@NonNull Disposable d) {
|
public void onSubscribe(@NonNull Disposable d) {
|
||||||
|
Log.e("updateAdminInfo", "onSubscribe: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNext(@NonNull BaseResponse baseResponse) {
|
public void onNext(@NonNull BaseResponse baseResponse) {
|
||||||
Log.e("updateAdminInfo", "onNext: " + baseResponse.msg);
|
Log.e("updateAdminInfo", "onNext: " + baseResponse);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1669,7 +1698,7 @@ public class NetInterfaceManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onComplete() {
|
public void onComplete() {
|
||||||
|
Log.e("updateAdminInfo", "onComplete: ");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,64 +1,64 @@
|
|||||||
package com.uiui.sn.network;
|
package com.uiui.sn.network;
|
||||||
|
|
||||||
public class UrlAddress {
|
public class UrlAddress {
|
||||||
//主页接口
|
/*主页接口*/
|
||||||
public static final String ROOT_URL = "https://led.aolelearn.cn/android/";
|
public static final String ROOT_URL = "https://led.aolelearn.cn/android/";
|
||||||
//获取批次
|
/*获取批次*/
|
||||||
public static final String GET_BATCH = "sn/getBatch";
|
public static final String GET_BATCH = "sn/getBatch";
|
||||||
//设备信息接口
|
/*设备信息接口*/
|
||||||
public static final String SNINFO = "sn/getSnInfo";
|
public static final String SNINFO = "sn/getSnInfo";
|
||||||
//发送app信息
|
/*发送app信息*/
|
||||||
public static final String APPLOG = "App/getApplog";
|
public static final String APPLOG = "App/getApplog";
|
||||||
//获取正在运行的app
|
/*获取正在运行的app*/
|
||||||
public static final String RUN_NEW_APP = "app/runNewApp";
|
public static final String RUN_NEW_APP = "app/runNewApp";
|
||||||
//根据包名获取更新
|
/*根据包名获取更新*/
|
||||||
public final static String GET_APP_UPDATE = "Update/update";
|
public final static String GET_APP_UPDATE = "Update/update";
|
||||||
//获取当前最顶层应用和电量
|
/*获取当前最顶层应用和电量*/
|
||||||
public final static String SEND_RUNINGAPPINFO = "Monitoring/getAppNow";
|
public final static String SEND_RUNINGAPPINFO = "Monitoring/getAppNow";
|
||||||
//在线状态
|
/*在线状态*/
|
||||||
public final static String SEND_DRIVE_STATE = "Online/online";
|
public final static String SEND_DRIVE_STATE = "Online/online";
|
||||||
//获取所有应用
|
/*获取所有应用*/
|
||||||
public final static String GET_ALL_PACKAGE = "app/queryAllApp";
|
public final static String GET_ALL_PACKAGE = "app/queryAllApp";
|
||||||
//绑定设备消息
|
/*绑定设备消息*/
|
||||||
public final static String BIND_DEVICES = "sn/bindSn";
|
public final static String BIND_DEVICES = "sn/bindSn";
|
||||||
//获取系统设置
|
/*获取系统设置*/
|
||||||
public final static String GET_SETTINGS = "control/getSetting";
|
public final static String GET_SETTINGS = "control/getSetting";
|
||||||
//浏览器网址管控
|
/*浏览器网址管控*/
|
||||||
public final static String SET_BROWSER_URL = "control/getBrowser";
|
public final static String SET_BROWSER_URL = "control/getBrowser";
|
||||||
//浏览器书签管控
|
/*浏览器书签管控*/
|
||||||
public final static String SET_BROWSER_LABEL = "control/getLabel";
|
public final static String SET_BROWSER_LABEL = "control/getLabel";
|
||||||
//获取强制下载
|
/*获取强制下载*/
|
||||||
public final static String GET_FORCE_INSTALL = "app/getForceDownload";
|
public final static String GET_FORCE_INSTALL = "app/getForceDownload";
|
||||||
//获取app管控
|
/*获取app管控*/
|
||||||
public final static String GET_APP_START = "sn/querySnAppStart";
|
public final static String GET_APP_START = "sn/querySnAppStart";
|
||||||
//发app跳转管控
|
/*发app跳转管控*/
|
||||||
public final static String GET_APP_JUMP = "sn/querySnJump";
|
public final static String GET_APP_JUMP = "sn/querySnJump";
|
||||||
//app内部管控
|
/*app内部管控*/
|
||||||
public final static String QUERY_APP_INSIDE = "control/queryAppInside";
|
public final static String QUERY_APP_INSIDE = "control/queryAppInside";
|
||||||
//发送卸载或者安装信息
|
/*发送卸载或者安装信息*/
|
||||||
public final static String SEND_INSTALLEDORREMOVED = "app/addAppInstall";
|
public final static String SEND_INSTALLEDORREMOVED = "app/addAppInstall";
|
||||||
//发送卸载或者安装信息
|
/*发送卸载或者安装信息*/
|
||||||
public final static String UPDATE_SNINFO = "sn/updateAdminSn";
|
public final static String UPDATE_SNINFO = "sn/updateAdminSn";
|
||||||
//根据包名获取更新
|
/*根据包名获取更新*/
|
||||||
public final static String GET_NEWESTAPPUPDATE = "app/newestAppUpdate";
|
public final static String GET_NEWESTAPPUPDATE = "app/newestAppUpdate";
|
||||||
//上传屏幕截图
|
/*上传屏幕截图*/
|
||||||
public final static String UPLOAD_SCREEN_SNAPSHOT = "sn/uploadScreenshot";
|
public final static String UPLOAD_SCREEN_SNAPSHOT = "sn/uploadScreenshot";
|
||||||
//获取屏幕管控
|
/*获取屏幕管控*/
|
||||||
public final static String GET_SCREEN_LOCK = "sn/getScreenshot";
|
public final static String GET_SCREEN_LOCK = "sn/getScreenshot";
|
||||||
//获取时间管控
|
/*获取时间管控*/
|
||||||
public final static String GET_TIME_CONTROL = "sn/getTimeControlControl";
|
public final static String GET_TIME_CONTROL = "sn/getTimeControlControl";
|
||||||
//获取用户头像和信息
|
/*获取用户头像和信息*/
|
||||||
public static final String GET_USER_AVATAR_INFO = "sn/getUserAvatarInfo";
|
public static final String GET_USER_AVATAR_INFO = "sn/getUserAvatarInfo";
|
||||||
//获取小程序二维码
|
/*获取小程序二维码*/
|
||||||
public static final String GET_APPLET_QRCODE = "file/getAppletQrCode";
|
public static final String GET_APPLET_QRCODE = "file/getAppletQrCode";
|
||||||
//获取操作指南
|
/*获取操作指南*/
|
||||||
public static final String GET_OPERATION_GUIDE = "file/getFiles";
|
public static final String GET_OPERATION_GUIDE = "file/getFiles";
|
||||||
//上传控制面版截图
|
/*上传控制面版截图*/
|
||||||
public static final String UPLOAD_CONTROL_SCREENSHOT = "sn/uploadControlScreenshot";
|
public static final String UPLOAD_CONTROL_SCREENSHOT = "sn/uploadControlScreenshot";
|
||||||
//获取应用白名单
|
/*获取应用白名单*/
|
||||||
public static final String GET_APP_AND_WHITE = "getAppAndWhite";
|
public static final String GET_APP_AND_WHITE = "getAppAndWhite";
|
||||||
//获取是否为网课模式
|
/*获取是否为网课模式*/
|
||||||
public static final String GET_CLOUD_LESSON_SETTING ="Control/getCloudLessonSetting";
|
public static final String GET_CLOUD_LESSON_SETTING = "Control/getCloudLessonSetting";
|
||||||
|
|
||||||
|
|
||||||
/*获取公网IP*/
|
/*获取公网IP*/
|
||||||
@@ -67,8 +67,8 @@ public class UrlAddress {
|
|||||||
/*
|
/*
|
||||||
* 极光
|
* 极光
|
||||||
* */
|
* */
|
||||||
//删除alias
|
/*删除alias*/
|
||||||
public static final String DELETE_JPUSH_ALIAS = "https://device.jpush.cn/v3/aliases/";
|
public static final String DELETE_JPUSH_ALIAS = "https://device.jpush.cn/v3/aliases/";
|
||||||
//删除tags
|
/*删除tags*/
|
||||||
public static final String DELETE_JPUSH_TAG = "https://device.jpush.cn/v3/tags/";
|
public static final String DELETE_JPUSH_TAG = "https://device.jpush.cn/v3/tags/";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.uiui.sn.network.interceptor;
|
package com.uiui.sn.network.interceptor;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.util.Size;
|
||||||
|
|
||||||
|
import com.uiui.sn.BuildConfig;
|
||||||
import com.uiui.sn.utils.MD5Util;
|
import com.uiui.sn.utils.MD5Util;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -26,12 +27,17 @@ public class RepeatRequestInterceptor implements Interceptor {
|
|||||||
@Override
|
@Override
|
||||||
public Response intercept(@NotNull Chain chain) throws IOException {
|
public Response intercept(@NotNull Chain chain) throws IOException {
|
||||||
Request request = chain.request();
|
Request request = chain.request();
|
||||||
|
|
||||||
|
Response response = chain.proceed(chain.request());
|
||||||
|
String content = response.body().string();
|
||||||
|
if (BuildConfig.DEBUG)
|
||||||
|
Log.e(TAG, "请求体返回:| Response:" + content);
|
||||||
//相同的请求
|
//相同的请求
|
||||||
String requestKey = MD5Util.getUpperMD5Str(request.method() + request.url().toString() + request.body());
|
String requestKey = MD5Util.getUpperMD5Str(request.method() + request.url().toString() + request.body());
|
||||||
long time = System.currentTimeMillis();//请求时间
|
long time = System.currentTimeMillis();//请求时间
|
||||||
try {
|
try {
|
||||||
if (requestIdsMap.size() > 0 && requestIdsMap.containsKey(requestKey)) {
|
if (requestIdsMap.size() > 0 && requestIdsMap.containsKey(requestKey)) {
|
||||||
Log.e("REPEAT-REQUEST", "重复请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + bodyToString(request));
|
log("重复请求:", requestKey, request);
|
||||||
//下面这行写了不会抛出onerror
|
//下面这行写了不会抛出onerror
|
||||||
// chain.call().cancel();
|
// chain.call().cancel();
|
||||||
return new Response.Builder()
|
return new Response.Builder()
|
||||||
@@ -40,7 +46,7 @@ public class RepeatRequestInterceptor implements Interceptor {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
requestIdsMap.put(requestKey, time);
|
requestIdsMap.put(requestKey, time);
|
||||||
Log.e("REPEAT-REQUEST", "注册请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + bodyToString(request));
|
log("注册请求:", requestKey, request);
|
||||||
// RepeatRequestInterceptor.Builder builder = request.newBuilder();
|
// RepeatRequestInterceptor.Builder builder = request.newBuilder();
|
||||||
// builder.addHeader("header", jsonObject.toString());
|
// builder.addHeader("header", jsonObject.toString());
|
||||||
return chain.proceed(request);
|
return chain.proceed(request);
|
||||||
@@ -50,18 +56,29 @@ public class RepeatRequestInterceptor implements Interceptor {
|
|||||||
} finally {
|
} finally {
|
||||||
if (requestIdsMap.containsKey(requestKey) && requestIdsMap.containsValue(time)) {//请求任务完成删除map中的数据
|
if (requestIdsMap.containsKey(requestKey) && requestIdsMap.containsValue(time)) {//请求任务完成删除map中的数据
|
||||||
requestIdsMap.remove(requestKey);
|
requestIdsMap.remove(requestKey);
|
||||||
Log.e("REPEAT-REQUEST", "移除请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + bodyToString(request));
|
log("移除请求:", requestKey, request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String bodyToString(final Request request){
|
private void log(String action, String requestKey, Request request) {
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
Log.e("REPEAT-REQUEST", action + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url().encodedPath() + "\t" + bodyToString(request));
|
||||||
|
} else {
|
||||||
|
Log.e("REPEAT-REQUEST", action + requestKey + " Method @" + request.method());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String bodyToString(final Request request) {
|
||||||
try {
|
try {
|
||||||
final Request copy = request.newBuilder().build();
|
final Request copy = request.newBuilder().build();
|
||||||
final Buffer buffer = new Buffer();
|
final Buffer buffer = new Buffer();
|
||||||
copy.body().writeTo(buffer);
|
copy.body().writeTo(buffer);
|
||||||
|
if (buffer.size() > 4096) {
|
||||||
|
return "-too long";
|
||||||
|
}
|
||||||
return buffer.readUtf8();
|
return buffer.readUtf8();
|
||||||
} catch ( Exception e) {
|
} catch (Exception e) {
|
||||||
return "-";
|
return "-";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,22 +82,23 @@ public class MainSPresenter implements MainSContact.Presenter {
|
|||||||
.getSnInfo(true, getLifecycle(), new NetInterfaceManager.ObserverCallback() {
|
.getSnInfo(true, getLifecycle(), new NetInterfaceManager.ObserverCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
|
Log.e("getSnInfo", "onSubscribe: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNext(BaseResponse response) {
|
public void onNext(BaseResponse response) {
|
||||||
|
Log.e("getSnInfo", "onNext: ");
|
||||||
mView.setSnInfo(response);
|
mView.setSnInfo(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
|
Log.e("getSnInfo", "onError: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onComplete() {
|
public void onComplete() {
|
||||||
|
Log.e("getSnInfo", "onComplete: ");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.rxjava3.annotations.NonNull;
|
import io.reactivex.rxjava3.annotations.NonNull;
|
||||||
@@ -72,6 +73,7 @@ import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
|||||||
import io.reactivex.rxjava3.core.ObservableSource;
|
import io.reactivex.rxjava3.core.ObservableSource;
|
||||||
import io.reactivex.rxjava3.core.Observer;
|
import io.reactivex.rxjava3.core.Observer;
|
||||||
import io.reactivex.rxjava3.disposables.Disposable;
|
import io.reactivex.rxjava3.disposables.Disposable;
|
||||||
|
import io.reactivex.rxjava3.functions.Consumer;
|
||||||
import io.reactivex.rxjava3.functions.Function;
|
import io.reactivex.rxjava3.functions.Function;
|
||||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||||
import okhttp3.MediaType;
|
import okhttp3.MediaType;
|
||||||
@@ -812,6 +814,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
synchronized private void sendStartTime(Context context, String jsonString) {
|
synchronized private void sendStartTime(Context context, String jsonString) {
|
||||||
NetInterfaceManager.getInstance().updateAdminInfo();
|
NetInterfaceManager.getInstance().updateAdminInfo();
|
||||||
NetInterfaceManager.getInstance().sendRunningApp();
|
NetInterfaceManager.getInstance().sendRunningApp();
|
||||||
|
NetInterfaceManager.getInstance().SendAppInstallInfo();
|
||||||
if (JGYUtils.getInstance().isScreenOn()) {
|
if (JGYUtils.getInstance().isScreenOn()) {
|
||||||
NetInterfaceManager.getInstance().screenshot();
|
NetInterfaceManager.getInstance().screenshot();
|
||||||
}
|
}
|
||||||
@@ -983,13 +986,34 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Disposable subscribe;
|
||||||
|
private long cutdownTime = 30;
|
||||||
|
private CustomDialog dialog;
|
||||||
|
|
||||||
synchronized void bindService(final Context context, String jsonString) {
|
synchronized void bindService(final Context context, String jsonString) {
|
||||||
ToastUtil.debugShow("收到绑定设备请求");
|
ToastUtil.debugShow("收到绑定设备请求");
|
||||||
JSONObject object = JSON.parseObject(jsonString);
|
JSONObject object = JSON.parseObject(jsonString);
|
||||||
String userName = object.getString("member_name");
|
String userName = object.getString("member_name");
|
||||||
final String id = object.getString("id");
|
final String id = object.getString("id");
|
||||||
String phoneNum = object.getString("member_phone");
|
String phoneNum = object.getString("member_phone");
|
||||||
final CustomDialog dialog = new CustomDialog(context);
|
dialog = new CustomDialog(context);
|
||||||
|
subscribe = Observable.interval(1, TimeUnit.SECONDS)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Consumer<Long>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Long aLong) throws Exception {
|
||||||
|
// Log.e("TAG", "倒计时:" + aLong);
|
||||||
|
if (aLong < cutdownTime && !subscribe.isDisposed()) {
|
||||||
|
dialog.setNegtiveText("拒绝" + "(" + (cutdownTime - aLong) + ")");
|
||||||
|
} else {
|
||||||
|
bind(context, id, 0);
|
||||||
|
dialog.dismiss();
|
||||||
|
subscribe.dispose();
|
||||||
|
subscribe = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
dialog.setMessage(phoneNum + "的用户请求绑定你的平板")
|
dialog.setMessage(phoneNum + "的用户请求绑定你的平板")
|
||||||
.setTitle("绑定请求")
|
.setTitle("绑定请求")
|
||||||
.setPositive("允许")
|
.setPositive("允许")
|
||||||
@@ -1000,6 +1024,8 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
public void onPositiveClick() {
|
public void onPositiveClick() {
|
||||||
bind(context, id, 1);
|
bind(context, id, 1);
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
|
subscribe.dispose();
|
||||||
|
subscribe = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1007,6 +1033,8 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
bind(context, id, 0);
|
bind(context, id, 0);
|
||||||
ToastUtil.show("设备取消绑定");
|
ToastUtil.show("设备取消绑定");
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
|
subscribe.dispose();
|
||||||
|
subscribe = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
|
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
|
||||||
@@ -1015,20 +1043,19 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
|
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
|
||||||
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
|
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
|
||||||
|
|
||||||
new CountDownTimer(30000, 1000) {
|
// new CountDownTimer(30000, 1000) {
|
||||||
|
// @Override
|
||||||
@Override
|
// public void onTick(long l) {
|
||||||
public void onTick(long l) {
|
// String value = String.valueOf((int) (l / 1000));
|
||||||
String value = String.valueOf((int) (l / 1000));
|
// dialog.setNegtiveText("拒绝" + "(" + value + ")");
|
||||||
dialog.setNegtiveText("拒绝" + "(" + value + ")");
|
// }
|
||||||
}
|
//
|
||||||
|
// @Override
|
||||||
@Override
|
// public void onFinish() {
|
||||||
public void onFinish() {
|
// bind(context, id, 0);
|
||||||
bind(context, id, 0);
|
// dialog.dismiss();
|
||||||
dialog.dismiss();
|
// }
|
||||||
}
|
// }.start();
|
||||||
}.start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized private void bind(final Context context, String id, int type) {
|
synchronized private void bind(final Context context, String id, int type) {
|
||||||
@@ -1059,11 +1086,13 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
@Override
|
@Override
|
||||||
public void onError(@NonNull Throwable e) {
|
public void onError(@NonNull Throwable e) {
|
||||||
Log.e("bind", "onError: " + e.getMessage());
|
Log.e("bind", "onError: " + e.getMessage());
|
||||||
|
onComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onComplete() {
|
public void onComplete() {
|
||||||
Log.e("bind", "onComplete: ");
|
Log.e("bind", "onComplete: ");
|
||||||
|
MainService.getPresenter().getSnInfo();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,7 +102,6 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_bind"
|
android:id="@+id/tv_bind"
|
||||||
android:visibility="gone"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
|
|||||||
@@ -108,7 +108,6 @@
|
|||||||
android:text="@string/scan_tips"
|
android:text="@string/scan_tips"
|
||||||
android:textColor="@color/black"
|
android:textColor="@color/black"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:visibility="gone"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|||||||
Reference in New Issue
Block a user