version:1.1.2

fix:
update:优化其他学科滑动问题,NoSlideViewPager替换为viewpager2,退出桌面获取已安装的
This commit is contained in:
2025-12-20 10:22:15 +08:00
parent 7ce4158afd
commit a66b04083d
29 changed files with 853 additions and 656 deletions

View File

@@ -16,8 +16,8 @@ android {
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 29 targetSdkVersion 29
versionCode 11 versionCode 13
versionName "1.1.0" versionName "1.1.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -170,7 +170,7 @@
android:screenOrientation="landscape" android:screenOrientation="landscape"
android:theme="@style/AppThemeWithoutFitsSystemWindows" /> android:theme="@style/AppThemeWithoutFitsSystemWindows" />
<activity <activity
android:name=".activity.AddIconActivity" android:name=".activity.addicon.AddIconActivity"
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="landscape" /> android:screenOrientation="landscape" />
<activity <activity

View File

@@ -3,6 +3,8 @@ package com.xwad.os.activity;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.media.AudioAttributes; import android.media.AudioAttributes;
import android.media.SoundPool; import android.media.SoundPool;
import android.os.Build; import android.os.Build;
@@ -17,12 +19,18 @@ import android.view.inputmethod.InputMethodManager;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import com.tuo.customview.VerificationCodeView; import com.tuo.customview.VerificationCodeView;
import com.xwad.os.BuildConfig;
import com.xwad.os.R; import com.xwad.os.R;
import com.xwad.os.base.BaseDataBindingActivity; import com.xwad.os.base.BaseDataBindingActivity;
import com.xwad.os.config.CommonConfig; import com.xwad.os.config.CommonConfig;
import com.xwad.os.databinding.ActivityExitBinding; import com.xwad.os.databinding.ActivityExitBinding;
import com.xwad.os.utils.Utils; import com.xwad.os.utils.Utils;
import java.util.List;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class ExitActivity extends BaseDataBindingActivity { public class ExitActivity extends BaseDataBindingActivity {
private static final String TAG = "ExitActivity"; private static final String TAG = "ExitActivity";
@@ -127,11 +135,47 @@ public class ExitActivity extends BaseDataBindingActivity {
} }
} }
private List<ComponentName> getAllLauncherApps() {
PackageManager packageManager = getPackageManager();
// 构建用于查询桌面应用的Intent
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
// 查询所有可以处理该Intent的Activity
List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
List<ComponentName> launcherPackageList = resolveInfoList.stream().filter(new Predicate<ResolveInfo>() {
@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<ResolveInfo, ComponentName>() {
@Override
public ComponentName apply(ResolveInfo resolveInfo) {
return resolveInfo.getComponentInfo().getComponentName();
}
}).collect(Collectors.toList());
return launcherPackageList;
}
private void exitDesktop() { private void exitDesktop() {
ComponentName componentName = new ComponentName("com.hihonor.android.launcher", "com.hihonor.android.launcher.unihome.UniHomeLauncher"); List<ComponentName> componentNames = getAllLauncherApps();
Log.e(TAG, "exitDesktop: " + componentNames);
if (componentNames != null && componentNames.size() != 0) {
ComponentName componentName = componentNames.get(0);
Intent intent = new Intent(); Intent intent = new Intent();
intent.setComponent(componentName); intent.setComponent(componentName);
try {
startActivity(intent); startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "exitDesktop: " + e.getMessage());
}
}
startActivity(new Intent(Settings.ACTION_HOME_SETTINGS)); startActivity(new Intent(Settings.ACTION_HOME_SETTINGS));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

View File

@@ -2,6 +2,7 @@ package com.xwad.os.activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
@@ -14,6 +15,7 @@ import androidx.databinding.DataBindingUtil;
import com.tuo.customview.VerificationCodeView; import com.tuo.customview.VerificationCodeView;
import com.xwad.os.R; import com.xwad.os.R;
import com.xwad.os.activity.addicon.AddIconActivity;
import com.xwad.os.base.BaseDataBindingActivity; import com.xwad.os.base.BaseDataBindingActivity;
import com.xwad.os.config.CommonConfig; import com.xwad.os.config.CommonConfig;
import com.xwad.os.databinding.ActivityPasswdBinding; import com.xwad.os.databinding.ActivityPasswdBinding;
@@ -29,6 +31,12 @@ public class PasswordActivity extends BaseDataBindingActivity {
// return true; // return true;
// } // }
// @Override
// public boolean setfitWindow() {
// return true;
// }
@Override @Override
protected void initDataBinding() { protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_passwd); mBinding = DataBindingUtil.setContentView(this, R.layout.activity_passwd);
@@ -36,6 +44,26 @@ public class PasswordActivity extends BaseDataBindingActivity {
@Override @Override
public void initView() { 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); getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
InputMethodManager imm = (InputMethodManager) PasswordActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE); 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")); 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() { private void checkPasswd() {
String content = mBinding.icv.getInputContent(); String content = mBinding.icv.getInputContent();
if (TextUtils.isEmpty(content) || content.length() != 6) { if (TextUtils.isEmpty(content) || content.length() != 6) {

View File

@@ -1,4 +1,4 @@
package com.xwad.os.activity; package com.xwad.os.activity.addicon;
import android.content.Context; import android.content.Context;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import com.xwad.os.R; import com.xwad.os.R;
import com.xwad.os.adapter.AddAppAdapter; import com.xwad.os.adapter.AddAppAdapter;
import com.xwad.os.base.BaseDataBindingActivity; import com.xwad.os.base.BaseDataBindingActivity;
import com.xwad.os.base.mvvm.BaseMvvmActivity;
import com.xwad.os.bean.DesktopIcon; import com.xwad.os.bean.DesktopIcon;
import com.xwad.os.databinding.ActivityAddIconBinding; import com.xwad.os.databinding.ActivityAddIconBinding;
import com.xwad.os.manager.AppManager; import com.xwad.os.manager.AppManager;
@@ -20,27 +21,26 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Set; import java.util.Set;
public class AddIconActivity extends BaseDataBindingActivity { public class AddIconActivity extends BaseMvvmActivity<AddIconViewModel, ActivityAddIconBinding> {
private ActivityAddIconBinding mBinding;
private AddAppAdapter mAddAppAdapter; private AddAppAdapter mAddAppAdapter;
@Override
protected int getLayoutId() {
return R.layout.activity_add_icon;
}
@Override @Override
protected void initDataBinding() { 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 @Override
public void initView() { public void initView() {
mBinding.ivBack.setOnClickListener(new View.OnClickListener() { mViewDataBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
@Override
public void onClick(View v) {
finish();
}
});
mBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>(); HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics(); DisplayMetrics dm = new DisplayMetrics();
@@ -50,9 +50,9 @@ public class AddIconActivity extends BaseDataBindingActivity {
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 1));//底部间距 stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 1));//底部间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距 stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_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(); mAddAppAdapter = new AddAppAdapter();
mBinding.recyclerView.setAdapter(mAddAppAdapter); mViewDataBinding.recyclerView.setAdapter(mAddAppAdapter);
} }
@Override @Override
@@ -62,6 +62,13 @@ public class AddIconActivity extends BaseDataBindingActivity {
Set<String> appList = AppManager.getInstance().getFilterAppset(); Set<String> appList = AppManager.getInstance().getFilterAppset();
mAddAppAdapter.setPackageSet(appList); 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();
}
} }
} }

View File

@@ -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<ActivityAddIconBinding, ActivityEvent> {
@Override
public ActivityAddIconBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
}

View File

@@ -7,6 +7,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.BatteryManager; import android.os.BatteryManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; 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.PermissionsDialog;
import com.xwad.os.dialog.PrivacyPolicyDialog; import com.xwad.os.dialog.PrivacyPolicyDialog;
import com.xwad.os.fragment.ai.AiFragment; 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.chinese.ChineseFragment;
import com.xwad.os.fragment.complex.ComplexFragment; import com.xwad.os.fragment.complex.ComplexFragment;
import com.xwad.os.fragment.english.EnglishFragment; import com.xwad.os.fragment.english.EnglishFragment;
@@ -74,6 +76,9 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import me.jessyan.autosize.AutoSizeCompat;
import me.jessyan.autosize.AutoSizeConfig;
public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBinding> implements RemoteManager.ConnectedListener { public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBinding> implements RemoteManager.ConnectedListener {
private static final String TAG = "HomeActivity"; private static final String TAG = "HomeActivity";
@@ -98,6 +103,15 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
return R.layout.activity_home; return R.layout.activity_home;
} }
@Override
public Resources getResources() {
//需要升级到 v1.1.2 及以上版本才能使用 AutoSizeCompat
int width = AutoSizeConfig.getInstance().getScreenWidth();
int height = AutoSizeConfig.getInstance().getScreenHeight();
AutoSizeCompat.autoConvertDensity(super.getResources(), 624, width > height);
return super.getResources();
}
@Override @Override
protected void initDataBinding() { protected void initDataBinding() {
mViewModel.setCtx(this); mViewModel.setCtx(this);
@@ -251,7 +265,7 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
// if ("小学".equals(Util.checkGrade(SPUtils.getGrade()))) { // if ("小学".equals(Util.checkGrade(SPUtils.getGrade()))) {
fragments.add(new SztzFragment()); fragments.add(new SztzFragment());
// } // }
fragments.add(new SafeFragment()); fragments.add(new AppFragment());
tabBeanLists.add(new TabBean("我的", R.drawable.icon_tab_wd, R.drawable.icon_tab_wd_pre)); tabBeanLists.add(new TabBean("我的", R.drawable.icon_tab_wd, R.drawable.icon_tab_wd_pre));
tabBeanLists.add(new TabBean("AI+学习", R.drawable.icon_tab_aixx, R.drawable.icon_tab_aixx_pre)); tabBeanLists.add(new TabBean("AI+学习", R.drawable.icon_tab_aixx, R.drawable.icon_tab_aixx_pre));

View File

@@ -53,25 +53,27 @@ public class AddAppAdapter extends RecyclerView.Adapter<AddAppAdapter.AppHolder>
holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselect)); holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselect));
} }
} }
holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
Log.e(TAG, "getView: " + pkg); Log.e(TAG, "getView: " + pkg);
int i = IconUtils.appClassNameList.indexOf(pkg);
if (i != -1) { // int i = IconUtils.appClassNameList.indexOf(pkg);
String val = IconUtils.appIconList.get(i); // if (i != -1) {
int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID); // String val = IconUtils.appIconList.get(i);
if (resID == 0) { // int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID);
Log.e(TAG, "getView: not found src : " + pkg); // if (resID == 0) {
holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon())); // Log.e(TAG, "getView: not found src : " + pkg);
} else { // holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID)); // } else {
} // holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID));
} else { // }
if (AppManager.ADD_NAME.equals(pkg)) { // } else {
holder.iv_icon.setImageDrawable(desktopIcon.getIcon()); // if (AppManager.ADD_NAME.equals(pkg)) {
} else { // holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon())); // } else {
} // holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
} // }
// }
holder.root.setOnClickListener(new View.OnClickListener() { holder.root.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {

View File

@@ -33,6 +33,8 @@ import com.xwad.os.utils.Utils;
import java.util.List; import java.util.List;
import me.jessyan.autosize.AutoSizeCompat;
public class AppAdapter extends RecyclerView.Adapter<AppAdapter.AppHolder> { public class AppAdapter extends RecyclerView.Adapter<AppAdapter.AppHolder> {
private static final String TAG = "AppAdapter"; private static final String TAG = "AppAdapter";
@@ -44,40 +46,44 @@ public class AppAdapter extends RecyclerView.Adapter<AppAdapter.AppHolder> {
@Override @Override
public AppHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public AppHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
mContext = parent.getContext(); mContext = parent.getContext();
AutoSizeCompat.autoConvertDensityOfGlobal(mContext.getResources());
return new AppHolder(LayoutInflater.from(mContext).inflate(R.layout.item_app, parent, false)); return new AppHolder(LayoutInflater.from(mContext).inflate(R.layout.item_app, parent, false));
} }
@Override @Override
public void onBindViewHolder(@NonNull AppHolder holder, int position) { public void onBindViewHolder(@NonNull AppHolder holder, int position) {
AutoSizeCompat.autoConvertDensityOfGlobal(mContext.getResources());
DesktopIcon desktopIcon = desktopIcons.get(position); DesktopIcon desktopIcon = desktopIcons.get(position);
String lable = desktopIcon.getLable(); String lable = desktopIcon.getLable();
holder.tv_appname.setText(lable); holder.tv_appname.setText(lable);
holder.iv_icon.setImageDrawable(desktopIcon.getIcon()); holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
String pkg = desktopIcon.getPackageName(); String pkg = desktopIcon.getPackageName();
Log.e(TAG, "getView: " + pkg); 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()); holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
break;
default: // int i = IconUtils.appClassNameList.indexOf(pkg);
holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon())); // if (i != -1) {
break; // 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() { holder.root.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {

View File

@@ -96,7 +96,7 @@ public class AppFragment extends BaseMvvmFragment<AppViewModel, FragmentAppBindi
@Override @Override
protected void initView(Bundle bundle) { protected void initView(Bundle bundle) {
mViewDataBinding.rvApp.setLayoutManager(new GridLayoutManager(mContext, 6)); mViewDataBinding.rvApp.setLayoutManager(new GridLayoutManager(mContext, 7));
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>(); HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics(); DisplayMetrics dm = new DisplayMetrics();

View File

@@ -11,6 +11,7 @@ import com.xwad.os.bean.DesktopIcon;
import com.xwad.os.databinding.FragmentAppBinding; import com.xwad.os.databinding.FragmentAppBinding;
import com.xwad.os.manager.AppManager; import com.xwad.os.manager.AppManager;
import com.xwad.os.utils.ApkUtils; import com.xwad.os.utils.ApkUtils;
import com.xwad.os.utils.OpenApkUtils;
import java.util.ArrayList; import java.util.ArrayList;
@@ -31,25 +32,25 @@ public class AppViewModel extends BaseViewModel<FragmentAppBinding, FragmentEven
public void getInstalledApp() { public void getInstalledApp() {
ArrayList<DesktopIcon> desktopIcons = AppManager.getInstance().getFilterAppList(); ArrayList<DesktopIcon> desktopIcons = AppManager.getInstance().getFilterAppList();
DesktopIcon appstoreDesktopIcon = new DesktopIcon(); // DesktopIcon appstoreDesktopIcon = new DesktopIcon();
appstoreDesktopIcon.setLable(ApkUtils.getAppName(getCtx(), "com.uiui.zyappstore")); // appstoreDesktopIcon.setLable(ApkUtils.getAppName(getCtx(), "com.uiui.zyappstore"));
appstoreDesktopIcon.setPackageName(AppManager.APPSTORE_PACKAGE_NAME); // appstoreDesktopIcon.setPackageName(AppManager.APPSTORE_PACKAGE_NAME);
appstoreDesktopIcon.setClassName(AppManager.APPSTORE_CLASS_NAME); // appstoreDesktopIcon.setClassName(AppManager.APPSTORE_CLASS_NAME);
appstoreDesktopIcon.setLable("应用市场"); // appstoreDesktopIcon.setLable("应用市场");
Drawable appstoreDrawable; // Drawable appstoreDrawable;
if (ApkUtils.isAvailable(getCtx(), AppManager.APPSTORE_PACKAGE_NAME)) { // if (ApkUtils.isAvailable(getCtx(), AppManager.APPSTORE_PACKAGE_NAME)) {
appstoreDrawable = ApkUtils.getAppDrawable(getCtx(), "com.uiui.zyappstore"); // appstoreDrawable = ApkUtils.getAppDrawable(getCtx(), "com.uiui.zyappstore");
} else { // } else {
appstoreDrawable = getCtx().getDrawable(R.drawable.com_android_appstore); // appstoreDrawable = getCtx().getDrawable(R.drawable.com_android_appstore);
} // }
appstoreDesktopIcon.setIcon(appstoreDrawable); // appstoreDesktopIcon.setIcon(appstoreDrawable);
desktopIcons.add(desktopIcons.size(), appstoreDesktopIcon); // desktopIcons.add(desktopIcons.size(), appstoreDesktopIcon);
DesktopIcon updateDesktopIcon = new DesktopIcon(); // DesktopIcon updateDesktopIcon = new DesktopIcon();
updateDesktopIcon.setLable("应用更新"); // updateDesktopIcon.setLable("应用更新");
updateDesktopIcon.setPackageName(AppManager.UPDATE_NAME); // updateDesktopIcon.setPackageName(AppManager.UPDATE_NAME);
updateDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_update)); // updateDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_update));
desktopIcons.add(desktopIcons.size(), updateDesktopIcon); // desktopIcons.add(desktopIcons.size(), updateDesktopIcon);
// DesktopIcon manualIcon = new DesktopIcon(); // DesktopIcon manualIcon = new DesktopIcon();
// manualIcon.setLable("使用手册"); // manualIcon.setLable("使用手册");
@@ -57,26 +58,26 @@ public class AppViewModel extends BaseViewModel<FragmentAppBinding, FragmentEven
// manualIcon.setIcon(getCtx().getDrawable(R.drawable.icon_manual)); // manualIcon.setIcon(getCtx().getDrawable(R.drawable.icon_manual));
// desktopIcons.add(desktopIcons.size(), manualIcon); // desktopIcons.add(desktopIcons.size(), manualIcon);
DesktopIcon browserIcon = new DesktopIcon(); // DesktopIcon browserIcon = new DesktopIcon();
browserIcon.setIcon(getCtx().getDrawable(R.drawable.uiui_zybrowser)); // browserIcon.setIcon(getCtx().getDrawable(R.drawable.uiui_zybrowser));
browserIcon.setLable("浏览器"); // browserIcon.setLable("浏览器");
browserIcon.setPackageName(AppManager.BROWSER_PACKAGE_NAME); // browserIcon.setPackageName(AppManager.BROWSER_PACKAGE_NAME);
browserIcon.setClassName(AppManager.BROWSER_CLASS_NAME); // browserIcon.setClassName(AppManager.BROWSER_CLASS_NAME);
desktopIcons.add(browserIcon); // desktopIcons.add(browserIcon);
DesktopIcon serviceIcon = new DesktopIcon(); // DesktopIcon serviceIcon = new DesktopIcon();
serviceIcon.setIcon(getCtx().getDrawable(R.drawable.service_icon)); // serviceIcon.setIcon(getCtx().getDrawable(R.drawable.service_icon));
serviceIcon.setLable("联系客服"); // serviceIcon.setLable("联系客服");
serviceIcon.setPackageName(AppManager.SERVICE_NAME); // serviceIcon.setPackageName(AppManager.SERVICE_NAME);
desktopIcons.add(serviceIcon); // desktopIcons.add(serviceIcon);
if (ApkUtils.isAvailable(getCtx(), "com.jxw.zwpg")) { // if (ApkUtils.isAvailable(getCtx(), "com.jxw.zwpg")) {
DesktopIcon zwpgIcon = new DesktopIcon(); // DesktopIcon zwpgIcon = new DesktopIcon();
zwpgIcon.setIcon(getCtx().getDrawable(R.drawable.zwpg_icon)); // zwpgIcon.setIcon(getCtx().getDrawable(R.drawable.zwpg_icon));
zwpgIcon.setLable("作文批改"); // zwpgIcon.setLable("作文批改");
zwpgIcon.setPackageName("com.jxw.zwpg"); // zwpgIcon.setPackageName("com.jxw.zwpg");
desktopIcons.add(zwpgIcon); // desktopIcons.add(zwpgIcon);
} // }
// if (ApkUtils.isAvailable(getCtx(), "com.jxw.gb.zwpg")) { // if (ApkUtils.isAvailable(getCtx(), "com.jxw.gb.zwpg")) {
// DesktopIcon zwpgIcon = new DesktopIcon(); // DesktopIcon zwpgIcon = new DesktopIcon();
@@ -86,25 +87,49 @@ public class AppViewModel extends BaseViewModel<FragmentAppBinding, FragmentEven
// desktopIcons.add(zwpgIcon); // desktopIcons.add(zwpgIcon);
// } // }
if (ApkUtils.isAvailable(getCtx(), "com.jxw.huiben")) { // if (ApkUtils.isAvailable(getCtx(), "com.jxw.huiben")) {
DesktopIcon zwpgIcon = new DesktopIcon(); // DesktopIcon zwpgIcon = new DesktopIcon();
zwpgIcon.setIcon(getCtx().getDrawable(R.drawable.zhidu_icon)); // zwpgIcon.setIcon(getCtx().getDrawable(R.drawable.zhidu_icon));
zwpgIcon.setLable("AR指读"); // zwpgIcon.setLable("AR指读");
zwpgIcon.setPackageName("com.jxw.huiben"); // zwpgIcon.setPackageName("com.jxw.huiben");
desktopIcons.add(zwpgIcon); // desktopIcons.add(zwpgIcon);
} // }
DesktopIcon exitIcon = new DesktopIcon(); // DesktopIcon exitIcon = new DesktopIcon();
exitIcon.setLable("退出桌面"); // exitIcon.setLable("退出桌面");
exitIcon.setPackageName(AppManager.DESKTOP_EXIT); // exitIcon.setPackageName(AppManager.DESKTOP_EXIT);
exitIcon.setIcon(getCtx().getDrawable(R.drawable.exit_icon)); // exitIcon.setIcon(getCtx().getDrawable(R.drawable.exit_icon));
desktopIcons.add(desktopIcons.size(), exitIcon); // desktopIcons.add(desktopIcons.size(), exitIcon);
DesktopIcon desktopIcon = new DesktopIcon(); DesktopIcon clockIcon = new DesktopIcon();
desktopIcon.setLable("添加应用"); clockIcon.setLable("时钟");
desktopIcon.setPackageName(AppManager.ADD_NAME); clockIcon.setPackageName(OpenApkUtils.getInstance().getDeskClockPackageName());
desktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_add)); clockIcon.setIcon(ApkUtils.getAppDrawable(getCtx(), OpenApkUtils.getInstance().getDeskClockPackageName()));
desktopIcons.add(desktopIcons.size(), desktopIcon); desktopIcons.add(clockIcon);
DesktopIcon calcIcon = new DesktopIcon();
calcIcon.setLable("计算器");
calcIcon.setPackageName(OpenApkUtils.getInstance().getCalculatorPackageName());
calcIcon.setIcon(ApkUtils.getAppDrawable(getCtx(), OpenApkUtils.getInstance().getCalculatorPackageName()));
desktopIcons.add(calcIcon);
DesktopIcon cameraIcon = new DesktopIcon();
cameraIcon.setLable("相机");
cameraIcon.setPackageName(OpenApkUtils.getInstance().getCameraPackageName());
cameraIcon.setIcon(ApkUtils.getAppDrawable(getCtx(), OpenApkUtils.getInstance().getCameraPackageName()));
desktopIcons.add(cameraIcon);
DesktopIcon galleryIcon = new DesktopIcon();
galleryIcon.setLable("图库");
galleryIcon.setPackageName(OpenApkUtils.getInstance().getGalleryPackageName());
galleryIcon.setIcon(ApkUtils.getAppDrawable(getCtx(), OpenApkUtils.getInstance().getGalleryPackageName()));
desktopIcons.add(galleryIcon);
DesktopIcon AddAppIcon = new DesktopIcon();
AddAppIcon.setLable("添加应用");
AddAppIcon.setPackageName(AppManager.ADD_NAME);
AddAppIcon.setIcon(getCtx().getDrawable(R.drawable.icon_add));
desktopIcons.add(desktopIcons.size(), AddAppIcon);
mDesktopIconListData.setValue(desktopIcons); mDesktopIconListData.setValue(desktopIcons);
} }

View File

@@ -1,17 +1,18 @@
package com.xwad.os.fragment.complex; package com.xwad.os.fragment.complex;
import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
@@ -30,7 +31,6 @@ import com.xwad.os.jxw.util.Util;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode; import org.greenrobot.eventbus.ThreadMode;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.ArrayList; import java.util.ArrayList;
@@ -44,7 +44,7 @@ import java.util.List;
public class ComplexFragment extends BaseMvvmFragment<ComplexViewModel, FragmentComplexBinding> { public class ComplexFragment extends BaseMvvmFragment<ComplexViewModel, FragmentComplexBinding> {
private static final String TAG = "ComplexFragment"; private static final String TAG = "ComplexFragment";
private Activity mContext; private FragmentActivity mContext;
private MyAdapter adapter; private MyAdapter adapter;
private TabTbxAdapter tabTbxAdapter; private TabTbxAdapter tabTbxAdapter;
@@ -116,12 +116,21 @@ public class ComplexFragment extends BaseMvvmFragment<ComplexViewModel, Fragment
} }
mViewDataBinding.subjectViewPager.setOffscreenPageLimit(10); mViewDataBinding.subjectViewPager.setOffscreenPageLimit(10);
mViewDataBinding.subjectViewPager.setUserInputEnabled(false);
mViewDataBinding.subjectViewPager.setOrientation(ViewPager2.ORIENTATION_VERTICAL);
mViewDataBinding.subjectViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
mViewDataBinding.rvTitle.smoothScrollToPosition(position);
}
});
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setOrientation(RecyclerView.VERTICAL); linearLayoutManager.setOrientation(RecyclerView.VERTICAL);
mViewDataBinding.rvTitle.setLayoutManager(linearLayoutManager); mViewDataBinding.rvTitle.setLayoutManager(linearLayoutManager);
tabTbxAdapter = new TabTbxAdapter(tabBeanList); tabTbxAdapter = new TabTbxAdapter(tabBeanList);
adapter = new MyAdapter(getChildFragmentManager()); adapter = new MyAdapter(mContext);
initViews(); initViews();
} }
@@ -218,26 +227,26 @@ public class ComplexFragment extends BaseMvvmFragment<ComplexViewModel, Fragment
} }
public class MyAdapter extends FragmentPagerAdapter { public class MyAdapter extends FragmentStateAdapter {
MyAdapter(FragmentManager fragmentManager) { MyAdapter(FragmentActivity fragmentActivity) {
super(fragmentManager); super(fragmentActivity);
} }
@NotNull @NonNull
@Override @Override
public Fragment getItem(int i) { public Fragment createFragment(int position) {
return mFragment.get(i); return mFragment.get(position);
}
@Override
public int getCount() {
return mFragment.size();
} }
@Override @Override
public long getItemId(int i) { public long getItemId(int i) {
return (mFragment.get(i)).hashCode(); return (mFragment.get(i)).hashCode();
} }
@Override
public int getItemCount() {
return mFragment == null ? 0 : mFragment.size();
}
} }
public class TabTbxAdapter extends BaseQuickAdapter<TabBean, BaseViewHolder> { public class TabTbxAdapter extends BaseQuickAdapter<TabBean, BaseViewHolder> {
@@ -279,11 +288,10 @@ public class ComplexFragment extends BaseMvvmFragment<ComplexViewModel, Fragment
} }
textView.setText(tabBean.getTab_Title()); textView.setText(tabBean.getTab_Title());
baseViewHolder.itemView.setOnClickListener(new View.OnClickListener() { baseViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
setChoosePosition(baseViewHolder.getAdapterPosition()); setChoosePosition(baseViewHolder.getAdapterPosition());
mViewDataBinding.subjectViewPager.setCurrentItem(baseViewHolder.getAdapterPosition()); mViewDataBinding.subjectViewPager.setCurrentItem(baseViewHolder.getAdapterPosition(), false);
} }
}); });
} }

View File

@@ -14,6 +14,7 @@ import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.ViewTreeObserver;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
@@ -126,6 +127,14 @@ public class MineFragment extends BaseMvvmFragment<MineViewModel, FragmentMineBi
setName(); setName();
// mViewDataBinding.ivXwcd.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
// @Override
// public void onGlobalLayout() {
// Log.e(TAG, "onGlobalLayout: getWidth = " + mViewDataBinding.ivXwcd.getWidth());
// Log.e(TAG, "onGlobalLayout: getHeight = " + mViewDataBinding.ivXwcd.getHeight());
// }
// });
// mViewDataBinding.gridViewId.setLayoutManager(new GridLayoutManager(mContext, 8)); // mViewDataBinding.gridViewId.setLayoutManager(new GridLayoutManager(mContext, 8));
// zhMenuAdapter = new ZhMenuAdapter(mContext, mlistAppInfo); // zhMenuAdapter = new ZhMenuAdapter(mContext, mlistAppInfo);
// mViewDataBinding.gridViewId.setAdapter(zhMenuAdapter); // mViewDataBinding.gridViewId.setAdapter(zhMenuAdapter);
@@ -337,31 +346,6 @@ public class MineFragment extends BaseMvvmFragment<MineViewModel, FragmentMineBi
} }
} }
private List<ComponentName> getAllLauncherApps(Context context) {
PackageManager packageManager = context.getPackageManager();
// 构建用于查询桌面应用的Intent
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
// 查询所有可以处理该Intent的Activity
List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
List<ComponentName> launcherPackageList = resolveInfoList.stream().filter(new Predicate<ResolveInfo>() {
@Override
public boolean test(ResolveInfo resolveInfo) {
return !BuildConfig.APPLICATION_ID.equals(resolveInfo.activityInfo.packageName);
}
}).map(new Function<ResolveInfo, ComponentName>() {
@Override
public ComponentName apply(ResolveInfo resolveInfo) {
return resolveInfo.getComponentInfo().getComponentName();
}
}).collect(Collectors.toList());
return launcherPackageList;
}
public class BtnClick { public class BtnClick {
public void toLigin(View view) { public void toLigin(View view) {
startActivity(new Intent(mContext, UserActivity.class)); startActivity(new Intent(mContext, UserActivity.class));
@@ -379,7 +363,6 @@ public class MineFragment extends BaseMvvmFragment<MineViewModel, FragmentMineBi
} }
public void exit(View view) { public void exit(View view) {
Log.e(TAG, "exit: " + getAllLauncherApps(mContext));
startActivity(new Intent(mContext, ExitActivity.class)); startActivity(new Intent(mContext, ExitActivity.class));
// OpenApkUtils.getInstance().openJxwApp(mContext, "com.hihonor.android.launcher,com.hihonor.android.launcher.unihome.UniHomeLauncher,,,退出桌面"); // OpenApkUtils.getInstance().openJxwApp(mContext, "com.hihonor.android.launcher,com.hihonor.android.launcher.unihome.UniHomeLauncher,,,退出桌面");
} }

View File

@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.tencent.mmkv.MMKV; import com.tencent.mmkv.MMKV;
import com.xwad.os.R; import com.xwad.os.R;
import com.xwad.os.adapter.AppAdapter;
import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment; import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment;
import com.xwad.os.bean.jxw.AppInfo; import com.xwad.os.bean.jxw.AppInfo;
import com.xwad.os.config.CommonConfig; import com.xwad.os.config.CommonConfig;
@@ -54,17 +55,16 @@ import java.util.List;
public class SafeFragment extends BaseMvvmFragment<SafeViewModel, FragmentSafeBinding> { public class SafeFragment extends BaseMvvmFragment<SafeViewModel, FragmentSafeBinding> {
private static final String TAG = "SafeFragment"; private static final String TAG = "SafeFragment";
private Activity mContext;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private Activity mContext;
private AppInfo addAppinfo; private AppInfo addAppinfo;
private ZhMenuAdapter zhMenuAdapter; private ZhMenuAdapter zhMenuAdapter;
private List<AppInfo> mlistAppInfo = new ArrayList<>(); private List<AppInfo> mlistAppInfo = new ArrayList<>();
private Handler mHandler = new Handler(); private Handler mHandler = new Handler();
public String file_name = "app_list_6.0"; public String file_name = "app_list_6.0";
int len = 0; int len = 0;
private PackageManager mPackageManager;
// TODO: Rename parameter arguments, choose names that match // TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -113,6 +113,8 @@ public class SafeFragment extends BaseMvvmFragment<SafeViewModel, FragmentSafeBi
@Override @Override
protected void initView(Bundle bundle) { protected void initView(Bundle bundle) {
mPackageManager = mContext.getPackageManager();
if (!EventBus.getDefault().isRegistered(this)) { if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
} }
@@ -239,10 +241,14 @@ public class SafeFragment extends BaseMvvmFragment<SafeViewModel, FragmentSafeBi
return; return;
} }
} }
PackageManager packageManager = mContext.getPackageManager();
try { try {
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(stringExtra, PackageManager.GET_META_DATA); ApplicationInfo applicationInfo = mPackageManager.getApplicationInfo(stringExtra, PackageManager.GET_META_DATA);
AppInfo build = new AppInfo.Builder().appLabel((String) packageManager.getApplicationLabel(applicationInfo)).pkgName(stringExtra).appIcon(packageManager.getApplicationIcon(applicationInfo)).build(); AppInfo build = new AppInfo.Builder()
.appLabel((String) mPackageManager.getApplicationLabel(applicationInfo))
.pkgName(stringExtra)
.appIcon(mPackageManager.getApplicationIcon(applicationInfo))
.build();
mlistAppInfo.remove(addAppinfo); mlistAppInfo.remove(addAppinfo);
mlistAppInfo.add(build); mlistAppInfo.add(build);
mlistAppInfo.add(addAppinfo); mlistAppInfo.add(addAppinfo);
@@ -257,7 +263,7 @@ public class SafeFragment extends BaseMvvmFragment<SafeViewModel, FragmentSafeBi
private void writeAppDate(String str) { private void writeAppDate(String str) {
try { try {
FileOutputStream fileOutputStream = new FileOutputStream(mContext.getFileStreamPath("app_list_6.0"), true); FileOutputStream fileOutputStream = new FileOutputStream(mContext.getFileStreamPath(file_name), true);
fileOutputStream.write((str + "\n").getBytes()); fileOutputStream.write((str + "\n").getBytes());
fileOutputStream.flush(); fileOutputStream.flush();
fileOutputStream.close(); fileOutputStream.close();
@@ -305,7 +311,9 @@ public class SafeFragment extends BaseMvvmFragment<SafeViewModel, FragmentSafeBi
mlistAppInfo.add(build11); mlistAppInfo.add(build11);
mlistAppInfo.add(build12); mlistAppInfo.add(build12);
mlistAppInfo.add(build13); mlistAppInfo.add(build13);
getAppData(); getAppData();
Log.e(TAG, "initAppData: " + mlistAppInfo);
mHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -322,13 +330,12 @@ public class SafeFragment extends BaseMvvmFragment<SafeViewModel, FragmentSafeBi
} }
try { try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(fileStreamPath)); BufferedReader bufferedReader = new BufferedReader(new FileReader(fileStreamPath));
PackageManager packageManager = mContext.getPackageManager();
while (true) { while (true) {
String readLine = bufferedReader.readLine(); String readLine = bufferedReader.readLine();
if (readLine != null) { if (readLine != null) {
try { try {
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(readLine, PackageManager.GET_META_DATA); ApplicationInfo applicationInfo = mPackageManager.getApplicationInfo(readLine, PackageManager.GET_META_DATA);
mlistAppInfo.add(new AppInfo.Builder().appLabel((String) packageManager.getApplicationLabel(applicationInfo)).pkgName(readLine).appIcon(packageManager.getApplicationIcon(applicationInfo)).build()); mlistAppInfo.add(new AppInfo.Builder().appLabel((String) mPackageManager.getApplicationLabel(applicationInfo)).pkgName(readLine).appIcon(mPackageManager.getApplicationIcon(applicationInfo)).build());
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@@ -269,6 +269,10 @@ public class OpenApkUtils {
Toaster.show("应用未安装"); Toaster.show("应用未安装");
return; return;
} }
if (TextUtils.isEmpty(className)) {
openApp(packageName);
return;
}
if (isCloudLessonMod(packageName)) { if (isCloudLessonMod(packageName)) {
if ("cn.wps.note".equals(packageName)) { if ("cn.wps.note".equals(packageName)) {
ApkUtils.openPackage(mContext, packageName); ApkUtils.openPackage(mContext, packageName);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 没有焦点时的背景颜色 -->
<item android:drawable="@drawable/icon_login_sms_code" android:state_window_focused="false" />
<!-- 非触摸模式下获得焦点并单击时的背景颜色 -->
<item android:drawable="@drawable/icon_login_sms_code" android:state_focused="true" android:state_pressed="true" />
<!-- 触摸模式下单击时的背景颜色 -->
<item android:drawable="@drawable/icon_login_sms_code_pre" android:state_focused="false" android:state_pressed="true" />
<!-- 选中时的背景颜色 -->
<item android:drawable="@drawable/icon_login_sms_code" android:state_selected="true" />
<!-- 获得焦点时的背景 颜色 -->
<item android:drawable="@drawable/icon_login_sms_code" android:state_focused="true" />
</selector>

View File

@@ -2,10 +2,13 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android" <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:context=".activity.AddIconActivity"> tools:context=".activity.addicon.AddIconActivity">
<data> <data>
<variable
name="click"
type="com.xwad.os.activity.addicon.AddIconActivity.BtnClick" />
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -24,6 +27,7 @@
android:layout_height="24dp" android:layout_height="24dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:onClick="@{click::exit}"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@drawable/exit" android:src="@drawable/exit"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -203,7 +203,7 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:onClick="@{click::getCode}" android:onClick="@{click::getCode}"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@drawable/icon_login_sms_code" android:src="@drawable/icon_login_sms_code_selector"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />

View File

@@ -26,7 +26,7 @@
android:paddingEnd="8dp" android:paddingEnd="8dp"
android:text="@string/desktop_permission" android:text="@string/desktop_permission"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -44,7 +44,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="@dimen/permission_text_card_height"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
@@ -79,7 +79,7 @@
android:maxLines="1" android:maxLines="1"
android:text="存储权限" android:text="存储权限"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -91,7 +91,7 @@
android:maxLines="1" android:maxLines="1"
android:text="存储图片或视频" android:text="存储图片或视频"
android:textColor="@color/contact_text_color" android:textColor="@color/contact_text_color"
android:textSize="12sp" android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name0" /> app:layout_constraintTop_toBottomOf="@+id/tv_name0" />
@@ -107,7 +107,7 @@
android:onClick="@{click::openStorage}" android:onClick="@{click::openStorage}"
android:text="去授权" android:text="去授权"
android:textColor="@drawable/tv_permission" android:textColor="@drawable/tv_permission"
android:textSize="13sp" android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -116,7 +116,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="@dimen/permission_text_card_height"
android:layout_margin="8dp" android:layout_margin="8dp"
android:background="@drawable/permission_card_background" android:background="@drawable/permission_card_background"
android:visibility="gone"> android:visibility="gone">
@@ -148,7 +148,7 @@
android:maxLines="1" android:maxLines="1"
android:text="读取电话状态" android:text="读取电话状态"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -160,7 +160,7 @@
android:maxLines="1" android:maxLines="1"
android:text="拨打和管理通话" android:text="拨打和管理通话"
android:textColor="@color/contact_text_color" android:textColor="@color/contact_text_color"
android:textSize="12sp" android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name1" /> app:layout_constraintTop_toBottomOf="@+id/tv_name1" />
@@ -176,7 +176,7 @@
android:onClick="@{click::openReadPhone}" android:onClick="@{click::openReadPhone}"
android:text="去授权" android:text="去授权"
android:textColor="@drawable/tv_permission" android:textColor="@drawable/tv_permission"
android:textSize="13sp" android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -185,7 +185,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="@dimen/permission_text_card_height"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
@@ -220,7 +220,7 @@
android:maxLines="1" android:maxLines="1"
android:text="修改系统设置" android:text="修改系统设置"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -232,7 +232,7 @@
android:maxLines="1" android:maxLines="1"
android:text="设置亮度和声音" android:text="设置亮度和声音"
android:textColor="@color/contact_text_color" android:textColor="@color/contact_text_color"
android:textSize="12sp" android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name2" /> app:layout_constraintTop_toBottomOf="@+id/tv_name2" />
@@ -248,7 +248,7 @@
android:onClick="@{click::openWriteSettings}" android:onClick="@{click::openWriteSettings}"
android:text="去授权" android:text="去授权"
android:textColor="@drawable/tv_permission" android:textColor="@drawable/tv_permission"
android:textSize="13sp" android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -257,7 +257,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="@dimen/permission_text_card_height"
android:layout_margin="8dp" android:layout_margin="8dp"
android:background="@drawable/permission_card_background" android:background="@drawable/permission_card_background"
android:visibility="gone"> android:visibility="gone">
@@ -289,7 +289,7 @@
android:maxLines="1" android:maxLines="1"
android:text="定位权限" android:text="定位权限"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -301,7 +301,7 @@
android:maxLines="1" android:maxLines="1"
android:text="获取粗略位置" android:text="获取粗略位置"
android:textColor="@color/contact_text_color" android:textColor="@color/contact_text_color"
android:textSize="12sp" android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name3" /> app:layout_constraintTop_toBottomOf="@+id/tv_name3" />
@@ -317,7 +317,7 @@
android:onClick="@{click::open_coarse_location}" android:onClick="@{click::open_coarse_location}"
android:text="去授权" android:text="去授权"
android:textColor="@drawable/tv_permission" android:textColor="@drawable/tv_permission"
android:textSize="13sp" android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -326,7 +326,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="@dimen/permission_text_card_height"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
@@ -361,7 +361,7 @@
android:maxLines="1" android:maxLines="1"
android:text="定位权限" android:text="定位权限"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -373,7 +373,7 @@
android:maxLines="1" android:maxLines="1"
android:text="获取精确位置" android:text="获取精确位置"
android:textColor="@color/contact_text_color" android:textColor="@color/contact_text_color"
android:textSize="12sp" android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name4" /> app:layout_constraintTop_toBottomOf="@+id/tv_name4" />
@@ -389,7 +389,7 @@
android:onClick="@{click::open_fine_location}" android:onClick="@{click::open_fine_location}"
android:text="去授权" android:text="去授权"
android:textColor="@drawable/tv_permission" android:textColor="@drawable/tv_permission"
android:textSize="13sp" android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -398,7 +398,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="@dimen/permission_text_card_height"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
@@ -433,7 +433,7 @@
android:maxLines="1" android:maxLines="1"
android:text="后台定位权限" android:text="后台定位权限"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -445,7 +445,7 @@
android:maxLines="1" android:maxLines="1"
android:text="查看设备位置" android:text="查看设备位置"
android:textColor="@color/contact_text_color" android:textColor="@color/contact_text_color"
android:textSize="12sp" android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name5" /> app:layout_constraintTop_toBottomOf="@+id/tv_name5" />
@@ -461,7 +461,7 @@
android:onClick="@{click::open_background_location}" android:onClick="@{click::open_background_location}"
android:text="去授权" android:text="去授权"
android:textColor="@drawable/tv_permission" android:textColor="@drawable/tv_permission"
android:textSize="13sp" android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -470,7 +470,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="@dimen/permission_text_card_height"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
@@ -505,7 +505,7 @@
android:maxLines="1" android:maxLines="1"
android:text="通知权限" android:text="通知权限"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" android:textSize="@dimen/permission_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -517,7 +517,7 @@
android:maxLines="1" android:maxLines="1"
android:text="查看设备位置" android:text="查看设备位置"
android:textColor="@color/contact_text_color" android:textColor="@color/contact_text_color"
android:textSize="12sp" android:textSize="@dimen/permission_hint_text_size"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name6" /> app:layout_constraintTop_toBottomOf="@+id/tv_name6" />
@@ -533,7 +533,7 @@
android:onClick="@{click::open_notification}" android:onClick="@{click::open_notification}"
android:text="去授权" android:text="去授权"
android:textColor="@drawable/tv_permission" android:textColor="@drawable/tv_permission"
android:textSize="13sp" android:textSize="@dimen/permission_setting_text_size"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />

View File

@@ -23,7 +23,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:text="必备件" android:text="必备件"
android:textColor="#333333" android:textColor="#333333"
android:textSize="12sp" /> android:textSize="12sp" />

View File

@@ -1,8 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:orientation="horizontal">
<LinearLayout
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">
<RelativeLayout <RelativeLayout
android:id="@+id/ll_zjx" android:id="@+id/ll_zjx"
@@ -458,4 +468,7 @@
android:layout_marginTop="14dp" /> android:layout_marginTop="14dp" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -17,8 +17,8 @@
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="510dp" android:layout_width="555dp"
android:layout_height="210dp" android:layout_height="300dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@@ -27,6 +27,7 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_app" android:id="@+id/rv_app"
style="@style/vertical_style"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:fadeScrollbars="false" android:fadeScrollbars="false"

View File

@@ -35,7 +35,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.xwad.os.view.jxw.widget.NoSlideViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/subject_viewPager" android:id="@+id/subject_viewPager"
android:layout_width="475dp" android:layout_width="475dp"
android:layout_height="300dp" android:layout_height="300dp"

View File

@@ -710,7 +710,7 @@
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:singleLine="true" android:singleLine="true"
android:text="必备件" android:text="必备件"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/mine_app_name_size" android:textSize="@dimen/mine_app_name_size"
app:layout_constraintEnd_toEndOf="@+id/app_icon11" app:layout_constraintEnd_toEndOf="@+id/app_icon11"

View File

@@ -16,8 +16,8 @@
<ImageView <ImageView
android:id="@+id/iv_icon" android:id="@+id/iv_icon"
android:layout_width="36dp" android:layout_width="44dp"
android:layout_height="36dp" android:layout_height="44dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="4dp"

View File

@@ -3292,6 +3292,12 @@
<dimen name="y999">999px</dimen> <dimen name="y999">999px</dimen>
<dimen name="mine_icon_height">36dp</dimen> <dimen name="mine_icon_height">36dp</dimen>
<dimen name="mine_icon_width">56dp</dimen> <dimen name="mine_icon_width">48dp</dimen>
<dimen name="mine_app_name_size">8sp</dimen> <dimen name="mine_app_name_size">8sp</dimen>
<dimen name="permission_hint_text_size">10sp</dimen>
<dimen name="permission_text_size">12sp</dimen>
<dimen name="permission_text_card_height">48dp</dimen>
<dimen name="permission_setting_text_size">11sp</dimen>
</resources> </resources>