version:1.0.9

fix:
update:更新资源,增加登录,增加检测更新,增加必备插件
This commit is contained in:
2025-12-19 10:32:21 +08:00
parent daebcee8b8
commit 7ce4158afd
26 changed files with 344 additions and 28 deletions

View File

@@ -189,7 +189,7 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
@Override
public void onChanged(AppUpdateInfo appUpdateInfo) {
if (appUpdateInfo == null) {
Toaster.show("已是最新版本");
// Toaster.show("已是最新版本");
} else {
if (ApkUtils.isUpdate(HomeActivity.this, appUpdateInfo)) {
Intent intent = new Intent(HomeActivity.this, UpdateActivity.class);
@@ -197,7 +197,7 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
startActivity(intent);
Toaster.show("有新的版本需要更新");
} else {
Toaster.show("已是最新版本");
// Toaster.show("已是最新版本");
}
}
}

View File

@@ -160,7 +160,7 @@ public class UserActivity extends BaseMvvmActivity<UserViewModel, ActivityUserBi
@Override
public void onChanged(AppUpdateInfo appUpdateInfo) {
if (appUpdateInfo == null) {
Toaster.show("已是最新版本");
// Toaster.show("已是最新版本");
} else {
if (ApkUtils.isUpdate(UserActivity.this, appUpdateInfo)) {
Intent intent = new Intent(UserActivity.this, UpdateActivity.class);
@@ -168,7 +168,7 @@ public class UserActivity extends BaseMvvmActivity<UserViewModel, ActivityUserBi
startActivity(intent);
Toaster.show("有新的版本需要更新");
} else {
Toaster.show("已是最新版本");
// Toaster.show("已是最新版本");
}
}
}

View File

@@ -85,7 +85,7 @@ public class BaseApplication extends Application {
RemoteManager.init(this);
LenovoCsdkUtil.init(this);
CrashReport.initCrashReport(getApplicationContext(), "d1cd982951", false);
CrashReport.initCrashReport(getApplicationContext(), "4efcaad4c9", false);
CrashReport.setDeviceId(BaseApplication.this, DeviceSNManager.getDeviceSN());
// 初始化 Toast 框架

View File

@@ -8,6 +8,16 @@ public class ItemsBean implements Serializable {
private String tag;
private String text;
public ItemsBean() {
}
public ItemsBean(String icon, String learnStage, String tag, String text) {
this.icon = icon;
this.learnStage = learnStage;
this.tag = tag;
this.text = text;
}
public String getText() {
return this.text;
}

View File

@@ -348,7 +348,6 @@ public class ChineseFragment extends BaseMvvmFragment<ChineseViewModel, Fragment
AppsDialog appsDialog = new AppsDialog(getActivity(), type);
appsDialog.show();
appsDialog.setOnCallback(new AppsDialog.Callback() {
@Override
public void onCallback() {
getMyList();

View File

@@ -38,6 +38,8 @@ import com.xwad.os.jxw.event.UpdateColorEvent;
import com.xwad.os.utils.OpenApkUtils;
import com.xwad.os.view.jxw.view.dialog.QhbzDialog;
import com.xwad.os.view.jxw.view.dialog.RemoveAppDialog;
import com.xwad.os.view.jxw.widget.AppsDialog;
import com.xwad.os.view.jxw.widget.DefaultAppsDialog;
import com.xwad.os.view.jxw.widget.RecyclerMarginClickHelper;
import org.greenrobot.eventbus.EventBus;
@@ -381,5 +383,16 @@ public class MineFragment extends BaseMvvmFragment<MineViewModel, FragmentMineBi
startActivity(new Intent(mContext, ExitActivity.class));
// OpenApkUtils.getInstance().openJxwApp(mContext, "com.hihonor.android.launcher,com.hihonor.android.launcher.unihome.UniHomeLauncher,,,退出桌面");
}
public void openAppsDialog(View view) {
DefaultAppsDialog appsDialog = new DefaultAppsDialog(getActivity());
appsDialog.show();
appsDialog.setOnCallback(new DefaultAppsDialog.Callback() {
@Override
public void onCallback() {
}
});
}
}
}

View File

@@ -6,14 +6,21 @@ import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.lifecycle.Observer;
import com.hjq.toast.Toaster;
import com.xwad.os.BuildConfig;
import com.xwad.os.R;
import com.xwad.os.activity.home.HomeActivity;
import com.xwad.os.activity.permission.PermissionActivity;
import com.xwad.os.activity.service.ServiceActivity;
import com.xwad.os.activity.update.UpdateActivity;
import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment;
import com.xwad.os.bean.AppUpdateInfo;
import com.xwad.os.databinding.FragmentDeviceBinding;
import com.xwad.os.manager.DeviceSNManager;
import com.xwad.os.manager.RemoteManager;
import com.xwad.os.utils.ApkUtils;
import com.xwad.os.utils.LenovoCsdkUtil;
public class DeviceFragment extends BaseMvvmFragment<DeviceViewModel, FragmentDeviceBinding> {
@@ -41,13 +48,30 @@ public class DeviceFragment extends BaseMvvmFragment<DeviceViewModel, FragmentDe
@Override
protected void initView(Bundle bundle) {
mViewDataBinding.tvModel.setText(Build.MODEL);
mViewDataBinding.tvVersion.setText(BuildConfig.VERSION_NAME);
mViewDataBinding.tvVersion.setText("(检查更新)" + BuildConfig.VERSION_NAME);
mViewDataBinding.tvMac.setText(DeviceSNManager.getDeviceSN());
}
@Override
protected void initData(Bundle savedInstanceState) {
mViewModel.mAppUpdateInfoData.observe(this, new Observer<AppUpdateInfo>() {
@Override
public void onChanged(AppUpdateInfo appUpdateInfo) {
if (appUpdateInfo == null) {
Toaster.show("已是最新版本");
} else {
if (ApkUtils.isUpdate(mContext, appUpdateInfo)) {
Intent intent = new Intent(mContext, UpdateActivity.class);
intent.putExtra("appUpdateInfo", appUpdateInfo);
startActivity(intent);
Toaster.show("有新的版本需要更新");
} else {
Toaster.show("已是最新版本");
}
}
}
});
mViewModel.checkUpdate();
}
@@ -64,5 +88,9 @@ public class DeviceFragment extends BaseMvvmFragment<DeviceViewModel, FragmentDe
public void checkPermission(View view) {
startActivity(new Intent(mContext, PermissionActivity.class));
}
public void checkUpdate(View view) {
mViewModel.checkUpdate();
}
}
}

View File

@@ -1,8 +1,23 @@
package com.xwad.os.fragment.usercenter.device;
import android.util.Log;
import androidx.lifecycle.MutableLiveData;
import com.hjq.toast.Toaster;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.xwad.os.BuildConfig;
import com.xwad.os.base.mvvm.BaseViewModel;
import com.xwad.os.bean.AppUpdateInfo;
import com.xwad.os.bean.BaseResponse;
import com.xwad.os.databinding.FragmentDeviceBinding;
import com.xwad.os.network.NetInterfaceManager;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class DeviceViewModel extends BaseViewModel<FragmentDeviceBinding, FragmentEvent> {
@@ -15,4 +30,39 @@ public class DeviceViewModel extends BaseViewModel<FragmentDeviceBinding, Fragme
public void onDestroy() {
}
public MutableLiveData<AppUpdateInfo> mAppUpdateInfoData = new MutableLiveData<>();
public void checkUpdate() {
NetInterfaceManager.getInstance().getCheckUpdateObservable(BuildConfig.APPLICATION_ID)
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY))
.subscribe(new Observer<BaseResponse<AppUpdateInfo>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("checkUpdate", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<AppUpdateInfo> appUpdateInfoBaseResponse) {
Log.e("checkUpdate", "onNext: " + appUpdateInfoBaseResponse);
if (appUpdateInfoBaseResponse.code == 200) {
AppUpdateInfo appUpdateInfo = appUpdateInfoBaseResponse.data;
mAppUpdateInfoData.setValue(appUpdateInfo);
} else {
mAppUpdateInfoData.setValue(null);
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("checkUpdate", "onError: ");
Toaster.show("网络连接失败");
}
@Override
public void onComplete() {
Log.e("checkUpdate", "onComplete: ");
}
});
}
}

View File

@@ -36,7 +36,7 @@ public class JiaoShuiDialog extends Dialog {
super.onCreate(bundle);
setContentView(R.layout.dialog_jiaoshui);
WindowManager windowManager = getWindow().getWindowManager();
getWindow().setBackgroundDrawableResource(17170445);
getWindow().setBackgroundDrawableResource(R.drawable.bg_shape_ffffff_40);
Display defaultDisplay = windowManager.getDefaultDisplay();
Window window = getWindow();
WindowManager.LayoutParams attributes = getWindow().getAttributes();
@@ -50,7 +50,7 @@ public class JiaoShuiDialog extends Dialog {
}
private void initView() {
this.pag = (PAGView) findViewById(R.id.pag);
this.pag = findViewById(R.id.pag);
this.pag.setComposition(PAGFile.Load(this.activity.getAssets(), "pag/shjs.pag"));
this.pag.setRepeatCount(1);
this.pag.play();

View File

@@ -12,6 +12,7 @@ import android.content.pm.PackageManager;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -797,7 +798,7 @@ public class OpenApkUtils {
public void showDownloadDialog(Activity context, String pkg, String appName) {
Dialog dialog = new Dialog(context, R.style.ActionSheet);
Window window = dialog.getWindow();
View inflate = ((LayoutInflater) context.getSystemService("layout_inflater")).inflate(R.layout.download_dialog, null);
View inflate = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.download_dialog, null);
TextView textView = inflate.findViewById(R.id.download_cancel);
TextView textView2 = inflate.findViewById(R.id.tag_title);
if (!TextUtils.isEmpty(appName)) {
@@ -826,7 +827,7 @@ public class OpenApkUtils {
WindowManager.LayoutParams attributes = window.getAttributes();
attributes.x = 0;
attributes.y = 0;
attributes.gravity = 17;
attributes.gravity = Gravity.CENTER;
dialog.onWindowAttributesChanged(attributes);
dialog.setCanceledOnTouchOutside(true);
dialog.setContentView(inflate);

View File

@@ -37,7 +37,7 @@ public class LockDialog extends Dialog {
super.onCreate(bundle);
setContentView(R.layout.dialog_lock);
WindowManager windowManager = getWindow().getWindowManager();
getWindow().setBackgroundDrawableResource(17170445);
getWindow().setBackgroundDrawableResource(R.drawable.bg_shape_ffffff_40);
Display defaultDisplay = windowManager.getDefaultDisplay();
WindowManager.LayoutParams attributes = getWindow().getAttributes();
Point point = new Point();

View File

@@ -55,7 +55,7 @@ public class QhbzDialog extends Dialog {
super.onCreate(bundle);
setContentView(R.layout.dialog_qhbz);
WindowManager windowManager = getWindow().getWindowManager();
getWindow().setBackgroundDrawableResource(17170445);
getWindow().setBackgroundDrawableResource(R.drawable.bg_shape_ffffff_40);
Display defaultDisplay = windowManager.getDefaultDisplay();
WindowManager.LayoutParams attributes = getWindow().getAttributes();
defaultDisplay.getSize(new Point());

View File

@@ -34,7 +34,7 @@ public class RemoveAppDialog extends Dialog {
super.onCreate(bundle);
setContentView(R.layout.dialog_removeapp);
WindowManager windowManager = getWindow().getWindowManager();
getWindow().setBackgroundDrawableResource(17170445);
getWindow().setBackgroundDrawableResource(R.drawable.bg_shape_ffffff_40);
Display defaultDisplay = windowManager.getDefaultDisplay();
WindowManager.LayoutParams attributes = getWindow().getAttributes();
Point point = new Point();

View File

@@ -68,7 +68,7 @@ public class AppsDialog extends Dialog {
super.onCreate(bundle);
setContentView(R.layout.dialog_yw_apps);
WindowManager windowManager = getWindow().getWindowManager();
getWindow().setBackgroundDrawableResource(17170445);
getWindow().setBackgroundDrawableResource(R.drawable.bg_shape_ffffff_40);
Display defaultDisplay = windowManager.getDefaultDisplay();
WindowManager.LayoutParams attributes = getWindow().getAttributes();
defaultDisplay.getSize(new Point());

View File

@@ -0,0 +1,119 @@
package com.xwad.os.view.jxw.widget;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Point;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xwad.os.R;
import com.xwad.os.bean.jxw.ItemsBean;
import com.xwad.os.utils.OpenApkUtils;
import java.util.ArrayList;
import java.util.List;
public class DefaultAppsDialog extends Dialog {
private Activity activity;
private AppAdapter appAdapter;
private List<ItemsBean> appList;
private Callback mCallback;
private RecyclerView rv_apps;
public interface Callback {
void onCallback();
}
public DefaultAppsDialog(Context context) {
super(context, R.style.ActionSheetDialogStyle);
appList = new ArrayList<>();
activity = (Activity) context;
}
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.dialog_default_apps);
WindowManager windowManager = getWindow().getWindowManager();
getWindow().setBackgroundDrawableResource(R.drawable.bg_shape_ffffff_40);
Display defaultDisplay = windowManager.getDefaultDisplay();
WindowManager.LayoutParams attributes = getWindow().getAttributes();
defaultDisplay.getSize(new Point());
getWindow().setAttributes(attributes);
setCanceledOnTouchOutside(true);
setCancelable(true);
getWindow().setDimAmount(0.3f);
initView();
}
private void initView() {
GridLayoutManager gridLayoutManager = new GridLayoutManager(activity, 2);
rv_apps = findViewById(R.id.rv_apps);
appAdapter = new AppAdapter(getDefaultApps());
rv_apps.setLayoutManager(gridLayoutManager);
rv_apps.setAdapter(appAdapter);
findViewById(R.id.ll_gb).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
}
});
}
public void setOnCallback(Callback callback) {
mCallback = callback;
}
public class AppAdapter extends BaseQuickAdapter<ItemsBean, BaseViewHolder> {
public AppAdapter(List<ItemsBean> list) {
super(R.layout.item_dialog_app, list);
}
@Override
public void convert(BaseViewHolder baseViewHolder, final ItemsBean itemsBean) {
RelativeLayout relativeLayout = baseViewHolder.getView(R.id.rl_root);
((ImageView) baseViewHolder.getView(R.id.iv_app_icon)).setImageResource(mContext.getResources().getIdentifier(itemsBean.getIcon(), "drawable", mContext.getPackageName()));
((TextView) baseViewHolder.getView(R.id.tv_app_name)).setText(itemsBean.getText());
relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
jumpTag(itemsBean);
}
});
}
}
public void jumpTag(ItemsBean itemsBean) {
if (activity != null) {
Callback callback = mCallback;
if (callback != null) {
callback.onCallback();
}
// MyApp.getInstance().mBottomBtnOnClickListener.setContext(activity);
// MyApp.getInstance().mBottomBtnOnClickListener.onClick(viewTag);
OpenApkUtils.getInstance().openJxwApp(activity, itemsBean.getTag());
}
}
private List<ItemsBean> getDefaultApps() {
List<ItemsBean> itemsBeans = new ArrayList<>();
itemsBeans.add(new ItemsBean("icon_bbx_launcher", "", "com.jxw.launcher,,,,资源下载", "资源下载"));
itemsBeans.add(new ItemsBean("icon_bbx_player", "", "com.study.flashplayer,,,,播放器", "播放器"));
return itemsBeans;
}
}