diff --git a/app/build.gradle b/app/build.gradle
index 931883b..62e530b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
minSdkVersion 24
targetSdkVersion 29
- versionCode 66
- versionName "1.7.4"
+ versionCode 67
+ versionName "1.7.5"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
@@ -29,6 +29,10 @@ android {
}
}
+ dataBinding {
+ enabled true
+ }
+
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bf0e367..b0a6669 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -99,6 +99,14 @@
android:name=".activity.ExitActivity"
android:configChanges="keyboardHidden"
android:launchMode="singleTask" />
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
{
holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID));
}
} else {
- if (AppManager.ADD_NAME.equals(pkg)) {
- holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
- } else if (AppManager.UPDATE_NAME.equals(pkg)) {
- holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
- } else {
- holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
+ switch (pkg) {
+ case AppManager.ADD_NAME:
+ case AppManager.UPDATE_NAME:
+ case AppManager.MANUAL_NAME:
+ holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
+ break;
+ default:
+ holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
+ break;
}
}
holder.root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- if (AppManager.ADD_NAME.equals(pkg)) {
- mContext.startActivity(new Intent(mContext, PasswordActivity.class));
- } else if (AppManager.UPDATE_NAME.equals(pkg)) {
- Intent intent = new Intent();
- ComponentName componentName = new ComponentName("com.uiui.zy", "com.uiui.zy.activity.update.UpdateActivity");
- intent.setComponent(componentName);
- mContext.startActivity(intent);
- } else {
- int setting_other_appInstaller = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.SETTING_OTHER_APPINSTALLER_KEY, 1);
- if (setting_other_appInstaller == 0
- && !ApkUtils.isSystemApp(mContext, desktopIcon.getPackageName()
- )) {
- ToastUtil.show("已禁止应用打开");
- } else {
- OpenApkUtils.getInstance().openApp(desktopIcon.getPackageName(), desktopIcon.getClassName());
- }
+ switch (pkg) {
+ case AppManager.ADD_NAME:
+ mContext.startActivity(new Intent(mContext, PasswordActivity.class));
+ break;
+ case AppManager.UPDATE_NAME:
+ Intent intent = new Intent();
+ ComponentName componentName = new ComponentName("com.uiui.zy", "com.uiui.zy.activity.update.UpdateActivity");
+ intent.setComponent(componentName);
+ mContext.startActivity(intent);
+ break;
+ case AppManager.MANUAL_NAME:
+ mContext.startActivity(new Intent(mContext, ManualActivity.class));
+ default:
+ int settingOtherAppInstaller = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.SETTING_OTHER_APPINSTALLER_KEY, 1);
+ if (settingOtherAppInstaller == 0
+ && !ApkUtils.isSystemApp(mContext, desktopIcon.getPackageName()
+ )) {
+ ToastUtil.show("已禁止应用打开");
+ } else {
+ OpenApkUtils.getInstance().openApp(desktopIcon.getPackageName(), desktopIcon.getClassName());
+ }
+ break;
}
}
diff --git a/app/src/main/java/com/uiui/zyos/base/BaseDataBindingActivity.java b/app/src/main/java/com/uiui/zyos/base/BaseDataBindingActivity.java
new file mode 100644
index 0000000..ff6a125
--- /dev/null
+++ b/app/src/main/java/com/uiui/zyos/base/BaseDataBindingActivity.java
@@ -0,0 +1,123 @@
+package com.uiui.zyos.base;
+
+import android.os.Bundle;
+
+import androidx.annotation.CallSuper;
+import androidx.annotation.CheckResult;
+import androidx.annotation.ContentView;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.trello.rxlifecycle4.LifecycleProvider;
+import com.trello.rxlifecycle4.LifecycleTransformer;
+import com.trello.rxlifecycle4.RxLifecycle;
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.trello.rxlifecycle4.android.RxLifecycleAndroid;
+import com.uiui.zyos.R;
+import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
+
+import io.reactivex.rxjava3.core.Observable;
+import io.reactivex.rxjava3.subjects.BehaviorSubject;
+
+public abstract class BaseDataBindingActivity extends AppCompatActivity implements LifecycleProvider {
+ public final BehaviorSubject lifecycleSubject = BehaviorSubject.create();
+
+ public BaseDataBindingActivity() {
+ super();
+ }
+
+ @ContentView
+ public BaseDataBindingActivity(@LayoutRes int contentLayoutId) {
+ super(contentLayoutId);
+ }
+
+ @Override
+ @NonNull
+ @CheckResult
+ public final Observable lifecycle() {
+ return lifecycleSubject.hide();
+ }
+
+ @Override
+ @NonNull
+ @CheckResult
+ public final LifecycleTransformer bindUntilEvent(@NonNull ActivityEvent event) {
+ return RxLifecycle.bindUntilEvent(lifecycleSubject, event);
+ }
+
+ @Override
+ @NonNull
+ @CheckResult
+ public final LifecycleTransformer bindToLifecycle() {
+ return RxLifecycleAndroid.bindActivity(lifecycleSubject);
+ }
+
+ @Override
+ @CallSuper
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ lifecycleSubject.onNext(ActivityEvent.CREATE);
+// StatusBarUtil.init(this);
+ UltimateBarX.statusBar(this)
+ .transparent()
+ .colorRes(R.color.colorPrimaryDark)
+ .light(true)
+ .apply();
+ UltimateBarX.navigationBar(this)
+ .transparent()
+ .colorRes(R.color.colorPrimaryDark)
+ .light(true)
+ .apply();
+ initView();
+ initData();
+ }
+
+
+ /**
+ * 初始化视图
+ */
+ public abstract void initView();
+
+
+ /**
+ * 初始化数据
+ */
+ public abstract void initData();
+
+ @Override
+ @CallSuper
+ protected void onStart() {
+ super.onStart();
+ lifecycleSubject.onNext(ActivityEvent.START);
+ }
+
+ @Override
+ @CallSuper
+ protected void onResume() {
+ super.onResume();
+ lifecycleSubject.onNext(ActivityEvent.RESUME);
+ }
+
+ @Override
+ @CallSuper
+ protected void onPause() {
+ lifecycleSubject.onNext(ActivityEvent.PAUSE);
+ super.onPause();
+ }
+
+ @Override
+ @CallSuper
+ protected void onStop() {
+ lifecycleSubject.onNext(ActivityEvent.STOP);
+ super.onStop();
+ }
+
+ @Override
+ @CallSuper
+ protected void onDestroy() {
+ lifecycleSubject.onNext(ActivityEvent.DESTROY);
+ super.onDestroy();
+ }
+}
diff --git a/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java b/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java
index f7ddb05..a4d9df6 100644
--- a/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java
+++ b/app/src/main/java/com/uiui/zyos/fragment/app/AppPresenter.java
@@ -50,12 +50,17 @@ public class AppPresenter implements AppContact.AppPresenter {
updateDesktopIcon.setIcon(mContext.getDrawable(R.drawable.icon_update));
desktopIcons.add(desktopIcons.size(), updateDesktopIcon);
+ DesktopIcon manualIcon = new DesktopIcon();
+ manualIcon.setLable("使用手册");
+ manualIcon.setPackageName(AppManager.MANUAL_NAME);
+ manualIcon.setIcon(mContext.getDrawable(R.drawable.icon_manual));
+ desktopIcons.add(desktopIcons.size(), manualIcon);
+
DesktopIcon desktopIcon = new DesktopIcon();
desktopIcon.setLable("添加应用");
desktopIcon.setPackageName(AppManager.ADD_NAME);
desktopIcon.setIcon(mContext.getDrawable(R.drawable.icon_add));
desktopIcons.add(desktopIcons.size(), desktopIcon);
-
mView.setInstalledApp(desktopIcons);
}
}
diff --git a/app/src/main/java/com/uiui/zyos/manager/AppManager.java b/app/src/main/java/com/uiui/zyos/manager/AppManager.java
index e995255..8015035 100644
--- a/app/src/main/java/com/uiui/zyos/manager/AppManager.java
+++ b/app/src/main/java/com/uiui/zyos/manager/AppManager.java
@@ -31,6 +31,7 @@ public class AppManager {
public static final String ADD_NAME = "com.zyos.add";
public static final String UPDATE_NAME = "com.zyos.update";
+ public static final String MANUAL_NAME = "com.zyos.manual";
private static final String SHOW_PACKAGE_KEY = "SHOW_PACKAGE_KEY";
@SuppressLint("StaticFieldLeak")
diff --git a/app/src/main/java/com/uiui/zyos/view/ImageViewAdapter.java b/app/src/main/java/com/uiui/zyos/view/ImageViewAdapter.java
new file mode 100644
index 0000000..357e125
--- /dev/null
+++ b/app/src/main/java/com/uiui/zyos/view/ImageViewAdapter.java
@@ -0,0 +1,21 @@
+package com.uiui.zyos.view;
+
+import android.widget.ImageView;
+
+import androidx.databinding.BindingAdapter;
+
+import com.bumptech.glide.Glide;
+
+public class ImageViewAdapter {
+
+ /**
+ * 自定义设置图片属性 - 在匹配时自定义命名空间会被忽略
+ */
+ @BindingAdapter({"imageUrl"})
+ public static void loadImage(ImageView imageView, int id) {
+ Glide.with(imageView.getContext())
+ .load(id)
+ .into(imageView);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-hdpi/banner.png b/app/src/main/res/drawable-hdpi/banner.png
new file mode 100644
index 0000000..69aae09
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/banner.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_activation.png b/app/src/main/res/drawable-hdpi/icon_activation.png
new file mode 100644
index 0000000..f884042
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_activation.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_black_back.png b/app/src/main/res/drawable-hdpi/icon_black_back.png
new file mode 100644
index 0000000..8e07ba5
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_black_back.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_control.png b/app/src/main/res/drawable-hdpi/icon_control.png
new file mode 100644
index 0000000..676d664
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_control.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_manual.png b/app/src/main/res/drawable-hdpi/icon_manual.png
new file mode 100644
index 0000000..274dd97
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_manual.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_more.png b/app/src/main/res/drawable-hdpi/icon_more.png
new file mode 100644
index 0000000..9eb4ccd
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_more.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_resource.png b/app/src/main/res/drawable-hdpi/icon_resource.png
new file mode 100644
index 0000000..804248a
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_resource.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_search.png b/app/src/main/res/drawable-hdpi/icon_search.png
new file mode 100644
index 0000000..67f07bc
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_search.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_service.png b/app/src/main/res/drawable-hdpi/icon_service.png
new file mode 100644
index 0000000..d816f85
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_service.png differ
diff --git a/app/src/main/res/drawable-hdpi/page_activation.png b/app/src/main/res/drawable-hdpi/page_activation.png
new file mode 100644
index 0000000..5dd7788
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/page_activation.png differ
diff --git a/app/src/main/res/drawable-hdpi/page_control.png b/app/src/main/res/drawable-hdpi/page_control.png
new file mode 100644
index 0000000..f3db11c
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/page_control.png differ
diff --git a/app/src/main/res/drawable-hdpi/page_resource.png b/app/src/main/res/drawable-hdpi/page_resource.png
new file mode 100644
index 0000000..7415e33
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/page_resource.png differ
diff --git a/app/src/main/res/drawable-hdpi/page_service.png b/app/src/main/res/drawable-hdpi/page_service.png
new file mode 100644
index 0000000..34d2ae2
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/page_service.png differ
diff --git a/app/src/main/res/drawable/search_view_bg.xml b/app/src/main/res/drawable/search_view_bg.xml
new file mode 100644
index 0000000..d6a8bf8
--- /dev/null
+++ b/app/src/main/res/drawable/search_view_bg.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
new file mode 100644
index 0000000..28dbe26
--- /dev/null
+++ b/app/src/main/res/layout/activity_about.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_manual.xml b/app/src/main/res/layout/activity_manual.xml
new file mode 100644
index 0000000..a03503e
--- /dev/null
+++ b/app/src/main/res/layout/activity_manual.xml
@@ -0,0 +1,412 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 285a88f..947f9f5 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -37,4 +37,6 @@
#6d888e
#E5000000
+ #F3F3F3
+ #646464