diff --git a/app/build.gradle b/app/build.gradle index 7b31e6a..aebdec8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { minSdkVersion 24 targetSdkVersion 29 - versionCode 10 - versionName "1.0.9" + versionCode 11 + versionName "1.1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4d1d18d..a107ef2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -218,8 +218,7 @@ android:theme="@style/DialogCloseOnTouchOutside" /> + android:launchMode="singleTask" /> { @@ -41,13 +48,30 @@ public class DeviceFragment extends BaseMvvmFragment() { + @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 { @@ -15,4 +30,39 @@ public class DeviceViewModel extends BaseViewModel mAppUpdateInfoData = new MutableLiveData<>(); + + public void checkUpdate() { + NetInterfaceManager.getInstance().getCheckUpdateObservable(BuildConfig.APPLICATION_ID) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("checkUpdate", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse 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: "); + } + }); + } } diff --git a/app/src/main/java/com/xwad/os/jxw/JiaoShuiDialog.java b/app/src/main/java/com/xwad/os/jxw/JiaoShuiDialog.java index e0aea8f..2286fbc 100644 --- a/app/src/main/java/com/xwad/os/jxw/JiaoShuiDialog.java +++ b/app/src/main/java/com/xwad/os/jxw/JiaoShuiDialog.java @@ -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(); 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 68ec453..64fd728 100644 --- a/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java +++ b/app/src/main/java/com/xwad/os/utils/OpenApkUtils.java @@ -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); diff --git a/app/src/main/java/com/xwad/os/view/jxw/view/dialog/LockDialog.java b/app/src/main/java/com/xwad/os/view/jxw/view/dialog/LockDialog.java index 261b5e1..72aed70 100644 --- a/app/src/main/java/com/xwad/os/view/jxw/view/dialog/LockDialog.java +++ b/app/src/main/java/com/xwad/os/view/jxw/view/dialog/LockDialog.java @@ -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(); diff --git a/app/src/main/java/com/xwad/os/view/jxw/view/dialog/QhbzDialog.java b/app/src/main/java/com/xwad/os/view/jxw/view/dialog/QhbzDialog.java index e157a3b..c9cb100 100644 --- a/app/src/main/java/com/xwad/os/view/jxw/view/dialog/QhbzDialog.java +++ b/app/src/main/java/com/xwad/os/view/jxw/view/dialog/QhbzDialog.java @@ -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()); diff --git a/app/src/main/java/com/xwad/os/view/jxw/view/dialog/RemoveAppDialog.java b/app/src/main/java/com/xwad/os/view/jxw/view/dialog/RemoveAppDialog.java index 5c920fa..f84a85f 100644 --- a/app/src/main/java/com/xwad/os/view/jxw/view/dialog/RemoveAppDialog.java +++ b/app/src/main/java/com/xwad/os/view/jxw/view/dialog/RemoveAppDialog.java @@ -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(); diff --git a/app/src/main/java/com/xwad/os/view/jxw/widget/AppsDialog.java b/app/src/main/java/com/xwad/os/view/jxw/widget/AppsDialog.java index 4807e50..1587c0c 100644 --- a/app/src/main/java/com/xwad/os/view/jxw/widget/AppsDialog.java +++ b/app/src/main/java/com/xwad/os/view/jxw/widget/AppsDialog.java @@ -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()); diff --git a/app/src/main/java/com/xwad/os/view/jxw/widget/DefaultAppsDialog.java b/app/src/main/java/com/xwad/os/view/jxw/widget/DefaultAppsDialog.java new file mode 100644 index 0000000..906788d --- /dev/null +++ b/app/src/main/java/com/xwad/os/view/jxw/widget/DefaultAppsDialog.java @@ -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 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 { + public AppAdapter(List 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 getDefaultApps() { + List 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; + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/jxw_ic_launcher.png b/app/src/main/res/drawable-hdpi/jxw_ic_launcher.png new file mode 100644 index 0000000..b468d99 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/jxw_ic_launcher.png differ diff --git a/app/src/main/res/drawable-nodpi/icon_bbx_app.png b/app/src/main/res/drawable-nodpi/icon_bbx_app.png new file mode 100644 index 0000000..c697298 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icon_bbx_app.png differ diff --git a/app/src/main/res/drawable-nodpi/icon_bbx_launcher.png b/app/src/main/res/drawable-nodpi/icon_bbx_launcher.png new file mode 100644 index 0000000..e168a86 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icon_bbx_launcher.png differ diff --git a/app/src/main/res/drawable-nodpi/icon_bbx_player.png b/app/src/main/res/drawable-nodpi/icon_bbx_player.png new file mode 100644 index 0000000..3567a51 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icon_bbx_player.png differ diff --git a/app/src/main/res/layout/dialog_default_apps.xml b/app/src/main/res/layout/dialog_default_apps.xml new file mode 100644 index 0000000..eef25e4 --- /dev/null +++ b/app/src/main/res/layout/dialog_default_apps.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_device.xml b/app/src/main/res/layout/fragment_device.xml index 757b4ee..b61f6cc 100644 --- a/app/src/main/res/layout/fragment_device.xml +++ b/app/src/main/res/layout/fragment_device.xml @@ -83,6 +83,7 @@ @@ -680,6 +679,48 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 28204b3..ccce7bf 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -3292,6 +3292,6 @@ 999px 36dp - 44dp + 56dp 8sp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 45a2687..12a7a9e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ 未设置 设备未经授权 小学王 - 七年级 + 一年级 Hello blank fragment