version:5.2

fix:
update:修改日常应用,取消通知权限,亮度调整
This commit is contained in:
2024-04-22 10:56:09 +08:00
parent 3db9b703ac
commit 16b3ac501e
12 changed files with 176 additions and 63 deletions

View File

@@ -15,8 +15,8 @@ android {
applicationId "com.uiuios.aios" applicationId "com.uiuios.aios"
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 29 targetSdkVersion 29
versionCode 42 versionCode 43
versionName "5.1" versionName "5.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -61,7 +61,7 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
public abstract class BaseMainActivity extends BaseActivity implements MainContact.MainView { public abstract class BaseMainActivity extends BaseActivity implements MainContact.MainView ,RemoteManager.ConnectedListener{
private static final String TAG = BaseMainActivity.class.getSimpleName(); private static final String TAG = BaseMainActivity.class.getSimpleName();
private MainPresenter mMainPresenter; private MainPresenter mMainPresenter;
@@ -92,6 +92,11 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta
return false; return false;
} }
@Override
public void onConnected() {
setDefaultDesktop();
}
@Override @Override
public void initView() { public void initView() {
ButterKnife.bind(this); ButterKnife.bind(this);
@@ -105,6 +110,11 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta
// SystemClock.setCurrentTimeMillis(1662210000000L);//09-03 // SystemClock.setCurrentTimeMillis(1662210000000L);//09-03
} }
// if (!isNotificationListenersEnabled()) {
// ToastUtil.show("请授予\"" + getString(R.string.app_name) + "\"使用通知权");
// gotoNotificationAccessSetting(BaseMainActivity.this);
// }
mFragmentManager = getSupportFragmentManager(); mFragmentManager = getSupportFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction(); mFragmentTransaction = mFragmentManager.beginTransaction();
mFragments = new ArrayList<>(); mFragments = new ArrayList<>();
@@ -212,12 +222,7 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta
} }
}; };
bindAlarmService(); bindAlarmService();
RemoteManager.getInstance().setListener(new RemoteManager.ConnectedListener() { RemoteManager.setListener(this);
@Override
public void onConnected() {
setDefaultDesktop();
}
});
} }
private ServiceConnection mAlarmServiceConnection; private ServiceConnection mAlarmServiceConnection;
@@ -349,13 +354,9 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
Log.e(TAG, "onResume: "); Log.e(TAG, "onResume: ");
if (!isNotificationListenersEnabled()) {
ToastUtil.show("请授予\"" + getString(R.string.app_name) + "\"使用通知权");
gotoNotificationAccessSetting(this);
} else {
getPermission(); getPermission();
} }
}
public static final String Launcher3 = "com.android.launcher3"; public static final String Launcher3 = "com.android.launcher3";
public static final String Launcher3Class = "com.android.launcher3.Launcher"; public static final String Launcher3Class = "com.android.launcher3.Launcher";
@@ -497,6 +498,7 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta
if (updateDesktopReceiver != null) { if (updateDesktopReceiver != null) {
unregisterReceiver(updateDesktopReceiver); unregisterReceiver(updateDesktopReceiver);
} }
RemoteManager.removeListener(this);
} }
@Override @Override

View File

@@ -11,7 +11,7 @@ public class AlarmOpenHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 2; public static final int DATABASE_VERSION = 2;
public static final String DATABASE_NAME = "AlarmDatabase.db"; public static final String DATABASE_NAME = "AlarmDatabase.db";
// public static final String DATABASE_FILE_NAME = Environment.getExternalStorageDirectory().getPath() + File.separator + DATABASE_NAME; // public static final String DATABASE_FILE_NAME = Environment.getExternalStorageDirectory().getPath() + File.separator + DATABASE_NAME;
public static final String DATABASE_FILE_NAME = File.separator + DATABASE_NAME; public static final String DATABASE_FILE_NAME = DATABASE_NAME;
public static final String TABLE_ALARM = " AlarmTable"; public static final String TABLE_ALARM = " AlarmTable";

View File

@@ -57,7 +57,9 @@ public class AlarmUtils {
private AlarmUtils(Context context) { private AlarmUtils(Context context) {
this.mContext = context; this.mContext = context;
// this.mAlarmOpenHelper = new AlarmOpenHelper(context, AlarmOpenHelper.DATABASE_NAME, null, AlarmOpenHelper.DATABASE_VERSION); // this.mAlarmOpenHelper = new AlarmOpenHelper(context, AlarmOpenHelper.DATABASE_NAME, null, AlarmOpenHelper.DATABASE_VERSION);
this.mAlarmOpenHelper = new AlarmOpenHelper(context, mContext.getExternalCacheDir() + AlarmOpenHelper.DATABASE_FILE_NAME, null, AlarmOpenHelper.DATABASE_VERSION); this.mAlarmOpenHelper = new AlarmOpenHelper(context,
context.getExternalCacheDir() + File.separator + AlarmOpenHelper.DATABASE_FILE_NAME,
null, AlarmOpenHelper.DATABASE_VERSION);
this.mDatabase = mAlarmOpenHelper.getWritableDatabase(); this.mDatabase = mAlarmOpenHelper.getWritableDatabase();
this.mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); this.mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
} }

View File

@@ -7,6 +7,11 @@ import android.graphics.drawable.Drawable;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.annotation.NonNull;
import com.google.gson.Gson;
import com.google.gson.JsonParser;
import java.io.Serializable; import java.io.Serializable;
public class DesktopIcon implements Serializable, Parcelable { public class DesktopIcon implements Serializable, Parcelable {
@@ -115,4 +120,9 @@ public class DesktopIcon implements Serializable, Parcelable {
return desktopIcon; return desktopIcon;
} }
@NonNull
@Override
public String toString() {
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
}
} }

View File

@@ -17,6 +17,11 @@ public class CommonConfig {
public static final String LOCK_SCREEN_PASSWORD = "aios_lockScreenPasswordKey"; public static final String LOCK_SCREEN_PASSWORD = "aios_lockScreenPasswordKey";
public static final String DEFAULT_PASSWORD = "6666"; public static final String DEFAULT_PASSWORD = "6666";
/*应用市场所有包名*/
public static final String UIUI_APPSTORE_PACKAGE_LIST = "UIUI_APPSTORE_PACKAGE_LIST_KEY";
/*首次进入桌面*/
public static final String UIUI_FIRST_OPEN = "uiui_desktop_first_open_key";
/*是否激活接口请求缓存*/ /*是否激活接口请求缓存*/
public static final String ACTIVATION_BEAN_KEY = "AIOS_UIUI_ACTIVATION_BEAN_KEY"; public static final String ACTIVATION_BEAN_KEY = "AIOS_UIUI_ACTIVATION_BEAN_KEY";
/*是否激活*/ /*是否激活*/

View File

@@ -298,6 +298,7 @@ public class AppListFragment extends BaseFragment {
case "aios.exit": case "aios.exit":
case "com.uiuios.sn": case "com.uiuios.sn":
case "aios.daily.app": case "aios.daily.app":
case "aios.appstore":
break; break;
default: default:
showHideDialog(desktopIcon); showHideDialog(desktopIcon);

View File

@@ -9,6 +9,7 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.database.ContentObserver;
import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager; import android.hardware.camera2.CameraManager;
@@ -20,12 +21,16 @@ import android.net.wifi.WifiManager;
import android.os.BatteryManager; import android.os.BatteryManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.SeekBar; import android.widget.SeekBar;
import android.widget.TextView; import android.widget.TextView;
@@ -213,8 +218,24 @@ public class ControlFragment extends BaseFragment {
startActivity(new Intent(Settings.ACTION_BATTERY_SAVER_SETTINGS)); startActivity(new Intent(Settings.ACTION_BATTERY_SAVER_SETTINGS));
} }
}); });
mContext.getContentResolver().registerContentObserver(
Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
true,
mBrightnessObserver
);
} }
private ContentObserver mBrightnessObserver = new ContentObserver(new Handler(Looper.getMainLooper())) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.e("mBrightnessObserver", "onChange: " + Settings.System.getInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 1));
}
};
private void initData() { private void initData() {
} }
@@ -843,12 +864,21 @@ public class ControlFragment extends BaseFragment {
@Override @Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) { public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
Log.e(TAG, "onProgressChanged: i = " + i); Log.e(TAG, "onProgressChanged: i = " + i);
RemoteManager.getInstance().putSystemInt(Settings.System.SCREEN_BRIGHTNESS, i);
int gamma = BrightnessUtils.convertLinearToGamma(i, 1, 255); int gamma = BrightnessUtils.convertLinearToGamma(i, 1, 255);
Log.e(TAG, "onProgressChanged: gamma = " + gamma); Log.e(TAG, "onProgressChanged: gamma = " + gamma);
long percentage = Math.round((((double) gamma / 65535) * 100f)); long percentage = Math.round((((double) gamma / 65535) * 100f));
Log.e(TAG, "onProgressChanged: percentage = " + percentage); Log.e(TAG, "onProgressChanged: percentage = " + percentage);
// tv_brightness.setText(percentage + "%"); // tv_brightness.setText(percentage + "%");
if (RemoteManager.isServiceConnected()) {
RemoteManager.getInstance().putSystemInt(Settings.System.SCREEN_BRIGHTNESS, i);
} else {
Window window = getActivity().getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
Log.e(TAG, "onProgressChanged: " + i / 255f);
lp.screenBrightness = i / 255f;//0.0-1.0
window.setAttributes(lp);
}
} }
@Override @Override
@@ -903,6 +933,7 @@ public class ControlFragment extends BaseFragment {
super.onDestroy(); super.onDestroy();
if (mWifiReceiver != null) mContext.unregisterReceiver(mWifiReceiver); if (mWifiReceiver != null) mContext.unregisterReceiver(mWifiReceiver);
if (mTimeUpdateReceiver != null) mContext.unregisterReceiver(mTimeUpdateReceiver); if (mTimeUpdateReceiver != null) mContext.unregisterReceiver(mTimeUpdateReceiver);
mContext.getContentResolver().unregisterContentObserver(mBrightnessObserver);
} }

View File

@@ -22,6 +22,7 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class AppManager { public class AppManager {
@@ -258,7 +259,6 @@ public class AppManager {
return desktopIcons; return desktopIcons;
} }
public ArrayList<DesktopIcon> getAddDesktopIcon() { public ArrayList<DesktopIcon> getAddDesktopIcon() {
PackageManager pm = mContext.getPackageManager(); PackageManager pm = mContext.getPackageManager();
// 查询所有已经安装的应用程序 // 查询所有已经安装的应用程序
@@ -281,6 +281,25 @@ public class AppManager {
return desktopIcons; return desktopIcons;
} }
public Set<String> getAddDesktopIconSet() {
PackageManager pm = mContext.getPackageManager();
// 查询所有已经安装的应用程序
List<ResolveInfo> resolveInfos = new ArrayList<>();
// 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// 通过getPackageManager()的queryIntentActivities方法遍历,得到所有能打开的app的packageName
List<ResolveInfo> resolveinfoList = pm.queryIntentActivities(resolveIntent, 0);
for (ResolveInfo resolveInfo : resolveinfoList) {
if (addPackages.contains(resolveInfo.activityInfo.packageName)) {
resolveInfos.add(resolveInfo);
}
}
Set<String> pkgSet = resolveInfos.stream().map(resolveInfo -> resolveInfo.activityInfo.packageName).collect(Collectors.toSet());
return pkgSet;
}
public void addAddPakcage(String packageName) { public void addAddPakcage(String packageName) {
this.addPackages.add(packageName); this.addPackages.add(packageName);
mMMKV.encode(ADD_PACKAGE_KEY, addPackages); mMMKV.encode(ADD_PACKAGE_KEY, addPackages);

View File

@@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
public class RemoteManager { public class RemoteManager {
private static final String TAG = RemoteManager.class.getSimpleName(); private static final String TAG = RemoteManager.class.getSimpleName();
@@ -35,6 +36,7 @@ public class RemoteManager {
private static RemoteManager sInstance; private static RemoteManager sInstance;
private Context mContext; private Context 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 static boolean mServiceConnected = false;
private CacheHelper mCacheHelper; private CacheHelper mCacheHelper;
private IGetInfoInterface mGetInfoInterface; private IGetInfoInterface mGetInfoInterface;
@@ -51,6 +53,7 @@ public class RemoteManager {
public void onServiceConnected(ComponentName name, IBinder service) { public void onServiceConnected(ComponentName name, IBinder service) {
Log.e(TAG, "onServiceConnected: mIGetInfoConnection"); Log.e(TAG, "onServiceConnected: mIGetInfoConnection");
mGetInfoInterface = IGetInfoInterface.Stub.asInterface(service); mGetInfoInterface = IGetInfoInterface.Stub.asInterface(service);
mServiceConnected = true;
for (ConnectedListener listener : mListeners) { for (ConnectedListener listener : mListeners) {
if (listener != null) { if (listener != null) {
listener.onConnected(); listener.onConnected();
@@ -71,6 +74,7 @@ public class RemoteManager {
public void onServiceDisconnected(ComponentName name) { public void onServiceDisconnected(ComponentName name) {
Log.e(TAG, "onServiceDisconnected: mIGetInfoConnection"); Log.e(TAG, "onServiceDisconnected: mIGetInfoConnection");
mGetInfoInterface = null; mGetInfoInterface = null;
mServiceConnected = false;
bindInfoService(); bindInfoService();
} }
}; };
@@ -91,19 +95,27 @@ public class RemoteManager {
return sInstance; return sInstance;
} }
public static boolean isServiceConnected() {
return mServiceConnected;
}
public interface ConnectedListener { public interface ConnectedListener {
void onConnected(); void onConnected();
} }
Set<ConnectedListener> mListeners = new HashSet<>(); private static Set<ConnectedListener> mListeners = new CopyOnWriteArraySet<>();
public void setListener(ConnectedListener listener) { public static void setListener(ConnectedListener listener) {
mListeners.add(listener); mListeners.add(listener);
if (mGetInfoInterface != null) { if (mServiceConnected) {
listener.onConnected(); listener.onConnected();
} }
} }
public static void removeListener(ConnectedListener listener) {
mListeners.remove(listener);
}
private void bindInfoService() { private void bindInfoService() {
if (mGetInfoInterface == null) { if (mGetInfoInterface == null) {
//这是连接aidl服务的代码 //这是连接aidl服务的代码

View File

@@ -18,9 +18,12 @@ import android.util.Log;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.BuildConfig; import com.uiuios.aios.BuildConfig;
import com.uiuios.aios.R; import com.uiuios.aios.R;
import com.uiuios.aios.activity.QuickAppActivity;
import com.uiuios.aios.bean.DesktopIcon; import com.uiuios.aios.bean.DesktopIcon;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.manager.AppManager; import com.uiuios.aios.manager.AppManager;
import com.uiuios.aios.manager.AppStatusManager; import com.uiuios.aios.manager.AppStatusManager;
import com.uiuios.aios.receiver.InstallResultReceiver; import com.uiuios.aios.receiver.InstallResultReceiver;
@@ -38,6 +41,7 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.Observable;
@@ -155,12 +159,25 @@ public class ApkUtils {
this.add("com.uiuios.appstore"); this.add("com.uiuios.appstore");
}}; }};
private static List<String> hideApp = new ArrayList<String>() {{
this.add("com.uiuios.aios");
this.add("com.uiuios.appstore");
}};
/** /**
* @param context * @param context
* @return * @return
*/ */
public static ArrayList<DesktopIcon> queryFilterAppInfo(Context context) { public static ArrayList<DesktopIcon> queryFilterAppInfo(Context context) {
List<String> quickApps = new ArrayList<>(AppManager.getInstance().getAddPackages()); MMKV mmkv = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
String quickAppString = Settings.Global.getString(context.getContentResolver(), QuickAppActivity.QUICK_APP_KEY);
List<String> quickApps;
if (TextUtils.isEmpty(quickAppString)) {
quickApps = new ArrayList<>();
} else {
List<String> split = new ArrayList<>(Arrays.asList(quickAppString.split(",")));
quickApps = split.stream().filter(s -> ApkUtils.isAvailable(context, s)).collect(Collectors.toList());
}
PackageManager pm = context.getPackageManager(); PackageManager pm = context.getPackageManager();
// 查询所有已经安装的应用程序 // 查询所有已经安装的应用程序
@@ -175,17 +192,21 @@ public class ApkUtils {
Set<String> allowPackages = new HashSet(); Set<String> allowPackages = new HashSet();
for (ResolveInfo resolveInfo : resolveinfoList) { for (ResolveInfo resolveInfo : resolveinfoList) {
Log.i(TAG, "queryFilterAppInfo: " + resolveInfo.activityInfo.packageName); Log.i(TAG, "queryFilterAppInfo: " + resolveInfo.activityInfo.packageName);
Log.i(TAG, "queryFilterAppInfo: " + resolveInfo.activityInfo.name); Log.i(TAG, "queryFilterAppInfo class: " + resolveInfo.activityInfo.name);
allowPackages.add(resolveInfo.activityInfo.packageName); allowPackages.add(resolveInfo.activityInfo.packageName);
} }
String appListString = Settings.System.getString(context.getContentResolver(), "only_jgy_shortcut_list"); String pkgString = Settings.Global.getString(context.getContentResolver(), CommonConfig.UIUI_APPSTORE_PACKAGE_LIST);
List<String> packageList = new ArrayList<>(); Set<String> pkgSet = new HashSet<>(new ArrayList<>(Arrays.asList(pkgString.split(","))));
if (!TextUtils.isEmpty(appListString)) { Log.e(TAG, "queryFilterAppInfo: pkgSet = " + pkgSet);
packageList = new ArrayList<>(Arrays.asList(appListString.split(","))); int frist = mmkv.decodeInt(CommonConfig.UIUI_FIRST_OPEN, 0);
}
for (ResolveInfo resolveInfo : resolveinfoList) { for (ResolveInfo resolveInfo : resolveinfoList) {
String pkg = resolveInfo.activityInfo.packageName; String pkg = resolveInfo.activityInfo.packageName;
if (hideApp.contains(pkg)){
Log.e(TAG, "queryFilterAppInfo: hideApp = " + pkg);
continue;
}
if (quickApps.contains(pkg)) { if (quickApps.contains(pkg)) {
Log.e(TAG, "queryFilterAppInfo: quickApps = " + pkg);
continue; continue;
} }
if (appIsDisable(context, pkg)) { if (appIsDisable(context, pkg)) {
@@ -196,56 +217,65 @@ public class ApkUtils {
Log.e(TAG, "queryFilterAppInfo: hided = " + pkg); Log.e(TAG, "queryFilterAppInfo: hided = " + pkg);
continue; continue;
} }
if (AppManager.getInstance().getAddDesktopIconSet().contains(pkg)) {
Log.e(TAG, "queryFilterAppInfo: quick = " + pkg);
continue;
}
if (isSystemApp(context, pkg))//通过flag排除系统应用会将电话、短信也排除掉 if (isSystemApp(context, pkg))//通过flag排除系统应用会将电话、短信也排除掉
{ {
if (showPackageName.contains(pkg)) { if (showPackageName.contains(pkg)) {
resolveInfos.add(resolveInfo); resolveInfos.add(resolveInfo);
} }
} else { } else {
// int setting_other_appInstaller = Settings.Global.getInt(context.getContentResolver(), "setting_other_appInstaller", 1); if (frist == 0) {
// if (setting_other_appInstaller == 0) {//不显示自己安装的 if (pkgSet.contains(pkg)) {
// if (packageList.contains(pkg)) {
// resolveInfos.add(resolveInfo);
// }
// } else {
if (allowPackages.contains(pkg) && !excludePackageName.contains(pkg)) { if (allowPackages.contains(pkg) && !excludePackageName.contains(pkg)) {
resolveInfos.add(resolveInfo); resolveInfos.add(resolveInfo);
} }
// } } else {
Log.e(TAG, "queryFilterAppInfo: pkgSet ! contains " + pkg);
AppStatusManager.getInstance().addHidedApp(pkg);
}
} else {
if (allowPackages.contains(pkg) && !excludePackageName.contains(pkg)) {
resolveInfos.add(resolveInfo);
}
}
} }
} }
if (Settings.Global.getInt(context.getContentResolver(), "is_activity", 0) == 0) { if (Settings.Global.getInt(context.getContentResolver(), "is_activity", 0) == 0) {
resolveInfos.removeIf(resolveInfo -> "com.uiui.city".equals(resolveInfo.activityInfo.packageName)); resolveInfos.removeIf(resolveInfo -> "com.uiui.city".equals(resolveInfo.activityInfo.packageName));
// resolveInfos.removeIf(applicationInfo -> "com.uiui.sn".equals(applicationInfo.packageName)); // resolveInfos.removeIf(applicationInfo -> "com.uiui.sn".equals(applicationInfo.packageName));
} }
resolveInfos.sort(new Comparator<ResolveInfo>() { List<ResolveInfo> sort1 = resolveInfos.stream().sorted(new Comparator<ResolveInfo>() {
@Override @Override
public int compare(ResolveInfo o1, ResolveInfo o2) { public int compare(ResolveInfo o1, ResolveInfo o2) {
return Collator.getInstance(Locale.CHINESE).compare(o1.loadLabel(pm).toString(), o2.loadLabel(pm).toString()); return Collator.getInstance(Locale.CHINESE).compare(o1.loadLabel(pm).toString(), o2.loadLabel(pm).toString());
// return o1.loadLabel(pm).toString().compareTo(o2.loadLabel(pm).toString()); // return o1.loadLabel(pm).toString().compareTo(o2.loadLabel(pm).toString());
} }
}); }).collect(Collectors.toList());
// resolveInfos.sort(new Comparator<ResolveInfo>() { List<ResolveInfo> sort2 = sort1.stream().sorted(new Comparator<ResolveInfo>() {
// @Override @Override
// public int compare(ResolveInfo o1, ResolveInfo o2) { public int compare(ResolveInfo o1, ResolveInfo o2) {
// try { try {
// if ((pm.getApplicationInfo(o1.activityInfo.packageName, 0).flags & ApplicationInfo.FLAG_SYSTEM) <= (pm.getApplicationInfo(o2.activityInfo.packageName, 0).flags & ApplicationInfo.FLAG_SYSTEM)) { if ((pm.getApplicationInfo(o1.activityInfo.packageName, 0).flags & ApplicationInfo.FLAG_SYSTEM) < (pm.getApplicationInfo(o2.activityInfo.packageName, 0).flags & ApplicationInfo.FLAG_SYSTEM)) {
// return 1; return 1;
// } else { } else {
// return -1; return -1;
// } }
// } catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
// e.printStackTrace(); e.printStackTrace();
// } }
// return 0; return 0;
// } }
// }); }).collect(Collectors.toList());
ArrayList<DesktopIcon> desktopIcons = new ArrayList<>(); ArrayList<DesktopIcon> desktopIcons = new ArrayList<>();
for (ResolveInfo applicationInfo : resolveInfos) { for (ResolveInfo applicationInfo : sort2) {
if (!excludeClassName.contains(applicationInfo.activityInfo.name)) { if (!excludeClassName.contains(applicationInfo.activityInfo.name)) {
desktopIcons.add(DesktopIcon.creatDesktopIcon(context, applicationInfo)); desktopIcons.add(DesktopIcon.creatDesktopIcon(context, applicationInfo));
} }
} }
List<ShortcutPkgInfo> shortcutPkgInfos = ShortcutUtils.getInstance().getShortcutList(); List<ShortcutPkgInfo> shortcutPkgInfos = ShortcutUtils.getInstance().getShortcutList();
desktopIcons.addAll(shortcutPkgInfos); desktopIcons.addAll(shortcutPkgInfos);
@@ -261,12 +291,13 @@ public class ApkUtils {
familyIcon.setPackage("aios.appstore"); familyIcon.setPackage("aios.appstore");
desktopIcons.add(1, familyIcon); desktopIcons.add(1, familyIcon);
DesktopIcon exitIcon = new DesktopIcon(); // DesktopIcon exitIcon = new DesktopIcon();
exitIcon.setIcon(context.getDrawable(R.drawable.exit_icon)); // exitIcon.setIcon(context.getDrawable(R.drawable.exit_icon));
exitIcon.setTitle("切换系统"); // exitIcon.setTitle("切换系统");
exitIcon.setPackage("aios.exit"); // exitIcon.setPackage("aios.exit");
desktopIcons.add(exitIcon); // desktopIcons.add(exitIcon);
mmkv.encode(CommonConfig.UIUI_FIRST_OPEN, 1);
return desktopIcons; return desktopIcons;
} }
@@ -345,7 +376,7 @@ public class ApkUtils {
} }
public static Drawable getAppDrawable(Context context, String pkg) { public static Drawable getAppDrawable(Context context, String pkg) {
if (context==null||TextUtils.isEmpty(pkg)){ if (context == null || TextUtils.isEmpty(pkg)) {
return null; return null;
} }
PackageManager packageManager = context.getPackageManager(); PackageManager packageManager = context.getPackageManager();