去掉butterknife

This commit is contained in:
2024-08-26 10:37:52 +08:00
parent 6068bd4bb3
commit 84e3fa87fa
63 changed files with 933 additions and 1159 deletions

View File

@@ -147,6 +147,15 @@ android {
v2SigningEnabled true
}
G10ZUserDebug {
storeFile file("keystore/G10zUserDebug.keystore")
storePassword "123456"
keyAlias "G10zUserDebug"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
mtk12 {
storeFile file("keystore/mtkAndroid12.keystore")
storePassword "123456"
@@ -362,19 +371,25 @@ android {
buildConfigField "String", "platform", '"MTK11"'
}
zhanruiG10ZUserDebug.initWith(debug)
zhanruiG10ZUserDebug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G10ZUserDebug
buildConfigField "String", "platform", '"ZR6016"'
}
zhanruiG10ZDebug.initWith(debug)
zhanruiG10ZDebug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.zhanruiG10Z
// signingConfig signingConfigs.zhanRui
buildConfigField "String", "platform", '"ZR6016"'
}
zhanruiG10ZRelease.initWith(release)
zhanruiG10ZRelease {
signingConfig signingConfigs.zhanruiG10Z
// signingConfig signingConfigs.zhanRui
buildConfigField "String", "platform", '"ZR6016"'
}
@@ -502,9 +517,6 @@ dependencies {
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
//BindView
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
implementation 'com.squareup.moshi:moshi:1.9.3'
//OkHttp

Binary file not shown.

View File

@@ -7,9 +7,13 @@ import android.util.Log;
import android.view.View;
import android.widget.TextView;
import androidx.databinding.DataBindingUtil;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.base.BaseDataBindingActivity;
import com.aoleyun.sn.base.mvp.BaseMvpActivity;
import com.aoleyun.sn.databinding.ActivityCleanupBinding;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.AppUtil;
import com.hjq.toast.Toaster;
@@ -18,38 +22,31 @@ import com.king.view.circleprogressview.CircleProgressView;
import java.lang.reflect.Method;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class CleanupActivity extends BaseMvpActivity {
private static final String TAG = CleanupActivity.class.getSimpleName();
@BindView(R.id.tv_clean)
TextView tv_clean;
@BindView(R.id.cpv)
CircleProgressView cpv;
public class CleanupActivity extends BaseDataBindingActivity {
private static final String TAG = "CleanupActivity";
private ActivityCleanupBinding mBinding;
/**
* 设置布局
*/
@Override
public int getLayoutId() {
return R.layout.activity_cleanup;
}
@Override
public boolean setNightMode() {
return true;
}
@Override
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this,R.layout.activity_cleanup);
}
/**
* 初始化视图
*/
@Override
public void initView() {
ButterKnife.bind(this);
tv_clean.setOnClickListener(new View.OnClickListener() {
mBinding.tvClean.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
killBackgroundApp();
@@ -104,7 +101,7 @@ public class CleanupActivity extends BaseMvpActivity {
// } else {
// cpv.setProgressColor(mShaderColors);
// }
cpv.showAnimation(0, x, 1000);
mBinding.cpv.showAnimation(0, x, 1000);
float x2 = (((total - avail) / (float) total));
}

View File

@@ -4,34 +4,19 @@ import android.provider.Settings;
import android.view.View;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.databinding.DataBindingUtil;
import com.aoleyun.sn.R;
import com.aoleyun.sn.base.BaseDataBindingActivity;
import com.aoleyun.sn.base.mvp.BaseMvpActivity;
import com.aoleyun.sn.databinding.ActivityEyeProtectionBinding;
import com.aoleyun.sn.view.ToggleButton;
import com.hjq.toast.Toaster;
import butterknife.BindView;
import butterknife.ButterKnife;
public class EyeProtectionActivity extends BaseDataBindingActivity {
public class EyeProtectionActivity extends BaseMvpActivity {
private ActivityEyeProtectionBinding mBinding;
@BindView(R.id.cl_exit)
ConstraintLayout cl_exit;
@BindView(R.id.toggleButton1)
ToggleButton toggleButton1;
@BindView(R.id.toggleButton2)
ToggleButton toggleButton2;
@BindView(R.id.toggleButton3)
ToggleButton toggleButton3;
@BindView(R.id.toggleButton4)
ToggleButton toggleButton4;
@BindView(R.id.toggleButton5)
ToggleButton toggleButton5;
@Override
public int getLayoutId() {
return R.layout.activity_eye_protection;
}
@Override
public boolean setNightMode() {
@@ -39,45 +24,48 @@ public class EyeProtectionActivity extends BaseMvpActivity {
}
@Override
public void initView() {
ButterKnife.bind(this);
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_eye_protection);
}
toggleButton1.setOnToggleChanged(new ToggleButton.OnToggleChanged() {
@Override
public void initView() {
mBinding.toggleButton1.setOnToggleChanged(new ToggleButton.OnToggleChanged() {
@Override
public void onToggle(boolean on) {
Settings.Secure.putInt(getContentResolver(), Settings.Secure.NIGHT_DISPLAY_ACTIVATED, on ? 1 : 0);
}
});
toggleButton2.setOnToggleChanged(new ToggleButton.OnToggleChanged() {
mBinding.toggleButton2.setOnToggleChanged(new ToggleButton.OnToggleChanged() {
@Override
public void onToggle(boolean on) {
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, on ? 1 : 0);
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, on ? 0 : 1);
}
});
toggleButton3.setDisable(true);
toggleButton3.setOnClickListener(new View.OnClickListener() {
mBinding.toggleButton3.setDisable(true);
mBinding.toggleButton3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toaster.show("此功能暂未开放");
}
});
toggleButton4.setDisable(true);
toggleButton4.setOnClickListener(new View.OnClickListener() {
mBinding.toggleButton4.setDisable(true);
mBinding.toggleButton4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toaster.show("此功能暂未开放");
}
});
toggleButton5.setDisable(true);
toggleButton5.setOnClickListener(new View.OnClickListener() {
mBinding.toggleButton5.setDisable(true);
mBinding.toggleButton5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toaster.show("此功能暂未开放");
}
});
cl_exit.setOnClickListener(new View.OnClickListener() {
mBinding.clExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
@@ -95,16 +83,16 @@ public class EyeProtectionActivity extends BaseMvpActivity {
super.onResume();
int nightDisplay = Settings.Secure.getInt(getContentResolver(), Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 0);
if (nightDisplay == 1) {
toggleButton1.setToggleOn();
mBinding.toggleButton1.setToggleOn();
} else {
toggleButton1.setToggleOff();
mBinding.toggleButton1.setToggleOff();
}
int accessibilityDisplay = Settings.Secure.getInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0);
if (accessibilityDisplay == 1) {
toggleButton2.setToggleOn();
mBinding.toggleButton2.setToggleOn();
} else {
toggleButton2.setToggleOff();
mBinding.toggleButton2.setToggleOff();
}
}
}

View File

@@ -51,7 +51,7 @@ import java.nio.file.Paths;
public class SplashActivity extends AppCompatActivity {
private static String TAG = SplashActivity.class.getSimpleName();
private static String TAG = "SplashActivity";
private Button bt_log;
private Button bt_stop;

View File

@@ -47,7 +47,7 @@ import com.hjq.toast.Toaster;
import com.tencent.mmkv.MMKV;
public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBinding> implements NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = MainActivity.class.getSimpleName();
private static final String TAG = "MainActivity";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);

View File

@@ -40,7 +40,7 @@ import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEvent> {
private static final String TAG = MainViewModel.class.getSimpleName();
private static final String TAG = "MainViewModel";
@Override
public ActivityMainBinding getVDBinding() {

View File

@@ -1,53 +1,23 @@
package com.aoleyun.sn.activity.requestlog;
import android.view.View;
import android.widget.ImageView;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.aoleyun.sn.R;
import com.aoleyun.sn.base.mvp.BaseMvpActivity;
import com.aoleyun.sn.base.mvvm.BaseMvvmActivity;
import com.aoleyun.sn.databinding.ActivityRequestLogBinding;
import com.aoleyun.sn.rlog.LogBean;
import com.aoleyun.sn.rlog.LogDBManager;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class RequestLogActivity extends BaseMvvmActivity<RequestLogViewModel, ActivityRequestLogBinding> {
private static final String TAG = "RequestLogActivity";
public class RequestLogActivity extends BaseMvpActivity implements RequestLogContact.MainView {
private static final String TAG = RequestLogActivity.class.getSimpleName();
private RequestLogAdapter mAdapter;
@BindView(R.id.recyclerview)
RecyclerView mRecyclerView;
@BindView(R.id.iv_delete)
ImageView iv_delete;
@BindView(R.id.iv_refresh)
ImageView iv_refresh;
@BindView(R.id.iv_back)
ImageView back;
@OnClick({R.id.iv_back, R.id.iv_refresh, R.id.iv_delete})
public void onClick(View view) {
switch (view.getId()) {
case R.id.iv_back:
finish();
break;
case R.id.iv_refresh:
mPresenter.getDBList();
break;
case R.id.iv_delete:
LogDBManager.getInstance().saveToFile();
break;
default:
}
}
private RequestLogPresenter mPresenter;
@Override
public int getLayoutId() {
return R.layout.activity_request_log;
@@ -58,30 +28,48 @@ public class RequestLogActivity extends BaseMvpActivity implements RequestLogCon
return true;
}
@Override
protected void initDataBinding() {
mViewModel.setCtx(this);
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
mViewDataBinding.setClick(new BtnClick());
}
@Override
public void initView() {
ButterKnife.bind(this);
mPresenter = new RequestLogPresenter(this);
mPresenter.attachView(this);
mPresenter.setLifecycle(getLifecycleSubject());
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mViewDataBinding.recyclerview.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new RequestLogAdapter();
mRecyclerView.setAdapter(mAdapter);
mViewDataBinding.recyclerview.setAdapter(mAdapter);
}
@Override
public void initData() {
mPresenter.getDBList();
}
@Override
public void setDBList(List<LogBean> logBeanList) {
mAdapter.setLogBeans(logBeanList);
mViewModel.getLogBeanListData().observe(this, new Observer<List<LogBean>>() {
@Override
public void onChanged(List<LogBean> logBeans) {
mAdapter.setLogBeans(logBeans);
}
});
mViewModel.getDBList();
}
@Override
protected void onDestroy() {
super.onDestroy();
mPresenter.detachView();
}
public class BtnClick {
public void exit(View view) {
finish();
}
public void refresh(View view) {
mViewModel.getDBList();
}
public void delete(View view) {
LogDBManager.getInstance().saveToFile();
}
}
}

View File

@@ -1,17 +0,0 @@
package com.aoleyun.sn.activity.requestlog;
import com.aoleyun.sn.base.mvp.BasePresenter;
import com.aoleyun.sn.base.mvp.BaseView;
import com.aoleyun.sn.rlog.LogBean;
import java.util.List;
public class RequestLogContact {
public interface Presenter extends BasePresenter<MainView> {
void getDBList();
}
public interface MainView extends BaseView {
void setDBList(List<LogBean> logBeanList);
}
}

View File

@@ -1,47 +0,0 @@
package com.aoleyun.sn.activity.requestlog;
import android.content.Context;
import androidx.annotation.NonNull;
import com.aoleyun.sn.rlog.LogDBManager;
import com.trello.rxlifecycle4.android.ActivityEvent;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class RequestLogPresenter implements RequestLogContact.Presenter {
private static final String TAG = RequestLogPresenter.class.getSimpleName();
private RequestLogContact.MainView mView;
private Context mContext;
private BehaviorSubject<ActivityEvent> lifecycle;
public void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<ActivityEvent> getLifecycle() {
return lifecycle;
}
public RequestLogPresenter(Context context) {
this.mContext = context;
}
@Override
public void getDBList() {
mView.setDBList(LogDBManager.getInstance().getLogList());
}
@Override
public void attachView(@NonNull RequestLogContact.MainView view) {
this.mView = view;
}
@Override
public void detachView() {
this.mView = null;
}
}

View File

@@ -0,0 +1,34 @@
package com.aoleyun.sn.activity.requestlog;
import androidx.lifecycle.MutableLiveData;
import com.aoleyun.sn.base.mvvm.BaseViewModel;
import com.aoleyun.sn.databinding.ActivityRequestLogBinding;
import com.aoleyun.sn.rlog.LogBean;
import com.aoleyun.sn.rlog.LogDBManager;
import com.trello.rxlifecycle4.android.ActivityEvent;
import java.util.List;
public class RequestLogViewModel extends BaseViewModel<ActivityRequestLogBinding, ActivityEvent> {
@Override
public ActivityRequestLogBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
private MutableLiveData<List<LogBean>> mLogBeanListData =new MutableLiveData<>();
public MutableLiveData<List<LogBean>> getLogBeanListData() {
return mLogBeanListData;
}
public void getDBList(){
mLogBeanListData.setValue(LogDBManager.getInstance().getLogList());
}
}

View File

@@ -6,37 +6,21 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.aoleyun.sn.R;
import com.aoleyun.sn.adapter.AppUpdateAdapter;
import com.aoleyun.sn.base.mvp.BaseMvpActivity;
import com.aoleyun.sn.base.mvvm.BaseMvvmActivity;
import com.aoleyun.sn.bean.AppUpdateInfo;
import com.aoleyun.sn.databinding.ActivityUpdateBinding;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class UpdateActivity extends BaseMvvmActivity<UpdateViewModel, ActivityUpdateBinding> {
private static final String TAG = "UpdateActivity";
public class UpdateActivity extends BaseMvpActivity implements UpdateContact.UpdateView {
private static final String TAG = UpdateActivity.class.getSimpleName();
@BindView(R.id.root)
ConstraintLayout root;
@BindView(R.id.main)
ConstraintLayout main;
@BindView(R.id.iv_back)
ImageView iv_back;
@BindView(R.id.cl_nodata)
ConstraintLayout cl_nodata;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
private UpdatePresenter mPresenter;
private AppUpdateAdapter mAppUpdateAdapter;
@Override
@@ -49,63 +33,48 @@ public class UpdateActivity extends BaseMvpActivity implements UpdateContact.Upd
return true;
}
@Override
protected void initDataBinding() {
mViewModel.setCtx(this);
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
mViewDataBinding.setClick(new BtnClick());
}
@Override
public void initView() {
ButterKnife.bind(this);
mPresenter = new UpdatePresenter(this);
mPresenter.attachView(this);
mPresenter.setLifecycle(getLifecycleSubject());
mAppUpdateAdapter = new AppUpdateAdapter();
recyclerView.setLayoutManager(new LinearLayoutManager(UpdateActivity.this));
recyclerView.setAdapter(mAppUpdateAdapter);
root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
main.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
iv_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
mViewDataBinding.recyclerView.setLayoutManager(new LinearLayoutManager(UpdateActivity.this));
mViewDataBinding.recyclerView.setAdapter(mAppUpdateAdapter);
}
@Override
public void initData() {
mViewModel.getAppUpdateInfoListData().observe(this, new Observer<List<AppUpdateInfo>>() {
@Override
public void onChanged(List<AppUpdateInfo> appUpdateInfos) {
if (appUpdateInfos == null || appUpdateInfos.size() == 0) {
mViewDataBinding.clNodata.setVisibility(View.VISIBLE);
mViewDataBinding.recyclerView.setVisibility(View.GONE);
} else {
mViewDataBinding.clNodata.setVisibility(View.GONE);
mViewDataBinding.recyclerView.setVisibility(View.VISIBLE);
mAppUpdateAdapter.setAppInfoList(appUpdateInfos);
}
}
});
mViewModel.checkAllAppUpdate();
registmNewAppReceiver();
mPresenter.checkAllAppUpdate();
}
@Override
protected void onDestroy() {
super.onDestroy();
mPresenter.detachView();
if (mNewAppReceiver != null) {
unregisterReceiver(mNewAppReceiver);
}
}
@Override
public void onAppUpdate(List<AppUpdateInfo> updateApp) {
if (updateApp == null || updateApp.size() == 0) {
cl_nodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
} else {
cl_nodata.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
mAppUpdateAdapter.setAppInfoList(updateApp);
}
}
private void registmNewAppReceiver() {
mNewAppReceiver = new NewAppReceiver();
IntentFilter filter = new IntentFilter();
@@ -134,4 +103,15 @@ public class UpdateActivity extends BaseMvpActivity implements UpdateContact.Upd
}
}
}
public class BtnClick {
public void exit(View view) {
finish();
}
public void empty(View view) {
}
}
}

View File

@@ -1,19 +0,0 @@
package com.aoleyun.sn.activity.update;
import com.aoleyun.sn.base.mvp.BasePresenter;
import com.aoleyun.sn.base.mvp.BaseView;
import com.aoleyun.sn.bean.AppUpdateInfo;
import java.util.List;
public class UpdateContact {
interface Presenter extends BasePresenter<UpdateView> {
/*获取所有更新*/
void checkAllAppUpdate();
}
public interface UpdateView extends BaseView {
void onAppUpdate(List<AppUpdateInfo> updateApp);
}
}

View File

@@ -1,52 +0,0 @@
package com.aoleyun.sn.activity.update;
import android.content.Context;
import com.aoleyun.sn.bean.AppUpdateInfo;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.trello.rxlifecycle4.android.ActivityEvent;
import java.util.List;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class UpdatePresenter implements UpdateContact.Presenter {
private Context mContext;
UpdatePresenter(Context context) {
this.mContext = context;
}
private UpdateContact.UpdateView mView;
private BehaviorSubject<ActivityEvent> lifecycle;
public void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<ActivityEvent> getLifecycle() {
return lifecycle;
}
@Override
public void attachView(UpdateContact.UpdateView view) {
this.mView = view;
}
@Override
public void detachView() {
this.mView = null;
}
@Override
public void checkAllAppUpdate() {
NetInterfaceManager.getInstance().checkAoleyunUpdate( getLifecycle(), new NetInterfaceManager.UpdateCallback() {
@Override
public void onUpdate(List<AppUpdateInfo> appUpdateInfos) {
mView.onAppUpdate(appUpdateInfos);
}
});
}
}

View File

@@ -0,0 +1,39 @@
package com.aoleyun.sn.activity.update;
import androidx.lifecycle.MutableLiveData;
import com.aoleyun.sn.base.mvvm.BaseViewModel;
import com.aoleyun.sn.bean.AppUpdateInfo;
import com.aoleyun.sn.databinding.ActivityUpdateBinding;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.trello.rxlifecycle4.android.ActivityEvent;
import java.util.List;
public class UpdateViewModel extends BaseViewModel<ActivityUpdateBinding, ActivityEvent> {
@Override
public ActivityUpdateBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
private MutableLiveData<List<AppUpdateInfo>> mAppUpdateInfoListData = new MutableLiveData<>();
public MutableLiveData<List<AppUpdateInfo>> getAppUpdateInfoListData() {
return mAppUpdateInfoListData;
}
public void checkAllAppUpdate() {
NetInterfaceManager.getInstance().checkAoleyunUpdate(getLifecycle(), new NetInterfaceManager.UpdateCallback() {
@Override
public void onUpdate(List<AppUpdateInfo> appUpdateInfos) {
mAppUpdateInfoListData.setValue(appUpdateInfos);
}
});
}
}

View File

@@ -32,7 +32,7 @@ import com.hjq.toast.Toaster;
import java.util.List;
public class AppUpdateAdapter extends RecyclerView.Adapter<AppUpdateAdapter.Holder> {
private static final String TAG = AppUpdateAdapter.class.getSimpleName();
private static final String TAG = "AppUpdateAdapter";
private Context mContext;
private List<AppUpdateInfo> mAppInfoList;

View File

@@ -36,7 +36,7 @@ import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class BaseApplication extends MultiDexApplication {
private static final String TAG = BaseApplication.class.getSimpleName();
private static final String TAG = "BaseApplication";
@Override
public void onCreate() {
@@ -89,6 +89,7 @@ public class BaseApplication extends MultiDexApplication {
public void uncaughtException(Thread t, Throwable e) {
Log.e("捕获异常子线程:", Thread.currentThread().getName() +
"在:" + e.getStackTrace()[0].getClassName());
e.printStackTrace();
}
}
);

View File

@@ -15,8 +15,7 @@ import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
public abstract class BaseMvvmActivity<VM extends ViewModel, VDB extends ViewDataBinding> extends BaseTransparentActivity {
private static final String TAG = BaseMvvmActivity.class.getSimpleName();
private static final String TAG = "BaseMvvmActivity";
protected VM mViewModel;
protected VDB mViewDataBinding;

View File

@@ -100,6 +100,8 @@ public class CommonConfig {
public final static String AOLE_ACTION_APP_FORBID = "aole_app_forbid";
/*强制安装应用,禁止卸载*/
public final static String AOLE_ACTION_FORCE_APP = "aole_force_app";
/*指定应用安装源 非指定包名不能安装apk*/
public static final String APP_SOURCE_WHITE_LIST = "app_source_white_list";
/*应用ID管控*/
public final static String AOLE_ACTION_APP_FORBID_ID = "aole_app_forbid_id";

View File

@@ -30,7 +30,7 @@ import java.io.Serializable;
* 磁盘缓存帮助类
*/
public class CacheHelper {
private static final String TAG = CacheHelper.class.getSimpleName();
private static final String TAG = "CacheHelper";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);

View File

@@ -9,7 +9,7 @@ import com.aoleyun.sn.utils.JGYUtils;
import com.tencent.mmkv.MMKV;
public class AoleyunActivityController extends IActivityController.Stub {
private static final String TAG = AoleyunActivityController.class.getSimpleName();
private static final String TAG = "AoleyunActivityController";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
@Override

View File

@@ -8,7 +8,7 @@ import com.aoleyun.sn.comm.CommonConfig;
import com.tencent.mmkv.MMKV;
public class ConnectManager {
private static final String TAG = ConnectManager.class.getSimpleName();
private static final String TAG = "ConnectManager";
public static final long ONE_MILLISECOND = 1000;
public static final long ONE_MINUTES_TIME = 60 * ONE_MILLISECOND;

View File

@@ -12,7 +12,7 @@ import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
public class MapManager {
private String TAG = MapManager.class.getSimpleName();
private String TAG = "MapManager";
@SuppressLint("StaticFieldLeak")
private static MapManager sInstance;

View File

@@ -198,7 +198,7 @@ import retrofit2.converter.gson.GsonConverterFactory;
import static com.google.gson.JsonParser.parseString;
public class NetInterfaceManager {
private static final String TAG = NetInterfaceManager.class.getSimpleName();
private static final String TAG = "NetInterfaceManager";
@SuppressLint("StaticFieldLeak")
private static NetInterfaceManager INSTANCE;

View File

@@ -12,7 +12,7 @@ import retrofit2.Response;
public abstract class RetryCallback<T> implements Callback<T> {
private static final String TAG = RetryCallback.class.getSimpleName();
private static final String TAG = "RetryCallback";
private int mRetryCount;
private long mRetryInterval;

View File

@@ -22,7 +22,7 @@ import okio.Buffer;
* v1.0 2022-07-15 16:16:52
*/
public class RepeatRequestInterceptor implements Interceptor {
private static final String TAG = RepeatRequestInterceptor.class.getSimpleName();
private static final String TAG = "RepeatRequestInterceptor";
private final ConcurrentHashMap<String, Long> requestIdsMap = new ConcurrentHashMap<>();
public static final String REPEAT_REQUEST_PROTOCOL = "OKHTTP_REPEAT_REQUEST_PROTOCOL";

View File

@@ -92,7 +92,7 @@ import retrofit2.Call;
import retrofit2.Response;
public class PushManager {
private static final String TAG = PushManager.class.getSimpleName();
private static final String TAG = "PushManager";
public static final String ACTION_REFRESH_BINDING_STATUS = "RefreshBindingStatus";
public static final String AOLEYUN_REFRESH_DESKTOP = "aoleyun_refresh_desktop_action";
@@ -248,6 +248,8 @@ public class PushManager {
/*绑定设备*/
private static final String BIND_DEVICE = "71";
/*文件分享*/
private static final String FILE_DISTRIBUTE = "72";
/*打开应用*/
private static final String OPEN_APK = "73";
/*全局黑名单*/
@@ -650,6 +652,9 @@ public class PushManager {
case BIND_DEVICE:
bindService(extras);
break;
case FILE_DISTRIBUTE:
ApkUtils.openPackage(mContext, "com.uiui.filecloud");
break;
case OPEN_APK:
openApk(extras);
break;

View File

@@ -18,7 +18,7 @@ import java.util.Map;
*/
public class AliMessageIntentService extends AliyunMessageIntentService {
private static final String TAG = AliyunMessageIntentService.class.getSimpleName();
private static final String TAG = "AliyunMessageIntentService";
/**
* 推送通知的回调方法

View File

@@ -19,7 +19,7 @@ import java.util.Map;
*/
public class AliyunMessageReceiver extends MessageReceiver {
// 消息接收部分的LOG_TAG
public static final String TAG = AliyunMessageReceiver.class.getSimpleName();
public static final String TAG = "AliyunMessageReceiver";
/**
* 推送通知的回调方法

View File

@@ -22,7 +22,7 @@ import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class BootReceiver extends BroadcastReceiver {
private static String TAG = BootReceiver.class.getSimpleName() + ":aoleyunsn";
private static String TAG = "BootReceiver" + ":aoleyunsn";
public static final String BOOT_COMPLETED = "aoleyun.intent.action.BOOT_COMPLETED";
static {

View File

@@ -23,7 +23,7 @@ import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class NewAppReceiver extends BroadcastReceiver {
private static final String TAG = NewAppReceiver.class.getSimpleName();
private static final String TAG = "NewAppReceiver";
private static NewAppListener newAppListener;
private static LauncherListener launcherListener;

View File

@@ -28,7 +28,7 @@ public class LogDBManager {
private LogDBHelper mDBHelper;
private static final String TABLE_NAME = "logtable";
private static String TAG = LogDBManager.class.getSimpleName();
private static String TAG = "LogDBManager";
private LogDBManager(Context context) {
if (context == null) {

View File

@@ -108,7 +108,7 @@ import static android.os.BatteryManager.EXTRA_VOLTAGE;
* @time Created by 2018/8/17 11:27
*/
public class GuardService extends Service {
private final static String TAG = GuardService.class.getSimpleName();
private final static String TAG = "GuardService";
private ServiceConnection mServiceConnection = new ServiceConnection() {
@Override

View File

@@ -35,7 +35,7 @@ import okhttp3.RequestBody;
public class LogcatService extends Service {
public final static String LOGCAT_START_ACTION = "START";
public final static String LOGCAT_STOP_ACTION = "STOP";
private String TAG = LogcatService.class.getSimpleName();
private String TAG = "LogcatService";
public LogcatService() {

View File

@@ -23,7 +23,7 @@ import java.util.Arrays;
import java.util.List;
public class RemoteService extends Service {
private String TAG = RemoteService.class.getSimpleName();
private String TAG = "RemoteService";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);

View File

@@ -35,7 +35,7 @@ import java.net.URI;
* @time Created by 2018/8/17 11:26
*/
public class StepService extends Service implements NetworkUtils.OnNetworkStatusChangedListener {
private final static String TAG = StepService.class.getSimpleName();
private final static String TAG = "StepService";
public JWebSocketClient client;
private JWebSocketClientBinder mBinder = new JWebSocketClientBinder();

View File

@@ -46,7 +46,7 @@ import io.reactivex.rxjava3.subjects.BehaviorSubject;
* @author jgy02
*/
public class MainSPresenter implements MainSContact.Presenter {
private static final String TAG = MainSPresenter.class.getSimpleName();
private static final String TAG = "MainSPresenter";
private MainSContact.MainView mView;
private Context mContext;

View File

@@ -88,7 +88,7 @@ import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class MainService extends Service implements MainSContact.MainView, NetworkUtils.OnNetworkStatusChangedListener, LifecycleProvider<ActivityEvent> {
private static final String TAG = MainService.class.getSimpleName();
private static final String TAG = "MainService";
public MainSPresenter mPresenter;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);

View File

@@ -13,7 +13,7 @@ import javax.crypto.spec.SecretKeySpec;
*/
public class AESEncrypt {
private static final String TAG = AESEncrypt.class.getSimpleName() + " --> ";
private static final String TAG = "AESEncrypt" + " --> ";
/**
* 加密算法

View File

@@ -671,7 +671,7 @@ public class AesCbcWithIntegrity {
}
} catch (Exception e) {
if (ALLOW_BROKEN_PRNG) {
Log.w(PrngFixes.class.getSimpleName(), "Failed to seed OpenSSL PRNG", e);
Log.w("PrngFixes", "Failed to seed OpenSSL PRNG", e);
} else {
throw new SecurityException("Failed to seed OpenSSL PRNG", e);
}
@@ -714,7 +714,7 @@ public class AesCbcWithIntegrity {
SecureRandom rng1 = new SecureRandom();
if (!rng1.getProvider().getClass().getSimpleName().equals("LinuxPRNGSecureRandomProvider")) {
if (ALLOW_BROKEN_PRNG) {
Log.w(PrngFixes.class.getSimpleName(),
Log.w("PrngFixes",
"new SecureRandom() backed by wrong Provider: " + rng1.getProvider().getClass());
return;
} else {
@@ -728,7 +728,7 @@ public class AesCbcWithIntegrity {
rng2 = SecureRandom.getInstance("SHA1PRNG");
} catch (NoSuchAlgorithmException e) {
if (ALLOW_BROKEN_PRNG) {
Log.w(PrngFixes.class.getSimpleName(), "SHA1PRNG not available", e);
Log.w("PrngFixes", "SHA1PRNG not available", e);
return;
} else {
new SecurityException("SHA1PRNG not available", e);
@@ -736,7 +736,7 @@ public class AesCbcWithIntegrity {
}
if (!rng2.getProvider().getClass().getSimpleName().equals("LinuxPRNGSecureRandomProvider")) {
if (ALLOW_BROKEN_PRNG) {
Log.w(PrngFixes.class.getSimpleName(),
Log.w("PrngFixes",
"SecureRandom.getInstance(\"SHA1PRNG\") backed by wrong" + " Provider: "
+ rng2.getProvider().getClass());
return;
@@ -824,7 +824,7 @@ public class AesCbcWithIntegrity {
} catch (IOException e) {
// On a small fraction of devices /dev/urandom is not
// writable Log and ignore.
Log.w(PrngFixes.class.getSimpleName(), "Failed to mix seed into "
Log.w("PrngFixes", "Failed to mix seed into "
+ URANDOM_FILE);
} finally {
mSeeded = true;

View File

@@ -66,7 +66,7 @@ import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
public class ApkUtils {
private static final String TAG = ApkUtils.class.getSimpleName();
private static final String TAG = "ApkUtils";
public static final Set<String> aoleyunAPP = new HashSet<String>() {{
this.add(BuildConfig.APPLICATION_ID);

View File

@@ -24,7 +24,7 @@ import java.io.BufferedReader;
import java.io.FileReader;
public class AppUtil {
private static String TAG = AppUtil.class.getSimpleName();
private static String TAG = "AppUtil";
/**
* 描述:获取可用内存.

View File

@@ -10,7 +10,7 @@ import com.aoleyun.sn.service.main.MainService;
public class BootManager {
private Context mContext;
private final static String TAG = BootManager.class.getSimpleName();
private final static String TAG = "BootManager";
public BootManager(Context context) {
this.mContext = context;

View File

@@ -15,7 +15,7 @@ import java.lang.reflect.Method;
public class CacheUtils {
private static final String TAG = CacheUtils.class.getSimpleName();
private static final String TAG = "CacheUtils";
private final long MAX_WAIT_TIME = 60 * 1000;
private final long WAIT_TIME_INCR = 10 * 1000;

View File

@@ -45,7 +45,7 @@ import java.util.stream.Collectors;
* @描述
*/
public class Camera2BackgroundUtil {
private static final String TAG = Camera2BackgroundUtil.class.getSimpleName();
private static final String TAG = "Camera2BackgroundUtil";
private Context context;
private CameraCallBack cameraCallBack;

View File

@@ -19,7 +19,7 @@ public class ForegroundAppUtil {
private static final long START_TIME = END_TIME - TIME_INTERVAL;
public static final String TOPAPP_KEY = "TOP_ALWAYS_SHOW_APP_NAME";
private static String TAG = ForegroundAppUtil.class.getSimpleName();
private static String TAG = "ForegroundAppUtil";
public static String getForegroundPackageName(Context context) {
//系统应用可以直接获取

View File

@@ -111,7 +111,7 @@ import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE;
public class JGYUtils {
private static final String TAG = JGYUtils.class.getSimpleName();
private static final String TAG = "JGYUtils";
/*九学王*/
public static final String JXW_LAUNCHER_PACKAGE_NAME = "com.jxw.launcher";
@@ -1304,9 +1304,9 @@ public class JGYUtils {
pkgSet.addAll(ApkUtils.desktopAPP);
pkgSet.addAll(ApkUtils.aoleyunAPP);
pkgSet.addAll(ApkUtils.mJxwApp);
if ("AS001".equals(Build.MODEL)) {
if ("K101".equals(Build.MODEL)||"AS001".equals(Build.MODEL)) {
pkgSet.addAll(ApkUtils.aihuaApp);
pkgSet.addAll(aihuaAppList);
}
if ("D1".equals(Build.MODEL)) {
pkgSet.addAll(ApkUtils.dongwa);
@@ -1668,7 +1668,9 @@ public class JGYUtils {
this.add("com.aoleyunos.dop1");
this.add("com.aoleyunos.dop2");
this.add("com.aoleyunos.dop3");
}};
HashSet<String> aihuaAppList = new HashSet<String>() {{
//aihua
this.add("com.android.mms");
this.add("com.android.fmradio");
@@ -1684,10 +1686,11 @@ public class JGYUtils {
this.add("com.tongyi.aistudent");
}};
/**
* 隐藏系统所有应用
* 除了设置,图库、视频、设置、文件管理器、通话、短信、日历、时钟、计算器
*/
/**
* 隐藏系统所有应用
* 除了设置,图库、视频、设置、文件管理器、通话、短信、日历、时钟、计算器
*/
public void hideSystemAPP() {
PackageManager pm = mContext.getPackageManager();
try {

View File

@@ -15,7 +15,7 @@ import android.util.Log;
* @author fanhuitong
*/
public class NetworkUtils {
private static String TAG = NetworkUtils.class.getSimpleName();
private static String TAG = "NetworkUtils";
/**
* 网络是否连接

View File

@@ -5,7 +5,7 @@ import android.content.Context;
import android.util.Log;
public class ServiceAliveUtils {
private static final String TAG = ServiceAliveUtils.class.getSimpleName();
private static final String TAG = "ServiceAliveUtils";
public static boolean isServiceAlive(Context mContext) {
boolean isServiceRunning = false;

View File

@@ -32,7 +32,7 @@ import java.util.List;
public class SysSettingUtils {
private static final String TAG = SysSettingUtils.class.getSimpleName();
private static final String TAG = "SysSettingUtils";
public SysSettingUtils() {
@@ -390,9 +390,12 @@ public class SysSettingUtils {
}
int old_setting_bht = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHT_FORBID_ON, 1);
int old_setting_bluetooth = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, 1);
int old_setting_bhtvideo = mmkv.decodeInt(CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, 1);
int old_setting_bht = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHT_FORBID_ON, 0);
Log.e(TAG, "setBluetooth: old_setting_bht = " + old_setting_bht);
int old_setting_bluetooth = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, 0);
Log.e(TAG, "setBluetooth: old_setting_bluetooth = " + old_setting_bluetooth);
int old_setting_bhtvideo = mmkv.decodeInt(CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, 0);
Log.e(TAG, "setBluetooth: old_setting_bhtvideo = " + old_setting_bhtvideo);
if (old_setting_bht != setting_bht) {

View File

@@ -31,7 +31,7 @@ import java.util.Date;
* 时间管控工具类
*/
public class TimeUtils {
private static final String TAG = TimeUtils.class.getSimpleName();
private static final String TAG = "TimeUtils";
private static DateFormat df = new SimpleDateFormat("HH:mm");
public static final String START_TIME_KEY = "START_TIME";
public static final String END_TIME_KEY = "END_TIME";

View File

@@ -28,7 +28,7 @@ import okhttp3.Request;
import okhttp3.Response;
public class URLUtils {
private static final String TAG = URLUtils.class.getSimpleName();
private static final String TAG = "URLUtils";
private Context mContext;
private HashSet<String> baseURLList = new HashSet<>();
private HashSet<String> nohttpURLList = new HashSet<>();

View File

@@ -109,7 +109,7 @@ import static android.content.Context.WIFI_SERVICE;
public class Utils {
private static String TAG = Utils.class.getSimpleName();
private static String TAG = "Utils";
// MD5 设备地址标识
public static String getMAC(Context context) {

View File

@@ -30,7 +30,7 @@ public class WiFiUtils {
private static WifiManager mWifiManager;
@SuppressLint("StaticFieldLeak")
private Context mContext;
private static String TAG = WiFiUtils.class.getSimpleName();
private static String TAG = "WiFiUtils";
public WiFiUtils(Context context) {
this.mContext = context;

View File

@@ -51,7 +51,7 @@ public class XAPKUtils {
//https://www.jianshu.com/p/cd10d5278ebf?utm_campaign=hugo
//https://www.jianshu.com/p/580b61ee7aee
private static final String TAG = XAPKUtils.class.getSimpleName();
private static final String TAG = "XAPKUtils";
private static XAPKUtils sInstance;
private Context mContext;

View File

@@ -1,131 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
tools:context=".activity.requestlog.RequestLogActivity">
<data>
<variable
name="click"
type="com.aoleyun.sn.activity.requestlog.RequestLogActivity.BtnClick" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/bannerLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="运行日志"
android:textColor="@color/title_textcolor"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_refresh"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/refresh"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/ll_title"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@+id/bannerLayout">
<TextView
android:id="@+id/tv_code"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="代码" />
<TextView
android:id="@+id/tv_timestamp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="时间" />
<TextView
android:id="@+id/tv_event"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="事件" />
<TextView
android:id="@+id/tv_operate"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="操作" />
<TextView
android:id="@+id/tv_content"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:gravity="center"
android:text="内容" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/constraintLayout4"
app:layout_constraintTop_toBottomOf="@+id/ll_title" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout4"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_64"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<ImageView
android:id="@+id/iv_delete"
android:layout_width="@dimen/dp_32"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/bannerLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/delete"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:onClick="@{click::exit}"
android:scaleType="centerCrop"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="运行日志"
android:textColor="@color/title_textcolor"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_refresh"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_8"
android:adjustViewBounds="true"
android:onClick="@{click::refresh}"
android:scaleType="centerInside"
android:src="@drawable/refresh"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/ll_title"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@+id/bannerLayout">
<TextView
android:id="@+id/tv_code"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="代码" />
<TextView
android:id="@+id/tv_timestamp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="时间" />
<TextView
android:id="@+id/tv_event"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="事件" />
<TextView
android:id="@+id/tv_operate"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="操作" />
<TextView
android:id="@+id/tv_content"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:gravity="center"
android:text="内容" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/constraintLayout4"
app:layout_constraintTop_toBottomOf="@+id/ll_title" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout4"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_64"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintStart_toStartOf="parent">
<ImageView
android:id="@+id/iv_delete"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:onClick="@{click::delete}"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/delete"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,98 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.update.UpdateActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="应用更新检测"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_32"
android:layout_marginEnd="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_nodata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageView2"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_nodata"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:text="没有找到更新信息"
android:textSize="@dimen/sp_10"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/imageView2"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="@+id/imageView2"
app:layout_constraintTop_toBottomOf="@+id/imageView2" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -577,8 +577,8 @@
<TextView
android:id="@+id/tv_system_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="7dp"
android:layout_height="12dp"
android:layout_marginEnd="@dimen/dp_16"
android:ellipsize="end"
android:maxLength="30"

View File

@@ -1,131 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
tools:context=".activity.requestlog.RequestLogActivity">
<data>
<variable
name="click"
type="com.aoleyun.sn.activity.requestlog.RequestLogActivity.BtnClick" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/bannerLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="运行日志"
android:textColor="@color/title_textcolor"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_refresh"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/refresh"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/ll_title"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@+id/bannerLayout">
<TextView
android:id="@+id/tv_code"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="代码" />
<TextView
android:id="@+id/tv_timestamp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="时间" />
<TextView
android:id="@+id/tv_event"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="事件" />
<TextView
android:id="@+id/tv_operate"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="操作" />
<TextView
android:id="@+id/tv_content"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:gravity="center"
android:text="内容" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/constraintLayout4"
app:layout_constraintTop_toBottomOf="@+id/ll_title" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout4"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_64"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<ImageView
android:id="@+id/iv_delete"
android:layout_width="@dimen/dp_32"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/bannerLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/delete"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:onClick="@{click::exit}"
android:scaleType="centerCrop"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="运行日志"
android:textColor="@color/title_textcolor"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_refresh"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_8"
android:adjustViewBounds="true"
android:onClick="@{click::refresh}"
android:scaleType="centerInside"
android:src="@drawable/refresh"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/ll_title"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@+id/bannerLayout">
<TextView
android:id="@+id/tv_code"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="代码" />
<TextView
android:id="@+id/tv_timestamp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="时间" />
<TextView
android:id="@+id/tv_event"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="事件" />
<TextView
android:id="@+id/tv_operate"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="操作" />
<TextView
android:id="@+id/tv_content"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:gravity="center"
android:text="内容" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/constraintLayout4"
app:layout_constraintTop_toBottomOf="@+id/ll_title" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout4"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_64"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintStart_toStartOf="parent">
<ImageView
android:id="@+id/iv_delete"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:onClick="@{click::delete}"
android:scaleType="centerInside"
android:src="@drawable/delete"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,96 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.update.UpdateActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="应用更新检测"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_nodata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageView2"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_nodata"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:text="没有找到更新信息"
android:textSize="@dimen/sp_10"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/imageView2"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="@+id/imageView2"
app:layout_constraintTop_toBottomOf="@+id/imageView2" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,72 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.CleanupActivity">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_260"
android:layout_height="@dimen/dp_180"
android:layout_centerInParent="true"
android:background="@drawable/bg_dialog"
android:minWidth="@dimen/dp_260"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp_16"
android:gravity="center_vertical"
android:text="一键加速"
android:textColor="@color/black"
android:textSize="@dimen/sp_13"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="一键加速" />
<com.king.view.circleprogressview.CircleProgressView
android:id="@+id/cpv"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
app:cpvDuration="1000"
app:cpvLabelTextColor="@color/black"
app:cpvLabelTextSize="@dimen/sp_11"
app:cpvNormalColor="#D8EAFD"
app:cpvProgressColor="#0480FF"
app:cpvShowTick="false"
app:cpvStrokeWidth="@dimen/dp_12"
app:layout_constraintBottom_toTopOf="@+id/tv_clean"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<TextView
android:id="@+id/tv_clean"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_8"
android:layout_weight="1"
android:background="@drawable/clean_background"
android:gravity="center"
android:singleLine="true"
android:text="一键加速"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_260"
android:layout_height="@dimen/dp_180"
android:layout_centerInParent="true"
android:background="@drawable/bg_dialog"
android:minWidth="@dimen/dp_260"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="一键加速" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp_16"
android:gravity="center_vertical"
android:text="一键加速"
android:textColor="@color/black"
android:textSize="@dimen/sp_13"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="一键加速" />
<com.king.view.circleprogressview.CircleProgressView
android:id="@+id/cpv"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
app:cpvDuration="1000"
app:cpvLabelTextColor="@color/black"
app:cpvLabelTextSize="@dimen/sp_11"
app:cpvNormalColor="#D8EAFD"
app:cpvProgressColor="#0480FF"
app:cpvShowTick="false"
app:cpvStrokeWidth="@dimen/dp_12"
app:layout_constraintBottom_toTopOf="@+id/tv_clean"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<TextView
android:id="@+id/tv_clean"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_8"
android:layout_weight="1"
android:background="@drawable/clean_background"
android:gravity="center"
android:singleLine="true"
android:text="一键加速"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="一键加速" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,284 +1,291 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1f2127"
tools:context=".activity.EyeProtectionActivity">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
app:layout_constraintTop_toTopOf="parent">
android:layout_height="match_parent"
android:background="#1f2127">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_32"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/back"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="护眼功能"
android:textColor="@color/white"
android:textSize="@dimen/sp_13"
android:layout_marginStart="@dimen/dp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iv_back"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_16"
android:layout_height="@dimen/dp_16"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/back"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="护眼功能"
android:textColor="@color/white"
android:textSize="@dimen/sp_13"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iv_back"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<LinearLayout
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<androidx.constraintlayout.widget.ConstraintLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background">
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="滤蓝光模式"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="开启滤蓝光护眼,让屏幕偏暖色,保护视力,减少视觉疲劳。"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton1"
app:layout_constraintStart_toStartOf="@+id/textView1"
app:layout_constraintTop_toBottomOf="@+id/textView1" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="滤蓝光模式"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="开启滤蓝光护眼,让屏幕偏暖色,保护视力,减少视觉疲劳。"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton1"
app:layout_constraintStart_toStartOf="@+id/textView1"
app:layout_constraintTop_toBottomOf="@+id/textView1" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background">
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="阅读模式"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="通过模拟纸张的色调,体验如墨水屏般的显示效果,保护视力。"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton2"
app:layout_constraintStart_toStartOf="@+id/textView2"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="阅读模式"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton2"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="通过模拟纸张的色调,体验如墨水屏般的显示效果,保护视力。"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton2"
app:layout_constraintStart_toStartOf="@+id/textView2"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton2"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background"
android:visibility="gone">
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="躺姿提醒(暂未开放)"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background"
android:visibility="gone">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="通仰躺、侧卧时使用平板,提醒坐正后使用"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton3"
app:layout_constraintStart_toStartOf="@+id/textView3"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="躺姿提醒(暂未开放)"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton3"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="通仰躺、侧卧时使用平板,提醒坐正后使用"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton3"
app:layout_constraintStart_toStartOf="@+id/textView3"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton3"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background"
android:visibility="gone">
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="抖动提醒(暂未开放)"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background"
android:visibility="gone">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="走路、乘车等抖动环境下,提醒到平稳环境下使用"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton4"
app:layout_constraintStart_toStartOf="@+id/textView4"
app:layout_constraintTop_toBottomOf="@+id/textView4" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="抖动提醒(暂未开放)"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton4"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="走路、乘车等抖动环境下,提醒到平稳环境下使用"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton4"
app:layout_constraintStart_toStartOf="@+id/textView4"
app:layout_constraintTop_toBottomOf="@+id/textView4" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton4"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background"
android:visibility="gone">
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="亮度提醒(暂未开放)"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_64"
android:background="@drawable/item_eye_background"
android:visibility="gone">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="环境亮度过亮或过暗时,提醒到事宜的环境下使用"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton5"
app:layout_constraintStart_toStartOf="@+id/textView5"
app:layout_constraintTop_toBottomOf="@+id/textView5" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:maxLines="1"
android:text="亮度提醒(暂未开放)"
android:textColor="@color/white"
android:textSize="@dimen/sp_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton5"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_16"
android:maxLines="2"
android:text="环境亮度过亮或过暗时,提醒到事宜的环境下使用"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/toggleButton5"
app:layout_constraintStart_toStartOf="@+id/textView5"
app:layout_constraintTop_toBottomOf="@+id/textView5" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.aoleyun.sn.view.ToggleButton
android:id="@+id/toggleButton5"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_18"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,96 +1,106 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.update.UpdateActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<data>
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="应用更新检测"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<variable
name="click"
type="com.aoleyun.sn.activity.update.UpdateActivity.BtnClick" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_nodata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageView2"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:id="@+id/iv_back"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_8"
android:adjustViewBounds="true"
android:onClick="@{click::exit}"
android:scaleType="centerCrop"
android:src="@drawable/icon_nodata"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/bt_return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView7"
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:text="没有找到更新信息"
android:textSize="@dimen/sp_10"
android:text="应用更新检测"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/imageView2"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="@+id/imageView2"
app:layout_constraintTop_toBottomOf="@+id/imageView2" />
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_nodata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageView2"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_nodata"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:text="没有找到更新信息"
android:textSize="@dimen/sp_10"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/imageView2"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="@+id/imageView2"
app:layout_constraintTop_toBottomOf="@+id/imageView2" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>