diff --git a/app/build.gradle b/app/build.gradle index da1a1cc..c875bc3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { minSdkVersion 23 targetSdkVersion 29 - versionCode 41 - versionName "1.4.0" + versionCode 43 + versionName "1.4.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/xwad/os/activity/download/DownloadActivity.java b/app/src/main/java/com/xwad/os/activity/download/DownloadActivity.java index 1cba80a..13415cc 100644 --- a/app/src/main/java/com/xwad/os/activity/download/DownloadActivity.java +++ b/app/src/main/java/com/xwad/os/activity/download/DownloadActivity.java @@ -25,6 +25,7 @@ import com.xwad.os.databinding.ActivityDownloadBinding; import com.xwad.os.utils.ActivationUtil; import com.xwad.os.utils.ApkUtils; import com.xwad.os.utils.FileUtils; +import com.xwad.os.utils.OpenApkUtils; import java.util.List; import java.util.function.Consumer; @@ -34,6 +35,8 @@ public class DownloadActivity extends BaseMvvmActivity mAppInfos; + private boolean mAutoClose = false; + private String mParamString; @Override protected int getLayoutId() { @@ -64,21 +67,34 @@ public class DownloadActivity extends BaseMvvmActivity>() { @Override public void onChanged(List appInfos) { - mAppInfos = appInfos; - mAppInfoAdapter.setAppInfos(appInfos); - if (appInfos == null || appInfos.isEmpty()) { - mViewDataBinding.clContent.setVisibility(View.GONE); - mViewDataBinding.llNodata.setVisibility(View.VISIBLE); + if (mAutoClose) { + if (OpenApkUtils.getInstance().checkEssentialAppAllInstall()) { + OpenApkUtils.getInstance().openJxwAppWithParam(DownloadActivity.this, mParamString, false); + finish(); + } else { + Toaster.show("请先安装必备组件"); + } } else { - mViewDataBinding.clContent.setVisibility(View.VISIBLE); - mViewDataBinding.llNodata.setVisibility(View.GONE); + mAppInfos = appInfos; + mAppInfoAdapter.setAppInfos(appInfos); + if (appInfos == null || appInfos.isEmpty()) { + mViewDataBinding.clContent.setVisibility(View.GONE); + mViewDataBinding.llNodata.setVisibility(View.VISIBLE); + } else { + mViewDataBinding.clContent.setVisibility(View.VISIBLE); + mViewDataBinding.llNodata.setVisibility(View.GONE); + } } } }); - mViewModel.getAdminApp(); + mViewModel.get365Admin(); } @Override diff --git a/app/src/main/java/com/xwad/os/activity/download/DownloadViewModel.java b/app/src/main/java/com/xwad/os/activity/download/DownloadViewModel.java index 9ac96bd..b14f081 100644 --- a/app/src/main/java/com/xwad/os/activity/download/DownloadViewModel.java +++ b/app/src/main/java/com/xwad/os/activity/download/DownloadViewModel.java @@ -42,18 +42,18 @@ public class DownloadViewModel extends BaseViewModel> mListMutableLiveData = new MutableLiveData<>(); - public void getAdminApp() { + public void get365Admin() { NetInterfaceManager.getInstance().get365AdminAppObservable() .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { - Log.e("getAdminApp", "onSubscribe: "); + Log.e("get365Admin", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse> listBaseResponse) { - Log.e("getAdminApp", "onNext: " + listBaseResponse); + Log.e("get365Admin", "onNext: " + listBaseResponse); if (listBaseResponse.code == 200) { List appInfoList = listBaseResponse.data; List forceAppInfoList = appInfoList.stream() @@ -91,19 +91,19 @@ public class DownloadViewModel extends BaseViewModel { @@ -44,7 +45,12 @@ public class LoginSuccessfulActivity extends BaseMvvmActivity() { @Override public void onChanged(Boolean aBoolean) { - finish(); + if (OpenApkUtils.getInstance().checkEssentialAppAllInstall()) { + finish(); + startActivity(new Intent(LoginSuccessfulActivity.this, HomeActivity.class)); + } else { + startActivity(new Intent(LoginSuccessfulActivity.this, DownloadActivity.class)); + } } }); mViewModel.mUserExpireInfoData.observe(this, new Observer() { @@ -78,8 +84,7 @@ public class LoginSuccessfulActivity extends BaseMvvmActivity mCompleteLiveData = new MutableLiveData<>(); - public void getAdminAppDownload() { - NetInterfaceManager.getInstance().getAdminAppObservable() + public void get365Admin() { + NetInterfaceManager.getInstance().get365AdminAppObservable() .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { - Log.e("getAdminAppDownload", "onSubscribe: "); + Log.e("get365Admin", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse> listBaseResponse) { - Log.e("getAdminAppDownload", "onNext: " + listBaseResponse); + Log.e("get365Admin", "onNext: " + listBaseResponse); if (listBaseResponse.code == 200) { List appInfoList = listBaseResponse.data; Set packageSets = appInfoList.stream() @@ -107,20 +107,20 @@ public class LoginSuccessfulViewModel extends BaseViewModel { private static final String TAG = "MainActivity"; diff --git a/app/src/main/java/com/xwad/os/config/CommonConfig.java b/app/src/main/java/com/xwad/os/config/CommonConfig.java index 802eeb7..c89529c 100644 --- a/app/src/main/java/com/xwad/os/config/CommonConfig.java +++ b/app/src/main/java/com/xwad/os/config/CommonConfig.java @@ -8,6 +8,7 @@ public class CommonConfig { public static final String CLOUD_LESSON_SETTINGS_KEY = "cloud_lesson_settings_key"; public static final String DISALLOWED_RUNNING_APP_KEY = "disallowed_running_app"; + public static final String ESSENTIAL_COMPONENT_APPLICATIONS = "essential_component_applications"; public static final Set ESSENTIAL_APPLICATIONS_SETS = new HashSet() {{ this.add("com.jxw.jpkc"); diff --git a/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java b/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java index 743be9d..1c96b55 100644 --- a/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java +++ b/app/src/main/java/com/xwad/os/fragment/usercenter/account/AccountFragment.java @@ -117,10 +117,10 @@ public class AccountFragment extends BaseMvvmFragment mLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { + private ActivityResultLauncher mLoginLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override public void onActivityResult(ActivityResult result) { - Log.e(TAG, "onActivityResult: " + result); + Log.e(TAG, "onActivityResult: mLoginLauncher = " + result); if (result != null) { Intent intent = result.getData(); if (intent != null && result.getResultCode() == Activity.RESULT_OK) { @@ -133,13 +133,14 @@ public class AccountFragment extends BaseMvvmFragment mActivationLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override public void onActivityResult(ActivityResult result) { - Log.e(TAG, "onActivityResult: " + result); + Log.e(TAG, "onActivityResult: mActivationLauncher = " + result); if (result != null) { Intent intent = result.getData(); if (intent != null && result.getResultCode() == Activity.RESULT_OK) { mViewModel.getUserInfo(); - - startActivity(new Intent(mContext, DownloadActivity.class)); + if (!OpenApkUtils.getInstance().checkEssentialAppAllInstall()) { + startActivity(new Intent(mContext, DownloadActivity.class)); + } // DefaultAppsDialog appsDialog = new DefaultAppsDialog(getActivity()); // appsDialog.show(); } @@ -209,7 +210,7 @@ public class AccountFragment extends BaseMvvmFragment> getUserExpireInfo( @Header("token") String token ); diff --git a/app/src/main/java/com/xwad/os/service/main/MainSContact.java b/app/src/main/java/com/xwad/os/service/main/MainSContact.java index 35368a0..bb1fbac 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainSContact.java +++ b/app/src/main/java/com/xwad/os/service/main/MainSContact.java @@ -55,7 +55,7 @@ public class MainSContact { /*获取管理员应用*/ void getAdminApp(); - void getAdminAppDownload(); + void get365Admin(); /*获取id管控*/ void getAppInside(); diff --git a/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java b/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java index deaae45..c8609a6 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java +++ b/app/src/main/java/com/xwad/os/service/main/MainSPresenter.java @@ -131,7 +131,7 @@ public class MainSPresenter implements MainSContact.Presenter { // if (!ApkUtils.isAvailable(mContext, "com.study.flashplayer")) { // getAppInfo("com.study.flashplayer"); // } - getAdminAppDownload(); + get365Admin(); } } else if (userInfoBaseResponse.code == 401) { @@ -420,18 +420,18 @@ public class MainSPresenter implements MainSContact.Presenter { } @Override - public void getAdminAppDownload() { - NetInterfaceManager.getInstance().getAdminAppObservable() + public void get365Admin() { + NetInterfaceManager.getInstance().get365AdminAppObservable() .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer>>() { @Override public void onSubscribe(@NonNull Disposable d) { - Log.e("getAdminAppDownload", "onSubscribe: "); + Log.e("get365Admin", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse> listBaseResponse) { - Log.e("getAdminAppDownload", "onNext: " + listBaseResponse); + Log.e("get365Admin", "onNext: " + listBaseResponse); if (listBaseResponse.code == 200) { List appInfoList = listBaseResponse.data; appInfoList.stream() @@ -479,18 +479,19 @@ public class MainSPresenter implements MainSContact.Presenter { }) .collect(Collectors.toSet()); mMMKV.encode(CommonConfig.ESSENTIAL_COMPONENT_APPLICATIONS, packageSets); + Log.e("get365Admin", "onNext: packageSets = " + packageSets); } } @Override public void onError(@NonNull Throwable e) { - Log.e("getAdminAppDownload", "onError: " + e.getMessage()); + Log.e("get365Admin", "onError: " + e.getMessage()); onComplete(); } @Override public void onComplete() { - Log.e("getAdminAppDownload", "onComplete: "); + Log.e("get365Admin", "onComplete: "); } }); } diff --git a/app/src/main/java/com/xwad/os/service/main/MainService.java b/app/src/main/java/com/xwad/os/service/main/MainService.java index 6e70871..5112ea6 100644 --- a/app/src/main/java/com/xwad/os/service/main/MainService.java +++ b/app/src/main/java/com/xwad/os/service/main/MainService.java @@ -153,7 +153,7 @@ public class MainService extends BaseRxService implements MainSContact.MainSView mPresenter.getScreenLock(); mPresenter.getTestApp(); mPresenter.getAdminApp(); - mPresenter.getAdminAppDownload(); + mPresenter.get365Admin(); mPresenter.getSystemSettings(); mPresenter.getLockScreenPwd(); diff --git a/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java b/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java index 97e871c..9765aad 100644 --- a/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java +++ b/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java @@ -703,10 +703,10 @@ public class OpenApkUtils { if (checkInstall) { if (!checkEssentialAppAllInstall()) { - activity.startActivity(new Intent(activity, DownloadActivity.class)); -// DefaultAppsDialog appsDialog = new DefaultAppsDialog(activity); -// appsDialog.show(); - Toaster.show("请先安装必备组件"); + Intent intent = new Intent(activity, DownloadActivity.class); + intent.putExtra("auto_close", true); + intent.putExtra("param", paramStr); + activity.startActivity(intent); return; } } @@ -719,7 +719,7 @@ public class OpenApkUtils { openJxwApp(activity, paramStr); } - private boolean checkEssentialAppAllInstall() { + public boolean checkEssentialAppAllInstall() { Set essentialAppSets = mMMKV.decodeStringSet(CommonConfig.ESSENTIAL_COMPONENT_APPLICATIONS, CommonConfig.ESSENTIAL_APPLICATIONS_SETS); Log.e(TAG, "checkEssentialAppAllInstall: " + essentialAppSets); boolean allTrue = essentialAppSets.stream().allMatch(new Predicate() { @@ -914,7 +914,6 @@ public class OpenApkUtils { window.setAttributes(attributes); } - public void showDownloadDialog(Activity context, String pkg, String appName) { Dialog dialog = new Dialog(context, R.style.ActionSheet); Window window = dialog.getWindow(); diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 3d86185..c4dcf0c 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -424,7 +424,7 @@ android:layout_gravity="center_horizontal" android:layout_marginTop="2dp" android:singleLine="true" - android:text="许可证" + android:text="许可校验" android:textColor="@color/white" android:textSize="@dimen/mine_app_name_size" app:layout_constraintEnd_toEndOf="@+id/app_icon12" diff --git a/build.gradle b/build.gradle index 1e825bf..6d2fcb8 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,7 @@ buildscript { google() // mavenCentral() maven { url 'https://jitpack.io' } + maven { url 'https://developer.hihonor.com/repo' } maven { url 'https://developer.huawei.com/repo/' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/jcenter' } @@ -31,6 +32,7 @@ allprojects { // mavenCentral() maven { url 'https://jitpack.io' } maven { url 'https://developer.huawei.com/repo/' } + maven { url 'https://developer.hihonor.com/repo' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' }