diff --git a/app/build.gradle b/app/build.gradle
index aebdec8..9ff56b9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
minSdkVersion 24
targetSdkVersion 29
- versionCode 11
- versionName "1.1.0"
+ versionCode 13
+ versionName "1.1.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a107ef2..7eef5c4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -170,7 +170,7 @@
android:screenOrientation="landscape"
android:theme="@style/AppThemeWithoutFitsSystemWindows" />
getAllLauncherApps() {
+ PackageManager packageManager = getPackageManager();
+
+ // 构建用于查询桌面应用的Intent
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_HOME);
+
+ // 查询所有可以处理该Intent的Activity
+ List resolveInfoList = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
+
+ List launcherPackageList = resolveInfoList.stream().filter(new Predicate() {
+ @Override
+ public boolean test(ResolveInfo resolveInfo) {
+ return !BuildConfig.APPLICATION_ID.equals(resolveInfo.activityInfo.packageName)
+ || !"com.jxw.launcher".equals(resolveInfo.activityInfo.packageName)
+ || !"com.handuan.os".equals(resolveInfo.activityInfo.packageName);
+ }
+ }).map(new Function() {
+ @Override
+ public ComponentName apply(ResolveInfo resolveInfo) {
+ return resolveInfo.getComponentInfo().getComponentName();
+ }
+ }).collect(Collectors.toList());
+
+ return launcherPackageList;
+ }
+
private void exitDesktop() {
- ComponentName componentName = new ComponentName("com.hihonor.android.launcher", "com.hihonor.android.launcher.unihome.UniHomeLauncher");
- Intent intent = new Intent();
- intent.setComponent(componentName);
- startActivity(intent);
+ List componentNames = getAllLauncherApps();
+ Log.e(TAG, "exitDesktop: " + componentNames);
+ if (componentNames != null && componentNames.size() != 0) {
+ ComponentName componentName = componentNames.get(0);
+ Intent intent = new Intent();
+ intent.setComponent(componentName);
+ try {
+ startActivity(intent);
+ } catch (Exception e) {
+ Log.e(TAG, "exitDesktop: " + e.getMessage());
+ }
+ }
+
startActivity(new Intent(Settings.ACTION_HOME_SETTINGS));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
diff --git a/app/src/main/java/com/xwad/os/activity/PasswordActivity.java b/app/src/main/java/com/xwad/os/activity/PasswordActivity.java
index a1edb63..34d04c5 100644
--- a/app/src/main/java/com/xwad/os/activity/PasswordActivity.java
+++ b/app/src/main/java/com/xwad/os/activity/PasswordActivity.java
@@ -2,6 +2,7 @@ package com.xwad.os.activity;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import android.os.Handler;
import android.provider.Settings;
import android.text.TextUtils;
@@ -14,6 +15,7 @@ import androidx.databinding.DataBindingUtil;
import com.tuo.customview.VerificationCodeView;
import com.xwad.os.R;
+import com.xwad.os.activity.addicon.AddIconActivity;
import com.xwad.os.base.BaseDataBindingActivity;
import com.xwad.os.config.CommonConfig;
import com.xwad.os.databinding.ActivityPasswdBinding;
@@ -29,6 +31,12 @@ public class PasswordActivity extends BaseDataBindingActivity {
// return true;
// }
+
+// @Override
+// public boolean setfitWindow() {
+// return true;
+// }
+
@Override
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_passwd);
@@ -36,6 +44,26 @@ public class PasswordActivity extends BaseDataBindingActivity {
@Override
public void initView() {
+ if (Build.VERSION.SDK_INT >= 33) {
+ hideSystemUI();
+ }
+ // 全屏展示
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ // 全屏显示,隐藏状态栏和导航栏,拉出状态栏和导航栏显示一会儿后消失。
+ getWindow().getDecorView().setSystemUiVisibility(
+ View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+ | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
+ } else {
+ // 全屏显示,隐藏状态栏
+ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
+ }
+ }
+
getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
InputMethodManager imm = (InputMethodManager) PasswordActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -85,6 +113,20 @@ public class PasswordActivity extends BaseDataBindingActivity {
mBinding.bt9.setOnClickListener(view1 -> add(mBinding.icv, "9"));
}
+ private void hideSystemUI() {
+ // Enables regular immersive mode.
+ // For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
+ // Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+ View decorView = getWindow().getDecorView();
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE
+ // Set the content to appear under the system bars so that the
+ // content doesn't resize when the system bars hide and show.
+ | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+// | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ // Hide the nav bar and status bar
+ | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
+ }
+
private void checkPasswd() {
String content = mBinding.icv.getInputContent();
if (TextUtils.isEmpty(content) || content.length() != 6) {
diff --git a/app/src/main/java/com/xwad/os/activity/AddIconActivity.java b/app/src/main/java/com/xwad/os/activity/addicon/AddIconActivity.java
similarity index 66%
rename from app/src/main/java/com/xwad/os/activity/AddIconActivity.java
rename to app/src/main/java/com/xwad/os/activity/addicon/AddIconActivity.java
index 168805d..45ea75e 100644
--- a/app/src/main/java/com/xwad/os/activity/AddIconActivity.java
+++ b/app/src/main/java/com/xwad/os/activity/addicon/AddIconActivity.java
@@ -1,4 +1,4 @@
-package com.xwad.os.activity;
+package com.xwad.os.activity.addicon;
import android.content.Context;
import android.util.DisplayMetrics;
@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import com.xwad.os.R;
import com.xwad.os.adapter.AddAppAdapter;
import com.xwad.os.base.BaseDataBindingActivity;
+import com.xwad.os.base.mvvm.BaseMvvmActivity;
import com.xwad.os.bean.DesktopIcon;
import com.xwad.os.databinding.ActivityAddIconBinding;
import com.xwad.os.manager.AppManager;
@@ -20,27 +21,26 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
-public class AddIconActivity extends BaseDataBindingActivity {
-
- private ActivityAddIconBinding mBinding;
+public class AddIconActivity extends BaseMvvmActivity {
private AddAppAdapter mAddAppAdapter;
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_add_icon;
+ }
+
@Override
protected void initDataBinding() {
- mBinding = DataBindingUtil.setContentView(this, R.layout.activity_add_icon);
+ mViewModel.setCtx(this);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewDataBinding.setClick(new BtnClick());
}
@Override
public void initView() {
- mBinding.ivBack.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
-
- mBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
+ mViewDataBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
HashMap stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
@@ -50,9 +50,9 @@ public class AddIconActivity extends BaseDataBindingActivity {
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 1));//底部间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 20));//右间距
- mBinding.recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
+ mViewDataBinding.recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mAddAppAdapter = new AddAppAdapter();
- mBinding.recyclerView.setAdapter(mAddAppAdapter);
+ mViewDataBinding.recyclerView.setAdapter(mAddAppAdapter);
}
@Override
@@ -62,6 +62,13 @@ public class AddIconActivity extends BaseDataBindingActivity {
Set appList = AppManager.getInstance().getFilterAppset();
mAddAppAdapter.setPackageSet(appList);
- mBinding.tvAppsize.setText(String.format(getString(R.string.app_size), desktopIcons.size()));
+ mViewDataBinding.tvAppsize.setText(String.format(getString(R.string.app_size), desktopIcons.size()));
+ }
+
+
+ public class BtnClick {
+ public void exit(View view) {
+ finish();
+ }
}
}
diff --git a/app/src/main/java/com/xwad/os/activity/addicon/AddIconViewModel.java b/app/src/main/java/com/xwad/os/activity/addicon/AddIconViewModel.java
new file mode 100644
index 0000000..5f05eec
--- /dev/null
+++ b/app/src/main/java/com/xwad/os/activity/addicon/AddIconViewModel.java
@@ -0,0 +1,18 @@
+package com.xwad.os.activity.addicon;
+
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.xwad.os.base.mvvm.BaseViewModel;
+import com.xwad.os.databinding.ActivityAddIconBinding;
+
+public class AddIconViewModel extends BaseViewModel {
+
+ @Override
+ public ActivityAddIconBinding getVDBinding() {
+ return binding;
+ }
+
+ @Override
+ public void onDestroy() {
+
+ }
+}
diff --git a/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java b/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java
index eca40eb..5f23ba3 100644
--- a/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java
+++ b/app/src/main/java/com/xwad/os/activity/home/HomeActivity.java
@@ -7,6 +7,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
+import android.content.res.Resources;
import android.os.BatteryManager;
import android.os.Build;
import android.os.Bundle;
@@ -45,6 +46,7 @@ import com.xwad.os.databinding.ActivityHomeBinding;
import com.xwad.os.dialog.PermissionsDialog;
import com.xwad.os.dialog.PrivacyPolicyDialog;
import com.xwad.os.fragment.ai.AiFragment;
+import com.xwad.os.fragment.app.AppFragment;
import com.xwad.os.fragment.chinese.ChineseFragment;
import com.xwad.os.fragment.complex.ComplexFragment;
import com.xwad.os.fragment.english.EnglishFragment;
@@ -74,6 +76,9 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
+import me.jessyan.autosize.AutoSizeCompat;
+import me.jessyan.autosize.AutoSizeConfig;
+
public class HomeActivity extends BaseMvvmActivity implements RemoteManager.ConnectedListener {
private static final String TAG = "HomeActivity";
@@ -98,6 +103,15 @@ public class HomeActivity extends BaseMvvmActivity height);
+ return super.getResources();
+ }
+
@Override
protected void initDataBinding() {
mViewModel.setCtx(this);
@@ -251,7 +265,7 @@ public class HomeActivity extends BaseMvvmActivity
holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselect));
}
}
+ holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
Log.e(TAG, "getView: " + pkg);
- int i = IconUtils.appClassNameList.indexOf(pkg);
- if (i != -1) {
- String val = IconUtils.appIconList.get(i);
- int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID);
- if (resID == 0) {
- Log.e(TAG, "getView: not found src : " + pkg);
- holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
- } else {
- holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID));
- }
- } else {
- if (AppManager.ADD_NAME.equals(pkg)) {
- holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
- } else {
- holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
- }
- }
+
+// int i = IconUtils.appClassNameList.indexOf(pkg);
+// if (i != -1) {
+// String val = IconUtils.appIconList.get(i);
+// int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID);
+// if (resID == 0) {
+// Log.e(TAG, "getView: not found src : " + pkg);
+// holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
+// } else {
+// holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID));
+// }
+// } else {
+// if (AppManager.ADD_NAME.equals(pkg)) {
+// holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
+// } else {
+// holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
+// }
+// }
holder.root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
diff --git a/app/src/main/java/com/xwad/os/adapter/AppAdapter.java b/app/src/main/java/com/xwad/os/adapter/AppAdapter.java
index 3402e1d..e8fa798 100644
--- a/app/src/main/java/com/xwad/os/adapter/AppAdapter.java
+++ b/app/src/main/java/com/xwad/os/adapter/AppAdapter.java
@@ -33,6 +33,8 @@ import com.xwad.os.utils.Utils;
import java.util.List;
+import me.jessyan.autosize.AutoSizeCompat;
+
public class AppAdapter extends RecyclerView.Adapter {
private static final String TAG = "AppAdapter";
@@ -44,40 +46,44 @@ public class AppAdapter extends RecyclerView.Adapter {
@Override
public AppHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
mContext = parent.getContext();
+ AutoSizeCompat.autoConvertDensityOfGlobal(mContext.getResources());
return new AppHolder(LayoutInflater.from(mContext).inflate(R.layout.item_app, parent, false));
}
@Override
public void onBindViewHolder(@NonNull AppHolder holder, int position) {
+ AutoSizeCompat.autoConvertDensityOfGlobal(mContext.getResources());
DesktopIcon desktopIcon = desktopIcons.get(position);
String lable = desktopIcon.getLable();
holder.tv_appname.setText(lable);
holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
String pkg = desktopIcon.getPackageName();
Log.e(TAG, "getView: " + pkg);
- int i = IconUtils.appClassNameList.indexOf(pkg);
- if (i != -1) {
- String val = IconUtils.appIconList.get(i);
- int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID);
- if (resID == 0) {
- Log.e(TAG, "getView: not found src : " + pkg);
- holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
- } else {
- holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID));
- }
- } else {
- switch (pkg) {
- case AppManager.ADD_NAME:
- case AppManager.UPDATE_NAME:
- case AppManager.MANUAL_NAME:
- case AppManager.SERVICE_NAME:
- holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
- break;
- default:
- holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
- break;
- }
- }
+ holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
+
+// int i = IconUtils.appClassNameList.indexOf(pkg);
+// if (i != -1) {
+// String val = IconUtils.appIconList.get(i);
+// int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID);
+// if (resID == 0) {
+// Log.e(TAG, "getView: not found src : " + pkg);
+// holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
+// } else {
+// holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID));
+// }
+// } else {
+// switch (pkg) {
+// case AppManager.ADD_NAME:
+// case AppManager.UPDATE_NAME:
+// case AppManager.MANUAL_NAME:
+// case AppManager.SERVICE_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) {
diff --git a/app/src/main/java/com/xwad/os/fragment/app/AppFragment.java b/app/src/main/java/com/xwad/os/fragment/app/AppFragment.java
index a99e9be..251d9b5 100644
--- a/app/src/main/java/com/xwad/os/fragment/app/AppFragment.java
+++ b/app/src/main/java/com/xwad/os/fragment/app/AppFragment.java
@@ -96,7 +96,7 @@ public class AppFragment extends BaseMvvmFragment stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
diff --git a/app/src/main/java/com/xwad/os/fragment/app/AppViewModel.java b/app/src/main/java/com/xwad/os/fragment/app/AppViewModel.java
index aa1a54a..4b65793 100644
--- a/app/src/main/java/com/xwad/os/fragment/app/AppViewModel.java
+++ b/app/src/main/java/com/xwad/os/fragment/app/AppViewModel.java
@@ -11,6 +11,7 @@ import com.xwad.os.bean.DesktopIcon;
import com.xwad.os.databinding.FragmentAppBinding;
import com.xwad.os.manager.AppManager;
import com.xwad.os.utils.ApkUtils;
+import com.xwad.os.utils.OpenApkUtils;
import java.util.ArrayList;
@@ -31,25 +32,25 @@ public class AppViewModel extends BaseViewModel desktopIcons = AppManager.getInstance().getFilterAppList();
- DesktopIcon appstoreDesktopIcon = new DesktopIcon();
- appstoreDesktopIcon.setLable(ApkUtils.getAppName(getCtx(), "com.uiui.zyappstore"));
- appstoreDesktopIcon.setPackageName(AppManager.APPSTORE_PACKAGE_NAME);
- appstoreDesktopIcon.setClassName(AppManager.APPSTORE_CLASS_NAME);
- appstoreDesktopIcon.setLable("应用市场");
- Drawable appstoreDrawable;
- if (ApkUtils.isAvailable(getCtx(), AppManager.APPSTORE_PACKAGE_NAME)) {
- appstoreDrawable = ApkUtils.getAppDrawable(getCtx(), "com.uiui.zyappstore");
- } else {
- appstoreDrawable = getCtx().getDrawable(R.drawable.com_android_appstore);
- }
- appstoreDesktopIcon.setIcon(appstoreDrawable);
- desktopIcons.add(desktopIcons.size(), appstoreDesktopIcon);
+// DesktopIcon appstoreDesktopIcon = new DesktopIcon();
+// appstoreDesktopIcon.setLable(ApkUtils.getAppName(getCtx(), "com.uiui.zyappstore"));
+// appstoreDesktopIcon.setPackageName(AppManager.APPSTORE_PACKAGE_NAME);
+// appstoreDesktopIcon.setClassName(AppManager.APPSTORE_CLASS_NAME);
+// appstoreDesktopIcon.setLable("应用市场");
+// Drawable appstoreDrawable;
+// if (ApkUtils.isAvailable(getCtx(), AppManager.APPSTORE_PACKAGE_NAME)) {
+// appstoreDrawable = ApkUtils.getAppDrawable(getCtx(), "com.uiui.zyappstore");
+// } else {
+// appstoreDrawable = getCtx().getDrawable(R.drawable.com_android_appstore);
+// }
+// appstoreDesktopIcon.setIcon(appstoreDrawable);
+// desktopIcons.add(desktopIcons.size(), appstoreDesktopIcon);
- DesktopIcon updateDesktopIcon = new DesktopIcon();
- updateDesktopIcon.setLable("应用更新");
- updateDesktopIcon.setPackageName(AppManager.UPDATE_NAME);
- updateDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_update));
- desktopIcons.add(desktopIcons.size(), updateDesktopIcon);
+// DesktopIcon updateDesktopIcon = new DesktopIcon();
+// updateDesktopIcon.setLable("应用更新");
+// updateDesktopIcon.setPackageName(AppManager.UPDATE_NAME);
+// updateDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_update));
+// desktopIcons.add(desktopIcons.size(), updateDesktopIcon);
// DesktopIcon manualIcon = new DesktopIcon();
// manualIcon.setLable("使用手册");
@@ -57,26 +58,26 @@ public class AppViewModel extends BaseViewModel {
private static final String TAG = "ComplexFragment";
- private Activity mContext;
+ private FragmentActivity mContext;
private MyAdapter adapter;
private TabTbxAdapter tabTbxAdapter;
@@ -116,12 +116,21 @@ public class ComplexFragment extends BaseMvvmFragment {
@@ -279,11 +288,10 @@ public class ComplexFragment extends BaseMvvmFragment {
private static final String TAG = "SafeFragment";
- private Activity mContext;
-
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
+ private Activity mContext;
private AppInfo addAppinfo;
private ZhMenuAdapter zhMenuAdapter;
private List mlistAppInfo = new ArrayList<>();
private Handler mHandler = new Handler();
public String file_name = "app_list_6.0";
int len = 0;
-
+ private PackageManager mPackageManager;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -113,6 +113,8 @@ public class SafeFragment extends BaseMvvmFragment
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_icon.xml b/app/src/main/res/layout/activity_add_icon.xml
index dd21781..5b101d9 100644
--- a/app/src/main/res/layout/activity_add_icon.xml
+++ b/app/src/main/res/layout/activity_add_icon.xml
@@ -2,10 +2,13 @@
+ tools:context=".activity.addicon.AddIconActivity">
+
diff --git a/app/src/main/res/layout/activity_permission.xml b/app/src/main/res/layout/activity_permission.xml
index 7b2ac25..1cc526f 100644
--- a/app/src/main/res/layout/activity_permission.xml
+++ b/app/src/main/res/layout/activity_permission.xml
@@ -26,7 +26,7 @@
android:paddingEnd="8dp"
android:text="@string/desktop_permission"
android:textColor="@color/black"
- android:textSize="14sp"
+ android:textSize="@dimen/permission_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -44,7 +44,7 @@
@@ -91,7 +91,7 @@
android:maxLines="1"
android:text="存储图片或视频"
android:textColor="@color/contact_text_color"
- android:textSize="12sp"
+ android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name0" />
@@ -107,7 +107,7 @@
android:onClick="@{click::openStorage}"
android:text="去授权"
android:textColor="@drawable/tv_permission"
- android:textSize="13sp"
+ android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -116,7 +116,7 @@
@@ -148,7 +148,7 @@
android:maxLines="1"
android:text="读取电话状态"
android:textColor="@color/black"
- android:textSize="14sp"
+ android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -160,7 +160,7 @@
android:maxLines="1"
android:text="拨打和管理通话"
android:textColor="@color/contact_text_color"
- android:textSize="12sp"
+ android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name1" />
@@ -176,7 +176,7 @@
android:onClick="@{click::openReadPhone}"
android:text="去授权"
android:textColor="@drawable/tv_permission"
- android:textSize="13sp"
+ android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -185,7 +185,7 @@
@@ -232,7 +232,7 @@
android:maxLines="1"
android:text="设置亮度和声音"
android:textColor="@color/contact_text_color"
- android:textSize="12sp"
+ android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name2" />
@@ -248,7 +248,7 @@
android:onClick="@{click::openWriteSettings}"
android:text="去授权"
android:textColor="@drawable/tv_permission"
- android:textSize="13sp"
+ android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -257,7 +257,7 @@
@@ -289,7 +289,7 @@
android:maxLines="1"
android:text="定位权限"
android:textColor="@color/black"
- android:textSize="14sp"
+ android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -301,7 +301,7 @@
android:maxLines="1"
android:text="获取粗略位置"
android:textColor="@color/contact_text_color"
- android:textSize="12sp"
+ android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name3" />
@@ -317,7 +317,7 @@
android:onClick="@{click::open_coarse_location}"
android:text="去授权"
android:textColor="@drawable/tv_permission"
- android:textSize="13sp"
+ android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -326,7 +326,7 @@
@@ -373,7 +373,7 @@
android:maxLines="1"
android:text="获取精确位置"
android:textColor="@color/contact_text_color"
- android:textSize="12sp"
+ android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name4" />
@@ -389,7 +389,7 @@
android:onClick="@{click::open_fine_location}"
android:text="去授权"
android:textColor="@drawable/tv_permission"
- android:textSize="13sp"
+ android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -398,7 +398,7 @@
@@ -445,7 +445,7 @@
android:maxLines="1"
android:text="查看设备位置"
android:textColor="@color/contact_text_color"
- android:textSize="12sp"
+ android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name5" />
@@ -461,7 +461,7 @@
android:onClick="@{click::open_background_location}"
android:text="去授权"
android:textColor="@drawable/tv_permission"
- android:textSize="13sp"
+ android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -470,7 +470,7 @@
@@ -517,7 +517,7 @@
android:maxLines="1"
android:text="查看设备位置"
android:textColor="@color/contact_text_color"
- android:textSize="12sp"
+ android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name6" />
@@ -533,7 +533,7 @@
android:onClick="@{click::open_notification}"
android:text="去授权"
android:textColor="@drawable/tv_permission"
- android:textSize="13sp"
+ android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout/dialog_default_apps.xml b/app/src/main/res/layout/dialog_default_apps.xml
index eef25e4..776211f 100644
--- a/app/src/main/res/layout/dialog_default_apps.xml
+++ b/app/src/main/res/layout/dialog_default_apps.xml
@@ -23,7 +23,7 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginTop="3dp"
- android:text="必备插件"
+ android:text="必备组件"
android:textColor="#333333"
android:textSize="12sp" />
diff --git a/app/src/main/res/layout/fg_content_wl.xml b/app/src/main/res/layout/fg_content_wl.xml
index 9a96789..b7a7af3 100644
--- a/app/src/main/res/layout/fg_content_wl.xml
+++ b/app/src/main/res/layout/fg_content_wl.xml
@@ -1,461 +1,474 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="wrap_content">
+ android:layout_width="475dp"
+ android:layout_height="300dp"
+ android:orientation="horizontal"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
-
-
-
-
-
-
+ android:layout_marginBottom="16dp"
+ android:orientation="horizontal">
-
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginTop="50dp"
+ android:orientation="horizontal">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
diff --git a/app/src/main/res/layout/fragment_app.xml b/app/src/main/res/layout/fragment_app.xml
index b3cf1dc..95c223c 100644
--- a/app/src/main/res/layout/fragment_app.xml
+++ b/app/src/main/res/layout/fragment_app.xml
@@ -17,8 +17,8 @@
android:layout_height="match_parent">
- 999px
36dp
- 56dp
+ 48dp
8sp
+
+ 10sp
+ 12sp
+ 48dp
+ 11sp
+
\ No newline at end of file