diff --git a/app/build.gradle b/app/build.gradle index 51abacf..ac077dd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' apply plugin: "com.tencent.android.tpns" def appName() { - return "ZYLauncher" + return "CubeZYLauncher" } def releaseTime() { @@ -17,8 +17,8 @@ android { minSdkVersion 24 targetSdkVersion 29 - versionCode 5 - versionName "1.1.3" + versionCode 10 + versionName "1.1.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java b/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java index 1689d20..bbf3644 100644 --- a/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java +++ b/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java @@ -254,7 +254,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, @Override public void onConnected() { Log.e(TAG, "onConnected: "); - RemoteManager.getInstance().setDefaultDesktop(); + RemoteManager.getInstance().setDefaultDesktop(BuildConfig.APPLICATION_ID); } public static void toggleNotificationListenerService(Context context) { diff --git a/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java b/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java index bd44b7a..ac6f42c 100644 --- a/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java +++ b/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java @@ -2,6 +2,7 @@ package com.uiui.zyos.adapter; import android.content.Context; import android.graphics.drawable.Drawable; +import android.provider.Settings; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -15,11 +16,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.uiui.zyos.R; import com.uiui.zyos.bean.DesktopIcon; +import com.uiui.zyos.config.CommonConfig; import com.uiui.zyos.utils.ApkUtils; import com.uiui.zyos.utils.AppUsedTimeUtils; import com.uiui.zyos.utils.BitmapUtils; import com.uiui.zyos.utils.IconUtils; import com.uiui.zyos.utils.OpenApkUtils; +import com.uiui.zyos.utils.ToastUtil; import java.util.ArrayList; import java.util.List; @@ -62,7 +65,14 @@ public class AppAdapter extends RecyclerView.Adapter { holder.root.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openApp(desktopIcon.getPackageName(), desktopIcon.getClassName()); + 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()); + } } }); } diff --git a/app/src/main/java/com/uiui/zyos/config/CommonConfig.java b/app/src/main/java/com/uiui/zyos/config/CommonConfig.java index 2695227..11aee35 100644 --- a/app/src/main/java/com/uiui/zyos/config/CommonConfig.java +++ b/app/src/main/java/com/uiui/zyos/config/CommonConfig.java @@ -10,17 +10,22 @@ public class CommonConfig { /*是否激活接口请求缓存*/ - public static final String ACTIVATIONBEAN_KEY = "UIUI_ACTIVATIONBEAN_KEY"; + public static final String ACTIVATIONBEAN_KEY = "IFLYTEK_UIUI_ACTIVATIONBEAN_KEY"; /*是否激活*/ - public static final String UIUI_ACTIVATION_KEY = "uiui_activation"; + public static final String UIUI_ACTIVATION_KEY = "iflytek_uiui_activation"; /*激活码类型*/ - public static final String UIUI_CODE_TYPE_KEY = "uiui_code_type"; + public static final String UIUI_CODE_TYPE_KEY = "iflytek_uiui_code_type"; /*体验到期时间戳*/ - public static final String UIUI_EXPIRE_TIME_KEY = "uiui_expire_time"; + public static final String UIUI_EXPIRE_TIME_KEY = "iflytek_uiui_expire_time"; + /*是否显示返回Android按钮*/ + public static final String UIUI_RETURN_ANDROID_KEY = "iflytek_uiui_is_return_android"; public static final String MAP_LOCATION_JSON_KEY = "MAPLOCATION_JSON_STRING"; public static final String MAP_LONGITUDE_KEY = "map_longitude_key"; public static final String MAP_LATITUDE_KEY = "map_latitude_key"; public static final String MAP_ADDRESS_KEY = "map_address_key"; public static final String MAP_ERROR_KEY = "map_error_key"; + + public static final String SETTING_OTHER_APPINSTALLER_KEY = "setting_other_appInstaller"; + } diff --git a/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java b/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java index 7bc12fa..430d2af 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java @@ -37,7 +37,6 @@ import com.uiui.zyos.config.CommonConfig; import com.uiui.zyos.manager.RemoteManager; import com.uiui.zyos.utils.ApkUtils; import com.uiui.zyos.utils.TimeUtils; -import com.uiui.zyos.utils.ToastUtil; import com.uiui.zyos.view.RecyclerViewSpacesItemDecoration; import java.util.ArrayList; @@ -60,6 +59,8 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { TextView tv_name; @BindView(R.id.tv_grade) TextView tv_grade; + @BindView(R.id.tv_exit) + TextView tv_exit; @BindView(R.id.iv_speaker) ImageView iv_speaker; @BindView(R.id.tv_notification) @@ -188,7 +189,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { registerOwnReceiver(); String name = mMMKV.decodeString("USERINFO_NAME", ""); if (TextUtils.isEmpty(name)) { - tv_name.setText(getString(R.string.default_name)); + tv_name.setText(getString(R.string.default_nickname)); } else { tv_name.setText(name); } @@ -205,12 +206,18 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { cl_activation.setVisibility(View.GONE); cl_app.setVisibility(View.VISIBLE); } - int is_activation = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); - if (is_activation != 1) { - tv_activation.setVisibility(View.VISIBLE); - } else { - tv_activation.setVisibility(View.GONE); - } + setButtonVisibility(); + tv_exit.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + RemoteManager.getInstance().setDefaultDesktop(ApkUtils.ANDROID_LAUNCHER3_PACKAGE_NAME); + if (!ApkUtils.openPackage(mContext, ApkUtils.ANDROID_LAUNCHER3_PACKAGE_NAME)) { + ApkUtils.gotoLauncher(mContext); + } + mContext.finish(); + System.exit(0); + } + }); tv_activation.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -243,6 +250,22 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { rv_app.setAdapter(mAppAdapter); } + private void setButtonVisibility(){ + int is_activation = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); + if (is_activation != 1) { + tv_exit.setVisibility(View.VISIBLE); + tv_activation.setVisibility(View.VISIBLE); + } else { + int isReturnAndroid = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_RETURN_ANDROID_KEY, 0); + if (isReturnAndroid == 0) { + tv_exit.setVisibility(View.INVISIBLE); + } else { + tv_exit.setVisibility(View.VISIBLE); + } + tv_activation.setVisibility(View.GONE); + } + } + @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); @@ -277,7 +300,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { String name = snInfo.getSn_name(); String grade = snInfo.getGrade(); if (TextUtils.isEmpty(name)) { - tv_name.setText(getString(R.string.default_name)); + tv_name.setText(getString(R.string.default_nickname)); } else { tv_name.setText(name); } @@ -417,6 +440,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { Log.e("RefreshReceiver", "onReceive: " + action); if (ACTION_REFRESH_BINDING_STATUS.equals(action)) { mPresenter.getSnInfo(); + setButtonVisibility(); } } } diff --git a/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java b/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java index b97a886..6586d19 100644 --- a/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java +++ b/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java @@ -297,9 +297,9 @@ public class RemoteManager { } } - public void setDefaultDesktop() { + public void setDefaultDesktop(String pkg) { try { - mGetInfoInterface.setDefaultLauncher(BuildConfig.APPLICATION_ID); + mGetInfoInterface.setDefaultLauncher(pkg); } catch (RemoteException e) { Log.e(TAG, "setDefaultDesktop: " + e.getMessage()); e.printStackTrace(); diff --git a/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java b/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java index 386b270..67d0f4e 100644 --- a/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java +++ b/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java @@ -20,6 +20,7 @@ import androidx.annotation.RequiresApi; import com.uiui.zyos.BuildConfig; import com.uiui.zyos.R; import com.uiui.zyos.bean.DesktopIcon; +import com.uiui.zyos.config.CommonConfig; import com.uiui.zyos.receiver.InstallResultReceiver; import java.io.File; @@ -57,13 +58,23 @@ public class ApkUtils { this.add("com.android.uiuios"); this.add("com.uiui.os"); this.add("com.uiui.health"); - this.add("com.uiui.appstore"); this.add("com.tencent.android.qqdownloader"); this.add("com.alldocube.store"); this.add("com.joytv.live"); this.add("com.iflytek.speechcloud"); this.add("com.safe.uiui"); + this.add("com.uiuios.aios"); + this.add("com.uiuios.sn"); + this.add("com.uiuios.appstore"); + this.add("com.uiuios.browser"); this.add("com.uiui.aios"); + this.add("com.uiui.sn"); + this.add("com.uiui.appstore"); + this.add("com.uiui.browser"); + this.add("com.teclast.zyos"); + this.add("com.teclast.zy"); + this.add("com.teclast.zyappstore"); + this.add("com.teclast.zybrowser"); }}; private static HashSet excludeClassName = new HashSet() {{ @@ -96,6 +107,10 @@ public class ApkUtils { private static HashSet allHintPackage = new HashSet() {{ this.add("com.android.uiuios"); }}; + + public static final String ANDROID_LAUNCHER3_PACKAGE_NAME = "com.android.launcher3"; + public static final String ANDROID_LAUNCHER3_CLASS_NAME = "com.android.launcher3.Launcher"; + private static String TAG = ApkUtils.class.getSimpleName(); public static ArrayList getSystemApp(Context context) { @@ -181,7 +196,7 @@ public class ApkUtils { if (!TextUtils.isEmpty(appListString)) { packageList = new ArrayList<>(Arrays.asList(appListString.split(","))); } - int setting_other_appInstaller = Settings.Global.getInt(context.getContentResolver(), "setting_other_appInstaller", 1); + int setting_other_appInstaller = Settings.Global.getInt(context.getContentResolver(), CommonConfig.SETTING_OTHER_APPINSTALLER_KEY, 1); for (ResolveInfo resolveInfo : resolveinfoList) { String pkg = resolveInfo.activityInfo.packageName; if (appIsDisable(context, pkg)) { @@ -194,15 +209,15 @@ public class ApkUtils { // resolveInfos.add(resolveInfo); // } } else { - if (setting_other_appInstaller == 0) {//不显示自己安装的 - if (packageList.contains(pkg)) { - resolveInfos.add(resolveInfo); - } - } else { +// if (setting_other_appInstaller == 0) {//不显示自己安装的 +// if (packageList.contains(pkg)) { +// resolveInfos.add(resolveInfo); +// } +// } else { if (allowPackages.contains(pkg) && !excludePackageName.contains(pkg)) { resolveInfos.add(resolveInfo); } - } +// } } } if (Settings.Global.getInt(context.getContentResolver(), "is_activity", 0) == 0) { @@ -558,4 +573,11 @@ public class ApkUtils { public static int getUserId(int uid) { return uid / PER_USER_RANGE; } + + public static void gotoLauncher(Context context) { + Intent i = new Intent(Intent.ACTION_MAIN); + i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //android123提示如果是服务里调用,必须加入new task标识 + i.addCategory(Intent.CATEGORY_HOME); + context.startActivity(i); + } } diff --git a/app/src/main/res/drawable-hdpi/com_android_appstore.png b/app/src/main/res/drawable-hdpi/com_android_appstore.png index 9b06c7c..3e98f6e 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_appstore.png and b/app/src/main/res/drawable-hdpi/com_android_appstore.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_browser.png b/app/src/main/res/drawable-hdpi/com_android_browser.png index e4d1383..56d702b 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_browser.png and b/app/src/main/res/drawable-hdpi/com_android_browser.png differ diff --git a/app/src/main/res/drawable-hdpi/default_avatar.png b/app/src/main/res/drawable-hdpi/default_avatar.png index 2c8bb94..681459c 100644 Binary files a/app/src/main/res/drawable-hdpi/default_avatar.png and b/app/src/main/res/drawable-hdpi/default_avatar.png differ diff --git a/app/src/main/res/layout-land/fragment_subject.xml b/app/src/main/res/layout-land/fragment_subject.xml index eb96d5f..6145aab 100644 --- a/app/src/main/res/layout-land/fragment_subject.xml +++ b/app/src/main/res/layout-land/fragment_subject.xml @@ -12,7 +12,7 @@ + + @@ -425,8 +443,8 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="@dimen/dp_8" - android:scrollbars="vertical" android:fadeScrollbars="false" + android:scrollbars="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_date2" /> diff --git a/app/src/main/res/layout-sw800dp/fragment_user.xml b/app/src/main/res/layout-sw800dp/fragment_user.xml index a0b3b6e..b417b8c 100644 --- a/app/src/main/res/layout-sw800dp/fragment_user.xml +++ b/app/src/main/res/layout-sw800dp/fragment_user.xml @@ -45,7 +45,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_8" android:maxLines="1" - android:text="@string/default_name" + android:text="@string/default_nickname" android:textColor="@color/white" android:textSize="@dimen/sp_10" app:layout_constraintStart_toEndOf="@+id/iv_avatar" @@ -63,14 +63,32 @@ app:layout_constraintStart_toStartOf="@+id/tv_name" /> + + 未绑定 未设置 设备未经授权 - 王小明 + 小酷 一年级